Archive for November 2011
Introduction
Before the .NET platform was introduced, we had to deal with the predecessors of assemblies: normal DLLs exporting global functions and COM DLLs exporting COM classes. Microsoft itself introduced the phrase DLL Hell to describe traditional problems with DLLs.
The answer to DLL Hell
The .NET platform answer to DLL Hell and to all of its problems is Assemblies.
Assemblies are self describing installation units, consisting of one or more files.
Features of assemblies
(1) Assemblies are self-describing.
(2) Version dependencies are recorded inside an assembly manifest.
(3) Assemblies can be loaded side-by-side.
(4) Application isolation is endured using application domains.
(5) Installation can be as easy as copying the files that belong to an assembly.
(6) Assemblies can be private or shared.
Assembly Structure
| Assembly Metadata |
| Type Metadata |
| IL Code |
|
Resources |
In this example, the assembly metadata, type metadata, MSIL code, and resources all in one file- Component.dll. The assembly consists of a single file.
Assembly Manifests
An important part of an assembly is a manifest, which is part of the metadata. It describes the assembly with all the information that needed to reference it and lists all its dependencies.
Private and Shared Assemblies
A private assembly is found either in the same directory as the application, or within one of its subdirectories. With the private assembly it is not necessary to think about naming conflicts with other classes or versioning problems. Private assemblies are the normal way to build assemblies, especially when applications and components are built within the same company.
While using shared assemblies, we have to aware of some rules. The assembly must be unique and therefore must also have a unique name called a strong name. Shared assemblies is stored in GAC (Global Assembly cache).
It provides a number of services, including the following:
- Code management (loading and execution)
- Common type System
- Conversion of IL to native code
- Access to metadata (enhanced type information)
- Managing memory for managed objects
- Enforcement of code access security
- Exception handling, including cross-language exceptions
- Interoperation between managed code, COM objects, and pre-existing DLLs (unmanaged code and data)
- Support for developer services (profiling, debugging, and so on)
1. CLR manages memory, thread execution, code execution, compilation code safety verification and other system services.
2. For security reasons, managed code is assigned varying degrees of trust based on origin. This prevents or allows the managed component from performing file access operations, registry access operations or other sensitive functions even within the same active application.
3. The Runtime enforces code robustness by implementing strict type and code verification infrastructure called Common type System (CTS). The CTS ensures that all managed code is self describing and all Microsoft or third party language compiler generated codes conform to CTS. This enables the managed code to consume other managed types and enforce strict type fidelity and type safety.
4. CLR eliminates many common software issues like handling of object layout, references to objects and garbage clearance. This type of memory management prevents memory leaks and invalid memory references.
5. The CLR also accelerates developer productivity. The programmer is free to choose the language of the application without worrying about compatibility and integration issues. He is also enabled to take advantage of the runtime and the class library of the .NET Framework and also harvest components from other applications written in different languages by different developers. This implicitly eases the process of migration.
6. Though CLR aims to be futuristic software, it lends support to existing applications. The interoperability between the managed and unmanaged codes makes this process extremely simple.
7. The design of the CLR is geared towards enhancing performance. The Just-in-time (JIT) compiling enables managed code to run in the native machine language of the system executing it. During the process the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to enhance performance.
8. Finally, server side applications can host runtime. High performance servers like Microsoft SQL Server and Internet Information Services can host this CLR and the infrastructure so provided can be used to write business logic while enjoying the best benefits of enterprise server support.
The Class Library is an object oriented collection of reusable types. It is comprehensive and the types can be used to develop command line applications or GUI applications such as Web forms or XML Web services. Unmanaged components that load CLR into their processes can be hosted by the .NET Framework to initiate the execution of managed code. This creates a software environment that exploits both the managed and unmanaged codes. The.NET Framework also provides a number of runtime hosts and supports third party runtime hosts
Common Type System
Common Type System is the part of .NET Framework built in with CLR which is responsible for defining, managing different language’s operation supported by .NET Framework.
The Common Type System (CTS) is a standard that specifies how Type definitions and specific values of Types are represented in computer memory. It is intended to allow programs written in different programming languages to easily share information. As used in programming languages, a Type can be described as a definition of a set of values (for example, “all integers between 0 and 10″), and the allowable operations on those values (for example, addition and subtraction).
The CTS provides every language running on the .NET platform with a base set of data types. A language that makes available a limited number of types or that limits the programmer’s ability to extend the language’s built-in types isn’t a language with a long life expectancy. However, having a unified type system has many other benefits as well.
- Every thing in the CTS is an object.
- The CTS is responsible for defining the types that can be used across the .NET languages.
- All objects implicitly derive from a single base class defined as a part of the CTS. This base class is called system.object.
- The CTS types are value types and reference types.
The Microsoft .NET Framework is a platform for building, deploying, and running Web Services and applications. It provides a highly productive, standards-based, multi-language environment for integrating existing investments with next-generation applications and services as well as the agility to solve the challenges of deployment and operation of Internet-scale applications. The .NET Framework consists of three main parts: the common language runtime, a hierarchical set of unified class libraries, and a componentized version of Active Server Pages called ASP.NET.
The Microsoft .NET Framework is a managed code programming model for building applications on Windows clients, servers, and mobile or embedded devices. Developers use .NET to build applications of many types: Web applications, server applications, smart client applications, console applications, database applications, and more.
the overall Architecture of .NET Framework
Outsourcing is contracting with another company or person to do a particular function. Almost every organization outsources in some way. Typically, the function being outsourced is considered non-core to the business. The outside firms that are providing the outsourcing services are third-party providers, or as they are more commonly called, service providers.
BPO is the delegation of one or more IT-based business function to an external provider that manages the selected process based on a given criteria. BPO is the latest revenue generation engine for all major software companies in this era of recession. Companies are moving their non-core business processes to outsource providers. It simply means “do what you can do best” and give everything else to outsource providers. Functions outsourced are HR, A/C & Fin. Research, marketing & sales, legal works and so on. Dominant outsourcing service providers in the information technology outsourcing and business process outsourcing fields include IBM, EDS, CSC, HP, ACS, Accenture and Capgemini.
Some of the benefits achieved by outsourcing are outlined below.
1) Improvement in productivity
2) Exposure to expertise
3) Cost saving
4) More focus on core business
Why India?
· Geographical location (i.e. distance from western countries) is a huge advantage to India. During their night time, its day time in India, so companies can achieve prompt responses to their queries.
· India has a globally recognized IT industry growing constantly.
· India has a vast trained English speaking community.
· Liberal Government policy in India has also aided in growth.
· Low cost man power exposure.
Challenge
Many analysts believe that the growth of India outsourcing sector is widely optimistic and it will slow down in future. Both IT and BPO sector is extremely dependent in USA and if the US dollar depreciates can adversely impact the entire sector. Additionally countries like China, Mexico, Bangladesh and Vietnam are also expanding outsourcing operations and often providing cheaper services.
![[del.icio.us]](http://www.itshala.com/wp-content/plugins/bookmarkify/delicious.png)
![[Digg]](http://www.itshala.com/wp-content/plugins/bookmarkify/digg.png)
![[dzone]](http://www.itshala.com/wp-content/plugins/bookmarkify/dzone.png)
![[Facebook]](http://www.itshala.com/wp-content/plugins/bookmarkify/facebook.png)
![[Google]](http://www.itshala.com/wp-content/plugins/bookmarkify/google.png)
![[LinkedIn]](http://www.itshala.com/wp-content/plugins/bookmarkify/linkedin.png)
![[Twitter]](http://www.itshala.com/wp-content/plugins/bookmarkify/twitter.png)
![[Windows Live]](http://www.itshala.com/wp-content/plugins/bookmarkify/windowslive.png)
![[Yahoo!]](http://www.itshala.com/wp-content/plugins/bookmarkify/yahoo.png)
![[Email]](http://www.itshala.com/wp-content/plugins/bookmarkify/email.png)

