« Microsoft Word, write letterz n... | Main | Netcraft: ASP.NET Overtakes JSP and Java Servlets »

March 26, 2004

Eiffel and the .NET Framework

Eiffel for .NET is a full implementation of the Eiffel method and language running on the Microsoft .NET Framework.

Eiffel is a comprehensive software development environment (ISE Eiffel) based on a method that covers the entire software lifecycle—not just implementation but also analysis, design, and maintenance. The environment is based on the Eiffel language, thoroughly applying the principles of object technology and implementing the concepts of Design by Contract™ to produce highly reliable, extendible, and reusable applications.

ISE Eiffel is particularly geared towards large and complex systems and is used by major organizations in the financial industry, defense, real-time and other industries for mission-critical developments. Universities worldwide also use Eiffel to teach programming and software engineering at all levels.

The .NET Framework is Microsoft's new programming model for building Web applications, smart client applications, and XML Web services—applications that expose their functionality programmatically over a network using standard protocols such as SOAP, XML, and HTTP. The specification of the .NET Framework is now an international standard, thanks to Microsoft's successful submission of the common language infrastructure (CLI) to the ECMA standards organization, which adopted it in December of 2001. (One of the authors, Emmanuel Stapf from ISE, is a member of the corresponding ECMA Technical Committee.) Although a detailed presentation of the .NET Framework is beyond the scope of this article, we may note the following highlights, of special interest to application developers:

  • The architecture relies on a virtual machine, so that compilers for any language always generate the same code, MSIL (Microsoft Intermediate Language).

  • The code that gets executed on any actual computer is native (binary) code for that computer, translated incrementally or not, through a process known as just-in-time (JIT) compilation

  • The virtual machine's equivalent of an operating system is the common language runtime (CLR), providing a number of crucial facilities—memory management, garbage collection, security, exception handling—to programs regardless of their language or origin (hence the word "common").

  • The memory model used by the virtual machine and the CLR does not rely on addresses, bytes, and words; instead, it is an object-oriented model based on the notions of type, class, object, inheritance, polymorphism, typing, and dynamically bound calls.

  • The language interoperability mechanisms of the .NET Framework, including the common language runtime, MSIL, the object model, and the Common Language Specification (CLS), enable the various parts of an application to use different programming languages—each chosen to be the best for the job at hand—and to achieve a degree of inter-language cooperation unprecedented in the software world. Not only may a module call a routine written in another module, a class in an object-oriented language may inherit from a class in another, exceptions cross language boundaries, as do debugging sessions—and all this is achieved without any special effort on the programmer's part and without any need for languages to know about each other.

  • A new development environment, Visual Studio .NET, provides advanced development facilities—compilation, browsing, debugging, user interface development—and is, like the rest of the technology, open to many languages.

  • .NET provides thousands of reusable components extending across many application areas, from localization to networking and language analysis.

  • Among the most important component libraries are Microsoft® ASP.NET, an innovative framework for building Web applications and XML Web services; Microsoft® ADO.NET, an object-relational interface library; and Microsoft Windows® Forms for building Windows-based smart client applications.

  • These mechanisms are potentially available to developers using any programming language, provided the implementers of that language offer a compiler that's compatible with .NET Framework—not only by generating IL but also by observing the .NET Framework rules of language interoperability.

The .NET Framework is attractive to Eiffel users since it follows many of the same ideas that they have accepted as essential to quality software development: use of an object model, automatic garbage collection, and exception handling. It also offers an integrated platform with direct access to thousands of reusable components, the prospect of full interoperability with software elements written in both Eiffel and other languages, and the power of XML Web services and other Internet applications.

For .NET Framework users, Eiffel provides the added value of an advanced object-oriented method and language that covers the entire lifecycle—not just programming, but the whole process starting with analysis and design and continuing with implementation, reuse, extension, and maintenance. Eiffel also offers unique reliability mechanisms such as Design by Contract™, advanced language features such as genericity and multiple inheritance, and the extensive body of reusable components developed by ISE and other parties, including the EiffelBase library of data structures and algorithms and the EiffelVision library for multi-platform graphics.

Eiffel on the .NET Framework provides an ideal combination for companies wishing to take advantage of best-of-breed technologies in operating systems, Internet and Web infrastructure, software development methods, and development environments. In particular, the openness of Eiffel to other languages and environments combined with the .NET Framework's emphasis on language neutrality makes the resulting product an ideal vehicle for building applications containing components in many different languages, Eiffel serving as the glue between them. In the rest of this article, we describe this combination and the challenges we faced when integrating ISE Eiffel into .NET.

Posted by 0xFF3300 at March 26, 2004 05:16 PM

Trackback Pings

TrackBack URL for this entry:
http://www.dudeforce.net/cgi-bin/mt-tb.cgi/52

Listed below are links to weblogs that reference Eiffel and the .NET Framework:

Comments

glucophage online Good weapons are instruments of fear; all creatures hate them.
Therefore followers of Tao never use them.
The wise man prefers the left.
The man of war prefers the right.

Weapons are instruments of fear; they are not a wise man's tools.
He uses them only when he has no choice.
Peace and quiet are dear to his heart,
And victory no cause for rejoicing.
If you rejoice in victory, then you delight in killing;
If you delight in killing, you cannot fulfill yourself.

On happy occasions precedence is given to the left,
On sad occasions to the right.
In the army the general stands on the left,
The commander-in-chief on the right.
This means that war is conducted like a funeral.
When many people are being killed,
They should be mourned in heartfelt sorrow.
That is why a victory must be observed like a funeral.
glucophage

Posted by: glucophage at August 28, 2004 06:10 PM

I don't care how poor and inefficient a little country is; they like to
run their own business. I know men that would make my wife a better
husband than I am; but, darn it, I'm not going to give her to 'em.
-- The Best of Will Rogers
prozac online My mind can never know my body, although it has become quite friendly
with my legs.
-- Woody Allen, on Epistemology
prozac

Posted by: John McAleer at September 5, 2004 03:26 PM

Post a comment

Thanks for signing in, . Now you can comment. (sign out)

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)


Remember me?