tag:blogger.com,1999:blog-74434964942767299562024-03-13T17:00:59.739+05:30Develop On .NetArticles, Snippets, Code Samples for .Net Framework (C#, VB.Net)Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.comBlogger134125tag:blogger.com,1999:blog-7443496494276729956.post-45908248884488944022014-07-09T12:21:00.000+05:302014-07-11T12:23:51.483+05:30Visual Studio "14" CTP 2 (version 14.0.21901.1.DP) details <p>This Visual Studio "14" version 14.0.21901.1.DP CTP release includes the following products: <ul> <li>Microsoft Visual Studio Professional "14" CTP (<a href="http://go.microsoft.com/fwlink/?LinkId=401041">web</a> | <a href="http://go.microsoft.com/fwlink/?LinkId=401042">iso</a>) <li>Remote Tools for Visual Studio "14" CTP (<a href="http://go.microsoft.com/fwlink/?LinkId=401046">x86</a> | <a href="http://go.microsoft.com/fwlink/?LinkId=401045">x64</a> | <a href="http://go.microsoft.com/fwlink/?LinkId=401044">arm</a>) <li>Microsoft Visual Studio "14" SDK CTP (<a href="http://go.microsoft.com/fwlink/?LinkId=401043">exe</a>)</li></ul> <p>The following technology improvements have been made in this release. <p> </p> <a name='more'></a> <h1>Technology improvements</h1> <p><b>ASP.NET and web development</b> <ul> <li><b>ASP.NET vNext</b>: This release of Visual Studio supports creating and developing ASP.NET vNext applications. ASP.NET vNext is a lean and composable .NET stack for building modern web applications for both cloud and on-premises servers. It includes the following features: <ul> <li>ASP.NET MVC and Web API have been unified into a single programming model. <li>A no-compile developer experience. <li>Environment-based configuration for a seamless transition to the cloud. <li>Dependency injection out-of-the-box. <li>New cloud-optimized runtime supports true side-by-side versioning. <li>NuGet everything, even the runtime itself. <li>Run in IIS, or self-hosted in your own process. <li>All open source through the <a href="http://www.dotnetfoundation.org/">.NET Foundation</a>, and takes contributions.</li></ul>For more information about ASP.NET vNext in Visual Studio, go to the <a href="http://go.microsoft.com/fwlink/?LinkId=400692">ASP.NET vNext </a>website. <li>This release of Visual Studio also includes all the current ASP.NET and web development features that are released as parts of Visual Studio 2013 Update 2. Learn more <a href="http://go.microsoft.com/fwlink/?LinkId=400693">here</a>.</li></ul> <h2><b>Visual C++</b> </h2> <ul> <li><b>Find in Files</b> has been updated to enable subsequent results to be added to previous results ("append mode"). Results can now also be edited or deleted. <li><b>Implement Pure Virtuals</b> enables a user to quickly create definitions for a class that inherits constructs (such as abstract class, struct) containing pure virtuals. Both multiple and recursive inheritances are supported. Activate the feature through right-clicking a class definition (implement all pure virtuals) or an inherited base construct (implement pure virtuals in that base only). Double-slash comments (//) are used to delimit groups of functions implemented from individual bases. <li><b>Move Function Definition</b> enables a user to move the body of a function definition to source or header/in-class definition. It must be activated through the right-click context menu on a function's signature.</li></ul> <h2><b>Visual Studio IDE</b> </h2> <ul> <li>Menu Bars will show in Title Case style instead of All Caps style. <li>Support for touch in the Visual Studio Editor is now available. This includes touch for scrolling, pinch-to-zoom, tap-and-hold for context menus, double-tap for word selection, and line selection by tapping in the margin. <li>The Configuration and Platform dropdown values for the VC Property Page dialog have been changed to remember the last user selection when closed and reopened. <li>Users can save custom layouts by clicking <b>Save Window Layout</b> from the <b>Window </b>menu. Users can apply a custom layout by clicking <b>Apply Window Layout</b> from the <b>Window </b>menu, and users can delete, rename, or reorder layouts by clicking <b>Manage Window Layout</b> from the <b>Window </b>menu. The first nine layouts also have keyboard shortcuts from Ctrl+Alt+1 to Ctrl+Alt+9. <li>In this CTP, we are rounding out Light Bulbs that are the quick and easy way to obtain helpful fixes for known issues in your code inside the Visual Studio Editor. If you have an issue in your code, placing your editor caret on the line where the issue is shown or hovering over the issue will present a light bulb that shows helpful actions you can take to resolve the problem together with a preview of the results of each action. <br>This feature is publicly extensible, so Visual Studio extenders can provide their own suggested actions. <li>After you apply this CTP, you can create an empty C# and JavaScript shared project from the <b>File </b>> <b>New Project </b>menu. Phone Projects, Store Projects, and Universal Projects that are written in JavaScript and C# can consume one or many of these shared projects. Shared project references can be managed (added or removed) by using the Reference Manager. Shared Project referencing is also available for some classic desktop C# projects. The project types and languages that support Shared Projects will continue to expand in future CTPs. <li>In this CTP, Visual Studio now supports high-resolution icons in the Error List.</li></ul> <h1>Known issues</h1> <h2>Installation</h2> <h3><b>Installing Visual Studio "14" CTP side-by-side with Visual Studio 2013</b> </h3> <ul></ul> <ul> <li>There are known issues when you install Visual Studio "14" CTP 14.0.21901.1 DP on the same computer as Visual Studio 2013. While we expect that an uninstallation of Visual Studio "14" and then a repair of Visual Studio 2013 should fix these issues, our safest recommendation is to install Visual Studio "14" in a virtual machine, a virtual hard disk (VHD), a fresh computer, or another non-production test-only computer that does not have Visual Studio 2013 on it. These Visual Studio side-by-side issues are expected to be fixed soon.</li></ul> <h3><b>Client Platform</b> </h3> <ul> <li>Uninstalling Visual Studio "14" CTP removes TypeScript from Visual Studio 2013.</li></ul> <h3><b>Upgrading</b> </h3> <ul> <li>Because of a known issue, when you install Visual Studio "14" CTP 14.0.21901.1 DP on the same computer that has Visual Studio "14" CTP 14.0.21730.1 DP installed, your Windows Store projects may fail to launch. <br>To work around this issue, repair the installation of Visual Studio "14" CTP 14.0.21901.1 DP after the upgrade. To avoid this issue, our safest recommendation is to uninstall Visual Studio "14" CTP 14.0.21730.1 DP before you install the new CTP version. This build-to-build upgrade issue has been fixed for future upgrades from Visual Studio "14" 14.0.21901.1 DP.</li></ul> <h3><b>Visual C++</b> </h3> <ul> <li>The native "Memory Usage" tool does not work when targeting Win32 (x86). Targeting x64 works as expected.</li></ul> <h1>More information</h1> <h2>Requirements</h2> <h3>Software requirements</h3>On Windows 8.1 and Windows Server 2012 R2, <a href="http://support.microsoft.com/kb/2919355">Update 2919355</a> (also available through Windows Update) is required for Visual Studio "14" 14.0.21901.1 DP to install successfully. <h3>Restart requirement</h3>You may have to restart your computer after you install this package. <h3>Supported architectures</h3> <ul> <li>32-bit (x86) <li>64-bit (x64) (WOW) <li>ARM</li></ul> <h3>Hardware requirements</h3> <ul> <li>1.6 gigahertz (GHz) or faster processor <li>1 gigabyte (GB) of RAM (1.5 GB if you are running in a virtual machine) <li>2 GB of available hard disk space <li>5,400 RPM hard disk drive <li>DirectX 9-capable video card that is running at 1024 × 768 or higher resolution</li></ul> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-2031501160287682972014-07-03T12:27:00.000+05:302014-07-11T12:35:10.024+05:30Visual Studio 2013 Update 3 Release Candidate is available<p>Microsoft released Visual Studio 2013 Update 3 Release Candidate (RC) on July 2, 2014. <h2>Download links</h2> <p><span style="white-space: normal; word-spacing: 0px; text-transform: none; color: rgb(51,51,51); text-align: left; font: 13px 'Segoe UI', arial, verdana, tahoma, sans-serif; letter-spacing: normal; background-color: rgb(255,255,255); text-indent: 0px; -webkit-text-stroke-width: 0px">Visual Studio 2013 updates are cumulative releases. The following download links always point you to the latest update:</span> <ul style="white-space: normal; word-spacing: 0px; text-transform: none; color: rgb(51,51,51); padding-bottom: 0px; text-align: left; padding-top: 0px; font: 13px 'Segoe UI', arial, verdana, tahoma, sans-serif; padding-left: 0px; margin: 16px 0px 16px 40px; letter-spacing: normal; padding-right: 0px; background-color: rgb(255,255,255); text-indent: 0px; -webkit-text-stroke-width: 0px"> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=397827" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=397827" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=397827">Download the latest Visual Studio 2013 update package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><span class="ll"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402290" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402290" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402290">Download the latest Release Management for Visual Studio 2013 package now</a></span></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402294" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402294" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402294">Download the latest Team Foundation Server 2013 package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402295" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402295" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402295">Download the latest Team Foundation Server Express 2013 package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><span class="ll"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402477" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402477" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402477">Download the latest IntelliTrace Collector for Visual Studio package now</a></span></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402292" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402292" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402292">Download the latest Agents for Visual Studio 2013 package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402293" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402293" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402293">Download the latest Agents for Visual 2013 Language Pack package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402291" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402291" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402291">Download the latest Remote Tools for Visual Studio 2013 package now</a></li></ul> <p><span style="white-space: normal; word-spacing: 0px; text-transform: none; color: rgb(51,51,51); text-align: left; font: 13px 'Segoe UI', arial, verdana, tahoma, sans-serif; letter-spacing: normal; background-color: rgb(255,255,255); text-indent: 0px; -webkit-text-stroke-width: 0px">If you do not have Visual Studio 2013 (original release version) and run one of these downloads, both Visual Studio 2013 and Update 3 RC are installed.</span> <ul style="white-space: normal; word-spacing: 0px; text-transform: none; color: rgb(51,51,51); padding-bottom: 0px; text-align: left; padding-top: 0px; font: 13px 'Segoe UI', arial, verdana, tahoma, sans-serif; padding-left: 0px; margin: 16px 0px 16px 40px; letter-spacing: normal; padding-right: 0px; background-color: rgb(255,255,255); text-indent: 0px; -webkit-text-stroke-width: 0px"> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402301" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402301" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402301">Download the latest Visual Studio Premium 2013 package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402300" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402300" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402300">Download the latest Visual Studio Professional 2013 package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402299" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402299" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402299">Download the latest Visual Studio Ultimate 2013 package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402296" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402296" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402296">Download the latest Visual Studio Express 2013 for Windows package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402298" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402298" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402298">Download the latest Visual Studio Express 2013 for Web package now</a></li> <li style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><a style="text-decoration: none; color: rgb(0,114,198)" href="http://go.microsoft.com/fwlink/?LinkId=402297" ms.uri_target="self" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=402297" ms.cmptyp="link" ms.cmpnm="moreinformation" bi:title="http://go.microsoft.com/fwlink/?LinkId=402297">Download the latest Visual Studio Express 2013 for Desktop package now</a></li></ul> <h2>KB Article</h2> <p style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; padding-right: 0px"><font face="Segoe UI"><a href="http://support.microsoft.com/kb/2933779">KB2933779</a></font></p> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-82611713131419263132014-06-18T17:54:00.001+05:302014-07-11T12:01:34.203+05:30Image Processing in .NET<p>.Net provides the core for Faster Image Processing using System.Drawing assembly and System.Drawing namespace.</p> <p> </p> <p>Basic About Image</p> <p>Raster Images are consists of Rows and Columns of Pixels. </p> <p>A Pixel consists of bytes of values for Pixel</p> <p>A pixel with 4 bytes usually consists of Alpha, Red, Green and Blue values</p> <p>A pixel with 3 bytes usually consists of Red, Green and Blue values</p> <p>A pixel with less than 3 bytes needs further processing like expansion or look up to built 3/4 byte Pixel</p> <p> </p> <h2>Steps for Image Processing</h2> <a name='more'></a> <h3>Load the Image file into Memory</h3> <p>System.Drawing.Image and System.Drawing.Bitmap classes can be used for loading Images into Memory</p> <blockquote> <p>System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(filename);</p></blockquote> <h3>Getting Pixel Data</h3> <p>BitmapData helps to get the pixel data to Memory and we can use Marshal helper class to load the pixel data into byte array.</p> <blockquote> <p>var bitmapData = bmp.<strong>LockBits</strong>(<br> new Rectangle(0, 0, bmp.Width, bmp.Height), // Take all the bytes<br> System.Drawing.Imaging.ImageLockMode.ReadWrite,<br> System.Drawing.Imaging.PixelFormat.Format24bppRgb); // 3 byte Colors</p> <p>// Copy Pixel data to Byte Array for Faster processing<br></p> <p>var pixelBytes = new byte[bitmapData.Height * bitmapData.Stride]; // Total size to read the data<br></p> <p>System.Runtime.InteropServices.<strong>Marshal.Copy</strong>(bitmapData.Scan0, pixelBytes, 0, pixelBytes.Length);</p></blockquote> <p> </p> <h3>Do the manipulation on the Byte Array</h3> <p>There are so many concepts, calculations and algorithms available for doing the Image processing like color to gray scale conversion, blurring, sharpening etc. You can apply one or more on the entire image or a portion of an image.</p> <h3>Save the changes back to Bitmap</h3> <p>It is just the reverse process of the getting pixel data</p> <blockquote> <p>System.Runtime.InteropServices.Marshal.Copy(pixelBytes, 0, bitmapData.Scan0, pixelBytes.Length);<br>bmp.UnlockBits(bitmapData);</p></blockquote> <p>Example</p> <blockquote> <p>public static void ToGrayScale(string filename, string newfilename) {<br> System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(filename);<br> ToGrayScale(bmp);<br> bmp.Save(newfilename);<br>}</p> <p>public static void ToGrayScale(System.Drawing.Bitmap bmp) {<br> var bitmapData = bmp.LockBits(<br> new Rectangle(0, 0, bmp.Width, bmp.Height), // Take all the bytes<br> System.Drawing.Imaging.ImageLockMode.ReadWrite,<br> System.Drawing.Imaging.PixelFormat.Format24bppRgb); // 3 byte Colors</p> <p> // Copy Pixel data to Byte Array for Faster processing<br> var pixelBytes = new byte[bitmapData.Height * bitmapData.Stride]; // Total size to read the data<br> System.Runtime.InteropServices.Marshal.Copy(bitmapData.Scan0, pixelBytes, 0, pixelBytes.Length);<br> for (var y = 0; y < bmp.Height; y++) {<br> var st = y * bitmapData.Stride;<br> for (var x = 0; x < bmp.Width; x++) {<br> var p = st + x * 3;<br> var r = pixelBytes[p];<br> var g = pixelBytes[p + 1];<br> var b = pixelBytes[p + 2];</p> <p> // Do your processing here<br> var n = (byte)(r * .22 + g * .66 + b * .12);</p> <p> pixelBytes[p] = r;<br> pixelBytes[p + 1] = b;<br> pixelBytes[p + 2] = g;<br> }<br> }</p> <p> // Update it back to bitmap data<br> System.Runtime.InteropServices.Marshal.Copy(pixelBytes, 0, bitmapData.Scan0, pixelBytes.Length);<br> bmp.UnlockBits(bitmapData);<br>}</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-8687258499327707342014-06-05T17:15:00.001+05:302014-06-05T17:15:31.514+05:30Write DataTable as CSV Text File Using C#<p>Find below the code that write data from DataTable as a CSV text file </p> <p> <p>Using Section <blockquote> <p>using System;<br>using System.Collections.Generic;<br>using System.Data;<br>using System.IO;<br>using System.Linq;</p></blockquote> <p> <p>Methods for Writing data to CSV <blockquote> <p>public static DataTable WriteCSV(String filename, DataTable table) {<br> var csvData = new DataTable();<br> StreamWriter csvFile = null;<br> try {<br> csvFile = new StreamWriter(filename);</p> <p> // Write header<br> csvFile.WriteLine(<br> String.Join(",",<br> from DataColumn dc in table.Columns<br> select dc.ColumnName)<br> );</p> <p> foreach (DataRow dr in table.Rows) {<br> csvFile.WriteLine(<br> String.Join(",",<br> from DataColumn dc in table.Columns<br> select dr[dc])<br> );<br> }<br> }<br> finally {<br> if (csvFile != null)<br> csvFile.Close();<br> }</p> <p> return csvData;<br>}<br>private static String CsvValue(Object obj) {<br> if (obj == null)<br> return "";<br> else if (obj.GetType() == typeof(String) || obj.GetType() == typeof(DateTime))<br> return "\"" + obj.ToString() + "\"";<br> else<br> return obj.ToString();<br>}</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-68536041839240899052014-06-05T16:57:00.001+05:302014-06-05T16:57:09.221+05:30Parse CSV Text File to Data Table Using C#<p>Find below a code that parses the CSV text file and give you the records as a Data Table</p> <p> </p> <p>Using Section </p> <blockquote> <p>using System;<br>using System.Collections.Generic;<br>using System.Data;<br>using System.IO;<br>using System.Linq;</p></blockquote> <p> </p> <p>Methods for Parsing CSV</p> <blockquote> <p>public static DataTable ReadCSV(String filename) {<br> var csvData = new DataTable();<br> StreamReader csvFile = null;<br> try {<br> csvFile = new StreamReader(filename);</p> <p> // Parse header<br> var headerLine = csvFile.ReadLine();<br> var columns = ParseCSVLine(headerLine);<br> columns.ForEach(c => csvData.Columns.Add(c, typeof(String)));</p> <p> var line = "";<br> while ((line = csvFile.ReadLine()) != null) {<br> if (line == "") // Skip empty line<br> continue;<br> csvData.Rows.Add(<br> ParseCSVLine(line) // Parse CSV Line<br> .OfType<Object>() // Convert it to Object List<br> .ToArray() // Convert it to Object Array, so that it can be added to DataTable<br> ); // Add Csv Record to Data Table<br> }<br> }<br> finally {<br> if (csvFile != null)<br> csvFile.Close();<br> }</p> <p> return csvData;<br>}</p> <p>private static List<String> ParseCSVLine(String line) {<br> var quoteStarted = false;<br> var values = new List<String>();<br> var marker = 0;<br> var currPos = 0;<br> var prevChar = '\0';</p> <p> foreach (Char currChar in line) {<br> if (currChar == ',' && !quoteStarted) {<br> AddValue(line, marker, currPos - marker, values);<br> marker = currPos + 1;<br> quoteStarted = false;<br> }<br> else if (currChar == '\"')<br> quoteStarted = (prevChar == '\"' && !quoteStarted) <br> ? true <br> : !quoteStarted;<br> currPos++;<br> prevChar = currChar;<br> }<br> AddValue(line, marker, currPos - marker, values);<br> return values;<br>}</p> <p>private static void AddValue(String line, Int32 start, Int32 count, List<String> values) {<br> var val = line.Substring(start, count);<br> if (val == "")<br> values.Add("");<br> else if (val[0] == '\"' && val[val.Length - 1] == '\"')<br> values.Add(val.Trim('\"'));<br> else<br> values.Add(val.Trim());<br>}</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com1tag:blogger.com,1999:blog-7443496494276729956.post-57100011115154779222014-06-04T12:30:00.002+05:302014-06-04T12:30:15.549+05:30Visual Studio 14 CTP available for DownloadDetails: <a href="http://blogs.msdn.com/b/visualstudio/archive/2014/06/03/visual-studio-14-ctp-now-available.aspx" target="_blank">Visual Studio “14” CTP now available</a><br />
Download links: <a href="http://www.visualstudio.com/en-us/downloads/visual-studio-14-ctp-vs" target="_blank">Visual Studio "14" CTPs</a><br />
<br />
<h3>
<b style="background-color: white; color: #333333; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 16px;">Technology improvements (</b><span style="background-color: white;">KB-2967191- Visual Studio "14" CTP release notes)</span></h3>
<div style="background-color: white; color: #333333; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 16px; margin: 15px 0px; padding: 0px;">
</div>
<h4>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="asp.net and web development" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="background-color: white; color: #333333; cursor: pointer; display: block; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 13px; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">ASP.NET and web development</b></h4>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>ASP.NET vNext</b>: This release of Visual Studio supports creating and developing ASP.NET vNext applications. ASP.NET vNext is a lean and composable .NET stack for building modern web applications for both cloud and on-premises servers. It includes the following features:</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">ASP.NET MVC and Web API have been unified into a single programming model. </li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">A no-compile developer experience.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Dependency injection out-of-the-box.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Side-by-side: Deploy the runtime and framework by using your application.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">NuGet everything, even the runtime itself.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">All open source is on the .NET Foundation and takes contributions.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">For more information about ASP.NET vNext in Visual Studio, go to the <a bi:title="http://go.microsoft.com/fwlink/?LinkId=400692" href="http://go.microsoft.com/fwlink/?LinkId=400692" ms.cmpnm="summary" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=400692" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">ASP.NET vNext </a>website.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">This release of Visual Studio also includes all the current ASP.NET and web development features that are released as parts of Visual Studio 2013 Update 2. Learn more <a bi:title="http://go.microsoft.com/fwlink/?LinkId=400693" href="http://go.microsoft.com/fwlink/?LinkId=400693" ms.cmpnm="summary" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=400693" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">here</a>.</li>
</ul>
<h4>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="managed languages" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="background-color: white; color: #333333; cursor: pointer; display: block; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 13px; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Managed languages</b></h4>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">The core IDE and editing experiences for C# and Visual Basic have been replaced with new experiences that are built on the .NET Compiler Platform "Roslyn." Generally, the experience should be unchanged. However, there are numerous small improvements.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">C# refactoring support has been completely revamped. There are two new core refactorings: Inline Temporary Variable and Introduce Explaining Variable. Additionally, refactoring support for Visual Basic has been added for the first time.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">You can use specific code-aware guidance for the Microsoft platforms and NuGet packages that you're targeting to obtain live code analysis and automatic fixes as you type.</li>
</ul>
<h4>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="visual c++" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="background-color: white; color: #333333; cursor: pointer; display: block; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 13px; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Visual C++</b></h4>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Generalized lambda capture</b>: You can assign the result of evaluating an expression to a variable in the capture clause of a lambda. This allows an instance of a move-only type to be captured by value.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>User-defined literals in the language and standard library</b>: You can append numeric and string literals with meaningful suffixes to give them suitable semantics. The compiler transforms these suffixes into calls to appropriate UDL-operator functions. The <chrono>, <string>, and <complex> headers now provide literal operators for convenience. For example, "1729ms" means <b>std::chrono::milliseconds(1729)</b>, "meow"s means<b>std::string("meow")</b>, and 3.14i means <b>std::complex<double>(0.0, 3.14)</b>.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Completed noexcept:</b> You can check whether an expression will throw an exception by using the <b>noexcept</b>operator. For example, <b>noexcept</b>(<b>func</b>()) will return "true" if <b>func</b> was specified as <b>noexcept</b>.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Inline namespaces:</b> You can specify a nested namespace as "inline" to make its contents accessed from its parent namespace.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Thread-safe "magic" statics:</b> Static local variables are initialized in a thread-safe way, removing the need for manual synchronization. Be aware that usage of these variables other than initialization is still not protected. Thread safety can be disabled by using <b>/Zc:threadSafeInit-</b> to avoid a dependency on the CRT.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Unrestricted unions</b>: You can define unions that contain types with non-trivial constructors. Constructors for such unions have to be manually defined.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Finally, all new C++ 11 and C++ 14 language features that are released in the November 2013 compiler CTP for Visual Studio 2013 are also included in this preview. For more information about these features, read <a bi:title="http://blogs.msdn.com/b/vcblog/archive/2013/11/18/announcing-the-visual-c-compiler-november-2013-ctp.aspx" href="http://blogs.msdn.com/b/vcblog/archive/2013/11/18/announcing-the-visual-c-compiler-november-2013-ctp.aspx" ms.cmpnm="summary" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://blogs.msdn.com/b/vcblog/archive/2013/11/18/announcing-the-visual-c-compiler-november-2013-ctp.aspx" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">this</a>announcement. Briefly, these include the following:</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>__func__</b>, <b>extended sizeof</b>, implicit move generation, <b>ref-qualifiers </b>("&" and "&&" for member functions),<b>alignof </b>and <b>alignas</b>, and inheriting constructors.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>auto </b>function return type <b>deduction</b>, <b>decltype(auto)</b>, and generic lambdas with a limitation of not using [=]/[&] default capture together with generic lambdas. This will be enabled also for generic lambdas in a future release.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Resumable </b>functions and <b>await</b><b></b>proposed for the C++ Concurrency Technical Specification.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Null forward iterators: </b>The Standard Library's forward iterators (and stronger) now guarantee that value-initialized iterators compare as equal. This makes it possible to pass an empty range without a parent container. Be aware that generally, value-initialized iterators still cannot be compared to iterators from a parent container.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>quoted():</b> These manipulators let iostreams preserve strings that contain spaces.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Heterogeneous associative lookup:</b> When it is Enabled by special comparators (such as the <b>less<> </b>and <b>greater<></b>transparent operator functors), the ordered associative containers gain templated lookup functions. This lets them work with objects that are comparable to keys, without actually constructing keys.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>integer_sequence:</b> Compile-time integer sequences are now supported to make template <b>metaprogramming</b>easier.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>exchange():</b> This small utility function makes it convenient to assign a new value to an object and retrieve the old value.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>get<T>():</b> This lets a tuple element be accessed by its type (when unique) instead of by its index.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Dual-range equal(), is_permutation(), mismatch():</b> C++98's "range-and-a-half" algorithms that are taking (first1, last1, first2) are difficult to use correctly. While they are still provided, C++14 has added overloads taking (first1, last1, first2, last2) which are significantly easier and safer to use.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>tuple_element_t:</b> This alias template is added for convenience and consistency with the type traits alias templates.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Filesystem "V3" Technical Specification (TS):</b> The interface and implementation of <filesystem> are overhauled to follow this TS, which is likely to be incorporated into C++17.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Library Issues:</b> 24 resolutions have been implemented (for example, <b>is_final</b>, <b>make_reverse_iterator()</b>), not including the resolutions that were already implemented in Visual C++ 2013. Notice that a library issue is a bug report for the Standard. It can be resolved by fixing a specification problem or even adding a small feature.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b><chrono> fixes: </b>The clocks are rewritten to be conformant and precise.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Minimal allocator fixes:</b> Several library components (including <b>basic_string</b> and <b>std::function</b>) did not work with user-defined allocators implementing C++11's minimal allocator interface, instead requiring C++03's verbose allocator interface. All occurrences of this problem are fixed.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>C99 library features</b>: Most of the remaining C99 library features are implemented.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>snprintf </b>is implemented.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">The <b>printf </b>and <b>scanf </b>families of functions now support the new C99 format string improvements.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">The <b>strtod </b>and <b>scanf </b>families of functions now support <b>hexadecimal floating-point</b>.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Library conformance is better improved by software updates and adjustments.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>__restrict</b>: The <b>__restrict</b> keyword is now supported on reference types in addition to pointer types.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Improved diagnostics:</b> The compiler will now emit warnings about suspicious code that previously would not have resulted in warnings. For example, shadowed variables will now cause warnings. Warnings have also been made clearer.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>The /Wv flag</b>: You can use <b>/Wv:XX.YY.ZZZZ</b> to disable warnings that are introduced after compiler version XX.YY.ZZZZ. Notice that the emitted warnings may still differ from those emitted by the specified version.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Compiler software updates</b>: We have fixed more than 400 bugs in the compiler. 179 of these were submitted by users through Microsoft Connect.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Refactored C Runtime (CRT): </b>This CTP contains the first preview of the substantially refactored CRT.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">msvcr140.dll no longer exists. It is replaced by a trio of DLLs: vcruntime140.dll, appcrt140.dll, and desktopcrt140.dll.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>stdio performance</b>: Many performance improvements are made in the <b>stdio </b>library, notably in the <b>sprintf </b>and<b>sscanf </b>families of functions.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Object file size reductions:</b> Working together with compiler fixes, the STL's headers are changed to significantly reduce the sizes of object files and static libraries (that is after compilation but before linking. The sizes of linked EXEs/DLLs are unaffected). For example, when you compile a source file that includes all C and C++ Standard Library headers and does nothing else with them, for x86 with /MD /O2, Visual C++ 2013 generated a 731 KB object file. This is improved to be less than 1 KB.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Debug checking fixes:</b> The STL's debug checks rejected null pointers that are passed as iterators, even when the Standard guaranteed that they should work (for example, merging two [null, null) ranges to a null output). Every algorithm is inspected and fixed.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Create declaration or definition</b>: You can quickly create a function’s declaration or definition in relation to its neighbors. To do this, right-click the declaration or definition, or use <b>SmartTags</b>.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Debugger visualizers: </b>Natvis debugger visualization files can be added to a Visual C++ project for easy management and source control integration. Natvis files that are added to a project will take evaluation precedence over visualizers outside the project.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Native memory diagnostics</b>:</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">You can start a memory diagnostic session (<b>Alt</b>+<b>F2</b>) that monitors the live memory usage of your native application. This supports Windows Desktop.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">You can capture heap snapshots of the running process in memory to see the types and instances for native allocations.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">You can view the difference in memory allocations between two memory snapshots.</li>
</ul>
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">You can dive into the memory contents of a process snapshot by using the debugger for deeper analysis of the heap.</li>
</ul>
<br />
<br style="background-color: white; color: #333333; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 13px;" />Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-39048528433429481162014-05-14T17:37:00.003+05:302014-05-14T17:37:39.430+05:30Microsoft Visual Studio 2013 Update 2 Available for downloadDownload links available<br />
<a href="http://www.visualstudio.com/en-us/downloads/download-visual-studio-vs#DownloadFamilies_5">http://www.visualstudio.com/en-us/downloads/download-visual-studio-vs#DownloadFamilies_5</a><br />
<br />
<h2 class="subTitle kb_tabs_toggle_closed" id="tocHeadRef" ms.track="false" style="background-color: #d1d3d4; color: #333333; cursor: pointer; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 20px; margin: 0px 0px 5px; overflow: hidden; padding: 0px; position: relative; width: 784px;" translate="false">
<span style="float: left; font-size: 16px; font-weight: lighter; padding: 10px 0px 10px 10px; width: 732px;">New technology improvements and fixed issues in Visual Studio 2013 Update 2</span></h2>
<div class="sbody" id="MT5" style="background-color: white; color: #333333; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 13px; margin: 12px 0px 12px 40px; padding: 0px;">
<h3 id="tocHeadRef" style="font-size: 20px; font-weight: lighter; margin: 15px 0px; padding: 0px;">
Technology improvements</h3>
<span id="MT6"><a href="https://www.blogger.com/null" id="newtech" ms.uri_target="self" style="color: #0072c6;"></a></span>The following technology improvements have been made in this release.<br /><br /><b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="asp.net and web tools 2013.2" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">ASP.NET and Web Tools 2013.2</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;"><b>ASP.NET Project Templates</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Updates to ASP.NET Project templates to support Account confirmation and Password Reset.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Support for On-Premises Organization Accounts in ASP.NET Web API</li>
</ul>
<br /><b>Visual Studio Web Editor Enhancements</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">New JSON editor</li>
<li style="margin: 0px; padding: 0px; position: inherit;">New Sass editor (.scss)</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Implement URL picker for HTML/CSS</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Updates to LESS editor by adding more features</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Update KO Intellisense in the HTML editor</li>
</ul>
<br /><b>Browser Link</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Browser Link now supports HTTPS connections and will list that in Dashboard with other connections as long as the certificate is trusted by browser.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Better source mapping</li>
</ul>
<br /><b>Windows Azure Web Sites Support in Visual Studio</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Support Azure sign in</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Remote debugging for Windows Azure Web Sites (WAWS)</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Remote view</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Support Azure Web Sites creation</li>
</ul>
<br /><b>Web Publish Enhancements</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Improve User experience for publishing</li>
</ul>
<br /><b>ASP.NET Scaffolding</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">If your model is using <b>Enums</b>, then the MVC Scaffolder will generate dropdown for Enum. This uses the Enum helpers in MVC.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Updated the <b>EditorFor </b>templates in MVC Scaffolding so they use the Bootstrap classes.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">MVC and Web API Scaffolders will add 5.1 packages for MVC and Web API.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Added Scaffolding Extensibility layer to support third-party custom Scaffolders.</li>
</ul>
<br /><b>ASP.NET Web Forms</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">The Web Forms templates now show how to do Account Confirmation and Password Reset for ASP.NET Identity.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Entity Framework Data Source and Dynamic Data Provider for Entity Framework 6. For more details please see the following MSDN blog:<br /><div class="indent" style="margin: 0px; padding: 0px 20px 10px;">
<span class="ll"><a bi:title="http://blogs.msdn.com/b/webdev/archive/2014/01/30/announcing-preview-of-dynamic-data-provider-and-entitydatasource-control-for-entity-framework-6.aspx" href="http://blogs.msdn.com/b/webdev/archive/2014/01/30/announcing-preview-of-dynamic-data-provider-and-entitydatasource-control-for-entity-framework-6.aspx" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://blogs.msdn.com/b/webdev/archive/2014/01/30/announcing-preview-of-dynamic-data-provider-and-entitydatasource-control-for-entity-framework-6.aspx" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Dynamic Data provider and EntityDataSource control for Entity Framework 6</a></span></div>
</li>
</ul>
<br /><b>ASP.NET MVC 5.1</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#AttributeRouting" href="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#AttributeRouting" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#attributerouting" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Attribute routing improvements</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#Bootstrap" href="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#Bootstrap" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#bootstrap" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Bootstrap support for editor templates</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#Enum" href="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#Enum" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#enum" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Enum support in views</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#Unobtrusive" href="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#Unobtrusive" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#unobtrusive" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Unobtrusive validation for MinLength/MaxLength Attributes</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#thisContext" href="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#thisContext" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/mvc/overview/releases/mvc51-release-notes#thiscontext" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Supporting the 'this' context in Unobtrusive Ajax</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;">Various <a bi:title="https://aspnetwebstack.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=v5.1%20Preview%7cv5.1%20RTM&assignedTo=All&component=MVC&sortField=AssignedTo&sortDirection=Ascending&page=0&reasonClosed=Fixed" href="https://aspnetwebstack.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=v5.1%20Preview%7cv5.1%20RTM&assignedTo=All&component=MVC&sortField=AssignedTo&sortDirection=Ascending&page=0&reasonClosed=Fixed" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="https://aspnetwebstack.codeplex.com/workitem/list/advanced?keyword=&status=closed&type=all&priority=all&release=v5.1%20preview%7cv5.1%20rtm&assignedto=all&component=mvc&sortfield=assignedto&sortdirection=ascending&page=0&reasonclosed=fixed" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">bug fixes</a></li>
</ul>
<br /><b>ASP.NET Web API 2.1</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#global-error" href="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#global-error" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#global-error" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Global error handling</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#attribute-routing" href="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#attribute-routing" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#attribute-routing" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Attribute routing improvements</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#help-page" href="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#help-page" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#help-page" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Help Page improvements</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#ignoreroute" href="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#ignoreroute" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#ignoreroute" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">IgnoreRoute support</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#bson" href="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#bson" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#bson" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">BSON media-type formatter</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#async-filters" href="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#async-filters" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#async-filters" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Better support for async filters</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><a bi:title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#query-parsing" href="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#query-parsing" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#query-parsing" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Query parsing for the client formatting library</a></li>
<li style="margin: 0px; padding: 0px; position: inherit;">Various <a bi:title="https://aspnetwebstack.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=v5.1%20Preview%7cv5.1%20RTM&assignedTo=All&component=Web%20API%7cWeb%20API%20OData&sortField=AssignedTo&sortDirection=Ascending&page=0&reasonClosed=Fixed" href="https://aspnetwebstack.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=v5.1%20Preview%7cv5.1%20RTM&assignedTo=All&component=Web%20API%7cWeb%20API%20OData&sortField=AssignedTo&sortDirection=Ascending&page=0&reasonClosed=Fixed" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="https://aspnetwebstack.codeplex.com/workitem/list/advanced?keyword=&status=closed&type=all&priority=all&release=v5.1%20preview%7cv5.1%20rtm&assignedto=all&component=web%20api%7cweb%20api%20odata&sortfield=assignedto&sortdirection=ascending&page=0&reasonclosed=fixed" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">bug fixes</a></li>
</ul>
<br /><b>ASP.NET Web Pages 3.1</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Various <a bi:title="https://aspnetwebstack.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=v5.1%20Preview%7cv5.1%20RTM&assignedTo=All&component=Web%20Pages/Razor&sortField=AssignedTo&sortDirection=Ascending&page=0&reasonClosed=Fixed" href="https://aspnetwebstack.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=v5.1%20Preview%7cv5.1%20RTM&assignedTo=All&component=Web%20Pages/Razor&sortField=AssignedTo&sortDirection=Ascending&page=0&reasonClosed=Fixed" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="https://aspnetwebstack.codeplex.com/workitem/list/advanced?keyword=&status=closed&type=all&priority=all&release=v5.1%20preview%7cv5.1%20rtm&assignedto=all&component=web%20pages/razor&sortfield=assignedto&sortdirection=ascending&page=0&reasonclosed=fixed" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">bug fixes</a></li>
</ul>
<br /><b>ASP.NET Identity 2.0.0</b><ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Two-Factor Authentication</b><br /><br />ASP.NET Identity now support two-factor authentication. Two-factor authentication provides an extra layer of security to your user accounts in the case where your password gets compromised. There is also protection for brute force attacks against the two factor codes.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Account Lockout</b><br /><br />Provides a way to lock out the user if the user enters their password or two-factor codes incorrectly. The number of invalid attempts and the timespan for the users are locked out can be configured. A developer can optionally turn off Account Lockout for certain user accounts.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Account Confirmation</b><br /><br />The ASP.NET Identity system now supports Account Confirmation. This is a fairly common scenario in most websites today where when you register for a new account on the website, you are required to confirm your email before you could do anything in the website. Email Confirmation is useful because it prevents bogus accounts from being created. This is extremely useful if you are using email as a method of communicating with the users of your website such as Forum sites, banking, ecommerce, and social web sites.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Password Reset</b><br /><br />Password Reset is a feature where the user can reset their passwords if they have forgotten their password.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Security Stamp (Sign out everywhere)</b><br /><br />Supports a way to regenerate the Security Token for the user in cases when the User changes their password or any other security related information such as removing an associated login (such as Facebook, Google, Microsoft Account and so on). This is needed to ensure that any tokens generated with the old password are invalidated. In the sample project, if you change the user's password then a new token is generated for the user and any previous tokens are invalidated. This feature provides an extra layer of security to your application since when you change your password, you will be logged out from everywhere (all other browsers) where you have logged into this application.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Make the type of Primary Key be extensible for Users and Roles</b><br /><br />In ASP.NET Identity 1.0, the type of primary key for table <b>Users </b>and <b>Roles </b>was <b>strings</b>. This means when the ASP.NET Identity system was persisted in SQL Server by using Entity Framework, we were using <b>nvarchar</b>. There were many discussions around this default implementation on Stack Overflow and based on the incoming feedback. We have provided an extensibility hook where you can specify what should be the primary key of your <b>Users </b>and <b>Roles </b>table. This extensibility hook is particularly useful if you are migrating your application and the application was storing UserIds are GUIDs or ints.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Support IQueryable on Users and Roles</b><br /><br />Added support for <b>IQueryable </b>on UsersStore and RolesStore, you can easily get the list of Users and Roles.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Support Delete operation through the UserManager</b></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Indexing on UserName</b><br /><br />In ASP.NET Identity Entity Framework implementation, we have added a unique index on the <b>Username </b>by using the new <b>IndexAttribute </b>in EF 6.1.0-Beta1. This makes sure that Usernames are always unique and there was no race condition in which you could end up with duplicate usernames.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Enhanced Password Validator</b><br /><br />The password validator that was shipped in ASP.NET Identity 1.0 was a fairly basic password validator that was only validating the minimum length. There is a new password validator that gives you more control over the complexity of the password. Please note that even if you turn on all the settings in this password, we do encourage you to enable two-factor authentication for the user accounts.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>IdentityFactory </b><b>Middleware/ CreatePerOwinContex</b><b></b></li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>UserManager</b><br /><br />You can use Factory implementation to obtain an instance of <b>UserManager </b>from the <b>OWIN </b>context. This pattern is similar to what we use for getting <b>AuthenticationManager </b>from <b>OWIN </b>context for <b>SignIn </b>and<b>SignOut</b>. This is a recommended way of obtaining an instance of <b>UserManager </b>per request for the application.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>DbContextFactory Middleware</b><br /><br />ASP.NET Identity uses Entity Framework for persisting the Identity system in SQL Server. To do this the Identity System has a reference to the <b>ApplicationDbContext</b>. The <b>DbContextFactory </b>Middleware returns an instance of the <b>ApplicationDbContext </b>per request that you can use in your application.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>ASP.NET Identity Samples NuGet package</b><br /><br />Samples NuGet package can make it easier to install and run samples for ASP.NET Identity and follow the best practices. This is a sample ASP.NET MVC application. Please modify the code to suit your application before you deploy this in production. The sample should be installed in an empty ASP.NET application.<br /><br />For more information about the package, go to the following blog post:<br /><div class="indent" style="margin: 0px; padding: 0px 20px 10px;">
<a bi:title="http://blogs.msdn.com/b/webdev/archive/2014/03/20/test-announcing-rtm-of-asp-net-identity-2-0-0.aspx" href="http://blogs.msdn.com/b/webdev/archive/2014/03/20/test-announcing-rtm-of-asp-net-identity-2-0-0.aspx" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://blogs.msdn.com/b/webdev/archive/2014/03/20/test-announcing-rtm-of-asp-net-identity-2-0-0.aspx" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Announcing preview of Microsoft.AspNet.Identity 2.0.0</a></div>
</li>
</ul>
<br />
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Microsoft OWIN Components</b><br /><br />Many bugs are fixed in this release, see <a bi:title="https://katanaproject.codeplex.com/releases/view/113281" href="https://katanaproject.codeplex.com/releases/view/113281" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="https://katanaproject.codeplex.com/releases/view/113281" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">the release notes for the latest stable version (2.1.0)</a>.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>ASP.NET SignalR</b><br /><br />Many bugs are fixed in this release, see <a bi:title="https://github.com/SignalR/SignalR/releases/tag/2.0.2" href="https://github.com/SignalR/SignalR/releases/tag/2.0.2" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="https://github.com/signalr/signalr/releases/tag/2.0.2" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">the release notes</a>.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="code generation" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Code Generation</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">This update lets a developer specify his program be compiled to target latest-generation processors that support the AVX2 instruction set.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="debugger" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Debugger</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Added a Visualizer for JSON data contained in String objects.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can compare two .diagsession files that contain managed memory data with each other.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can manually trigger Content prefetch in Windows Store applications.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Enabled Script debugging including the DOM Explorer and JavaScript console when debugging inside a WebView control.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Added extensibility point for Visual Studio plugins to modify the debugger’s symbol settings.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">The values of individual objects can be inspected when you debug managed memory from a dump with heap.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Windows Phone 8.1 developer can use Visual Studio to debug issues with websites that are running on the phone's Internet Explorer.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="entity framework 6.1" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Entity Framework 6.1</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Update Entity Framework to 6.1 version for both runtime and tooling. Entity Framework (EF) 6.1 is a minor update to Entity Framework 6 and includes a number of bug fixes and new features. For detailed information on EF 6.1, including links to documentation for the new features, see <a bi:title="http://msdn.com/data/jj574253" href="http://msdn.com/data/jj574253" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://msdn.com/data/jj574253" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Entity Framework Version History</a>. The new features in this release include:<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Tooling consolidation </b>provides a consistent way to create a new EF model. This feature extends the ADO.NET Entity Data Model wizard to support creating Code First models, including reverse engineering from an existing database. These features were previously available in Beta quality in the EF Power Tools..</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Handling of transaction commit failures </b>provides the new<b>System.Data.Entity.Infrastructure.CommitFailureHandler</b> that makes use of the newly introduced ability to intercept transaction operations. The <b>CommitFailureHandler </b>allows automatic recovery from connection failures whilst committing a transaction.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>IndexAttribute</b> allows indexes to be specified by placing an attribute on a property (or properties) in your Code First model. Code First will then create a corresponding index in the database.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>The public mapping API</b> provides access to the information EF has on how properties and types are mapped to columns and tables in the database. In past releases this API was internal.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Ability to configure interceptors by using the App.config or Web.config file</b> allows interceptors to be added without recompiling the application.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>DatabaseLogger</b> is a new interceptor that makes it easy to log all database operations to a file. In combination with the previous feature, this allows you to easily switch on logging of database operations for a deployed application, without the need to recompile.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Migrations model change detection </b>has been improved so that scaffolded migrations are more accurate; performance of the change detection process has also been greatly enhanced.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Performance improvements </b>including reduced database operations during initialization, optimizations for null equality comparison in LINQ queries, faster view generation (model creation) in more scenarios, and more efficient materialization of tracked entities with multiple associations.</li>
</ul>
</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="graphics diagnostics" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Graphics Diagnostics</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">DirectX Graphics diagnostics features are now available for Windows Phone 8.1 devices and emulators.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">New and improved DirectX templates provide a starting point for writing games for the Windows Store and Windows Phone (Silverlight and non-Silverlight). The XAML-based template provides a starting point for easily incorporating text, images, and menus into games for use as Heads-Up-Displays, status messages, settings, and so on.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Graphics Frame Analysis is supported for helping to diagnose performance issues in DirectX-based games and applications.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Some functional improvements are made for Graphics Diagnostics:<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Draw State Tracking in the Graphics Event List supports streamlined analysis for discovering how GPU state was set.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Up to 30 consecutive frames can be captured at one time.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Names of objects and resources defined by the developer are now exposed throughout the user interface (UI).</li>
<li style="margin: 0px; padding: 0px; position: inherit;">HTTP and custom protocol handlers can be used for performance event annotations.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Depth-Stencil Buffer viewing is now supported.</li>
</ul>
</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="intellitrace" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">IntelliTrace</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Performance events that are SQL related now provide an option to load the SQL in a new query window and use the existing SQL tools inside of Visual Studio to investigate an issue.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Performance events that are MVC related now provide an option to go to either the action or controller method in code to investigate an issue.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Performance events can now be grouped by entry point and by the slowest node. This will reduce the overall number of rows and make it easier to identify a specific event to investigate.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">When you check the details of an IntelliTrace performance event, there is now an indicator to highlight the path to each of the slowest nodes.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">When you debug an exception event from an IntelliTrace log file, Code Map is now shown with IntelliTrace specific annotations so that interesting parameters can be easily displayed. This also shows where the exception was thrown by using a new comment on the graph.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Assume that you use Git hosted on TFS as source control system, you can access the deployed version of the solution by opening the iTrace file that is generated by the Microsoft Monitoring Agent, in Visual Studio Ultimate 2013.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="nuget 2.8.1" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">NuGet 2.8.1</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">NuGet 2.8.1 will be released in April 2014. Here are the most important points from the release notes. Check the <a bi:title="http://docs.nuget.org/docs/release-notes/nuget-2.8" href="http://docs.nuget.org/docs/release-notes/nuget-2.8" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://docs.nuget.org/docs/release-notes/nuget-2.8" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">full release notes</a> for more information about these changes.<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Target Windows Phone 8.1 Applications</b><br />NuGet 2.8.1 now supports targeting Windows Phone 8.1 Applications by using the target framework monikers<b>WindowsPhoneApp</b>, <b>WPA</b>, <b>WindowsPhoneApp81</b>, and <b>WPA81</b>.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Patch Resolution for Dependencies</b><br />When NuGet resolves package dependencies; NuGet has historically implemented a strategy of selecting the lowest major and minor package version that satisfies the dependencies on the package. However, unlike the major and minor version, the patch version was always resolved to the highest version. Although the behavior was well-intentioned, it created a lack of determinism for installing packages that have dependencies.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>-DependencyVersion Option</b><br />Although NuGet 2.8 changes the default behavior for resolving dependencies, it also adds more precise control over dependency resolution process through the <b>-DependencyVersion </b>option in the package manager console. The option enables resolving dependencies to the lowest possible version that is the default behavior, the highest possible version, or the highest minor or patch version. This option only works for <b>install-package</b> in the PowerShell cmdlet.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>DependencyVersion Attribute</b><br />In addition to the <b>-DependencyVersion </b>option detailed, NuGet has also allowed for the ability to set a new attribute in the nuget.config file that defines what the default value is, if the <b>-DependencyVersion </b>option is not specified in an invocation of <b>install-package</b>. This value will also be respected by the NuGet Package Manager Dialog for any install package operations. To set this value, add the following attribute to your nuget.config file:<br /><div class="kb_intextwrapper" style="background-color: whitesmoke; margin: 0px 0px 10px; overflow-x: auto; padding: 0px; position: relative;">
<div class="kb_intextbody" style="margin: 0px; padding: 0px; width: 639px;">
<pre class="in_text" style="font-family: Consolas, 'Courier New', Courier, monospace; padding: 10px; position: relative; width: auto;">config> <add key="dependencyversion" value="Highest" /> </config></pre>
</div>
</div>
</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Preview NuGet Operations With -whatif</b><br />Some NuGet packages can have deep dependency graphs. Therefore, it is helpful during an install, uninstall, or update operation to first see what will occur. NuGet 2.8 adds the standard PowerShell <b>-what if </b>option to the <b>install-package</b>, <b>uninstall-package</b>, and <b>update-package</b> commands to enable visualizing the whole closure of packages to which the command will be applied.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Downgrade Package</b><br />It is common to install a prerelease version of a package in order to investigate new features, and then decide to roll back to the last stable version. Before NuGet 2.8, this was a multi-step process of uninstalling the prerelease package and its dependencies, and then installing the earlier version. By using NuGet 2.8, the<b>update-package</b> command will now roll back the whole package closure (such as the package's dependency tree) to the earlier version.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Development Dependencies</b><br />Many different kinds of capabilities can be delivered as NuGet packages, including tools that are used for optimizing the development process. Although these components can be instrumental in developing a new package, they should not be considered a dependency of the new package when it is later published. NuGet 2.8 enables a package to identify itself in the .nuspec file as a <b>developmentDependency</b>. When it is installed, this metadata will also be added to the packages.config file of the project into which the package was installed. When that packages.config file is later analyzed for NuGet dependencies by using <b>nuget.exe pack</b>, it will exclude those dependences marked as development dependencies.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Individual packages.config Files for Different Platforms</b><br />When you develop applications for multiple target platforms, it is common to have different project files for each respective build environment. It is also common to consume different NuGet packages in different project files, as packages have varying levels of support for different platforms. NuGet 2.8 provides improved support for this scenario by creating different packages.config files for different platform-specific project files.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Fallback to Local Cache</b><br />Although NuGet packages are typically consumed from a remote gallery (such as <a bi:title="http://www.nuget.org/" href="http://www.nuget.org/" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.nuget.org/" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">the NuGet gallery</a>) by using a network connection, there are many scenarios in which the client is not connected. Without a network connection, the NuGet client cannot install packages, even when those packages were already on the client's computer in the local NuGet cache. NuGet 2.8 adds automatic cache fallback to the package manager console.<br /><br />The cache fallback feature requires no specific command arguments. Additionally, cache fallback currently works only in the package manager console. Currently, the behavior does not work in the package manager dialog box.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Bug Fixes</b><br />One of the major bug fixes is performance improvement in the <b>update-package -reinstall</b> command.<br /><br />Additionally, this release of NuGet also includes many other bug fixes. There are 181 issues that are resolved in the release. For a full list of the work items fixed in NuGet 2.8, see the <a bi:title="https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.8&status=all" href="https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.8&status=all" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="https://nuget.codeplex.com/workitem/list/advanced?release=nuget%202.8&status=all" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">NuGet Issue Tracker for this release</a>.</li>
</ul>
</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="profiler" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Profiler</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">There is a new CPU Usage tool for examining which managed, native, and JavaScript functions are using the CPU. The CPU Usage tool replaces the previous CPU Sampling tool for Windows Store Apps and has fast time filtering, fast thread filtering, and an improved Just My Code experience.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">The Performance and Diagnostics hub now allows more than one tool to be run at the same time. Data from each tool is correlated on a common timeline for faster and easier performance analysis. Tools that can be combined are:<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">CPU Usage</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Energy Consumption</li>
<li style="margin: 0px; padding: 0px; position: inherit;">HTML UI Responsiveness</li>
<li style="margin: 0px; padding: 0px; position: inherit;">XAML UI Responsiveness</li>
</ul>
</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Windows Phone 8.1 developers can use Visual Studio to diagnose performance issues together with websites that are running on the phone's Internet Explorer.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">The Performance and Diagnostics hub is now available for Windows Store apps on Windows Phone 8.1 devices and emulators.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="release management" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Release Management</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">The tags are designed to perform the same operation across the servers. If there are server specific actions, the user can always add the specific server and the corresponding actions at that level in the deployment sequence.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">To configure a group of server by using same tag implies that you can set values for the whole group and all the servers in the group therefore share common values for all variables.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can easily deploy to identical or clustered servers without having to repeat the deployment sequence on each server.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can <b>Copy Tags </b>across stages and across Templates. You can retain the same deployment sequence with all the tags and servers when copied to other stages or Release templates under the same environment.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="team foundation server" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Team Foundation Server</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">The portfolio backlogs have performance improvements during web access navigation.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can query on tags in Visual Studio and through web access.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can apply tags to work items in Visual Studio.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can apply permissions for who can add new tags.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">REST API is available for work item tracking tagging.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can edit tags in the Excel add-in for Team Foundation Server.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can configure non-working days, and these are excluded from burndown charts.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Cumulative Flow Diagram start dates are configurable.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Lightweight charts can be pinned to project or team homepages.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can customize the colors in lightweight charts.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">The look and feel of the project and team homepage is updated.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Git tools have been updated to include an annotate (blame) view, reverting a commit, amending a commit, pushing to multiple remotes, and improved progress and cancellation ability for long running operations.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="testing tools" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Testing Tools</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">This update provides to testers and test leads the ability to export test artifacts so that these can be sent by using email or as printouts and shared with stakeholders who do not have access to TFS.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">This update provides to testers and test leads the ability to manage test parameter data at one place by using Shared Parameters. Any subsequent changes to parameter data can be updated at one place and all the test cases referencing the Shared Parameter are automatically updated.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can view default set of performance counters from your application under test during Cloud Load testing by using Application Insights service.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="typescript 1.0 rtm for visual studio 2013" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">TypeScript 1.0 RTM for Visual Studio 2013</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">TypeScript is an open-source language that makes it easier to create cross-platform, large-scale JavaScript applications that run on any browser or host. TypeScript offers developers the advantages of strongly-typed languages on top of the flexible, dynamic runtime, and the ubiquity of JavaScript. TypeScript, a typed superset of JavaScript that compiles to plain JavaScript, works seamlessly with existing JavaScript tools and libraries, and easily integrates with existing applications and sites. TypeScript's native types and class-based modular programming model enable scalability and better productivity through early error detection and enhanced tooling, such as Intellisense, code refactoring, and code navigation. For more information about TypeScript, go to the <a bi:title="http://www.typescriptlang.org/" href="http://www.typescriptlang.org/" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://www.typescriptlang.org/" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">TypeScript website</a>.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="visual c++" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Visual C++</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Some C++ compiler crashes and language conformance issues have been addressed.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="visual studio ide" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Visual Studio IDE</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">You can view incoming changes from other branches in code editors by using CodeLens.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="windows azure tools" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Windows Azure Tools</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">You can use Windows Azure Notification Hubs to send test notification messages to Windows Store, Windows Phone, iOS, and Android devices and check the outcome in real-time.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">When you log in to Visual Studio, you are presented the option to easily activate your Windows Azure MSDN Benefits (if you have not already done this).</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can create new .NET Windows Azure Mobile Services projects, add scaffolds to projects, set breakpoints and debug the projects, publish them to Windows Azure, and finally remotely debug the published service.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can use Windows Azure resources to develop, test, and deploy your application.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="windows phone" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Windows Phone</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Visual Studio 2013 Update 2 provides a full-featured development environment that you can use to develop applications and games for Windows Phone 8.1 and Windows Phone 8 by using Visual Studio Express 2013 for Windows or Visual Studio 2013 Professional, Premium, or Ultimate editions. With these tools, you can use your existing programming skills and code to build managed code, native code, or HTML and JavaScript applications. Additionally, the update includes multiple emulators and additional tools for profiling and testing your Windows Phone application under real-world conditions. For more information, go to the <a bi:title="http://go.microsoft.com/fwlink/?LinkID=394271" href="http://go.microsoft.com/fwlink/?LinkID=394271" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=394271" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Windows Phone Developer Center</a>.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can create universal projects that share code between Windows Store applications and Windows Phone applications. For more information, see <a bi:title="http://go.microsoft.com/fwlink/?LinkId=394379" href="http://go.microsoft.com/fwlink/?LinkId=394379" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://go.microsoft.com/fwlink/?linkid=394379" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Develop an application that targets Windows and Windows Phone</a>.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can use Visual Studio 2013 to author and execute Coded UI tests against your Windows Phone Store applications.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You can author and execute unit tests against your Windows Phone Store applications and Windows Phone Silverlight applications by using Visual Studio 2013 Update 2.</li>
</ul>
</div>
<h3 id="tocHeadRef" style="font-size: 20px; font-weight: lighter; margin: 15px 0px; padding: 0px;">
Fixed issues</h3>
<span id="MT7"><a href="https://www.blogger.com/null" id="fixedissues" ms.uri_target="self" style="color: #0072c6;"></a></span><b>Note</b> Unless otherwise indicated, linked items will take you to Microsoft Connect webpages.<br /><br /><b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="code analysis" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Code Analysis</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Visual Studio 2013 Code Analysis check-in policy does not trigger on websites.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="intellitrace" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">IntelliTrace</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">A Security.VerificationException is raised on a custom event handler if IntelliTrace is enabled.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Visual Studio crashes when loading a corrupted IntelliTrace file.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="visual c++" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Visual C++</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Assume that you have Windows Driver Kit (WDK) and Visual Studio 2013 Update 2 installed on your computer. You open Visual Studio 2013 and create a Visual C++ universal project. When you press F5 to compile and debug the project, you may receive the following error message:<div class="kb_errormsgbody" style="background-color: whitesmoke; margin: 0px 0px 10px; overflow-x: auto; padding: 0px; position: relative;">
<div class="kb_errorcontent" style="margin: 0px; padding: 0px; width: 679px;">
<div class="errormsg" style="margin: 0px; min-height: 20px; padding: 10px; position: relative;">
No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))</div>
</div>
</div>
</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="visual studio ide" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Visual Studio IDE</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">JavaScript errors occur when you open webpages by using the internal Visual Studio Web Browser.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Tabs do not open correctly when solutions have both Design and Code views opened.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">The Account Settings dialog box may display a "license will expire in 2147483647 days" message when Visual Studio downloads an online license.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="web platform and tools" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Web Platform and Tools</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">When you use new URL picker in web applications, it is not correctly populated when URLs begin with ".".</li>
<li style="margin: 0px; padding: 0px; position: inherit;">When you press <b>F5 </b>or <b>Ctrl</b>+<b>F5 </b>for a web project that has enabled with SSL (https) URL, you will receive a prompt from Internet Explorer if you would like to continue with an untrusted or self-signed certificate.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">When you install the PHP editor of DevSense, you may lose your PHP outlining regions.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You may experience a Visual Studio crash after using <b>CTRL</b>+<b>F4 </b>to close the web references property page dialog box.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Assume that you open a project that contains a generated HTML script document. When you debug the project on a phone emulator, an error occurs.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Visual Studio crashes when you try to publish a project or open a project that has a FTP publishing profile by using a relative URL such as localhost, "\\", or "//."</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Enable Web Essentials for Web Express.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="windows azure" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Windows Azure</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">You cannot create a new Windows Azure Mobile Services project by using Visual Studio 2013 on an x86-based computer.</li>
</ul>
</div>
</div>
<h2 class="subTitle" id="tocHeadRef" ms.track="false" style="background-color: #d1d3d4; color: #333333; cursor: pointer; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 20px; margin: 0px 0px 5px; overflow: hidden; padding: 0px; position: relative; width: 784px;" translate="false">
<span style="float: left; font-size: 16px; font-weight: lighter; padding: 10px 0px 10px 10px; width: 732px;"><a bi:title="moreinformation" href="https://www.blogger.com/null" ms.uri_target="self">Known Issues</a></span></h2>
<div class="sbody" id="MT8" style="background-color: white; color: #333333; font-family: 'Segoe UI', Arial, Verdana, Tahoma, sans-serif; font-size: 13px; margin: 12px 0px 12px 40px; padding: 0px;">
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="entity framework" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Entity Framework</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<br /><br /><b>Symptoms</b><br /><br />When you open an existing Entity Framework 5 Designer model (.EDMX file) by using Entity Framework 6.0.2 or 6.1.0 Tools in Visual Studio 2012 or Visual Studio 2013, you may receive the following error message:<div class="kb_errormsgbody" style="background-color: whitesmoke; margin: 0px 0px 10px; overflow-x: auto; padding: 0px; position: relative;">
<div class="kb_errorcontent" style="margin: 0px; padding: 0px; width: 719px;">
<div class="errormsg" style="margin: 0px; min-height: 20px; padding: 10px; position: relative;">
Cannot load '<var>filename</var>.edmx': Specified cast is not valid.</div>
</div>
</div>
<br />This issue only occurs if the model in question contains function import that has parameters of <b>decimal</b> type.<br /><br /><b>Versions affected</b><br /><br />This issue affects the following released versions of Entity Framework Tools for Visual Studio:<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Entity Framework 6.0.2 Tools for Visual Studio 2012</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Entity Framework 6.0.2 Tools for Visual Studio 2013</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Entity Framework 6.1.0 Tools for Visual Studio 2012</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Entity Framework 6.1.0 Tools for Visual Studio 2013</li>
</ul>
If you have updated the Entity Framework Tools for Visual Studio 2012 or Visual Studio 2013 from the Microsoft Download Center, or if you have installed either Visual Studio 2013 Update 1 or Update 2, the version of the designer you are using has this issue.<br /><br />If your Entity Framework model does not contain a function import for stored procedures that return objects that contain<b>decimal </b>type properties, this issue does not occur.<br /><br /><b>Cause</b><br /><br />This issue occurs because the designer casts a value to byte incorrectly if the parameter has no precision and scale facets.<br /><br /><b>Workaround</b><br /><br />To work around this issue, use one of the following methods:<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Revert your setup to the 6.0.0 version of the Entity Framework Tools</b><br /><br />To do this, you have to manually uninstall any version of the tool that is more recent by using the <b>Add or remove programs</b> window, and then reinstall the 6.0.0 version. For Visual Studio 2012, you can find it in the Microsoft Download Center:<br /><br /><div class="indent" style="margin: 0px; padding: 0px 20px 10px;">
<a bi:title="http://download.microsoft.com/download/2/C/F/2CF7AFAB-4068-4DAB-88C6-CEFD770FAECD/EFTools.msi" href="http://download.microsoft.com/download/2/C/F/2CF7AFAB-4068-4DAB-88C6-CEFD770FAECD/EFTools.msi" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://download.microsoft.com/download/2/c/f/2cf7afab-4068-4dab-88c6-cefd770faecd/eftools.msi" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">Entity Framework 6.0.0 Tools for Visual Studio 2012</a></div>
<br />For Visual Studio 2013, the EFTools.MSI and EFTools.cab files were originally included in the Visual Studio setup package. Therefore, you can revert to the 6.0.0 version of the tools by uninstalling them and then repairing Visual Studio, or by finding the MSI installer in the Visual Studio setup media.</li>
<li style="margin: 0px; padding: 0px; position: inherit;"><b>Modify the EDMX files in an editor</b><br /><br />An alternative workaround requires manual modification of the EDMX files by using either a text or XML editor.<br /><b>Note </b>Make sure that you create backup copies of your original EDMX files, and do not make any additional changes to them that could cause them to become invalid.<br /><br />The modification has to be applied to <b><parameter></b> elements of any <b><function> </b>(such as stored procedures or Table-Valued Functions) inside the <b><edmx:StorageModels></b> section that is also known as the <b>SSDL</b> section of the EDMX. The changes are to make sure that all parameters map to <b>decimal </b>type parameters in the corresponding function import in the <b>CSDL</b> section. For example, consider the following function:<div class="kb_intextwrapper" style="background-color: whitesmoke; margin: 0px 0px 10px; overflow-x: auto; padding: 0px; position: relative;">
<div class="kb_intextbody" style="margin: 0px; padding: 0px; width: 679px;">
<pre class="in_text" style="font-family: Consolas, 'Courier New', Courier, monospace; padding: 10px; position: relative; width: auto;"><Function Name="Product_Insert" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false"
ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
<Parameter Name="Id" Type="int" Mode="In" />
<Parameter Name="Name" Type="int" Mode="In" />
<Parameter Name="Price" Type="numeric" Mode="In" />
</Function></pre>
</div>
</div>
The <b>Price </b>parameter has to be changed as follows:<div class="kb_intextwrapper" style="background-color: whitesmoke; margin: 0px 0px 10px; overflow-x: auto; padding: 0px; position: relative;">
<div class="kb_intextbody" style="margin: 0px; padding: 0px; width: 679px;">
<pre class="in_text" style="font-family: Consolas, 'Courier New', Courier, monospace; padding: 10px; position: relative; width: auto;"><Parameter Name="Price" Type="numeric" Mode="In" Precision="8" Scale="4" /></pre>
</div>
</div>
<b>Note </b>The actual numeric values that are assigned to <b>Precision </b>or <b>Scale </b>are not important in this case.</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="visual studio ide" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Visual Studio IDE</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">For the known issue in Visual Studio IDE after you apply this update, go to the following knowledge base article:<br /><div class="indent" style="margin: 0px; padding: 0px 20px 10px;">
<a bi:title="/kb/2954109" class="KBlink" href="http://support.microsoft.com/kb/2954109" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="/kb/2954109" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">2954109</a> Solution Platform drop-down list is not visible after you install Visual Studio 2013 Update 2</div>
</li>
</ul>
</div>
<b class="CIP_SectionHead CIP_SectionHeadExpand" ms.cmpnm="windows phone" ms.cmptyp="control" ms.interactiontype="15" ms.title="collapse" style="cursor: pointer; display: block; line-height: 20px; min-height: 20px; padding: 0px 25px 0px 0px;">Windows Phone</b><div class="CIP_Section_Collapse CIP_Hide" style="margin: 0px; padding: 0px 0px 0px 25px;">
<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">Visual Studio Team Build does not build Windows Phone 8, Windows Phone Silverlight 8.1, and Silverlight applications.<br /><br />To work around this issue, set your project to build with the MSBuild x86 tool set. To do that in TFS, change the MSBuild Platform option from Auto to x86 in the Team Build configuration wizard's Process section. For more information, see <a bi:title="http://blogs.msdn.com/b/jamlew/archive/2010/01/22/64-bit-team-build-fails-on-silverlight-projects-and-how-to-fix-it.aspx" href="http://blogs.msdn.com/b/jamlew/archive/2010/01/22/64-bit-team-build-fails-on-silverlight-projects-and-how-to-fix-it.aspx" ms.cmpnm="moreinformation" ms.cmptyp="link" ms.interactiontype="1" ms.title="http://blogs.msdn.com/b/jamlew/archive/2010/01/22/64-bit-team-build-fails-on-silverlight-projects-and-how-to-fix-it.aspx" ms.uri_target="self" style="color: #0072c6; text-decoration: none;">this blog post</a>.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Consider the following scenario:<ul style="margin: 16px 0px 16px 40px; padding: 0px; position: inherit;">
<li style="margin: 0px; padding: 0px; position: inherit;">You have installed Visual Studio 2013 Update 2 on a computer that is running Windows 7 or Windows 8.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You upgrade Windows to Windows 8.1.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">You create a Windows Phone 8.1 project and build it.</li>
</ul>
In this scenario, you receive build or packaging errors.<br /><br />To work around this issue, repair Visual Studio 2013.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Deleting a file from a shared project is not detected by Team Foundation Version Control correctly. The file will be removed from the shared project, but the file will not be deleted from Team Foundation Version Control.<br /><br />To work around the issue, manually delete the file from the server by using Source Control Explorer.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Team Foundation Version Control cannot undo pending changes to a solution if files were moved from a shared project to another project in the solution. After the undo, the file entries will be moved back into the shared project. However, the files will be missing from disk.<br /><br />To work around the issue, restore the files on disk by obtaining the latest files from Team Foundation Version Control.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">In Visual Studio 2013 Update 2, unit testing of C++ Silverlight 8.1 apps is not supported. When you retarget existing C++ Silverlight 8.0 unit test project to Silverlight 8.1, the build operation fails, and you receive the following error message:<div class="kb_errormsgbody" style="background-color: whitesmoke; margin: 0px 0px 10px; overflow-x: auto; padding: 0px; position: relative;">
<div class="kb_errorcontent" style="margin: 0px; padding: 0px; width: 679px;">
<div class="errormsg" style="margin: 0px; min-height: 20px; padding: 10px; position: relative;">
error: AppManifest Validation failed. Invalid AppPlatformVersion in WMAppmanifest.xml</div>
</div>
</div>
</li>
<li style="margin: 0px; padding: 0px; position: inherit;">When you develop a C++ application for Windows Phone 8.1, you may not see the <b>Device </b>option in the debug target drop-down list.<br />To deploy to a device, you must first change the build configuration to "ARM" by using the solution platform drop-down list in the Visual Studio toolbar.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">If you rename a JavaScript shared project in Microsoft Visual Studio 2013 Update 2, the References node of the projects that import the shared project may not be updated to the project name.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">If you do not install Windows Phone 8.0 software development kit (SDK) on your computer, Blend for Visual Studio 2013 does not display the operations for Windows Phone Silverlight 8.1 projects.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Assume that you are using a Visual Studio Chinese language pack. When you build a Windows Store or Windows Phone application by using HTML and JavaScript, English text is displayed in the IntelliSense suggestions that are provided for <b>WinJS </b>APIs.</li>
<li style="margin: 0px; padding: 0px; position: inherit;">Assume that you have Visual Studio 2013 Update 2 and Windows Phone 8.0 tools installed on Windows 8. The Windows Phone 8.1 emulators are available. In this situation, you cannot run a Windows Phone 8.0 application by pressing F5. Additionally, you receive the following error message:<div class="kb_errormsgbody" style="background-color: whitesmoke; margin: 0px 0px 10px; overflow-x: auto; padding: 0px; position: relative;">
<div class="kb_errorcontent" style="margin: 0px; padding: 0px; width: 679px;">
<div class="errormsg" style="margin: 0px; min-height: 20px; padding: 10px; position: relative;">
Windows Phone Emulator is unable to verify that the virtual machine is running:<br /><br />Unable to load DLL 'LocBootPresets': The specified module could not be found. (Exception from HRESULT: 0x8007007E)</div>
</div>
</div>
</li>
</ul>
</div>
</div>
Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-79561744865271263792014-05-13T13:15:00.000+05:302014-06-19T15:19:01.651+05:30Legal Key Sizes for Symmetric Cryptographic Algorithms like DES and 3DES<p>Following code block prints the Legal Key and IV sizes for any Symmetric Algorithms in .Net</p> <p> </p> <blockquote> <p>public static void PrintLegalKeySizes(string algorithm) {<br> var des = SymmetricAlgorithm.Create(algorithm);<br> var lbs = des.LegalBlockSizes;<br> var lks = des.LegalKeySizes;</p> <p> Console.WriteLine(algorithm);<br> Console.WriteLine(new String('-', algorithm.Length));</p> <p> Console.WriteLine("Legal Block Sizes in bytes: ");<br> foreach (var item in lbs)<br> PrintKeySizes(item);</p> <p> Console.WriteLine("Legal Key Sizes in bytes: ");<br> foreach (var item in lks)<br> PrintKeySizes(item);<br>}</p> <p>public static void PrintKeySizes(KeySizes item) {<br> if (item.SkipSize == 0)<br> Console.WriteLine("\t" + (item.MinSize / 8).ToString());<br> else<br> for (var n = item.MinSize; n <= item.MaxSize; n += item.SkipSize)<br> Console.WriteLine("\t" + (n / 8).ToString());<br>}</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-25401433303127795292014-05-09T15:40:00.006+05:302014-05-09T15:40:55.500+05:30.NET Framework 4.5.2 Released<a href="http://go.microsoft.com/fwlink/?LinkId=397674" target="_blank">Download .NET Framework 4.5.2</a><br />
<br />
<a href="http://blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx" target="_blank">More Info</a>Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-88067209247795129322014-05-05T00:07:00.000+05:302014-06-14T00:08:45.475+05:30String was not recognized as a valid DateTime.- While parsing Date String with ParseExact<p>You may encounter the following error while parsing with DateTime.ParseExact</p> <blockquote> <p>d = DateTime.ParseExact("02/05/1982", "dd/MM/yyyy", null)</p></blockquote> <h2>Exception</h2> <p>String was not recognized as a valid DateTime</p> <h2>Solutions</h2> <p>This error can be solved with any one of the following solution</p> <h2>Solution 1</h2> <p>Pass the Current Invariant Culture as the Format Provider</p> <blockquote> <p>d = DateTime.ParseExact("02/05/1982", "dd/MM/yyyy", <strong>CultureInfo.InvariantCulture</strong>)</p></blockquote> <h2>Solution 2</h2> <p>Change the format with Escape Sequences</p> <blockquote> <p>d = DateTime.ParseExact("02/05/1982", "<strong>dd\\/MM\\/yyyy</strong>", null)</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-26320199313740871622014-04-04T00:52:00.001+05:302014-04-04T00:52:35.034+05:30Visual Studio 2013 Update 2 RC available on Microsoft Download Center<p>Microsoft Visual Studio 2013 Update 2 Release Candidate is now available for download in Microsoft Download Center.</p> <p><a title="http://www.microsoft.com/en-in/search/DownloadResults.aspx?q=Visual%20Studio%202013%20Update%202%20RC" href="http://www.microsoft.com/en-in/search/DownloadResults.aspx?q=Visual%20Studio%202013%20Update%202%20RC">http://www.microsoft.com/en-in/search/DownloadResults.aspx?q=Visual%20Studio%202013%20Update%202%20RC</a></p> <ul> <li>Agents for Microsoft Visual Studio 2013 Update 2 RC</li> <li>Microsoft Visual Studio Ultimate 2013 with Update 2 RC</li> <li>Microsoft Visual Studio Express 2013 for Windows with Update 2 RC</li> <li>Microsoft Visual Studio Professional 2013 with Update 2 RC</li> <li>Microsoft Visual Studio Premium 2013 with Update 2 RC</li> <li>Release Management for Visual Studio 2013 with Update 2 RC</li> <li>Remote Tools for Visual Studio 2013 Update 2 RC</li> <li>Microsoft Visual Studio Team Foundation Server 2013 with Update 2</li> <li>Microsoft Visual Studio Team Foundation Server Express 2013 with Update 2<br></li></ul> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-41009045422573243742014-04-02T03:59:00.001+05:302014-04-02T03:59:59.456+05:30SQL Server 2014 Express is available on Microsoft Download Center<p>Microsoft SQL Server 2014 Express is a powerful and reliable free data management system that delivers a rich and reliable data store for lightweight Web Sites and desktop applications.</p> <p> </p> <p><a title="http://www.microsoft.com/en-in/download/details.aspx?id=42299&WT.mc_id=rss_alldownloads_devresources" href="http://www.microsoft.com/en-in/download/details.aspx?id=42299&WT.mc_id=rss_alldownloads_devresources">http://www.microsoft.com/en-in/download/details.aspx?id=42299&WT.mc_id=rss_alldownloads_devresources</a></p> <p> </p> <ul>Microsoft SQL Server 2014 Express is free and contains feature-rich editions of SQL Server that are ideal for learning, developing, powering desktop, web & small server applications, and for redistribution by ISVs. The SQL Server 2014 Express release includes the full version of SQL Server 2014 Management Studio. For a complete list of supported features in SQL Server Management Studio, see <a href="http://msdn.microsoft.com/en-us/library/ms174219.aspx">Features in SQL Server Management Studio</a>.<br><b>LocalDB (SqlLocalDB)</b> <ul> <li>LocalDB is a lightweight version of Express that has all its programmability features, yet runs in user mode and has a fast, zero-configuration installation and short list of pre-requisites. Use this if you need a simple way to create and work with databases from code. It can be bundled with Application and Database Development tools like Visual Studio and or embedded with an application that needs local databases.</li></ul><b>Express (SQLEXPR)</b> <ul> <li>Express edition includes the SQL Server database engine only. Best suited to accept remote connections or administer remotely.</li></ul><b>Express with Tools (SQLEXPRWT)</b> <ul> <li>This package contains everything needed to install and configure SQL Server as a database server including the full version of SQL Server 2014 Management Studio. Choose either LocalDB or Express depending on your needs above.</li></ul><b>SQL Server Management Studio Express (SQLManagementStudio)</b> <ul> <li>This does not contain the database, but only the tools to manage SQL Server instances, including LocalDB, SQL Express, SQL Azure, full version of SQL Server 2014 Management Studio, etc. Use this if you already have the database and only need the management tools.</li></ul><b>Express with Advanced Services (SQLEXPRADV)</b> <ul> <li>This package contains all the components of SQL Server Express including the full version of SQL Server 2014 Management Studio. This is a larger download than “with Tools,” as it also includes both Full Text Search and Reporting Services.</li></ul></ul> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-59190379667594447172014-01-21T11:46:00.001+05:302014-01-21T11:46:09.329+05:30VS 2013.1 (Update 1) is availableThis update is the latest in a cumulative series of feature additions and bug fixes for Visual Studio 2013.<br />
<br />
Download link <a href="http://www.microsoft.com/en-us/download/details.aspx?id=41650" target="_blank">http://www.microsoft.com/en-us/download/details.aspx?id=41650</a><br />
<br />
This update is the latest in a cumulative series of feature additions and bug fixes for Visual Studio 2013. Periodic updates enable us to enhance and expand Visual Studio more frequently to support the latest software development innovations for building and managing modern apps.<br />
<div>
<br /></div>
Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-16494838301851700652013-12-22T01:02:00.001+05:302013-12-22T01:02:02.897+05:30What are MVP and MVC and what is the difference?<p> </p> <p>Found a fantastic reply from Stack Overflow</p> <p><a href="http://stackoverflow.com/questions/2056/what-are-mvp-and-mvc-and-what-is-the-difference">http://stackoverflow.com/questions/2056/what-are-mvp-and-mvc-and-what-is-the-difference</a></p> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-69369253303611649882013-11-29T00:14:00.001+05:302013-11-29T00:17:22.096+05:30Try out- GC.Collect executed in Separate Thread<p>Garbage collection works in a separate thread. Want to check this out.</p> <p> </p> <p>Execute the following code in a Console Project.</p> <p> </p> <blockquote> <p>using System;<br>using System.Threading;</p> <p><br> </p> <p>namespace Demo {<br> class Program {<br> public static void Main(string[] args) {<br> Log("Calling Test");<br> Test();<br> //GC.Collect(0, GCCollectionMode.Forced);<br> Thread.Sleep(2000);<br> Log("Called Test");<br> }</p> <p> public static void Test() {<br> Person p = new Person();<br> p = null;</p> <p> }</p> <p> public static void Log(string s) {<br> Console.WriteLine("In Thread {0}({1})- {2}", Thread.CurrentThread.Name, Thread.CurrentThread.ManagedThreadId, s);<br> Thread.Sleep(2000);<br> }<br> }</p> <p> public class Person {<br> public Person() {<br> Program.Log("Person");<br> }<br> ~Person() {<br> Program.Log("~Person");<br> }<br> }<br>}<br></p></blockquote> <p> </p> <p>You can expect an output showing some logs in a main thread and the destructor log in a separate thread. Garbage collection is done automatically while the program exists as it a small program and does not usually do a collection in between the program.</p> <p>To check the forced collection, uncomment the following line in main.</p> <blockquote> <p>//GC.Collect(0, GCCollectionMode.Forced);</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-22699356478497906792013-07-15T02:09:00.000+05:302014-01-23T02:47:50.172+05:30LINQ 11- Filtering with Where Clause<p>One of the important operation in list of values is filtering. in LINQ filtering can be done with where clause or Where extension method.</p> <p> </p> <p>Where clause receives value of each element and needs an expression that returns a boolean value based on the input element. Result will be the list of elements which results true while evaluating the where clause.</p> <p> </p> <p>Sample 1</p> <p>Extension Method</p> <blockquote> <p>int[] numbers = new int[] { 1, 2, 3, 4, 5 };<br>IEnumerable<int> selected = numbers.Where(number => number > 2);</p></blockquote> <p>LINQ</p> <blockquote> <p>int[] numbers = new int[] { 1, 2, 3, 4, 5 };<br>IEnumerable<int> selected = </p> <p> from number in numbers where number > 2 select number;</p></blockquote> <p>Sample 2</p> <p>Extension Method</p> <blockquote> <p>IEnumerable<Employee> managers = employees.Where(employee => employee.Role==”Manager”);</p></blockquote> <p>LINQ</p> <blockquote> <p>IEnumerable<Employee> managers = </p> <p> from employee in employees </p> <p> where employee.Role==”Manager” </p> <p> select employee;</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-58185994372262986692013-07-11T01:48:00.000+05:302014-01-23T01:49:00.420+05:30LINQ 10- Projection/Select- 4<p>LINQ statements are simple like SQL, with minor changes. One of the important change is the Select clause comes later in LINQ. Examples shown in previous posts can be rewritten as follows.</p> <p> </p> <p>Query 1</p> <p>Extension Method</p> <blockquote> <p>IEnumerable<int> selected = numbers.Select(number => number);</p> <p> ------- ------ ------ ------</p> <p> Part1 Part2 Part3 Part4</p></blockquote> <p>LINQ </p> <blockquote> <p>IEnumerable<int> selected = <strong>from number in numbers select number</strong>;</p> <p> ------ ------- ------ ------</p> <p> Part3 Part1 Part2 Part4</p></blockquote> <p>Query 2</p> <p>Extension Method</p> <blockquote> <p>IEnumerable<int> selected = numbers.Select(number => number * 2);</p> <p> ------- ------ ------ ----------</p> <p> Part1 Part2 Part3 Part4</p></blockquote> <p>LINQ </p> <blockquote> <p>IEnumerable<int> selected = <strong>from number in numbers select number * 2</strong>;</p> <p> ------ ------- ------ ----------</p> <p> Part3 Part1 Part2 Part4</p></blockquote> <blockquote></blockquote> <p>Query 3</p> <p>Extension Method</p> <blockquote> <p>IEnumerable<string> selected = </p> <p> numbers.Select(number => (number * 2).ToString());</p> <p> ------- ------ ------ -----------------------</p> <p> Part1 Part2 Part3 Part4</p></blockquote> <p>LINQ </p> <blockquote> <p>IEnumerable<string> selected = </p> <p> <strong>from number in numbers select (number * 2).ToString()</strong>;</p> <p> ------ ------- ------ -----------------------</p> <p> Part3 Part1 Part2 Part4</p></blockquote> <p>Query 4</p> <p>Extension Method</p> <blockquote> <p>IEnumerable<string> selected = </p> <p> employees.Select(employee => employee.Name);</p> <p> --------- ------ -------- -------------</p> <p> Part1 Part2 Part3 Part4</p></blockquote> <p>LINQ </p> <blockquote> <p>IEnumerable<string> selected = </p> <p> <strong>from employee in employees select employee.Name</strong>;</p> <p> -------- --------- ------ -------------</p> <p> Part3 Part1 Part2 Part4</p></blockquote> <p> </p> <p>Here the </p> <p>Part1 is the source on which the LINQ is to be executed</p> <p>Part2 is the operation to be executed, here the transformation</p> <p>Part3 is the alias name to be used for each item in the source</p> <p>Part4 is the transformation to be applied, it can be any complex expression returning a single value</p> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-42629545970504863692013-07-07T02:03:00.000+05:302014-01-20T01:39:49.160+05:30LINQ 10- Projection/Select- 3<h2>Lazy loading</h2> <p>Linq does few things in background for better performance. One of the important thing is lazy loading. Linq statements or methods are not executed immediately in the very statement. To verify this we can use the following sample class.</p> <blockquote> <p>public class Employee {<br> private string name;<br> public string Name {<br> get {<br> <strong>Console.WriteLine("Name Get ");<br></strong> return name;<br> }<br> set {<br> name = value;<br> }<br> }<br>}</p></blockquote> <p> </p> <p>In the above code, whenever the Employee name is retrieved it will print the message “Name Get” in the console.</p> <p>Following code uses the above Employee class for LINQ.</p> <blockquote> <p>Employee[] employees = new Employee[] { <br> new Employee { Name = "John" }, <br> new Employee { Name = "Bill" }, <br> new Employee { Name = "Steve" } };<br>IEnumerable<String> selected = employees.Select(employee => employee.Name);</p> <p>foreach (String item in selected)<br> Console.WriteLine(item);<br></p></blockquote> <p> </p> <ul> <li>In the first statement, we have declared 3 Employees.</li> <li>In the second statement, employee.Name is retrieved from the collection. If the Select method has completed its work in that statement itself, it will get all 3 names and it should print 3 “Name Get” messages. But, it will not, as it is just stores, what needs to be done and not actually doing it.</li> <li>Next, the for each statement prints each names. Meanwhile, to print the names, names should be retrieved from the previous statement. But due to lazy loading, names are retrieved during MoveNext method’s execution (implicitly done in foreach statement)</li></ul> <p>Output will be </p> <blockquote> <p>Name Get<br>John<br>Name Get<br>Bill<br>Name Get<br>Steve</p></blockquote> <p>Above output clearly shows the Select is not immediately executed.</p> <p> </p> <p>If we print the Type name of “selected” variable, we can see how this is done.</p> <p>We can use the following statement to check this.</p> <blockquote> <p>Console.WriteLine(selected.GetType().FullName);</p></blockquote> <p>Output</p> <blockquote> <p>System.Linq.Enumerable+<strong>WhereSelectArrayIterator</strong>`2[Employee, String]</p></blockquote> <p>So during the execution .Net stores the transformation information in the <strong>WhereSelectArrayIterator.</strong></p> <p>WhereSelectArrayIterator class is an internal class, so cannot see the details using Object Browser, but, we can see the details using reflection. We can see this in further posts.</p> <p> </p> <p>We can force the execution of LINQ statements to complete using some other LINQ extensions. Some of them are,</p> <ul> <li>ToArray</li> <li>ToList</li> <li>Count</li></ul> <p>Example</p> <blockquote> <p>Employee[] employees = new Employee[] { <br> new Employee { Name = "John" }, <br> new Employee { Name = "Bill" }, <br> new Employee { Name = "Steve" } };<br>List<String> selected = employees.Select(employee => employee.Name).ToList();<br></p> <p>foreach (String item in selected) <br> Console.WriteLine(item);</p></blockquote> <p>Output</p> <blockquote> <p>Name Get<br>Name Get<br>Name Get<br>John<br>Bill<br>Steve</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-39564607395186203422013-07-02T01:45:00.000+05:302014-01-19T01:59:25.601+05:30LINQ 10- Projection/Select- 2<p>IEnumerable’s extension method Select, automatically identifies the input and output type. Input and output types are not restricted.</p> <p>So Select method is powerful enough to transform one object to another. We already have seen one example in “<a title="LINQ 10- Projection/Select- 1" href="http://net4.rmkrishnan.net/2013/06/linq-10-projectionselect-1.html">LINQ 10- Projection/Select- 1</a>” which transforms an integer array to string Enumerable. </p> <p> </p> <p>Following statement extracts the Name from Employee object.</p> <blockquote> <p>IEnumerable<String> selected = employees.Select(employee => empoyee.Name);</p></blockquote> <p> </p> <p>Here Employees is the source IEnumerable witch generic type argument Employee. So TSource is Employee.</p> <p>Transformation function gets the Name from Employee and returns it. So TResult is String.</p> <p> </p> <p>Even we can transform a class object to another class object</p> <blockquote> <p>IEnumerable<Manager> selected = employees.Select(employee => new Manager() {<br> ID = employee.ID,<br> Name = employee.Name<br>});</p></blockquote> <p> </p> <p>Above statement transforms a list of Employee objects to List of Manager Objects</p> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-2852920842852577812013-06-30T01:33:00.000+05:302014-01-19T01:34:03.803+05:30LINQ 10- Projection/Select- 1<p>Select method provides a way to transform each element to a desirable format.</p> <p>Following code does nothing but gives a enumerable list of the source.</p> <blockquote> <p>int[] numbers = new int[] { 1, 2, 3, 4, 5 };<br>IEnumerable<int> selected = numbers.Select(number => number);</p></blockquote> <p> </p> <p>Let try a simple transformation like getting the numbers doubled</p> <blockquote> <p>int[] numbers = new int[] { 1, 2, 3, 4, 5 };<br>IEnumerable<int> selected = numbers.Select(number => number * 2);<br>foreach (var item in selected) {<br> Console.WriteLine(item);<br>}<br>Console.ReadKey();</p></blockquote> <p> </p> <p>Above code returns a Enumerable set of integers with values doubled from the source.</p> <p>So you will get result 2,4,6,8,10</p> <p> </p> <p>Select method is declared in System.Linq.Enumerable class as</p> <blockquote> <p>public static IEnumerable<TResult> Select<TSource, TResult></p> <p>(this IEnumerable<TSource> source, </p> <p>Func<TSource, TResult> selector);</p></blockquote> <p> </p> <p>Here TSource is automatically identified from the input enumerable. As we are using Integer Array, TSource is identified as Integer.</p> <p> </p> <p>TResult is identified from the delegate or lambda expression passed to the method. As we are returning just the doubled number TResult is also identified as Integer.</p> <p> </p> <p>Consider the following example which returns a String.</p> <blockquote> <p>int[] numbers = new int[] { 1, 2, 3, 4, 5 };<br>IEnumerable<String> selected = numbers.Select(number => <strong>(number * 2).ToString()</strong>);<br>foreach (String item in selected) {<br> Console.WriteLine(item);<br>}<br>Console.ReadKey();</p></blockquote> <p> </p> <p>As we are returning the string TResult is identified as String, hence the select returns IEnumerable<String></p> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-63702294067219014372013-06-25T00:54:00.000+05:302014-01-19T01:14:35.827+05:30LINQ 09- LINQ Extensions<p>As we discussed earlier in <a title="LINQ 08- IEnumerable" href="http://net4.rmkrishnan.net/2013/06/linq-08-ienumerable.html">"LINQ 08- IEnumerable"</a>, LINQ works with IEnumerable interface along with many extension methods. These extension methods are available in System.Core assembly in .Net Framework 4.0. You can find several extension methods available in the class System.Linq.Enumerable</p> <p> </p> <p>So If you are going to use LINQ queries, you have to add System.Core as a reference and add “using Sytsem.Linq” to your imports.</p> <p> </p> <p>Reference: <a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable(v=vs.110).aspx">Enumerable Class</a></p> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-2786126172554201372013-06-19T00:38:00.000+05:302014-01-19T00:39:08.077+05:30LINQ 08- IEnumerable<p>LINQ is designed to work with collections. Common use of collection is iterating through them to read, filter and manipulate them.</p> <p>Following diagram shows the flow which is commonly used for reading all items with IEnumerable</p> <p><a href="http://lh4.ggpht.com/-gWLCkjG7riM/UtrRSqqTMpI/AAAAAAAAAEo/f6PumHTc6ns/s1600-h/image%25255B11%25255D.png"><img title="IEnumerable flow" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="IEnumerable flow" src="http://lh4.ggpht.com/-rtHSakBJSvc/UtrRUA3VTnI/AAAAAAAAAEw/s6DD_rvM-AA/image_thumb%25255B9%25255D.png?imgmax=800" width="357" height="441"></a></p> <p> </p> <p>Foreach loop uses the same logic to iterate through items in collections. Behind the scenes .Net uses IEnumerable for iterating through collections. All the collection classes (from arrays to generic lists) are implemented using IEnumerable. So IEnumerable interface is unavoidable for every .Net programmer.</p> <p> </p> <p>LINQ extends the concept of IEnumerable with extension methods to provide LINQ queries. Even without LINQ, the extension method provides many collection operations like searching, transforming, grouping and ordering using IEnumerable interface.</p> <p> </p> <p>Sample Code</p> <blockquote> <p>var a = new int[] { 1, 2, 3, 4, 5 };<br>var e = a.GetEnumerator();<br>while (e.MoveNext()) {<br> Console.WriteLine(e.Current.ToString());<br>}</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-73699302590786502412013-06-12T00:47:00.000+05:302014-01-19T00:48:02.644+05:30LINQ 07- Anonymous Types<p>Anonymous types allows users to create objects without creating classes. In many cases, we may need to store compound related data, but that will be referred in within a particular method. In .net framework 2.0, anonymous types, we have to write a simple classes and properties to achieve this.</p> <p>Anonymous types works with <a href="http://net4.rmkrishnan.net/2013/06/linq-06-automatic-type-inferencing.html">Automatic Type Inferencing</a>, <a href="http://net4.rmkrishnan.net/2013/06/linq-04-auto-implemented-properties.html">Auto Implemented properties</a> and <a href="http://net4.rmkrishnan.net/2013/06/linq-05-object-initializers.html">Object Initializers</a></p> <p>Example</p> <blockquote> <p>var e = new {<br> ID = 10,<br> Name = "John",<br> Designation = "Software Engineer",<br> Age = 25<br>};</p></blockquote> <p> </p> <p>C# Compiler implicitly creates a type and uses it.</p> <p>Notes:</p> <ul> <li>As the type name is unknown, automatic type inferencing should be used. <li>As Automatic type inferencing is the only option to declare anonymous types, it can be used within code blocks only, can not be used as type member <li>Anonymous types with same properties with same property types are considered as equal.</li></ul> <p>Hence</p> <blockquote> <p>var e = new {<br> ID = 10,<br> Name = "John",<br> Designation = "Software Engineer",<br> Age = 25<br>};</p></blockquote> <p>and </p> <blockquote> <p>var f = new {<br> ID = 11,<br> Name = "Mike",<br> Designation = "Software Engineer",<br> Age = 26<br>};</p></blockquote> <p>are considered as same type.</p> <ul> <li>Arrays with anonymous type elements can be created as</li></ul> <blockquote> <p>var e = new[]{ new {<br> ID = 10,<br> Name = "John",<br> Designation = "Software Engineer",<br> Age = 25<br>},<br>new {<br> ID = 11,<br> Name = "Mike",<br> Designation = "Software Engineer",<br> Age = 26<br>}};</p></blockquote> <ul> <li>It is not possible to refer property values within declaration. Following statement is WRONG.</li></ul> <blockquote> <p>var e = new {<br> ID = 10,<br> FirstName = "John",<br> LastName ="Carter",<br> <font color="#ff0000">FullName = FirstName + " " + LastName</font>,<br> Designation = "Software Engineer",<br> Age = 25<br>};</p></blockquote> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-88385811623750842672013-06-08T02:05:00.000+05:302013-10-07T02:05:23.900+05:30LINQ 06- Automatic type inferencing<p>Automatic type inferencing allows you to declare variables without specifying the type before the variable name. <p>You don’t have to specify the exact type when initializing variable with a type specific value <p>Example: <p>Instead of <blockquote> <p>int i = 10;</p></blockquote> <p>you can use <blockquote> <p>var i = 10;</p></blockquote> <p> <p>Same can be used for objects to <blockquote> <p>var e = new Employee();</p></blockquote> <p>In case you want a base class type to be used for the variable, you can use casting. <blockquote> <p>var p = (new Employee()) as Person;</p></blockquote> <p> <p>Note: <ul> <ul> <li>This can only be used inside a code block (methods, property get set blocks, etc)</li></ul></ul> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0tag:blogger.com,1999:blog-7443496494276729956.post-16309422023011196122013-06-05T00:36:00.000+05:302013-10-07T00:37:06.093+05:30LINQ 05- Object Initializers<p>Object initializer provides a shortcut to initialize an object with property values.</p> <p>Considering the following class.</p> <blockquote> <p>public class Employee {<br> public Employee() {<br> <br> }<br> public Employee(int id) {<br> this.ID = id;<br> }<br> public int ID { get; set; }<br> public string Name { get; set; }<br> public string Designation { get; set; }<br>}</p></blockquote> <p> </p> <p>With object initializer, we can initialize an Software Engineer John with ID 10, in one statement.</p> <blockquote> <p>var e = new Employee() {<br> ID=10,<br> Name="John",<br> Designation="Software Engineer"<br>};</p></blockquote> <p>or</p> <blockquote> <p>var e = new Employee(10) {<br> Name="John",<br> Designation="Software Engineer"<br>};</p></blockquote> <p>Second example shows the initialization of a class with parameterized constructor.</p> Muthukrishnan Ramasamyhttp://www.blogger.com/profile/01367779634645090815noreply@blogger.com0