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
mark anderson [Bentley]
Visit me at https://communities.bentley.com/communities/other_communities/bentley_innovation/default.aspx
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
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
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?
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.
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!
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).
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?.
Thanks for your response full of rational arguments. I sincerely wish that my clients share your points of view.