CSE 333

Fall 2002

Hardik Davé

Keith Bessette

Jaladhi Mehta

Overview

Ever since its launch by Microsoft, the .NET technology has generated a lot of interest. It has opened up a whole new spectrum of possibilities and capabilities to look into. .NET is actually an entire general-purpose platform that according to Microsoft, will “transcend device boundaries and fully harness the connectivity of the Internet”. The common language runtime (CLR) and the class libraries such as Windows Forms, ADO.NET, and ASP.NET are the two main components of the .NET framework.

The .NET framework gives a manageable, secure environment that simplifies the development of applications and their integration into the environment.

We are making an effort to look into certain areas of the .NET framework and compare them to existing java technologies and describe how each works. The areas we will discuss include middleware connectivity and interoperability, programming language capabilities and interactions, security issues, and data access abilities.

Topics and Scopes

1) Interoperability

  • Deployment of components in .NET
  • Distributed computing model
  • How COM and .NET components interact
  • A look into .NET REMOTING functionality, a comparison to RPC
  • Cross-language component interactions, non .NET components interacting with .NET components via SOAP and XML
  • Looking into ADO.NET interaction with Database
  • Exploring possibilities for .NET objects interacting with other than COM objects, possibly with JINI or CORBA

2) Exploring C#

  • A brief background on C#
  • Inheritance in C# and its differences with JAVA.
  • Exploring the Reverse Engineering of a C# program into a UML model with the .NET System. Reflection class
  • Threading in C# and looking at the differences in approach in JAVA and traditional Microsoft Foundation Class (MFC) Development.
  • Language Interoperability Aspect of C#, in comparison with JAVA including
  • Similarities and differences between Java Virtual Machine and the Common Language Runtime
  • Exploring P/Invoke (Platform Invocation Services), a way to interact with C Code and analyze its Pros and Cons with JAVA JNI and Microsoft Visual J++’s J/Direct
  • Feature of .NET allowing multiple languages to freely share and extend each other’s libraries to a great extent. For instance, an Eiffel or Visual Basic programmer could import a C# class, override a virtual method of that class, and the C# object would now use the Visual Basic method (polymorphism).
  • A look into platform interoperability in C# particularly O/S interoperability as certain .NET libraries are Windows-based.
  • A look into contrasting choices for use of C#/. NET for solutions implemented with HTML/DHTML clients to that of JAVA for cross platform projects with complex client interfaces.
  • Standards Interoperability, C#’s use of COM objects to that of JAVA alternatives like CORBA and RMI.

3) Security

  • The Common Language Runtime (CLR) security infrastructure and Code Access Security in the .NET framework.
  • Role-based security models for .NET domains compared to resource control in other distributed environments; particularly JINI
  • ASP.NET using Windows authentication for intranets and forms authentication for the Internet to secure access to web sites compared to JSP using Java for access security.

(3) Database Connectivity using ADO.NET and usage of Dataset to cache data for ASPX pages.

  • ADO stands for ActiveX Data Object.
  • Differences between ADO.NET and ODBC technology.
  • Differences between ADO.NET and JDBC technology.
  • How does ADO.NET provide better database connectivity by only providing partial database connection?
  • Database interactions performed using “Data Commands”.
  • Caching frequently used data in “Datasets”.
  • Advantages of using Datasets as virtual database on the server.
  • XML support through ADO.NET and Dataset.
  • Our goal is to focus on the components mapped out by the following diagram.

ADO.NET Data Components

Work Distribution

We plan to distribute work among 3 members as follows:

Keith will be responsible for Security issues in .NET including the security it provides for ASP.NET pages.

Hardik will be responsible for Database connectivity, usage of XML in “Datasets” and some of interoperability issues with .NET.

Jaladhi will be responsible for C# language research and also interoperability issues.

Phases

Our first phase of work will deal with doing research in various Web as well as paper based articles for information regarding the overall architecture of the system, and the specific issues we want to explore.

Second phase will deal with organizing a strategy to properly focus on our issues in great details and having a secondary objective of connecting the information with Java technology.

Third phase deals with documenting our findings, and establishing a clear relationship of similarities and contrast between Java and .NET.

References