XmlSerializer
The XmlSerializer class (built into .NET) has been a great time saver for us. The serializer is flexible enough that files created in Micro Saint Sharp 1.0 can still be opened in later versions without any code that customizes the serializer. Additionally, when custom tools extend the document class, they do not need to be concerned about what fields are being added or removed from the parent class. Documents get automatically upgraded as long as we do not change property names.
Other Considerations
Our flow-chart system lets nodes be nested. We had several bugs related to making sure connectors were able to link into and out of node folders. Often fixing one would cause another bug (or more than one). We did not get this area under control until we implemented unit tests. We waited far too long to get those tests created.
Conclusion
We are excited about our new version of Micro Saint Sharp. Investing in the rewrite has given our users more speed, greater power, more flexibility, better visualization, interoperability, and an improved look-and-feel. It has given us new capabilities for our consulting services and increased product sales.
In developing a new, updated version of our commercial simulation tool, we feel that by choosing C# and .NET we were able to take advantage of the extensible framework and gain the benefits of using quality third-party components. And during the process, lessons were learned that will be applied to future development projects.