.NET Framework and Web Services - Part 1

The .NET Framework is a new computing platform designed to simplify Windows application development in the highly distributed environment of the Internet. Common Language Runtime (CLR) is the Heart of the .NET Framework.

The .NET Framework is a new computing platform designed to simplify Windows application development in the highly distributed environment of the Internet. Common Language Runtime (CLR) is the Heart of the .NET Framework. CLR is responsible for loading and executing a compiled program. It also handles memory handling through Garbage collection. Any program that is targeted to be run using CLR is called Managed code. Code that does not target the CLR is known as unmanaged code. 

.NET Advantages Over Win-DNA 2000 Architecture

A) DLL Hell
.NET Framework introduces application deployment and versioning to solve DLL Hell. Both end users and developers are familiar with the versioning and deployment issues that can arise with today's COM-based systems. For example, if an end user has to install a new application on his machine, he has to use Regedit to register all the COM Components.  Later on if some of the COM objects are modified new COM objects will have to be registered again. Still, the application will crash because there are two Versions of same COM objects. This DLL hell problem is solved in .NET as .NET uses assemblies to solve versioning and deployment problems. 

B) XCOPY Deployment [Remember XCOPY  DOS Command]
This means once you are finished with Application Development, we can move the whole directory to other server (Production) which will still work with out fail, with no need for registration of the Assemblies. We would simply need to copy the application.

C) Versioning
This is very big problem in Win-DNA architecture. We can not have more then one version of DLL in the same place, this gives a hell lot of problem but in .NET the same application can use two Version of Same Assembly (DLL).

I have used the term Assembly in many places above. Let me now explain something more about Assembly.

Assembly is nothing but .DLLs or .EXEs. An assembly can contain more then one file. An assembly also includes Metadata and Manifest.

Metadata is same as IDL (Interface definition Language which is used by COM) Metadata describes about Classes, Interfaces Methods, and types of Assembly.

Every Assembly contains Manifest, which describes Assembly itself like Assembly Version, Authors and External Assembly references. 

Assembly is produced when we compile the .NET language Source code, this code is also called Managed code. When we compile Source code the .NET compilers will produce MSIL code (Microsoft Intermediate Language) or simply IL. MSIL is not specific to any processor. This is the same as JAVA byte code. When we execute this program this MSIL code gets compiled again using JIT (Just in Time compilation) to PE (portable executable) or Native code (which machine it is running).  


This technique groups related types into namespaces so they can be searched and referenced more easily. 

Every class that you create in Visual C#.NET belongs to a namespace. Usually, your classes belong to a namespace that has the same name as your project (which is also the name given by default to the assembly that will contain your classes). However, you can change the project-wide namespace used for all of your classes by using the Project Properties. For Example:

using System; // Here is a system is namespace
using Ragavan.Tools;
// this is my own namespaces this contains some functions and Methods.
public class Ragavan
public void Main ()
Console.WriteLine("welcome to Sreeni.NET world");
// console method is there in System Namespace.

Namespaces provide a hierarchical way of organizing class names to avoid "name pollution." That's all they do-they have nothing to do with inheritance or assemblies.

Web Services

Web service is simply an application that exposes a Web-accessible API. That means you can invoke this application programmatically over the Web. Using SOAP Protocol .

XML+HTTP =SOAP (Simple Object Access protocol) 

Web services allow applications to share data.  

Web services can be called across platforms and operating systems regardless of programming language. 

.NET is Microsoft's platform for XML Web services. 

Using SOAP you can invoke the WebSerices. (HTTP-GET, HTTP-POST, SOAP) 

SOAP -Simple Object Access protocol is message-based protocol. Based on Request and Response. Here I am not going to explain more details about SOAP.

Web Service Application

Like Pay per view Channel we can make Software as pay per use, using Web service.  For example, let say Infovision Inc   developed Expensive Software for 3D Virtual Modeling. Lot of company does not want acquire the licensee because it is expensive and they need to pay for Support etc...   instead of this if Infovision makes this software as a WebService, most of the company will use as pay per use.  

Another example Credit card validation we can expose as a webservice. (Good example for webService).

Using VisualStudio.NET we can easily create WebServices.  ASP.NET WebService this project type will be used to create WebService.

Web Services Architecture



.NET Framework and Web Services - Part 2

.NET Framework and Web Services - Part 3