Rational XDE Professional for .NET 2.1
It's the best .NET tool on the market, but it has a few rough edges.
By Brian Noyes
Design and modeling should be an important part of your development process. The biggest impediment for most companies is the inherent disconnect between the design/modeling process and writing the code. Although most tools fall short in this arena, Rational XDE Professional for .NET gets as close to a seamless interaction between design and coding as any tool I have seen or used. Version 2.1 supports both C# and VB .NET, and it introduces some new features specific to developing ASP.NET applications.
Rational XDE Professional for .NET integrates into Visual Studio .NET as a part of the development environment, providing an approach that is much more natural for programmers. You can start with code and quickly generate model elements to match them, or you can start with model elements and generate the code. You can work on both sides of the fence and synchronize the model and code simultaneously. It lowers the entry barrier for adopting UML modeling because it makes moving back and forth iteratively between the code and the model much easier. And because the model elements and diagrams are simply another part of your VS .NET project, the UML becomes another view into the product itself instead of a separate entity that needs to be maintained.
With Rational XDE Professional, you can get started using UML without knowing much about it. You can generate model elements from your code quickly and put them on diagrams to visualize the relations and syntax in UML. But you also can start in the UML world and flow down your designs in a fashion similar to other UML tools if that is your preferred mode of design.
XDE also has built-in wizards that let you add classes, events, properties, and other artifacts using syntax and vocabulary particular to your language of choice (VB .NET or C#). For example, the Add Property wizard lets you set a property to static or override, and you can declare an associated private member field. Also, it adds the code to the property getter and setter when you generate the code so that it gets and sets the associated field value and has the proper modifiers in the declaration (see Figure 1). As with VS .NET, the languages are not quite created equally. Even though the VB .NET functionality in XDE is new with this version, VB .NET has a feature - unavailable in C# - that automates adding interface methods to a class that implements it.
Figure 1. XDE includes wizards that let you specify model elements for your project, such as language-specific syntax and vocabulary. For example, in a VB project, you could specify a String property named Hosts that overrides a base class property and create an associated private field, named "_hosts", resulting in the corresponding UML elements.
Another thing most developers will like about Rational XDE is it does not limit you to pure UML-compliant diagrams. I'm sure many people who have used other UML products frequently have encountered the situation where you want to depict something on a diagram to illustrate an important aspect of your design, but you were unable to do so because the UML's rules for the type of diagram you were working with would not allow it. XDE will allow you to put any UML shapes or general diagramming shapes on any diagram, and it will not constrain you from adding associations between them.
The diagramming interface and interactions for laying out and arranging your diagrams is one of the smoothest I have seen. Customizing your diagrams with XDE is much easier than with other tools I have used. The UML model itself is presented as a Model Explorer floatable pane similar to, and docked in the same place as, the Solution Explorer and Class View. It includes not only the model elements for your project, but it also figures out references to the .NET Framework or third-party class libraries automatically and adds them to the model as well. Between the toolbox shapes you can use for drag-and-drop operations on diagrams, the Model Explorer, the Properties Window, the diagrams themselves, and all the options available in the context menus, you will not feel limited at all in the number of ways you can design your model.
Web Application Modeling
Another nice thing about Rational XDE Professional is it provides some specific modeling capabilities for ASP.NET applications. You can quickly represent the dynamic code generation that results from executing an ASP.NET server page as a static diagram. The model used by default when you drag a server page element onto a diagram is a canonical form described by Jim Conallen in Building Web Applications with UML (Addison-Wesley). It allows you to depict in a single diagram the code-behind class, the ASPX form, the client HTML generated at run time, and the client HTML form presented by the browser (see Figure 2).
Figure 2. When you drag a "Server Page with Code Behind" element onto a diagram, you get a quick depiction of the full architecture of what goes on with that page both statically in your code and dynamically at run time.
XDE also includes some great capability for implementing and defining patterns in your designs. Patterns allow you to share not only code, but documentation, design, and higher-level knowledge, as well. XDE ships with wizards for all the well known Gang-of-Four (GOF) patterns, and Rational is cultivating a developer exchange community for making other patterns available on its http://www.rational.net site. One pattern of interest available there now is the WebServiceWrapper pattern that lets you create wrappers quickly for library classes that you want to expose as a Web service.
As with most complex products, it is very difficult to do it justice with a short review like this. Overall, I have been very impressed and pleased with XDE. The tight integration of the tool with the VS .NET IDE greatly decreases the conceptual distance between your design and your code, which not only matches a programmer's thought process better, but it makes the modeling process more achievable as well. It is still a fairly new product and has a few rough edges here and there that you might stumble upon, such as some cryptic error messages during drag-and-drop operations that are not allowed. But if you put it up against your other modeling options out there, I think Rational XDE Professional for .NET is a clear winner as the best UML modeling tool available for .NET development.
There also is a Rational XDE for Java product available, as well as a Professional Plus version that gives you both the .NET and Java versions in one box. For a feature comparison between the versions, see the matrix at http://www.rational.com/products/xde/matrix.jsp.
Brian Noyes is an independent software consultant and president of Software Insight (http://www.softinsight.com). He's a Microsoft Certified Solution Developer with more than 11 years of programming, design, and engineering experience. Brian specializes in architecture, design, and coding of cutting-edge software systems, and he is a contributing editor for asp.netPRO and other publications. E-mail him at mailto:[email protected].
Tell us what you think! Please send any comments about this article to [email protected]. Please include the article title and author.
Rational Software Corp.
18880 Homestead Road
Cupertino, CA 95014
Phone: (800) 728-1212; (408) 863-9900
E-Mail: mailto:[email protected]
Web Site: http://www.rational.com
Price: Starts at US$3,595