<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>.Net World</title>
	<atom:link href="http://letslearndotnet.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://letslearndotnet.wordpress.com</link>
	<description>Lets Learn .NET</description>
	<lastBuildDate>Tue, 24 Feb 2009 13:41:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='letslearndotnet.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>.Net World</title>
		<link>http://letslearndotnet.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://letslearndotnet.wordpress.com/osd.xml" title=".Net World" />
	<atom:link rel='hub' href='http://letslearndotnet.wordpress.com/?pushpress=hub'/>
		<item>
		<title>What is .NET?</title>
		<link>http://letslearndotnet.wordpress.com/2009/02/24/what-is-net/</link>
		<comments>http://letslearndotnet.wordpress.com/2009/02/24/what-is-net/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 13:31:58 +0000</pubDate>
		<dc:creator>sonimadangopal83</dc:creator>
				<category><![CDATA[.Net General Topics]]></category>

		<guid isPermaLink="false">http://letslearndotnet.wordpress.com/?p=7</guid>
		<description><![CDATA[What Oreilly Says? What Is .NET Or, How I Learned to Stop Worrying and Love the Runtime  .NET The .NET Framework is Microsoft&#8217;s application development platform that enables developers to easily create Windows applications, web applications, and web services using a myriad of different programming languages, and without having to worry about low-level details like [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=letslearndotnet.wordpress.com&amp;blog=6699130&amp;post=7&amp;subd=letslearndotnet&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><strong><span style="font-size:10pt;color:red;font-family:&quot;">What Oreilly Says? </span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><strong><span style="font-size:10pt;color:black;font-family:&quot;">What Is .NET<br />
Or, How I Learned to Stop Worrying and Love the Runtime</span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0;">
<div class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span><strong><span style="font-size:10pt;font-family:&quot;">.NET </span></strong></div>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 .5in;"><span style="font-size:10pt;font-family:&quot;">The .NET Framework is Microsoft&#8217;s application development platform that enables developers to easily create Windows applications, web applications, and web services using a myriad of different programming languages, and without having to worry about low-level details like memory management and processor-specific instructions. </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><strong><span style="font-size:10pt;font-family:&quot;">In This Article:</span></strong></p>
<ol type="1">
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;"><a href="http://www.ondotnet.com/pub/a/dotnet/2005/09/06/what-is-dotnet.html#heading1">The Runtime</a> </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;"><a href="http://www.ondotnet.com/pub/a/dotnet/2005/09/06/what-is-dotnet.html#heading2">Alternative CLR Implementations</a> </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;"><a href="http://www.ondotnet.com/pub/a/dotnet/2005/09/06/what-is-dotnet.html#heading3">The Library</a> </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;"><a href="http://www.ondotnet.com/pub/a/dotnet/2005/09/06/what-is-dotnet.html?page=2#heading4">The Tools</a> </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;"><a href="http://www.ondotnet.com/pub/a/dotnet/2005/09/06/what-is-dotnet.html?page=2#heading5">The Future</a> </span></li>
</ol>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:10pt;font-family:&quot;">.NET is probably one of the more muddled and mismanaged brands in the history of Microsoft. If you go to microsoft.com it will tell you that &#8220;.NET is the Microsoft Web services strategy to connect information, people, systems, and devices through software,&#8221; but this isn&#8217;t what most people are thinking of when they say, &#8220;.NET.&#8221; What is commonly referred to as .NET is programming with the .NET Framework. This is what I am going to cover in this article. If you are looking for marketing speak then please refer to <a href="http://www.microsoft.com/net">www.microsoft.com/net</a>.</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><strong><span style="font-size:10pt;font-family:&quot;">The Runtime</span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:10pt;font-family:&quot;">At the heart of .NET is the Common Language Runtime, commonly referred to as the CLR. The CLR is made up of a number of different parts, which I will be covering here piece by piece (if you didn&#8217;t want a technical article then you should&#8217;ve followed the marketing link). </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><strong><span style="font-size:10pt;font-family:&quot;">Language Independence</span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:10pt;font-family:&quot;">One of the most important facets of the .NET Framework is language independence. You can write .NET applications using any number of different programming languages. The most popular languages tend to be C# and VB.NET, but many other languages now have .NET versions including Python, COBOL, and more. You can see a list of many of the languages you can use with .NET over at <a href="http://www.dotnetpowered.com/languages.aspx">dotnetpowered.com/languages.aspx</a>.</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:10pt;font-family:&quot;">Language independence is attained through the use of an intermediate language (IL). What this means is that instead of code being compiled in actual machine code (code that the CPU would run), it is instead compiled into a high-level generic language. This means that whatever language you write your code in, when you compile it with .NET it will become IL. Since all languages eventually get translated into the intermediate language, the runtime only has to worry about understanding and working with the intermediate language instead of the plethora of languages that you could actually use to write code.</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><strong><span style="font-size:10pt;font-family:&quot;">Just-in-Time Compilation</span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:10pt;font-family:&quot;">If your mantra is, &#8220;Why do something now you can put off till tomorrow?&#8221; then you have something in common with the CLR. When you compile your code and it is translated to the intermediate language it is then simply stored in an assembly. When that assembly is used the CLR picks up that code and compiles it on-the-fly for the specific machine that is running the code. This means the runtime could compile the code differently based on what CPU or operating system the application is being run on. However, at this point the CLR doesn&#8217;t compile everything in the assembly; it only compiles the individual method that is being invoked. This kind of on-the-fly compilation, referred to as jitting, only happens once per method call. The next time a method is called, no compilation occurs because the CLR has already compiled that code.</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><strong><span style="font-size:10pt;font-family:&quot;">Memory Management</span></strong></p>
<table class="MsoNormalTable" style="width:105pt;border-collapse:collapse;margin:1.75pt 4pt;" border="1" cellspacing="0" cellpadding="0" width="140" align="right">
<tbody>
<tr>
<td style="background:white;width:105pt;border:#d4d0c8;padding:7.5pt;" width="140" valign="top"> </td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:10pt;font-family:&quot;">One of the constant assailants on productivity in unmanaged programming platforms is manually managing memory. Having to deal with memory management is also one of the largest sources for bugs and security holes in many applications. .NET removes the hassle of manually managing memory through the use of the aptly named garbage collector. Instead of the developer needing to remove objects from memory, the garbage collector looks at the current objects in memory and then decides which ones aren&#8217;t needed anymore. For some developers this will be a tough pill to swallow; if you are used to managing memory then turning it over to an automated process can be somewhat troubling. This is when you have to take a step back, stop worrying, and embrace the runtime. There are bigger problems to solve (namely the business problems that are probably the real goal).</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><strong><span style="font-size:10pt;font-family:&quot;">Alternative CLR Implementations</span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:10pt;font-family:&quot;">The .NET runtime is actually based on a standard developed by Microsoft called the CLI or Common Language Infrastructure, portions of which have been submitted to Ecma as an international standard. Because the CLR is based on an open standard, there have been a number of alternative CLR implementations, most notably <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3A1C93FA-7462-47D0-8E56-8DD34C6292F0&amp;displaylang=en">Rotor</a> and <a href="http://www.mono-project.com/">Mono</a>. Rotor was a project from Microsoft Research, is a version of the CLR that will run on Mac OS, and is shared source. Mono is an independent open source implementation of the CLR that runs on various Linux distributions. While &#8220;Write once, run away&#8221; is not always realistic with .NET, there are some options available when it comes to other platforms. (Some code can be moved without issue, but most will require some tweaking, as different implementation includes different functionality.)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><strong><span style="font-size:10pt;font-family:&quot;">The Library</span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="font-size:10pt;font-family:&quot;">While the runtime is definitely the most important part of .NET, you can&#8217;t do too much with it by itself. This is where the Base Class Library (or BCL) comes in. The BCL includes a lot of the plumbing of .NET, including the system types, IO, and functions for working with text. In addition to the BCL, there is the Framework Class Library (FCL). The FCL is an extended library that makes working with the .NET Framework practical and includes the following major pieces:</span></p>
<h4 style="margin:0;"><span style="font-size:10pt;font-family:&quot;">ADO.NET</span></h4>
<p><span style="font-size:10pt;font-family:&quot;">Most current applications involve working with databases, normally more than one. ADO.NET is the data access component of the .NET Framework and includes built-in providers for SQL Server, ODBC, OLEDB, as well as Oracle.</span></p>
<h4 style="margin:0;"><span style="font-size:10pt;font-family:&quot;">Windows Forms</span></h4>
<p><span style="font-size:10pt;font-family:&quot;">Windows forms are the .NET Framework method for building desktop-based applications. Windows Forms are simply a managed wrapper over the native Windows API, this means that you can write code for one version of Windows and it will run on other versions without issue all the way back to Windows 98 SE. </span></p>
<p><span style="font-size:10pt;font-family:&quot;">Windows forms applications do require the .NET Framework to run, which means that anyone who downloads your application, or any computer it is installed on, will need to also have the .NET Framework. The framework can be easily installed through Windows Update, and is completely free, but the download size can be troublesome for people with a slower connection.</span></p>
<h4 style="margin:0;"><span style="font-size:10pt;font-family:&quot;">ASP.NET</span></h4>
<p><span style="font-size:10pt;font-family:&quot;">ASP.NET is the part of the .NET Framework dedicated to building web applications. Using ASP.NET you can build everything from a small starter website to enterprise-level web applications. ASP.NET allows you to write web applications without the need for a scripting language, everything can be written in your .NET language of choice. </span></p>
<p><span style="font-size:10pt;font-family:&quot;">Since ASP.NET applications are simply rendering HTML for the browser, there is no requirement for the .NET Framework on the client. Chances are you have used a number of sites that have been written in ASP.NET and you might not even have known it.</span></p>
<h4 style="margin:0;"><span style="font-size:10pt;font-family:&quot;">Web Services</span></h4>
<p><span style="font-size:10pt;font-family:&quot;">With ASP.NET Web Services Microsoft has created a number of time-saving features to make it easy to quickly write and expose web services from your application. Just like the rest of .NET, ASP.NET Web Services can be written in any .NET language. Through the use of the Web Services Extensions (free download from Microsoft), you can also add support for the new and ever-growing list of WS-* specifications to your ASP.NET Web Services.</span></p>
<h3 style="margin:auto 0;"><span style="font-size:10pt;font-family:&quot;">The Tools</span></h3>
<p><span style="font-size:10pt;font-family:&quot;">One of the benefits of the .NET Framework is the great tools that are available to the .NET developer. Visual Studio has long been considered one of the premier IDEs on the market and does a lot to increase developer productivity when working with the framework. There are also a large number of open source tools available for .NET, including many that mimic the tools available on other platforms. Some of these include nUnit for unit testing, nAnt for building projects, nCover for testing code coverage, nHibernate for object persistence, and much more. </span><!--James: URLs for these tools?--></p>
<h3 style="margin:auto 0;"><span style="font-size:10pt;font-family:&quot;">The Future</span></h3>
<p><span style="font-size:10pt;font-family:&quot;">This November, Microsoft will launch .NET 2.0, the first major revision of the .NET Framework. With this revision .NET will grow to include a large amount of new functionality, not just in ASP.NET, Windows Forms and the base library, but also with the addition of support for new language features like <a href="http://www.ondotnet.com/pub/a/dotnet/2005/06/20/generics.html"><span>generics</span></a> to the runtime. Microsoft has shown its commitment to this platform and will continue to build upon .NET for years to come. (There is already some public information available on the next version of .NET, which is code-named Orcas.)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><strong><span style="font-size:10pt;color:red;font-family:&quot;">What Code Project Says?</span></strong></p>
<h2 style="margin:10pt 0 0;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span style="color:#4f81bd;">Introduction</span></span></h2>
<p><span style="font-size:10pt;font-family:&quot;">Being a contributor to the Code Project for quite some time now, it is commendable to see so many articles from various folks in the industry talk about the features of .NET and how a specific features work or what are some of the tips and tricks of the trade. This fever of .NET is very interesting to watch and rest assured that the storms caused by .NET will be as great as the storms caused by C++ when it was introduced. Walking down the web-site, I saw lots of articles on .NET, but I did not see one on: <em>What is NET? What is it made up of? Why is there so much interest in it?</em> </span></p>
<p><span style="font-size:10pt;font-family:&quot;">This article is a dedication to the above answers. In this article, I will give an understanding of what is .NET and why it came into existence. We will also see some of the core building blocks of .NET and how it is layered. For a deeper insight into each of the building blocks, you anyways have lots of good articles on the Code Project web site. So happy reading! </span></p>
<h2 style="margin:10pt 0 0;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span style="color:#4f81bd;">Why .NET</span></span></h2>
<p><span style="font-size:10pt;font-family:&quot;">The world of computing till date has been chaotic. We have had various languages struggling to interoperate with each other, developers undergoing huge learning curves to shift from one language to another or from one application type to another, non-standard ways of modeling applications and designing solutions and huge syntactic differences between languages. The list goes on&#8230;. </span></p>
<p><span style="font-size:10pt;font-family:&quot;">Past years have seen some solace in the form of enterprise &#8220;glue&#8221; applications and standards like COM, which put-forth a binary standard of interoperability between application components. But in reality, this was not always true (VB COM found it very difficult to take on VC++ COM). Also, as applications increased in their reach, it was found that rather than re-inventing the wheel for a solution, it was better to take the &#8220;service&#8221; of another applications specialized for a piece of work. </span></p>
<p><span style="font-size:10pt;font-family:&quot;">Thus from a paradigm where applications replicated code to provide common services, we have moved to a paradigm where applications are built as &#8220;collaborative units&#8221; of components working together. This simple shift has led to the collapse of the current set of architectures and demanded a new programming model: </span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">A model where applications can be built as reusable components and are sharable over the internet. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">A model that encourages applications to be shared as a &#8220;service&#8221; (read web services). </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">A model that enables true &#8220;interoperability&#8221; wherein the language used is only a matter of choice, thus enabling organizations to take advantage of existing skill sets.</span></li>
</ul>
<p><strong><span style="font-size:10pt;font-family:&quot;">Enter .NET</span></strong><span style="font-size:10pt;font-family:&quot;">. The .NET Framework is a new computing platform developed by Microsoft that simplifies application development in the highly distributed environment of the internet. .NET is much more than just a platform for developing for the internet, but it is intended for this purpose predominantly, because here, others methods have failed in the past.</span></p>
<h2 style="margin:10pt 0 0;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span style="color:#4f81bd;">Overview of .NET</span></span></h2>
<p><span style="font-size:10pt;font-family:&quot;">The .NET Framework has been developed to cater to the following objectives and requirements: </span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">To provide a consistent object-oriented environment to develop applications. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">To provide a code execution environment that simplifies deployment and versioning. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">To provide a code execution environment that guarantees the safety of the code that is executing. This includes both code developed internally by an organization or for code developed by 3rd party vendors. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">To provide a code execution environment that eliminates the issues faced by scripted environments with respect to performance. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">To provide a common programming model where the choice of a programming language becomes a matter of choice.</span></li>
</ul>
<p><span style="font-size:10pt;font-family:&quot;">The .NET Framework is made up of two major components: the common language runtime (CLR) and the framework class library (FCL). The CLR is the foundation of the .NET Framework and provides various services that applications can use. The CLR also forms the “environment” that other applications run on. The FCL is a collection of over 7000+ types that cater to all the services, and data structures that applications will ever need.</span></p>
<p><span style="font-size:10pt;font-family:&quot;">The following diagram shows the .NET Framework, its hierarchy and the associated toolset. The diagram is so famous that you can spend some time memorizing its layout!!</span></p>
<p> </p>
<p><span style="font-size:10pt;font-family:&quot;">At the base of the diagram, you see the operating system which can be (theoretically) any platform. The Common Language Runtime (CLR) is the substrate that abstracts the underlying operating system from your code. The minute it does this, it means that your code has to run using the services provided by the CLR and we get a new name called managed code. The CLR provides its services to applications by providing a standard set of library classes that abstract all the tasks that you will ever need. These classes are called as the Base Class Libraries. On top of this, other development platforms and applications are built (like ASP.NET, ADO.NET and so on). Language compilers that need to generate code for the CLR must adhere to a common set of specifications as laid down by the Common Language Specification (CLS). Above this, you have all the popular .NET languages.</span></p>
<p><span style="font-size:10pt;font-family:&quot;">Visual Studio .NET, then is the &#8220;glue&#8221; that helps your generate .NET applications and provides an IDE that is excellent for collaborative development.</span></p>
<p><span style="font-size:10pt;font-family:&quot;">In the subsequent sections, we will delve into the core layers of the .NET framework. Note that application development layers (like ADO.NET, ASP.NET etc) and development tools (VS.NET) are not dealt with.</span></p>
<h2 style="margin:10pt 0 0;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span style="color:#4f81bd;">Common Language Runtime</span></span></h2>
<p><span style="font-size:10pt;font-family:&quot;">The CLR is the platform on which applications are hosted and executed. The CLR also provides a set of services that applications can use to access various resources (like arrays, collections, operating system folders etc). Since this runtime &#8220;manages&#8221; the execution of your code, code that works on the CLR is called as managed code. Any other code, you guessed it, is called unmanaged code. </span></p>
<p><span style="font-size:10pt;font-family:&quot;">Compilers and tools expose the CLR&#8217;s functionality and enable you to write code that benefits from this managed execution environment. To enable the runtime to provide services to managed code, language compilers must also emit metadata that describes the types that we develop in .NET. This metadata is stored along with the type file and makes it &#8220;self-describing&#8221;. Using this information, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. </span></p>
<p><span style="font-size:10pt;font-family:&quot;">When compilers emit code to run on the CLR, they do not emit machine language code. Rather, an intermediate language code is used called Microsoft Intermediate Language (MSIL). MSIL is like an object-oriented version of assembly language and is platform independent. It has a rich set of instructions that enable efficient representation of the code. When a code starts to execute, a process knowing as Just in Time Compilation (JIT) converts the MSIL code into the native processor instructions of the platform, which is then executed. This is shown in the following diagram: </span></p>
<p> </p>
<p><span style="font-size:10pt;font-family:&quot;">Note that this conversion happens only once. Subsequent calls to the code will execute the native version only. Once the application dies down and is started again, this process is repeated. </span></p>
<p><span style="font-size:10pt;font-family:&quot;">The following are some of the benefits of the CLR: </span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">Performance improvements. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">The ability to easily use components developed in other languages. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">Extensible types provided by a class library. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">New language features such as inheritance, interfaces, and overloading for object-oriented programming; support for explicit free threading that allows creation of multithreaded, scalable applications; support for structured exception handling and custom attributes.</span></li>
</ul>
<h2 style="margin:10pt 0 0;"><span style="color:#4f81bd;"><span style="font-size:10pt;line-height:115%;font-family:&quot;">Common Language Specification</span></span></h2>
<p><span style="font-size:10pt;font-family:&quot;">Language interoperability is the ability of code to interact with code that is written using a different programming language. Language interoperability can help maximize code reuse and, therefore, improve the efficiency of the development process. Because developers use a wide variety of tools and technologies, each of which might support different features and types, it has historically been difficult to ensure language interoperability. However, language compilers and tools that target the common language runtime benefit from the runtime&#8217;s built-in support for language interoperability. To ensure that you can develop managed code that can be fully used by developers using any programming language, a set of language features and rules for using them called the Common Language Specification (CLS) has been defined. Components that follow these rules and expose only CLS features are considered CLS-compliant. </span></p>
<p><span style="font-size:10pt;font-family:&quot;">To fully interact with other objects regardless of the language they were implemented in, objects must expose to callers only those features that are common to all the languages they must interoperate with. If your component uses only CLS features in the API that it exposes to other code (including derived classes), the component is guaranteed to be accessible from any programming language that supports the CLS. Components that adhere to the CLS rules and use only the features included in the CLS are said to be CLS-compliant components. </span></p>
<h2 style="margin:10pt 0 0;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span style="color:#4f81bd;">Common Type System</span></span></h2>
<p><span style="font-size:10pt;font-family:&quot;">The common type system defines how types are declared, used, and managed in the runtime, and is also an important part of the runtime&#8217;s support for cross-language integration. The common type system performs the following functions:</span></p>
<ul type="disc">
<li class="MsoNormal"><!--                   That's it!                --><span style="font-size:10pt;font-family:&quot;">Establishes a framework that enables cross-language integration, type safety, and high performance code execution. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">Provides an object-oriented model that supports the complete implementation of many programming languages. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&quot;">Defines rules that languages must follow, which helps ensure that objects written in different languages can interact with each other. For example, if you have created a class in VB.NET, you can inherit from it in a C# program.</span></li>
</ul>
<h2 style="margin:10pt 0 0;"><span style="color:#4f81bd;"><span style="font-size:10pt;line-height:115%;font-family:&quot;">Framework Class Library</span></span></h2>
<p><span style="font-size:10pt;font-family:&quot;">Windows programmers coding in C, tend to rely on the Windows API and functions in third-party DLLs to get their job done. C++ programmers often use class libraries of their own creation or standard class libraries such as MFC. Visual Basic programmers use the Visual Basic API, which is an abstraction of the underlying operating system API.</span></p>
<p><span style="font-size:10pt;font-family:&quot;">In the .NET Framework, all these anachronistic API’s are done away with. Rather a new set of functions branded as the framework class library are introduced which contain more than 7000 types.</span></p>
<p><span style="font-size:10pt;font-family:&quot;">To make learning and using the FCL more manageable, Microsoft has divided the FCL into hierarchical namespaces. The FCL has about 100 namespaces in all. Each namespace holds classes and other types that share a common purpose. For example, much of the window manager portion of the Windows API is encapsulated in the System.Windows.Forms namespace. In this namespace classes that represent windows, dialog boxes, menus, and other elements commonly used in GUI applications are present. A separate namespace called System.Collections holds classes representing hash tables, resizable arrays, and other data containers. Yet another namespace, System.IO, contains classes for doing file I/O.</span></p>
<p><span style="font-size:10pt;font-family:&quot;">The following diagram shows the FCL classes and their associated namespaces.</span></p>
<p> </p>
<h2 style="margin:10pt 0 0;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span style="color:#4f81bd;">What&#8217;s Next</span></span></h2>
<p><span style="font-size:10pt;font-family:&quot;">Hopefully, this article has distilled some of the terms in the .NET platform and explained why .NET is required. The .NET framework is a huge ocean and it will take some time for applications to be mature in it. Microsoft is also gearing to release its next version of server operating systems (2003) which provide lots of features for .NET applications. Expect the next version of SQL Server (code named Yukon) to have a .NET flavor too!! It is important, thus, to understand what the framework provides to us and what new features can applications target in the future and this is where this article will help.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:10pt;line-height:115%;font-family:&quot;">­<!-- Article Ends --><!-- Main Page Contents End -->­­</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:10pt;color:red;line-height:115%;font-family:&quot;">What ideal programmer Says?</span></strong></p>
<p class="MsoNormal" style="line-height:normal;text-align:justify;margin:0 0 3pt;"><strong><span style="font-size:10pt;color:black;font-family:&quot;">What is .NET Framework? A Visual Definition</span></strong></p>
<p class="MsoNormal" style="line-height:normal;text-align:justify;margin:6pt 0;"> </p>
<p class="MsoNormal" style="line-height:normal;text-align:justify;margin:6pt 0;"><span style="font-size:10pt;color:black;font-family:&quot;">The .NET applications and services operate within the .NET Framework (pronounced &#8220;dot net framework&#8221;). .NET applications do not directly access the operating system. Instead, they use the .NET framework, and the .</span><span style="font-size:10pt;color:white;font-family:&quot;">NET</span><span style="font-size:10pt;color:black;font-family:&quot;"> framework accesses the operating system and hardware. The framework consists </span><span style="font-size:10pt;color:white;font-family:&quot;">of</span><span style="font-size:10pt;color:black;font-family:&quot;"> two components:</span></p>
<p class="MsoNormal" style="text-indent:-.25in;line-height:normal;text-align:justify;margin:6pt 0 6pt 30pt;"><span style="font-size:10pt;color:black;font-family:&quot;"><span>1.<span style="font:7pt &quot;">    </span></span></span><span style="font-size:10pt;color:black;font-family:&quot;">The .</span><span style="font-size:10pt;color:white;font-family:&quot;">NET</span><span style="font-size:10pt;color:black;font-family:&quot;"> Framework Class Library, and </span></p>
<p class="MsoNormal" style="text-indent:-.25in;line-height:normal;text-align:justify;margin:6pt 0 6pt 30pt;"><span style="font-size:10pt;color:black;font-family:&quot;"><span>2.<span style="font:7pt &quot;">    </span></span></span><span style="font-size:10pt;color:black;font-family:&quot;">The Common Language Runtime (<a href="http://blogs.icerocket.com/tag/CLR">CLR </a>) </span></p>
<p class="MsoNormal" style="line-height:normal;text-align:justify;margin:6pt 0;"><span style="font-size:10pt;color:black;font-family:&quot;">The <a href="http://blogs.technorati.com/tag/framework">framework</a> manages memory management, code execution, etc., and that is why .</span><span style="font-size:10pt;color:white;font-family:&quot;">NET</span><span style="font-size:10pt;color:black;font-family:&quot;"> applications are called &#8220;managed applications.&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;text-align:justify;margin:6pt 0;"><span style="font-size:10pt;color:black;font-family:&quot;">The Common Type System makes sure that all .</span><span style="font-size:10pt;color:white;font-family:&quot;">NET</span><span style="font-size:10pt;color:black;font-family:&quot;"> applications use the same data types.</span></p>
<p class="MsoNormal" style="line-height:normal;text-align:justify;margin:6pt 0 10pt;"><span style="font-size:10pt;color:black;font-family:&quot;">The Visual </span><span style="font-size:10pt;color:white;font-family:&quot;">Basic</span><span style="font-size:10pt;color:black;font-family:&quot;"> Compiler converts the humanly readable source code into an intermediate language. This intermediate language is also called <a href="http://www.idealprogrammer.com/">Microsoft Intermediate Language</a> (or MSIL), and it is contained in an assembly. Assemblies have either a .exe (executable) or .dll (class library) extension. The Common Language Runtime (CLR) converts the intermediate language into the native language needed by the operating system. This is what makes .</span><span style="font-size:10pt;color:white;font-family:&quot;">NET</span><span style="font-size:10pt;color:black;font-family:&quot;"> applications <em>platform independent</em>. Currently the CLR is only available on Windows Systems, but someday CLR&#8217;s could be developed </span><span style="font-size:10pt;color:white;font-family:&quot;">of</span><span style="font-size:10pt;color:black;font-family:&quot;"> Unix and Linux. This would allow .</span><span style="font-size:10pt;color:white;font-family:&quot;">NET</span><span style="font-size:10pt;color:black;font-family:&quot;"> applications to execute in these environments.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"> </span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/letslearndotnet.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/letslearndotnet.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/letslearndotnet.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/letslearndotnet.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/letslearndotnet.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/letslearndotnet.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/letslearndotnet.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/letslearndotnet.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/letslearndotnet.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/letslearndotnet.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/letslearndotnet.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/letslearndotnet.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/letslearndotnet.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/letslearndotnet.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=letslearndotnet.wordpress.com&amp;blog=6699130&amp;post=7&amp;subd=letslearndotnet&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://letslearndotnet.wordpress.com/2009/02/24/what-is-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c4e6647cf030dbb5d82b0f929cfc1fab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sonimadangopal83</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://letslearndotnet.wordpress.com/2009/02/23/hello-world/</link>
		<comments>http://letslearndotnet.wordpress.com/2009/02/23/hello-world/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 13:41:23 +0000</pubDate>
		<dc:creator>sonimadangopal83</dc:creator>
				<category><![CDATA[Welcome]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Welcome to Lets Learn .NET. Lets learn .NET  is the new way to learn .NET technology.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=letslearndotnet.wordpress.com&amp;blog=6699130&amp;post=1&amp;subd=letslearndotnet&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Welcome to Lets Learn .NET.</p>
<p>Lets learn .NET  is the new way to learn .NET technology.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/letslearndotnet.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/letslearndotnet.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/letslearndotnet.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/letslearndotnet.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/letslearndotnet.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/letslearndotnet.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/letslearndotnet.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/letslearndotnet.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/letslearndotnet.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/letslearndotnet.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/letslearndotnet.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/letslearndotnet.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/letslearndotnet.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/letslearndotnet.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=letslearndotnet.wordpress.com&amp;blog=6699130&amp;post=1&amp;subd=letslearndotnet&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://letslearndotnet.wordpress.com/2009/02/23/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c4e6647cf030dbb5d82b0f929cfc1fab?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sonimadangopal83</media:title>
		</media:content>
	</item>
	</channel>
</rss>
