This month we put five IDE alternatives to Microsoft's Visual Studio against each other. Is there an alternative for .NET developers? David McAmis puts the candidates to the test.
Since the introduction of Visual Studio, Microsoft has held a near monopoly on integrated development environments(IDEs) for it's own developer tools. With the release of Visual Studio.NET and the .NET Framework, Microsoft's grip on the developer tools market has slipped with a number of free or low-cost development tools available for .NET coming on the market in the past few years.
This article delves into some of the options you may consider when looking for an IDE for .NET development. As a new developer to the .NET platform or if you are concerned about the rising cost of the development tools, you may find some of the tools we cover may be all you need to develop robust .NET applications, without going to the expense of buying Visual Studio.NET.
There is one tool that we left out completely Ã¢â¬" and that is Notepad. There are some developers out there who would tell you that you can develop a .NET application from scratch using nothing more than Notepad and your own wits. We preferred to stick to the tools that are -value add" and provide some additional features and functionality you won't find in Notepad.
Regardless of which tool you choose in the end, the first thing you should do is download and install the .NET Framework and the .NET Framework SDK from either the Microsoft download center or from MSDN. The SDK contains all of the tools and compilers you will need to create .NET applications. Likewise, if you are planning on distributing or deploying your .NET applications, you may want to download the .NET Framework redistributable, which you can include with any setup program or instructions.
|Ease of use||To start, we evaluated how easy each tool was to learn and use as compared to Visual Studio.NET, including an evaluation of the design environment itself, placement of commonly used items, etc. and the general overall impression of the tool.|
|Features and functionality||Covering features included within the design environment for reducing development time and manual coding of common tasks, features that are included in Visual Studio.NET and/or not present in the alternate tool.|
|Code development||Most .NET developers will spend a good portion of their time writing code and with this set of criteria, we are judging how well the tool is suited to coding, including debugging features, step-throughs.|
|Platform and language support||One of the tangible benefits of looking at Visual Studio.NET alternatives is that most of the tools we reviewed support multiple platforms and languages and in this criteria, we look at how well this support is developed.|
|Documentation and support||Another key area is the documentation and support that is available for each tool. We look at whether the documentation is organised and well written and also look at the support and user communities around each.|
|Cost||And finally, cost was the last criteria that we evaluated, with tools ranging from free to a few thousand dollars per developer, there was definitely some disparity among the tools we selected.|
|Table 1: Evaluation criteria|
SharpDevelop, also known as #develop, is an open-source development environment for .NET, including both C# and VB.NET development. The tool is distributed under the GPL licence and has grown since it's first release in 2000 to become a full-featured IDE and development platform.
Using SharpDevelop you can create a number of different types of .NET applications, as shown below in Figure 1, as well as compile C# and VB.NET out of the box.
|Figure 1: SharpDevelop can be used to create a number of different types of applications.|
If you are new to .NET development, or are more familiar with VB.NET and want to make the switch to C# (or vice-versa) you will love the convert functions available in SharpDevelop. You can convert between C# and VB .NET with surprising accuracy. The IDE also features code completion and auto-insert, as well as syntax highlighting for C#, VB.NET, ASP, ASP.NET, HTML, VBScript, and XML.
In addition to providing a rich user interface (as shown in Figure 2) the design environment also features a number of -shortcuts" for developers, including a robust search and replace feature and a plug-in architecture that can be used to integrate other tools and utilities and the platform features integrated NUnit support for unit testing of .NET applications.
|Figure 2: The SharpDevelop IDE|
For developers who are new to the .NET platform, SharpDevelop could be the only tool they need. For experienced Visual Studio.NET developers who are used to a different user interface, there may be a bit of a learning curve, but SharpDevelop provides enough features and functionality to make it worth their while.
MonoDevelop is an open-souce project that is part of the much-hyped Mono Project, which brings the Common Language Runtime (CLR) framework to other operating systems, including Linux and Unix. MonoDevelop itself is a standalone development tool and IDE that can be used to create .NET applications and is a port of SharpDevelop to the gtk# platform, which is a .NET language binding for the gtk+ toolkit and assorted GNOME libraries. This project is listed as in the -early stages of development" and unfortunately has some problems in the areas of both user interface and language support.
Designed from the viewpoint of bringing an open source .NET development tool to multiple platforms, MonoDevelop has tried to do too much too fast and the user interface itself only provides basic functionality. You would be hard-pressed to create a production-quality application using this toolset but it may suffice if you have only simple Web applications to develop or if you want to develop on one the supported platforms and don't have an alternative.
The documentation and support for the product is poor, with a small but dedicated community providing the majority of support rhough newsgroups and forums there is some support for the tool among the open source development community looking to make the switch to .NET or supplement their existing application capabilities.
As a contendor to Visual Studio.NET, MonoDevelop does not even come close Ã¢â¬" with a concentrated effort by the project's contributors they could increase the features and functionality to bring the tool up to scratch, but it will be months or years before it can stand on its own against Visual Studio.NET.
Xdevelop is a cross-platform tool that can be used to develop applications using C#, VB.NET and J#, as well as Java applications. The XDevelop user interface, shown below in Figure 3 is easy to use and understand and if you are coming to the .NET platform from a Java background, there is definitely a bonus in using XDevelop, as you can use the same tool for both .NET and Java coding.
|Figure 3: XDevelop|
For C# and VB.NET development, the IDE does not provide as many features as other tools, including Visual Studio.NET and SharpDevelop, but does include a number of -productivity" features that you can use to speed code development, including code completion and refactoring, as well as support for Visual Studio.NET solution and project files.
Currently in -Preview" stage, XDevelop will be a strong contender for those developer shops looking to replace Visual Studio.NET with a mid-weight IDE that is not too difficult to learn or for Java developers looking to make the switch to .NET.
Visual SlickEdit is best known as a text editor, but over the past few versions has grown into it's own as a fully featured development environment, supporting over 20 programming and scripting languages, including VB.NET and C#. The user interface, shown in Figure 4 is well-suited for .NET development and includes a CLR debugger built into the Visual SlickEdit debugger window, meaning you can edit, build, run and debug .NET applications without leaving the UI.
|Figure 4: Visual SlickEdit|
Visual SlickEdit is a mature, stable environment that has been through 9 versions and this maturity shows in the product, with features like background searching, code completion and highlighting and a powerful macro language to automate common tasks.
As an -all-around" editor and development environment, SlickEdit is hard to beat. Most die-hard SlickEdit users will tell you that once you get the hang of some of the advanced features and functionality you won't want to use anything else.
Dreamweaver is probably best known among Web and graphic designers, but through acquisitions and enhancements the product has grown to become more of an application development platform, including support for creating ASP.NET applications.
The Dreamweaver user interface, shown in Figure 5, has been developed with the Web developer in mind and makes it easy to create the HTML pages, templates and Web forms and beats Visual Studio.NET hands down for creating feature-rich Web forms.
|Figure 5: Dreamweaver|
In addition to general Web development and design features, Dreamweaver also supports ASP.NET data set, list and grid objects, as well as custom tags and dynamic form objects. Another area where Dreamweaver beats Visual Studio is with built-in -server behaviours" which can be used to quickly create Web forms that insert or update database records, navigate through recordsets, etc.
The code view is also a boon to development with flexible highlighting for not only ASP.NET but also any other elements in the page and most developers will be very comfortable writing and editing code. The cost of equipping a team of developers with Dreamweaver may be prohibitive, but if you want to create feature-rich Web applications with an emphasis on the look and feel of the application, Dreamweaver may be the way to go.
Another area where the open source community in particular has stepped up for .NET is in the testing space. NUnit is a popular unit-testing framework for the .NET languages that was originally ported from JUnit, the well known unit testing tool for Java. NUnit is a popular tool among software developers and has been completely re-written using C#.
The tool boasts a command line or GUI user interface for testing applications. The command line suits running large test batches where you don't necessarily need to see the results at once, while the GUI features a -stoplight" approach where green, yellow and red indicators are used to return the test status.
The latest version of the tool is 2.2 and if you are using MonoDevelop, the open source IDE for developing .NET applications on Linux and other platforms, a version is installed with the product but you will need to upgrade to get the latest version.
So the question remains, can you replace Visual Studio completely? The answer is yes, as long as you are happy with the alternatives -- for developers who are new to .NET development it will be easier to get them started on another development environment, but for hard-core Visual Studio.NET users, there has to be a compelling reason or feature to get them to a new platform. Of course, with the increasing cost of Visual Studio.NET some of the open source and low-cost alternatives we have looked at may just fit the bill.
|Tool||Ease of use||Features and functionality||User interface development||Code development||Platform and language support||Documentation and support||Cost|
= Excellent = Good = Average