<?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>PROGRAMMER DESK &#187; .Net Framework 4.0</title>
	<atom:link href="http://vinayhatwal.wordpress.com/category/net/future-releases/net-framework-40/feed/" rel="self" type="application/rss+xml" />
	<link>http://vinayhatwal.wordpress.com</link>
	<description>Accept Changes To Develop Good Solutions</description>
	<lastBuildDate>Sun, 02 Aug 2009 10:34:20 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='vinayhatwal.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/fddfa1cd68a112c3fb6eca04033658e3?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>PROGRAMMER DESK &#187; .Net Framework 4.0</title>
		<link>http://vinayhatwal.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://vinayhatwal.wordpress.com/osd.xml" title="PROGRAMMER DESK" />
		<item>
		<title>.Net Framework 4.0</title>
		<link>http://vinayhatwal.wordpress.com/2009/04/17/net-framework-40/</link>
		<comments>http://vinayhatwal.wordpress.com/2009/04/17/net-framework-40/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 07:51:39 +0000</pubDate>
		<dc:creator>vinayhatwal</dc:creator>
				<category><![CDATA[.Net Framework 4.0]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[new .net relieases]]></category>
		<category><![CDATA[new releases]]></category>
		<category><![CDATA[Vinayhatwal]]></category>

		<guid isPermaLink="false">http://vinayhatwal.wordpress.com/?p=132</guid>
		<description><![CDATA[.Net Framework 4.0
 Every year the industry develops new technology and new trends. Now Microsoft is again come to provide next version of .net framework i.e. .Net Framework 4.0. As a result MS Visual Studio 2010 is just around the corner with the new innovation in application architecture, development, and deployment. So in this article I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinayhatwal.wordpress.com&blog=4320862&post=132&subd=vinayhatwal&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal" style="text-align:center;"><span style="font-size:9pt;color:#666666;font-family:Arial;"><span style="font-size:14pt;font-family:&quot;"><span style="color:#000000;">.Net Framework 4.0</span></span></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"> <span style="font-size:9pt;color:#666666;font-family:Arial;">Every year the industry develops new technology and new trends. Now Microsoft is again come to provide next version of .net framework i.e. .Net Framework 4.0. As a result MS Visual Studio 2010 is just around the corner with the new innovation in application architecture, development, and deployment. So in this article I am describing some new features coming in the .Net Framework 4.0. Before describing new features of .Net Framework 4.0, I am giving a summary of some of the main functionality in each .net version.</span> </p>
<p class="MsoNormal" style="text-align:justify;margin:0;"> </p>
<p class="MsoNormal" style="text-align:justify;margin:0;"> </p>
<table class="MsoTableTheme" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width:1.45in;background-color:transparent;border:windowtext 1pt solid;padding:0 5.4pt;" width="139" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">.NET Framework 4.0</span></p>
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">(The Future Release)</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;border-left:#ece9d8;width:161.25pt;border-bottom:windowtext 1pt solid;background-color:transparent;padding:0 5.4pt;" colspan="3" width="215" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">PLINQ</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;border-left:#ece9d8;width:177.15pt;border-bottom:windowtext 1pt solid;background-color:transparent;padding:0 5.4pt;" colspan="3" width="236" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">TPL</span></p>
</td>
</tr>
<tr style="height:20.2pt;">
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:windowtext 1pt solid;width:1.45in;border-bottom:windowtext 1pt solid;height:20.2pt;background-color:transparent;padding:0 5.4pt;" width="139" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">.NET Framework 3.5</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:161.25pt;border-bottom:windowtext 1pt solid;height:20.2pt;background-color:transparent;padding:0 5.4pt;" colspan="3" width="215" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">LINQ</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:177.15pt;border-bottom:windowtext 1pt solid;height:20.2pt;background-color:transparent;padding:0 5.4pt;" colspan="3" width="236" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">ADO.NET Entity Framework</span></p>
</td>
</tr>
<tr style="height:17.5pt;">
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:windowtext 1pt solid;width:1.45in;border-bottom:windowtext 1pt solid;height:17.5pt;background-color:transparent;padding:0 5.4pt;" width="139" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">.NET Framework 3.0</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:72.7pt;border-bottom:windowtext 1pt solid;height:17.5pt;background-color:transparent;padding:0 5.4pt;" width="97" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">WPF</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:88.55pt;border-bottom:windowtext 1pt solid;height:17.5pt;background-color:transparent;padding:0 5.4pt;" colspan="2" width="118" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">WCF</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:88.55pt;border-bottom:windowtext 1pt solid;height:17.5pt;background-color:transparent;padding:0 5.4pt;" colspan="2" width="118" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">WF</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:88.6pt;border-bottom:windowtext 1pt solid;height:17.5pt;background-color:transparent;padding:0 5.4pt;" width="118" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">Card Space</span></p>
</td>
</tr>
<tr style="height:17.95pt;">
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:windowtext 1pt solid;width:1.45in;border-bottom:windowtext 1pt solid;height:17.95pt;background-color:transparent;padding:0 5.4pt;" rowspan="3" width="139" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">.NET Framework 2.0</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:117.1pt;border-bottom:windowtext 1pt solid;height:17.95pt;background-color:transparent;padding:0 5.4pt;" colspan="2" width="156" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">WinForms</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:117.05pt;border-bottom:windowtext 1pt solid;height:17.95pt;background-color:transparent;padding:0 5.4pt;" colspan="2" width="156" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0 0 0 35.9pt;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">ASP.NET</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:104.25pt;border-bottom:windowtext 1pt solid;height:17.95pt;background-color:transparent;padding:0 5.4pt;" colspan="2" width="139" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0 0 0 34.05pt;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">ADO.NET</span></p>
</td>
</tr>
<tr style="height:17.05pt;">
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:4.7in;border-bottom:windowtext 1pt solid;height:17.05pt;background-color:transparent;padding:0 5.4pt;" colspan="6" width="451" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">Base Class Library</span></p>
</td>
</tr>
<tr>
<td style="border-right:windowtext 1pt solid;border-top:#ece9d8;border-left:#ece9d8;width:4.7in;border-bottom:windowtext 1pt solid;background-color:transparent;padding:0 5.4pt;" colspan="6" width="451" valign="top">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:9pt;color:#666666;font-family:Arial;">CLR</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="text-align:justify;margin:0;"> </p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">So you have just seen the major change in each version on .Net Framework. Above figure defines the feature stack of the .Net Framework. </span><span style="font-size:9pt;color:#666666;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><strong><span style="font-size:9pt;color:#666666;font-family:Arial;">Following are new features provided by .NET Framework 4.0 –</span></strong><span style="font-size:10pt;"><span style="color:#000000;font-family:Times New Roman;"> </span></span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><strong><span style="font-size:10pt;font-family:Arial;">New Languages</span></strong><strong><span style="font-size:small;color:#000000;font-family:Times New Roman;"> </span></strong></li>
</ul>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">.NET 4.0 will include <a href="http://www.informit.com/guides/%3ca%20href="><span style="color:#666666;text-decoration:none;">IronPython</span></a>, <a href="http://www.ironruby.net/"><span style="color:#666666;text-decoration:none;">IronRuby</span></a>, and <a href="http://research.microsoft.com/fsharp/fsharp.aspx"><span style="color:#666666;text-decoration:none;">F#</span></a>, among others. The three named languages have been available in some form for a few years now, but it appears that with .NET 4.0 they become &#8220;official&#8221; in the same way as C#, Visual Basic .NET. Both IronPython and IronRuby leverage the Dynamic Language Runtime (DLR), a subsystem that supports dynamic languages on .NET. The DLR has been around for a couple of years now, but with .NET 4.0 becomes an integral part of the .NET runtime.</span><span style="font-size:9pt;color:#666666;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">In order to support the new languages, and to ensure language interoperability, the CLR team did make some changes. Two additions are particularly interesting to me: BigInteger and Tuple. Because these features are in the base class libraries, all .NET languages can use them</span><span style="font-size:10pt;"><span style="color:#000000;font-family:Times New Roman;"> </span></span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><strong><span style="font-size:10pt;font-family:Arial;">Threading improvements</span></strong><span style="font-size:10pt;"><span style="color:#000000;font-family:Times New Roman;"> </span></span></li>
</ul>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">Framework 4.0 includes the Task Parallel Library (TPL), a library of objects that make it easier to write code that takes advantage of multiple cores. Not only do TPL functions relieve you of the tedium involved with starting and managing threads, they also help you to structure your code to make the most of the computing resources available.</span><span style="font-size:9pt;color:#666666;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">During development and use of the TPL, the CLR team found a number of areas in which the .NET thread pool (the subsystem that the TPL depends on) was less than optimum. They have since improved the thread pool, giving a performance boost not only TPL programs, but to all programs that make use of .NET threading services. </span><span style="font-size:10pt;"><span style="color:#000000;font-family:Times New Roman;"> </span></span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><strong><span style="font-size:10pt;font-family:Arial;">Garbage Collector Improvements</span></strong><strong><span style="font-size:small;color:#000000;font-family:Times New Roman;"> </span></strong></li>
</ul>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">All in all, the .NET garbage collector is considered a good thing. However, it does have some drawbacks. In particular, it can severely impact performance in some cases.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">The server garbage collector in .NET 3.51 and earlier versions is optimized for higher throughput, but has to pause all threads when it does a full collection. The result is that processing comes to a halt whenever a full collection occurs. This can be very annoying.</span><span style="font-size:9pt;color:#666666;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">The pauses still occur in .NET 4.0, but the system will notify your program before a full collection starts, and notify it again when the garbage collector has finished with collection. In a multi-server environment, you can use this feature to direct traffic away from your server while it&#8217;s in the middle of a full collection. That helps with server farms, but doesn&#8217;t help with memory-intensive applications that are running on a single machine.</span><span style="font-size:9pt;color:#666666;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">The workstation garbage collector in 4.0 gets a new background collection feature, which results in fewer pauses and doesn&#8217;t require any changes to your code. Only very unusual circumstances will result in the long latency that you might have seen in versions 3.51 or earlier</span><strong><span style="font-size:small;color:#000000;font-family:Times New Roman;"> </span></strong></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><strong><span style="font-size:10pt;font-family:Arial;">PLINQ</span></strong><strong><span style="font-size:small;color:#000000;font-family:Times New Roman;"> </span></strong></li>
</ul>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">.Net Framework 3.5 introduced new concept i.e. LINQ(Language Integrated Queries). Microsoft original motivation behind LINQ was to address the impedance mismatch between programming languages and database</span><span style="font-size:9pt;color:#666666;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">Microsoft LINQ defines a set of proprietary query operators that can be used to query, project and filter data in <a title="Array" href="http://en.wikipedia.org/wiki/Array"><span style="color:#666666;text-decoration:none;">arrays</span></a>, enumerable <a title="Class (computer science)" href="http://en.wikipedia.org/wiki/Class_(computer_science)"><span style="color:#666666;text-decoration:none;">classes</span></a>, <a title="XML" href="http://en.wikipedia.org/wiki/XML"><span style="color:#666666;text-decoration:none;">XML</span></a> (XLINQ), <a title="Relational database" href="http://en.wikipedia.org/wiki/Relational_database"><span style="color:#666666;text-decoration:none;">relational database</span></a>, and third party data sources. While it allows any data source to be queried, it requires that the data be encapsulated as <a title="Object (computer science)" href="http://en.wikipedia.org/wiki/Object_(computer_science)"><span style="color:#666666;text-decoration:none;">objects</span></a>. So, if the data source does not natively store data as objects, the data must be <a title="Object-Relational mapping" href="http://en.wikipedia.org/wiki/Object-Relational_mapping"><span style="color:#666666;text-decoration:none;">mapped</span></a> to the object domain. Queries written using the query operators are executed either by the LINQ query processing engine or, via an extension mechanism, handed over to LINQ providers which either implement a separate query processing engine or translate to a different format to be executed on a separate data store (such as on a database server as <a title="SQL" href="http://en.wikipedia.org/wiki/SQL"><span style="color:#666666;text-decoration:none;">SQL</span></a> queries (DLINQ)). The results of a query are returned as a collection of in-memory objects that can be <a title="Enumeration" href="http://en.wikipedia.org/wiki/Enumeration"><span style="color:#666666;text-decoration:none;">enumerated</span></a> using a standard <a title="Iterator" href="http://en.wikipedia.org/wiki/Iterator"><span style="color:#666666;text-decoration:none;">iterator</span></a> function such as <a title="C Sharp (programming language)" href="http://en.wikipedia.org/wiki/C_Sharp_(programming_language)"><span style="color:#666666;text-decoration:none;">C#</span></a>&#8217;s <a title="Foreach" href="http://en.wikipedia.org/wiki/Foreach"><span style="color:#666666;text-decoration:none;">foreach</span></a>.</span><span style="font-size:9pt;color:#666666;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">Like all constructs in LINQ, PLINQ is based on extension methods, in this case the AsParallel method. Once you&#8217;ve built the expression tree representing the query, the AsParallel operation is added at the very end, which tells the &#8220;LINQ engine&#8221; to figure out parallel jobs and do all of the magic required to make the app benefit from multi-threaded execution. A conceptual example is shown below:</span><span style="font-size:9pt;color:#666666;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:9pt;color:#666666;font-family:Arial;">var result = (from p in db.Products join pd in xml.ProductDescriptions on p.ID equals pd.ID where p.Price &gt; 100 select new { p.Name, p.Price, pd.Description }).AsParallel();</span> </p>
Posted in .Net Framework 4.0 Tagged: .Net, .Net Framework 4.0, new .net relieases, new releases, Vinayhatwal <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vinayhatwal.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vinayhatwal.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vinayhatwal.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vinayhatwal.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vinayhatwal.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vinayhatwal.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vinayhatwal.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vinayhatwal.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vinayhatwal.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vinayhatwal.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vinayhatwal.wordpress.com&blog=4320862&post=132&subd=vinayhatwal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://vinayhatwal.wordpress.com/2009/04/17/net-framework-40/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/30134ff30180ffc15825d15c005dbce5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vinayhatwal</media:title>
		</media:content>
	</item>
	</channel>
</rss>