Evaluation of .NET

The authors' main motivation to realise this project was to acquire some knowledge of the .NET environment. As it has been the first time the authors have developed something using a product of Microsoft, the phase of getting acquainted with these technologies was rather long and the work often tedious. Since discovering the .NET technology was the main goal of the project, some evaluation from the view of the authors shall now be given in this section.

The authors of this project were very sceptical when they decided to realise this project using .NET. Many of these doubts were confirmed, but the developers also discovered some positive points of .NET during the implementation of the project.

Displaying the exact content of a table in the database is extremely easy and can be done with a few clicks. The result is surprisingly nice too look at and very comfortable for the user. Editing and deleting items in the displayed table is very simple. Offering these capabilities is not a hard task for the developers, some clicks and the definition of the appropriate query suffice. However, displaying a list that does not exactly represent a table in the database becomes extremely tedious. To modify a field in a gridview, which is necessary when the content cannot be displayed tel quel, many clicks are necessary and the naming is not always logical. As an example, to be able to edit a field it has to be converted into a template field. However, the authors expected something completely different (define a field as a template for other fields) behind this function.

Debugging turned out to be a cumbersome task. Not only was the source code of most of the files locked when the project was executed in the debugging mode but also were the error messages quite annoying. Such a simple error like a missing bracket produced around 60 error messages of which only the very last was of some use. To get to this useful message, the list had to be scrolled down to find the useful. Correcting more than one error at the time was almost impossible as finding the helpful errors proved to be a search for a needle in the haystack.

The only feature that was really handy during the process of debugging is that the content of variables can be displayed by moving the mouse over the variable name. In the authors' opinion, this feature should be integrated into other development environments as well.

While the automatic creation of the code was extremely useful for many different tasks it also has some serious disadvantages. Adding useful components as AJAX or the verification whether a required field was indeed filled in were very simple using Visual Studio and could be done within a few minutes or seconds. However, this automatic insertion of many elements, including the gridviews, has the major disadvantage that manual editing of the code became almost impossible. First, many elements could not be edited manually or several clicks were necessary to enable this (e.g. convert a field into a template field). Second, manually written code in the aspx-files was sometimes overwritten when the view was changed back to the graphical one. Third, the formatting of the code in the aspx-files is awful or inexisting, there are lines of hundreds of characters. Editing this code is a real nightmare. If some linebreaks are manually added to improve readability, they are simply reset by VisualStudio when changing back to the design view.

The code editor for the $C\sharp$-code was adequate. On the one hand, syntax errors were often detected only at compilation and not during editing, combined with the strange messages (see above) this caused some inconvenience. On the other hand, syntax completing worked very well. Especially the way how the different contracts of methods are displayed when using overloading proved to be very convenient.

Some tools and features provided by .NET behave rather like a beta-version than a full release. The AJAX component used to display the calendar in the date field for example does often not work as it should. Sometimes the calendar is badly shown or the date selected by clicking on it is not correctly transferred to the field. In general, the AJAX framework left the impression of an incomplete environment that was released because it was time to release it and not because it was finished.

All in all, the authors of this project have not turned into admirers of the .NET environment. Although there are some convient features, the difficulties encountered when the default did not suit overweight the positive points. All in all, the impression the developers received during this project was that the .NET environment for creating web applications is useful when simple standard tasks have to be performed but is not really adequate when more individual missions have to be accomplished.

Dominik Zindel 2007-06-16