Migration to V8i? - How?

I have been creating MDL code for SE, V8 and V8 XM with few or no problems at all.

Now I am finding myself struggling to run all these programs in V8i, which stubbornly refuses to accept these, and additionally crashes in the process.

So now I am standing on the crossroad and deciding if it is worth to continue with this or to abandon my project?

I will appreciate if someone tells me why I have to recompile these files again, and how, because I won't use microsoft C/C++ in the process. I simply refuse to use microsoft C/C++ to build MDL applications.

I am finding very unfortunate that as programmer, I have to shift  my attention out of the pure conceptual and creative engineering side of code building.

Instead, I am spending half of my time trying to find the ways to run and setup a new compiler with every new version of Microstation. This is a real pain.

Thanks in advance, Marcos

Parents
  • Marcos, Looks like you have two issues here the first one being how do I move my applications to V8i. For this there is a great deal of information in the MicroStation SDK ReadMe. Most of the changes that occur to applications are due to the updates to the runtime environment. For example the most common issue that I see is the need to use a real model reference in place of NULL for many function calls. In V8i you don't have to use C++ for most things although it is becoming inevitable that you will need to move to Native Code and C++ as the API is moving in this direction. If you have an existing application I would first clean it up to have it build then I would migrate the code to Native Code using the instructions that we have given our numerous times and are in the Wiki. This only involves using the cl compiler not the full VisualStudio so you don't have to worry about Microsoft projects and the such. I cannot guarantee that you will not need to move to native code before you have the application running but the change is not that tough. It should not take more than a few hours to move an application the first time and minutes after that. For example I moved most of the delivered examples in two days of work. You can get the latest SDK (for the V8i Beta) to see the results. HTH, Mark Anderson [Bentley]
  • Thanks Mark,
    I am extremely reluctant to use VC++. I don't like the tool as I don't like Microsoft operating systems like Vista. I can barely accept XP and I am focusing part of my attention to Linux as alternative. I know that Microstation operates just under Windows which is not good either, but that's the reality and I have to accept that, at least for the time being.
    If I have to switch to "native code" (whatever does that mean) I will temporarily do it, in this case it seems that I have no many choices as I won't abandon the project I am trying to finalise.
    What I don't know at this point is if within the V8i SDK we can still finding the usual compiling tools:
    bmake.exe
    mcomp.exe
    mlib.exe
    mlink.exe
    rcomp.exe
    rlib.exe
    and others.
    I haven't downloaded the SDK yet and I don't know if I will. Can you tell me please if these tools and others still present?
    Thanks in advance, Marcos

  • Progress

    Marcos:
    What I don't know at this point is if within the V8i SDK we can still finding the usual compiling tools. Can you tell me please if these tools and others still present?

    They remain where you expect to find them. There are a few new tools, notably those related to security, enabling you to 'sign' an application.

    Marcos:
    If I have to switch to "native code" (whatever does that mean)

    As you probably know, a 'pure' MDL project creates an MDL application (*.ma). When you load that MDL app., MicroStation executes the code in its run-time environment. In other words, MDL apps. are analogous to Java apps., in that they both require a run-time interpreter.

    To distinguish a 'pure' MDL project from one build using Visual Studio to create a DLL, Bentley term the latter a native code application. It's native to the operating environment because it is binary code that is executed by your computer's processor.

    Marcos:
    I am extremely reluctant to use VC++. I don't like the tool as I don't like Microsoft operating systems like Vista.

    We're focussing on MicroStation and MDL in this Forum. There are plenty of places on the web where you will find others who share your reservations about other vendors' products.

    Visual Studio provides an IDE. VC++ provides application build tools that let us create a DLL. Using C++ provides many benefits to the programmer: your code is set free from the procedural tedium of plain old C. You benefit from object-orientated programming, the wealth of functionality provided by the C++ Standard Library, and a comprehensive error-checking compiler and linker. Your customers benefit from higher-quality applications and better performance.

    Regards, Jon Summers
    LA Solutions

     
    Regards, Jon Summers
    LA Solutions

  • Jon,

    Jon Summers:

    We're focussing on MicroStation and MDL in this Forum. There are plenty of places on the web where you will find others who share your reservations about other vendors' products.

    Effectively we are focussing on Microstation, MDL and Microsoft VC++ in this Forum.  Therefore my comment was made very properly here and anyway I think that Bentley and the entire Community should be aware of everyone's opinion about any tool intended to be used with MDL, including VC++.

    Regarding the rest of your message, I want to thank you for updating me on the availability of the original tools which I am going to test soon while I start moving into native DLL code (despite my aversion to "other vendors' products").

    I am very aware that the original tools may be rendered obsolete some of these days and then the only available tool would be "other vendors' products".

    VC++ is a pain, I am very reluctant to use this, but I will do so just for the time being until I decide the appropriate course of action in relation to my several projects.

     To both of you, Mark and Jon, thanks for the feedback.

    Best regards, Marcos

  • Hi, Marcos,

    I share your view on using VC++ with MDL and MicroStation. In my opinion, we should use the tool/s most suitable for our projects from technical and more importantly economical perspectives. . For many MDL applications (Native to the run time environment of MicroStation, non-native to Microsoft Windows), there  are really no benefits to the end users by moving to "native code". For most of my projects, the native MDL development environment is more than adequate to handle the tasks.

    " I am very aware that the original tools may be rendered obsolete some of these days and then the only available tool would be "other vendors' products".

    I sincerely hope the above statement will not become reality.

    Regards,

    Ken

  • Ken:
    In my opinion, we should use the tool/s most suitable for our projects.

    You can choose between VBA, pure MDL and C++ calling MDL. At some time in the near future the C# tools may become sufficiently mature to be usable to create add-ins.

    Ken:
    For many applications there are no benefits to the end users by moving to "native code".

    The user should have no need to know the technology used to build her application. It's just 'something that runs in MicroStation'.

    Ken:
    For most of my projects, the native MDL development environment is more than adequate to handle the tasks.

    Probably you'll find that VBA is also adequate for many applications.

    But there are occasions when pure MDL can't handle the user requirements efficiently. It's useful for us developers to be able to take advantage of C++, the Standard Library, and the Boost extensions to C++. You may not like Visual C++ as a development tool, but can you deny the value of C++ as a language?

    Regards, Jon Summers
    LA Solutions

     
    Regards, Jon Summers
    LA Solutions

  • Hi, Jon,

    Thanks for your comments. I always find that opinions from expert users like you can be very helpful to provoke constructive debates.

    I totally agree with you that from technical perspective, using C++/MDL as the main development tool for MicroStation application is a much better option than using MDL only. My preferred development language is actually Java. When Bentley introduced MicroStation/J, I was very excited about Java development option. Unfortunately, my excitement was short lived.

    In my opinion, the most appropriate development tool should be the one provided all functions users required at the minimum cost. The C++/MDL option is definitely not the minimum cost one since the developers need at least to purchase Visual C++ and be trained for using it. Some people may argue that all software developers should update their knowledge with the latest development tools. I may counter-argue with the facts that many Cobal programmers are still making a good living.

    So, from businees perspective, the most appropriate development tool is the one winning projects for developers.

    Just as you said in your response: 

    "The user should have no need to know the technology used to build her application. It's just 'something that runs in MicroStation'."

    So, almost no users are willing to pay the cost of migrating the existing applications from pure MDL to C++/MDL unless they do not have any options. From their perspective, if it is not broken, why fix it. Most of my users have already complained about the need of MDL code changes to update their existing applications from 2004 to XM, then to V8i.

    Since all my users' applications were developed as pure MDL applications, My real concern with the MicroStation development environment is that some day, the pure MDL option will not available to us any more.

    I sincerely hope that some inside from Bentley can comment on this issue.

    Regards,

    Ken

Reply
  • Hi, Jon,

    Thanks for your comments. I always find that opinions from expert users like you can be very helpful to provoke constructive debates.

    I totally agree with you that from technical perspective, using C++/MDL as the main development tool for MicroStation application is a much better option than using MDL only. My preferred development language is actually Java. When Bentley introduced MicroStation/J, I was very excited about Java development option. Unfortunately, my excitement was short lived.

    In my opinion, the most appropriate development tool should be the one provided all functions users required at the minimum cost. The C++/MDL option is definitely not the minimum cost one since the developers need at least to purchase Visual C++ and be trained for using it. Some people may argue that all software developers should update their knowledge with the latest development tools. I may counter-argue with the facts that many Cobal programmers are still making a good living.

    So, from businees perspective, the most appropriate development tool is the one winning projects for developers.

    Just as you said in your response: 

    "The user should have no need to know the technology used to build her application. It's just 'something that runs in MicroStation'."

    So, almost no users are willing to pay the cost of migrating the existing applications from pure MDL to C++/MDL unless they do not have any options. From their perspective, if it is not broken, why fix it. Most of my users have already complained about the need of MDL code changes to update their existing applications from 2004 to XM, then to V8i.

    Since all my users' applications were developed as pure MDL applications, My real concern with the MicroStation development environment is that some day, the pure MDL option will not available to us any more.

    I sincerely hope that some inside from Bentley can comment on this issue.

    Regards,

    Ken

Children
  • JMDL

    Ken:
    My preferred development language is actually Java. When Bentley introduced MicroStation/J, I was very excited about Java development option. Unfortunately, my excitement was short lived.

    Happy nostalgia!

    Regards, Jon Summers
    LA Solutions

     
    Regards, Jon Summers
    LA Solutions

  • Users, Upgrades, SELECT

    Ken:
    From the users' perspective, if it is not broken, why fix it.

    Bentley Systems continue to enhance and expand MicroStation in response to user requests. They don't change MicroStation to irritate developers like you and me.

    However, when they modify a library or add a new API there's a reason: in order to implement some user requirement, something had to change. That change may or may not have an effect on developers.

    Ken:
    So, almost no users are willing to pay the cost of migrating the existing applications from pure MDL to C++/MDL Most of my users have already complained about the need of MDL code changes.

    Why do they complain? Almost all users pay Bentley SELECT subscription that pays for the continuing development of the product that they, implicitly or explicitly, expect Bentley to continue developing. You didn't ask your users to upgrade from XM to V8i —  they took that decision themselves.

    There are an awful lot of code changes in MicroStation itself — do they complain about those as well? Maybe the users don't appreciate that they already paid for MicroStation changes through their SELECT subscription, which is handled by the accounts department (bills that the users don't see).

    Regards, Jon Summers
    LA Solutions

     
    Regards, Jon Summers
    LA Solutions

  • Cost of Software Tools

    Ken:
    In my opinion, the most appropriate development tool should be the one provided all functions users required at the minimum cost. The C++/MDL option is definitely not the minimum cost one since the developers need at least to purchase Visual C++ and be trained for using it.

    The MDL tools are not free: if you're a MicroStation user, they are part of your SELECT annual fee; if you're a member of the Bentley Developer Network (BDN), they are part of your BDN annual fee.

    Visual Studio Pro costs one or two days of your time. That cost is amortised over your projects completed in the next year or so, just as the capital purchase cost of MicroStation is amortised over a number of projects.

    Ken:
    Some people may argue that all software developers should update their knowledge with the latest development tools. I may counter-argue with the facts that many Cobol programmers are still making a good living.

    I was going to comment that there's no Cobol API for MicroStation. However, in these days of .NET, any language can create an InterOp to use a COM server such as the MicroStationDGN.Application. So, why not write your  next MicroStation application using COBOL?.

    Regards, Jon Summers
    LA Solutions

     
    Regards, Jon Summers
    LA Solutions

  • Hi, Jon,

    Thanks for your response full of rational arguments. I sincerely wish that my clients share your points of view.

    Regards,

    Ken