Next article


.NET: The Programmer’s Perspective

Report about a workshop of ECOOP 2003

Hans-Jürgen Hoffmann, Darmstadt University of Technology, Germany



PDF Icon
PDF Version


Report about the ECOOP 2003 workshop WS 03, “.NET: The Programmer’s Perspective”. - Much of the push behind Microsoft's new .NET technology has been directed at such end-user applications as Web Services, but .NET also provides, through the ".NET framework", a set of tools and facilities of interest to software developers. This workshop had been set up to review pros and cons of the .NET framework as seen by programmers. Seven topics were discussed in much depth based upon pre-selected contributions of participants, five of which can be found in subsequent articles in JOT. More topics were shortly touched during the workshop discussions.


The workshop took place on Tuesday, July 22, 2003. It was a full day workshop. Following an introduction by H.-J. Hoffmann, Ms. Karine Arnout from ETHZ (taking the place of Prof. Bertrand Meyer, co-organiser of the workshop who was prevented from attending the workshop) started the presentations by an introductory talk “Introduction to .NET and Eiffel for .NET”. She introduced the salient features of the .NET framework and, besides covering C#, described – as an example of the multi-language support offered – the approach taken in the “Eiffel for .NET” implementation with emphasis on “Design by contract” as a well-known, important software engineering principle (article not available in the present JOT issue, Powerpoint presentation – see DOCUMENTATION section below – available).

Harald Haller reported next on experience with and best practices gained in two .NET applications, a database maintenance system and a core application of a real estate investment company. Implemented in C#, the projects had a size of 10 – 20 person years and are considered to be rather successful.

Not mentioning all the details, the next two presentations by Diego Colombo, “CIL + Metadata > Executable Program”, and Bart Jacobs, “Selection of run-time services in .NET: There is room for improvements” (title of the article: “Support for metadata-driven selection of run-time services in .NET is promising but immature”) allowed to learn about possibilities offered by the .NET metadata concept going beyond present solutions.

In the remaining three presentations by Anis Charfi, “Software interactions” (title of the article: “Dynamic component composition in .NET”), by Riccardo Casero and Mirko Cesarini, “Managing code dependencies in C#”, and by Peter Tröger, “Component programming with .NET” (article not available in the present JOT issue, Powerpoint presentation as mentioned in DOCUMENTATION section below) interesting and challenging perspectives for programming in the .NET framework were developed, again not mentioning all details.

All presentations led to many thoughtful discussions bringing to the participants a deep understanding of the pros and cons of the .NET approach. It remains to mention that some written contributions/presentations list co-authors.

Following the presentations and their thorough discussion a general discussion period of about 1 ½ hours was scheduled. Section 2 lists the main topics discussed.


During the individual discussion of the presentations a number of relevant topics came up. Arguments pros/cons may be found already in the documented contributions insofar as authors had addressed them beforehand. Some of the topics were rather specific in the scope of the presentations considered. In the general discussion period at the end of the workshop they were altogether included if considered to be of a broader interest.
In addition a “to-discuss-list” had been prepared before the workshop (see link in DOCUMENTATION section below).

  • .NET middleware architecture, experience report
  • .NET and Corba / J2EE / Com+
  • VisualStudio.NET as a programming environment
  • .NET and Component composition
  • .NET and deployment
  • Metadata
  • C# and Aspect-oriented programming
  • C# and Design by contract / Programming by contract
  • Shift C++ / Java ==> (.NET /) C#
  • .NET and Open Source ?
  • Internationalisation

We categorised the result of opinions brought up about .NET from a programmer's perspective into positive, neutral and negative. The picture given should not be understood as a research result and truly objective. It represents individual experience, expectation, and background. The entries in the lists highlight the outcome of a time-limited ad-hoc discussion. Thus the lists should not be considered to be complete and fully supported by hard objective arguments.


  • Good incorporation of concepts of object-oriented programming
  • Common Type System
  • Metadata and attribute treatment
  • Standard architecture over different platforms
  • Language interoperability
  • Smooth transition between value/reference
  • Component composition facilities
  • Deployment support


  • Web services
  • Dependency processing
  • Provisions for dynamisation of program behaviour during execution
  • Aspect-oriented programming possible
  • VisualStudio team environment became acceptable


  • Lack of native support for engineering environments
  • Design specification following Design by Contract-technology not supported
  • Customisation of client devices not possible
  • Open Source co-operation in programming needs more support
  • Shifting from C++/Java to C# not yet totally solved


There exists a Web page with additional information, the (beforehand proposed) To- discuss-list, a collection of commonly found Abbreviations in the scope of .NET and (as far as available), ppt-files presented during the workshop. See


Regular participants of the workshop (in alphabetical order) were:

Karine Arnout (representing co-organiser Bertrand Meyer), ETH Zurich, Switzerland
Riccardo Casero, Politecnico di Milano / DEI, Italy
Mirko Cesarini, Politecnico di Milano /DEI, Italy
Anis Charfi, Univ. Nice / CNRS, France
Diego Colombo, Univ. of Pisa, Italy
Harald Haller, sd&m, Munich, Germany
Hans-Jürgen Hoffmann – organiser –, Darmstadt Univ. of Technology, Germany
Bart Jacobs, K. U. Leuven, Belgium
Mattia Monga, Univ. degli Studi di Milano, Italy
Michel Riveill, Univ. of Nice, France
Doris Schmedding, Univ.of Dortmund, Germany
Wolfgang Schult, HPI, Univ. of Potsdam, Germany
Peter Tröger, Hasso-Plattner-Institute, Univ. of Potsdam, Germany

Further participants attended the workshop as guests without being introduced beforehand by a submitted and reviewed paper (some of these persons attended only partially – spelling errors due to hand-written list excepted!):

Davide Ancona, DISI, Univ. of Genova, Italy
Andrew Cain, Swinborne; Australia
Sari Eldadah, Arab Academy for Banking & Financial Science, Jordan
Mei Feng, Newcastle Univ., UK
Carl Gunter, Univ. of Pennsylvania, USA
Uwe Hohenstein, Siemens AG, Munich, Germany
Kim Jin-Young, Ojou Univ., South Korea
Boris Litvac, Tel-Aviv Univ., Israel
Giovanni Lagovio, DISI, Univ. of Genova, Italy
Kim Myung-Uk, Ojou Univ, South Korea
Sorin Moldovan, Univ. of Babes-Bolyai, Romania
David Prasad, MUNIT, India
Pawel Stowikowski, AGH, Univ. of Cracow, Poland
Bart Verheecke, Vrije Univ. Brussel, Belgium
Gansha Wu, Intel Chinese Research Center, China
Victor Ying, Intel Chinese Research Center, China


A fair discussion of many of the challenging advancements of .NET took place during the workshop. For the regular participants with planned/scheduled contributions a forum for presentation of their ideas and results of research was provided, allowing competent discussion by the whole group. Some of the guests, especially in the afternoon sessions and the general discussion period, brought interesting and helpful arguments into the discussions.

Eiffel .NET, introduced in the beginning, was in many cases something like a bench-mark demonstrating how the .NET advancements may be measured from a “pure” object-oriented (language) point of view. .NET as a middle-ware system proved as an interesting achievement in component technology. .NET overall, although not free of an inherent level of complexity, was considered as a remarkable step of improvement in soft-ware/system technology; even if in details some critics came up.

We had very strong and competent contributions from industry; however, more participation by industry researchers would have been estimated. Contributions by persons from academic institutions identified interesting positive aspects and exhibited missing links to available and important scientific know-how with respect to the state-of-the-art in software engineering. Thanks to all of them!

Special thanks go to the members of the reviewing committee:

Robert L. Baber, University of Limerick, Limerick, Ireland
Johannes Heigert, Munich Univ. of Applied Sciences, Munich, Germany
Erhard Ploedereder, University of Stuttgart, Stuttgart, Germany
Michel Riveill, Université de Nice, Nice, France
Christian Salzmann, Technische Universität München, Munich, Germany
Doris Schmedding, University of Dortmund, Dortmund, Germany
Jürgen F.H. Winkler, Friedrich Schiller University Jena, Jena, Germany

We acknowledge support by the executive committee of the German Chapter of the ACM. Special thanks to the members of the editorial board of JOT and Prof. Bertrand Meyer as publisher for providing a platform for the publication of the results.


About the author

Hans-Jürgen Hoffmann is a University Professor with Darmstadt University of Techno-logy since 1971, Computer Science department, chair Programming Languages and Compilers. He is interested in systems programming, object oriented approaches, inter-active applications, and Web engineering. More details in the Web site He can be reached at

Cite this article as follows: Hans-Jürgen Hoffmann: “.NET: The Programmer’s Perspective”, in Journal of Object Technology, vol. 3, no. 2, Special issue: .NET: The Programmer’s Perspective: ECOOP Workshop 2003, pp. 5-10.


Next article