I have a large body of MDL code last compiled and tested in SS3. It is still in pseudocode form. Do I need to recompile in order to upgrade MicroStation from SS3 to SS4? Do I need to convert to nativecode? Can you direct me to any FAQs about making this port? Thanks for any info you can provide.
Hi Ken,
Unknown said:It is still in pseudocode form.
If I remember correctly, from V8.0 Bentley has recommended to move applications to native code and from V8 2004 Edition (I guess) MDL pseudocode is treated as obsolete. So to have pseudocode application now is not good ... but I know it's reality and I know about more such applications (and help to maintain some) ;-)
Unknown said:Do I need to recompile in order to upgrade MicroStation from SS3 to SS4?
I don't recall compatibility information, but my experience is that there is no problem to use MicroStation V8i (SELECTseries 3) compiled applications with SELECTseries 4.
Unknown said:Do I need to convert to nativecode?
It's highly recommended. Not because of migration to SS4, but because native code is what Bentley supports now and the compilation itself is more strict, so you can discover not known yet issues in your code. And there are tools that can help you to make your code cleaner and higher quality (refactoring, C++ analysis etc.).
In my opinion more important question is what do you plan for future in relation to MicroStation CONNECT Edition?
Unknown said:Can you direct me to any FAQs about making this port?
There is an article available in wiki. Be aware you have to use Visual Studio 2005 Professional to compile native code applications for V8i, which can cause some complications, because it's very old version not available for free from Microsoft.
With regards,
Jan
Bentley Accredited Developer: iTwin Platform - AssociateLabyrinth Technology | dev.notes() | cad.point
I concur with Jan. With MicroStation V8i SSx, your MDL code should continue to work. Keep it as-is for maintenance. New development should use C++ built as native code.
With MicroStation CONNECT in view, you should plan to move to native code written with C++. The C++ libraries in CONNECT are very different to your MDL experience. They are a lot more capable, but you need to shift your programming mindset from procedural C to class-based C++.
I wouldn't start development of a native-code project for V8i right now, because it would be wasted effort if the code will then be ported to CONNECT. There are substantial differences between the C++ libraries for V8i and those for CONNECT. There is little left of MDL in CONNECT, and the C++ MicroStationAPI is huge.
Keep in mind that the MicroStationAPI is not your only option for CONNECT development: the .NET capability in CONNECT has leaped ahead of V8i. There are two .NET APIs: the DgnPlatformNet and the MstPlatformNet.
Regards, Jon Summers LA Solutions
Unknown said:But my understanding is that I do have to upgrade to SS4 for Windows 10 certification hence my question.
Well, the "have to" depends on a situation and specific conditions. I know about users who use V8i SS3 with Windows 10 without any problems and they don't plan to migrate to SS4 simply because IT department don't require an official W10 certification and they also have no immediate need for SS4 new features. On the other hand it's always better to use certified software, at least because of possible discussions with support ;-)
Unknown said:where it was a challenge just to get their myapp example working
After several MicroStation and SDK updates the situation has changed a bit now. It's less "it does not work" and more about "what new API class or method should I use". But it's still challenge, depending on an application complexity, because it's not always clear how to use new API.