Tuesday, August 7, 2007

Introduction to.NET Framework and componets....Article 1

.NET Framework and Components

ABSTRACT:
Amongst the leading technologies in software world the most prominent and developing is the “.Net”, released in February, 2001. “.Net” is a framework that covers all the layers of software development right form the operating system. It provides the richest level of integration among presentation technologies, component technologies and data technologies ever seen on Microsoft platform.
The main goal behind the development of “.net” was to make development of internet applications as easy as desktop applications.
The .net framework is actually a wrapper around the operating system. The major components of the .net framework are CLR and FCL.
The paper gives an idea about .net and its capabilities. It covers all the details about .net framework, its features and its components such as FCL, CTS, CLS, CLR etc.
.Net presently works excellently on Windows platform. But it is not operable on other operating systems such as Linux, Unix, etc. Project “Mono” heads in the same direction. At the end, we present a overview of the Mono project.
Keywords:
.Net
.Net Framework
Base Class Libraries
Common Type System (CTS)
Common Language Specification (CLS)
Common Language Runtime (CLR)
Metadata
JIT Compiler

1. INTRODUCTION TO “.NET”


1.1 What is .Net?


.Net is a framework consisting of common language runtime and a set of .net base classes which allow us to build distributed, secure, scaleable, robust, easily deployable and maintainable applications in a language independent object-oriented web enabled managed way using rich level of integration amongst present technologies.


1.2 Features of .Net at a Glance:


· Properties, events and delegates are first class citizens.
· Assemblies eliminate “DLL hell”.
· API is object oriented.
· Same libraries for all languages.
· Cross language inheritance.
· Cross language debugging.
· ADO.net is better than ADO.
· ASP.net is better than ASP.
· Garbage collection.
· Application domain improves exe to exe communication.
· Common language runtime provides a secure environment for the code.
· Deployment is as simple as simple as xcopy.
· No, HRESULTS, no GUIDs and no type libraries.

1.3 Major Concerns in Today’s Scenario:


The current development model, types of applications that one creates today and the present status of intelligence has major concerns is as below:
1. Too many languages: We are required to learn different languages to accomplish different types of jobs. For example for creating windows applications we need VC++ and VB, for Web applications we need VBScript and for creating mobile applications we have to opt for eVC++ or eVB.
2. Language interoperability: There is no interoperability amongst the code written in different languages. This is because languages have no common datatype system. Also not all languages in use are object oriented.
3. No cross language inheritance and debugging: Microsoft offered a solution to language interoperability in the form of COM. This technology suggested the usage oif data types that represent the lowest common denominator ( means the ones that all languages can understand). However the usage of these data types was intimidating.
Though COM was a big step forward from the point of view of interoperability it still did not support concepts like cross language debugging and cross language exception handelling.
4. Inconsistent programming models and different developing environment: The next major problem is that of the different types of programming models that are still in existence. For example, windows applications are event driven whereas web applications are not. Also we have to learn usage of different IDEs to create different types of applications in different languages.
5. Deployment nightmares: The developer also faces the hurdle of deployment. While installing DLLS there is always a risk of overwriting the older version of it bearing one with the same name. On doing so the older clients are likely to break. COM addressed this problem of “DLL hell” by making it possible to use a component independent of its location in directory. However while deploying a COM component it was necessary to maintain a component ID, a type library and the actual component in synchronization. Moreover when the CCOM component is uninstalled all the three entities must be deleted. This was not a very clean way of installing/ uninstalling components.
6. Difficult OS usage: The function calls are very long and have very little organization such as Windows API functions.
7. Messy runtimes: Exceptions in windows based program occur through memory leaks, dangling pointers, exceeding array bounds or some other bug in the program. At such times the application abruptly terminates. This shows that Windows runtime does not provide any facility for automatic destruction of unreferenced memory or informing the applications about the exceptions.
8. Proprietary protocol: To develop an internet application that allows to communicate vital information with each other across existing communication lines, using Microsoft technologies we would need HTML, DHTML and JavaScript in front-tier; VBScript, ASP, MTS, C++, VB, COM in the middle tier and SQL, ADO in the back-tier. Sun’s solution to this could be to use Java applets and servlets in the front-tier, Enterprise Java Beans (EJB) or CORBA or RMI in the middle-tier and JDBC and a suitable database in the back-tier. The overall process would need a big infrastructure with different computers, different operating systems, different languages used for development. Secondly, the interoperability would be difficult.

1.4 Possible Solutions:


Technology Microsoft Solution Sun Solution

Client Win Applications Java applications

ActiveX Controls Java Applets

Server ASP Java Servlets

COM+/Win DNA Enterprise Java Beans

Mobile eVC++ / eVB Java Midlets




Table1: Possible solutions to major concerns in present scenario.

The table1lists the solution provided by Microsoft and Sun for creating various types of applications.
Microsoft Solution: Though some of the solutions are commendable in solutions provided by Microsoft there is a smell of adhocism. They appear to more of patchwork attempting to solve the current problem rather than a well throughout design.
Sun Solution: Sun solutions are also good but have a major drawback. Sun says that one can create all types of applications easily and consistently if one uses only one language Java. However, it is too much to expect that all programmers would be willing to learn Java. What about those who have mastered other languages and what about the existing code written in languages other than Java.

1.5 .Net Solution:


.NET Framework CLR, Base Classes, ASP.NET

Development Tools VS.NET

.NET Servers SQL, BizTalk, Commerce, Exchange, Mobile IIS

.NET My Services Presence, Location, Calender, Allert, Contacts, Passport, Inbox,

Documents, Wallet, Appplication settings, Favourites, Profiles



Table2: .Net solutions to major concerns in present scenario.


1.6 Common Development Model:


References

THE COMPLETE REFERENCE VISUAL BASIC .NET- By Jeffery R. Shapiro
INTRODUCING .NET- By Wrox publication
COURSE MATERIAL ON .NET- By KICIT
LEARN TO PROGRAM WITH VISUAL BASIC .NET –By John Smiley

No comments: