First Looks

Dundas Diagram for .NET 1.0: Create Interactive Diagrams

Dundas Diagram for .NET 1.0 lets you create interactive, automated diagrams, ranging from complex charts that users can modify dynamically to complete process simulations.

Dundas Diagram for .NET 1.0 is a toolkit for implementing diagrams in .NET applications. When I ripped open the product, I expected yet another simplistic graphics tool for creating organizational charts, but what I found was an impressive set of tools for designing diagrams, hosting them, and embedding them in any kind of graphical .NET application, complete with a comprehensive object model for writing code to automate the diagram. Dundas Diagram lets you create interactive, automated diagrams, ranging from complex charts that users can modify dynamically to complete process simulations that model complex manufacturing processes (see Figure 1).

Dundas categorizes this product in three parts: Diagram Editor, Diagram Host, and Diagram Object Model. You can create diagrams either using the GUI editor or using the object model programmatically. The GUI editor is a complete development environment in its own right, with a library of built-in shapes and templates. It has an API that you can write .NET code against, as well as support for scripting the various objects that make up a diagram. The "script" used is actually full C# or VB.NET code, allowing you to respond to events to make the diagram highly responsive to users. The editor itself is usable either as a standalone tool or a component you can embed in custom applications.

The product includes components for hosting diagrams in both Windows and Web forms. Both versions of the component give users a rich, interactive experience with the diagrams, including runtime customization. I was confused initially by the way the company uses the word "hosted," so I expected a built-in server to be included with the product. However, this is not a server application as such, although you can certainly host diagrams from a central server. The rich object model enables complete programmatic control so you can create diagrams at run time as well as build individual diagram elements that have embedded business logic and events that you can use to tie together all the elements in a diagram. The object model provides plenty of flexibility, but you'll have to write a fair amount of custom code to manipulate the objects.

Dundas Diagram comes with comprehensive online documentation and several sample diagrams in both C# and VB.NET, with plenty of getting-started and how-to information. Nonetheless, this complex product will take some time to learn and use so that diagrams feel natural to users. I'd like to see better documentation for the sample apps so that there is more help in understanding how they're put together, though I found it useful to explore the code.

The product is useful for a common but relatively small niche of custom applications. But when you need its tools and can afford the price, Dundas Diagram is well worth considering.

Dundas Diagram for .NET 1.0.0.2
Dundas Software
Web:
www.dundas.com
Phone: 800-463-1492; 416-467-5100
Price: $2,999.99
Quick Facts: Comprehensive tools for creating and automating diagrams hosted in .NET applications.
Pros: Effective use of visual and programmatic objects; standalone diagram editor can be embedded in your apps; nice documentation and sample apps.
Cons: Expensive; takes time to learn to use effectively.


Turn Your .NET App Into Java
by Peter Varhol

The idea is obvious in retrospect, yet so outrageous that it's no wonder it took so long for someone to act on it. C# and Java have significant similarities, and even if you've never examined MSIL or Java bytecode, you can imagine that they do pretty much the same thing. Those few who have acted on these observations have built relatively simple static translators between C# and Java source code. What Mainsoft has done with Visual MainWin, however, goes several steps beyond that.

Visual MainWin is a plug-in to Visual Studio that lets you write applications in any .NET language, then convert the .NET IL into Java bytecode dynamically (see Figure 2). The process is so seamless that you can even use the Visual Studio debugger on runtime Java code; Visual MainWin converts the bytecode back to .NET IL to engage the debugger.

You start by selecting a Visual MainWin project from the New Projects list, and configure your application server if necessary. Then write your app in the .NET language of your choice. You can add Java references, and the documentation describes other structures you should pay attention to when writing your code. Building is equivalent to building a .NET project (and a command-line build is also available).

Differences between the .NET and Java platforms make it impossible to perform strict one-to-one mapping. For example, exceptions from the .NET platform are derived from the System.Exceptions class, while there are two possible classes in Java, depending on whether the exception is raised from the app or the underlying JVM. There's no way to catch language exceptions when .NET code is translated into Java bytecode.

Don't let these minor hiccups deter you from employing Visual MainWin. For those times when you must deploy an application as a J2EE app, you don't need to bring on Java developers. Instead, you can develop the app in a .NET language and run it through Visual MainWin to meet the deployment needs.

The Developer Edition, which supports only Apache Tomcat, is freely downloadable from http://dev.mainsoft.com (it also lacks source-code integration and some third-party control support). Both this and the Enterprise Edition require Visual Studio 2003, and you need the J2SE 1.4 SDK or better if you want to execute Java on your development system. You also need a servlet engine or application server to work with a Web application.

Pricing for Visual MainWin Enterprise Edition, which includes support of commercial application servers, is $5,000 per developer and $2,500 per server for a distribution license (there are no runtime fees for internal use). This is a fair deal for a product that can save hundreds of thousands of dollars in development costs under the right circumstances.

Visual MainWin 1.6
Mainsoft
Web:
www.mainsoft.com
Phone: 800-624-6946; 408-200-4000
Price: $5,000 per developer (two-year license); $2,500 per server (distribution license)
Quick Facts: Converts .NET applications into Java bytecode.
Pros: Seamless Visual Studio integration; highly intuitive in actual use.
Cons: Not quite as automatic a translation as it first appears.

About the Author

Don Kiely is a senior technology consultant in Fairbanks, Alaska. When he isn't writing software, he's writing about it, speaking about it at conferences, and training developers in it. Reach him at [email protected].

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube