<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-31991684</atom:id><lastBuildDate>Sun, 08 Nov 2020 09:07:27 +0000</lastBuildDate><category>.NET Tutorials</category><category>Microsoft News</category><category>.NET Tips and Tricks</category><category>.NET Controls</category><category>Books</category><category>.NET Articles</category><category>.NET Tools</category><category>.NET Assembly</category><category>Visual Studio</category><category>Microsoft Atlas</category><category>.NET Code Samples</category><category>Crystal Reports</category><category>JavaScript</category><category>IIS</category><category>Windows</category><category>.NET Framework 3.5</category><category>Database</category><category>Directives</category><category>Profiling</category><category>Sharepoint</category><category>.NET</category><category>Ajax</category><category>DataGrid</category><category>Introduction</category><category>Mail</category><category>SMTP</category><category>XML</category><category>.NET Debugging</category><category>.NET Security</category><category>Delegates</category><category>RSS</category><category>Microsoft .NET Jobs</category><category>.NET Interview questions</category><category>.NET Resources</category><category>SQL Server</category><category>.NET vs Java</category><category>Email Sending In .NET</category><category>asp.net</category><category>.NET Framework 3.0</category><category>.NET Grasshopper</category><category>Design Patterns</category><category>InfoPath</category><category>LinqToSQL</category><category>Unit Testing in Microsoft .NET</category><category>.NET Framework 4.0</category><category>.NET Interview</category><category>.NET Pointers</category><category>.NET Video Tutorials</category><category>BizTalk</category><category>Oracle</category><category>Cruise Control</category><category>Enterprise Library</category><category>Installation</category><category>Interview Questions</category><category>NANT</category><category>Office</category><category>Video Tutorials</category><category>.NET MVC</category><category>.NET Nuke</category><category>.NET Questions</category><category>Collections</category><category>Connection Strings</category><category>Datatable</category><category>Interview</category><category>NHibernate</category><category>Silverlight</category><category>VSS</category><category>WebResource.axd</category><category>Webcasts</category><category>Active Directory</category><category>Agile</category><category>Boxing and Unboxing</category><category>Bugs</category><category>Code Formatter</category><category>Dotfuscator</category><category>Events</category><category>Expression Blend</category><category>Facebook</category><category>My Cute .NET Boy</category><category>Posters</category><category>Registry</category><category>Regular Expressions</category><category>Threading</category><category>WWF</category><title>CodeKicks.com - Focus on Microsoft Technologies</title><description></description><link>http://www.codekicks.com/</link><managingEditor>noreply@blogger.com (Unknown)</managingEditor><generator>Blogger</generator><openSearch:totalResults>795</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-6982483034451621394</guid><pubDate>Wed, 27 Jun 2018 16:43:00 +0000</pubDate><atom:updated>2018-06-27T22:13:56.460+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET</category><title>.Net Framework - Tuple Trouble: Why C# Tuples Get to Break the Guidelines</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 36pt; margin-bottom: 8.25pt; text-align: left;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI Light&amp;quot;,sans-serif; font-size: 16.0pt; letter-spacing: -.1pt; mso-bidi-font-size: 14.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-font-kerning: 18.0pt;&quot;&gt;.Net Framework - Tuple Trouble: Why C# Tuples Get to Break the Guidelines&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Back in the August 2017 issue of MSDN Magazine I wrote an in-depth article on C# 7.0 and its support for tuples (&lt;a href=&quot;https://msdn.com/magazine/mt493248&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #0066dd; font-family: &amp;quot;inherit&amp;quot;,serif; mso-border-alt: none windowtext 0cm; padding: 0cm;&quot;&gt;msdn.com/magazine/mt493248&lt;/span&gt;&lt;/a&gt;). At the time I glossed over the fact that the tuple type introduced with C# 7.0 (internally of type ValueTuple&amp;lt;…&amp;gt;) breaks several guidelines of a well-structured value type, namely:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;• Do Not declare fields that are public or protected (instead encapsulate with a property).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;• Do Not define mutable value types.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;• Do Not create value types larger than 16 bytes in size.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;These guidelines have been in place since C# 1.0, and yet here in C# 7.0, they’ve been thrown to the wind to define the System.Value­Tuple&amp;lt;…&amp;gt; data type. Technically, System.ValueTuple&amp;lt;…&amp;gt; is a family of data types of the same name, but of varying arity (specifically, the number of type parameters). What’s so special about this particular data type that these long-respected guidelines no longer apply? And how can our understanding of the circumstances in which these guidelines apply—or don’t apply—help us refine their application to defining value types?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Let’s start the discussion with a focus on encapsulation and the benefits of properties versus fields. Consider, for example, an Arc value type representing a portion of the circumference of a circle. It’s defined by the radius of the circle, the start angle (in degrees) of the first point in the arc, and the sweep angle (in degrees) of the last point in the arc, as shown in&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #3b3b3b; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 13.5pt; mso-bidi-font-family: &amp;quot;Segoe UI&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;Figure 1&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Figure 1 Defining an Arc&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;struct&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Arc&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Arc (&lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; radius, &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; startAngle, &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; sweepAngle)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Radius = radius;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; StartAngle = startAngle;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SweepAngle = sweepAngle;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Radius;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; StartAngle;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; SweepAngle;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Length&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Math.Abs(StartAngle - SweepAngle)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; / 360 * 2 * Math.PI * Radius;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Rotate(&lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; degrees)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; StartAngle += degrees;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SweepAngle += degrees;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: green; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;// Override object.Equals&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;override&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Equals(&lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; obj)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; (obj &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Arc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; Equals((Arc)obj);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: green; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;// Implemented IEquitable&amp;lt;T&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Equals(Arc arc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; (Radius, StartAngle, SweepAngle).Equals(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (arc.Radius, arc.StartAngle, arc.SweepAngle));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: green; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;// Override object.GetHashCode&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;override&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; GetHashCode() =&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; (Radius, StartAngle, SweepAngle).GetHashCode();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;operator&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; ==(Arc lhs, Arc rhs) =&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lhs.Equals(rhs);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;operator&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; !=(Arc lhs, Arc rhs) =&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; !lhs.Equals(rhs);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 11.25pt; margin-left: 0cm; margin-right: 0cm; margin-top: 18.75pt; mso-outline-level: 2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI Semibold&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Do Not Declare Fields That Are Public or Protected&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In this declaration, Arc is a value type (defined using the keyword struct) with three public fields that define the characteristics of the Arc. Yes, I could’ve used properties, but I chose to use public fields in this example specifically because it violates the first guideline—Do Not declare fields that are public or protected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;By leveraging public fields rather than properties, the Arc definition lacks the most basic of object-oriented design principles—­encapsulation. For example, what if I decided to change the internal data structure to use the radius, start angle and arc length, for example, rather than the sweep angle? Doing so would obviously break the interface for Arc and all clients would be forced to make a code change.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Similarly, with the definitions of Radius, StartAngle and Sweep­Angle, I have no validation. Radius, for example, could be assigned a negative value. And while negative values for StartAngle and SweepAngle might be allowable, a value greater than 360 degrees wouldn’t. Unfortunately, because Arc is defined using public fields, there’s no way to add validation to protect against these values. Yes, I could add validation in version 2 by changing the fields to properties, but doing so would break the version compatibility of the Arc structure. Any existing compiled code that invoked the fields would break at runtime, as would any code (even if recompiled) that passes the field as a by ref parameter.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Given the guideline that fields should not be public or protected, it’s worth noting that properties, especially with default values, became easier to define than explicit fields encapsulated by properties, thanks to support in C# 6.0 for property initializers. For example, this code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; SweepAngle { &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;; } = 180;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;is simpler than this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; _SweepAngle = 180;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; SweepAngle {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; _SweepAngle; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; { _SweepAngle = value; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The property initializer support is important because, without it, an automatically implemented property that needs initialization would need an accompanying constructor. As a result, the guideline: “Consider automatically implemented properties over fields” (even private fields) makes sense, both because the code is more concise and because you can no longer modify fields from outside their containing property. All this favors yet another guideline, “Avoid accessing fields from outside their containing properties,” which emphasizes the earlier-described data encapsulation principle even from other class members.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;At this point lets return to the C# 7.0 tuple type ValueTuple&amp;lt;…&amp;gt;. Despite the guideline about exposed fields, ValueTuple&amp;lt;T1, T2&amp;gt;, for example, is defined as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;struct&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; ValueTuple&amp;lt;T1, T2&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; : IComparable&amp;lt;ValueTuple&amp;lt;T1, T2&amp;gt;&amp;gt;, ...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; T1 Item1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; T2 Item2;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: green; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;// ...&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;What makes ValueTuple&amp;lt;…&amp;gt; special? Unlike most data structures, the C# 7.0 tuple, henceforth referred to as tuple, was not about the whole object (such as a Person or CardDeck object). Rather, it was about the individual parts grouped arbitrarily for transportation purposes, so they could be returned from a method without the bother of using out or ref parameters. Mads Torgersen uses the analogy of a bunch of people who happen to be on the same bus—where the bus is like a tuple and the people are like the items in the tuple. The Items are grouped together in a return tuple parameter because they are all destined to return to the caller, not because they necessarily have any other association to each other. In fact, it’s likely that the caller will then retrieve the values from the tuple and work with them individually rather than as a unit.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The importance of the individual items rather than the whole makes the concept of encapsulation less compelling. Given that items in a tuple can be wholly unrelated to each other, there’s often no need to encapsulate them in such a manner that changing Item1, for example, might affect Item2. (By contrast, changing the Arc length would require a change in one or both of the angles so encapsulation is a must.) Furthermore, there are no invalid values for the items stored within a tuple. Any validation would be enforced in the data type of the item itself, not in the assignment of one of the Item properties on the tuple.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For this reason, properties on the tuple don’t provide any value, and there’s no conceivable future value they could provide. In short, if you’re going to define a type whose data is mutable with no need for validation, you may as well use fields. Another reason you might want to leverage properties is to have varying accessibility between the getter and the setter. However, assuming mutability is acceptable, you aren’t going to take advantage of properties with differing getter/setter accessibility, either. This all raises another question—should the tuple type be mutable?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 11.25pt; margin-left: 0cm; margin-right: 0cm; margin-top: 18.75pt; mso-outline-level: 2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI Semibold&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Do Not Define Mutable Value Types&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The next guideline to consider is that of the mutable value type. Once again, the Arc example (shown in the code in&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #3b3b3b; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 13.5pt; mso-bidi-font-family: &amp;quot;Segoe UI&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;Figure 2&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;) violates the guideline. It’s obvious if you think about it—a value type passes a copy, so changing the copy will not be observable from the caller. However, while the code in&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #3b3b3b; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 13.5pt; mso-bidi-font-family: &amp;quot;Segoe UI&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;Figure 2&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;demonstrates the concept of only modifying the copy, the readability of the code does not. From a readability perspective, it would seem the arc changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Figure 2 Value Types Are Copied So The Caller Doesn’t Observe the Change&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;[TestMethod]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; PassByValue_Modify_ChangeIsLost()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Modify(Arc paramameter) { paramameter.Radius++; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; Arc arc = &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Arc(42, 0, 90);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; Modify(arc);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; Assert.AreEqual&amp;lt;&lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;gt;(42, arc.Radius);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;What’s confusing is that in order for a developer to expect value copy behavior, they would have to know that Arc was a value type. However, there’s nothing obvious from the source code that indicates the value type behavior (though to be fair, the Visual Studio IDE will show a value type as a struct if you hover over the data type). You could perhaps argue that C# programmers should know value type versus reference type semantics, such that the behavior in&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #3b3b3b; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 13.5pt; mso-bidi-font-family: &amp;quot;Segoe UI&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;Figure 2&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;is expected. However, consider the scenario in&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #3b3b3b; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 13.5pt; mso-bidi-font-family: &amp;quot;Segoe UI&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;Figure 3&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;when the copy behavior is not so obvious.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Figure 3 Mutable Value Types Behave Unexpectedly&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; PieShape&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Point Center { &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Arc Arc { &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; PieShape(Arc arc, Point center = &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Arc = arc;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Center = center;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; PieShapeTests&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; [TestMethod]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Rotate_GivenArcOnPie_Fails()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PieShape pie = &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; PieShape(&lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; Arc(42, 0, 90));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual&amp;lt;&lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;gt;(90, pie.Arc.SweepAngle);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pie.Arc.Rotate(42);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual&amp;lt;&lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: blue; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 11.5pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;gt;(90, pie.Arc.SweepAngle);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Notice that, in spite of invocation Arc’s Rotate function, the Arc, in fact, never rotates. Why? This confusing behavior is due to the combination of two factors. First, Arc is a value type that causes it to be passed by value rather than by reference. As a result, invoking pie.Arc returns a copy of Arc, rather than returning the same instance of Arc that was instantiated in the constructor. This wouldn’t be a problem, if it wasn’t for the second factor. The invocation of Rotate is intended to modify the instance of Arc stored within pie, but in actuality, it modifies the copy returned from the Arc property. And that’s why we have the guideline, “Do Not define mutable value types.”&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;As before, tuples in C# 7.0 ignore this guideline and exposes public fields that, by definition, make ValueTuple&amp;lt;…&amp;gt; mutable. Despite this violation, ValueTuple&amp;lt;…&amp;gt; doesn’t suffer the same drawbacks as Arc. The reason is that the only way to modify the tuple is via the Item field. However, the C# compiler doesn’t allow the modification of a field (or property) returned from a containing type (whether the containing type is a reference type, value type or even an array or other type of collection). For example, the following code will not compile:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;pie.Arc.Radius = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Nor will this code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EDEDED; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;&lt;span style=&quot;color: #505050; font-family: &amp;quot;Courier New&amp;quot;; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;pie.Arc.Radius++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;These statements fail with the message, “Error CS1612: Cannot modify the return value of ‘PieShape.Arc’ because it is not a variable.” In other words, the guideline is not necessarily accurate. Rather than avoiding all mutable value types, the key is to avoid mutating functions (read/write properties are allowable). That wisdom, of course, assumes that the value semantics shown in&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #3b3b3b; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 13.5pt; mso-bidi-font-family: &amp;quot;Segoe UI&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;Figure 2&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;are obvious enough such that the intrinsic value type behavior is expected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 11.25pt; margin-left: 0cm; margin-right: 0cm; margin-top: 18.75pt; mso-outline-level: 2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI Semibold&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Do Not Create Value Types Larger Than 16 Bytes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;This guideline is needed because of how often the value type is copied. In fact, with the exception of a ref or out parameter, value types are copied virtually every time they’re accessed. This is true whether assigning one value type instance to another (such as Arc = arc in&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #3b3b3b; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 13.5pt; mso-bidi-font-family: &amp;quot;Segoe UI&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;Figure 3&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;) or a method invocation (such as Modify(arc) shown in&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #3b3b3b; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 13.5pt; mso-bidi-font-family: &amp;quot;Segoe UI&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;Figure 2&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;). For performance reasons, the guideline is to keep value type size small.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The reality is that the size of a ValueTuple&amp;lt;…&amp;gt; can often be larger than 128 bits (16 bytes) because a ValueTuple&amp;lt;…&amp;gt; may contain seven individual items (and even more if you specify another tuple for the eighth type parameter). Why, then, is the C# 7.0 tuple defined as a value type?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;As mentioned earlier, the tuple was introduced as a language feature to enable multiple return values without the complex syntax required by out or ref parameters. The general pattern, then, was to construct and return a tuple and then deconstruct it back at the caller. In fact, passing a tuple down the stack via a return parameter is similar to passing a group of arguments up the stack for a method call. In other words, return tuples are symmetric with individual parameter lists as far as memory copies are concerned.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If you declared the tuple as a reference type, then it would be necessary to construct the type on the heap and initialize it with the Item values—potentially copying either a value or reference to the heap. Either way, a memory copy operation is required, similar to that of a value type’s memory copy. Furthermore, at some later point in time when the reference tuple is no longer accessible, the garbage collector will need to recover the memory. In other words, a reference tuple still involves memory copying, as well as additional pressure on the garbage collector, making a value type tuple the more efficient option. (In the rare cases that a value tuple isn’t more efficient, you could still resort to the reference type version, Tuple&amp;lt;…&amp;gt;.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;While completely orthogonal to the main topic of the article, notice the implementation of Equals and GetHashCode in&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #3b3b3b; font-family: &amp;quot;inherit&amp;quot;,serif; font-size: 13.5pt; mso-bidi-font-family: &amp;quot;Segoe UI&amp;quot;; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; padding: 0cm;&quot;&gt;Figure 1&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;. You can see how tuples provide a shortcut for implementing Equals and GetHashCode. For more information, see “Using Tuples to Override Equality and GetHashCode.”&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 11.25pt; margin-left: 0cm; margin-right: 0cm; margin-top: 18.75pt; mso-outline-level: 2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI Semibold&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Wrapping Up&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;At first glance it can seem surprising for tuples to be defined as immutable value types. After all, the number of immutable value types found in .NET Core and the .NET Framework is minimal, and there are long-standing programming guidelines that call for value types to be immutable and encapsulated with properties. There’s also the influence of the immutable-by-default approach characteristic to F#, which pressured C# language designers to provide a shorthand to either declare immutable variables or define immutable types. (While no such shorthand is currently under consideration for C# 8.0, read-only structs were added to C#7.2 as a means to verify that a struct was immutable.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;However, when you delve into the details, you see a number of important factors. These include:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;• Reference types impose an additional performance impact with garbage collection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;• Tuples are generally ephemeral.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;• Tuple items have no foreseeable need for encapsulation with properties.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;• Even tuples that are large (by value type guidelines) don’t have significant memory copy operations beyond that of a reference tuple implementation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 15.0pt;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In summary, there are plenty of factors that favor a value type tuple with public fields in spite of the standard guidelines. In the end, guidelines are just that, guidelines. Don’t ignore them, but given sufficient—and I would suggest, explicitly documented—cause, it’s OK to color outside the lines on occasion.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;color: #3b3b3b; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 13.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;For more information on the guidelines for both defining value types and overriding Equals and GetHashCode, check out chapters 9 and 10 in my Essential C# book: “Essential C# 7.0” (&lt;a href=&quot;https://intellitect.com/EssentialCSharp&quot;&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: #0066dd; font-family: &amp;quot;inherit&amp;quot;,serif; mso-border-alt: none windowtext 0cm; padding: 0cm;&quot;&gt;IntelliTect.com/EssentialCSharp&lt;/span&gt;&lt;/a&gt;), which is expected to be out in May.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 36.0pt; margin-bottom: 8.25pt; mso-outline-level: 1;&quot;&gt;                                                                                                                                                                                                                                                                                           &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2018/06/net-framework-tuple-trouble-why-c.html</link><author>noreply@blogger.com (Ratnakar Dutt)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-4010842692127418999</guid><pubDate>Tue, 04 Mar 2014 06:40:00 +0000</pubDate><atom:updated>2014-03-04T12:11:04.799+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">asp.net</category><title>Lifecycle of an ASP.NET MVC 5 Application</title><description>&lt;p&gt;Here you can download a &lt;a href=&quot;http://i1.asp.net/media/4773381/lifecycle-of-an-aspnet-mvc-5-application.pdf?version_id=&amp;amp;cdn_id=2014-02-10-002&quot;&gt;&lt;u&gt;PDF Document&lt;/u&gt;&lt;/a&gt; that charts the lifecycle of every ASP.NET MVC 5 application, from receiving the HTTP request to sending the HTTP response back to the client. It is designed both as an educational tool for those who are new to ASP.NET MVC and also as a reference for those who need to drill into specific aspects of the application. The PDF document has the following features:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Relevant &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.web.httpapplication.aspx&quot;&gt;&lt;u&gt;HttpApplication&lt;/u&gt;&lt;/a&gt; stages to help you understand where MVC integrates into the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb470252.aspx&quot;&gt;&lt;u&gt;ASP.NET application lifecycle&lt;/u&gt;&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;A high-level view of the MVC application lifecycle, where you can understand the major stages that every MVC application passes through in the request processing pipeline.     &lt;br /&gt;&lt;img style=&quot;float: none; margin: 4px auto 0px; display: block&quot; alt=&quot;&quot; src=&quot;http://i1.asp.net/media/4772735/overview.jpg?cdn_id=2014-02-10-002&quot; /&gt;&lt;/li&gt;    &lt;li&gt;A detail view that shows drills down into the details of the request processing pipeline. You can compare the high-level view and the detail view to see how the lifecycles details are collected into the various stages.     &lt;br /&gt;&lt;img style=&quot;float: none; margin: 4px auto 0px; display: block&quot; alt=&quot;&quot; src=&quot;http://i1.asp.net/media/4772741/details.jpg?cdn_id=2014-02-10-002&quot; /&gt;&lt;/li&gt;    &lt;li&gt;Placement and purpose of all overridable methods on the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.aspx&quot;&gt;&lt;u&gt;Controller&lt;/u&gt;&lt;/a&gt; object in the request processing pipeline. You may or may not have the need to override any one method, but it is important for you to understand their role in the application lifecycle so that you can write code at the appropriate life cycle stage for the effect you intend. &lt;/li&gt;    &lt;li&gt;Blown-up diagrams showing how each of the filter types (authentication, authorization, action, and result) is invoked. &lt;/li&gt;    &lt;li&gt;Link to a useful article or blog from each point of interest in the detail view.&lt;/li&gt; &lt;/ul&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2014/03/lifecycle-of-aspnet-mvc-5-application.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-866766263842269241</guid><pubDate>Wed, 08 May 2013 13:31:00 +0000</pubDate><atom:updated>2013-05-08T19:12:30.906+05:30</atom:updated><title>Reading Excel using OpenXML</title><description>&lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;public DataTable ReadDataFromExcel()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string filePath = @&amp;quot;c:/temp/temp.xlsx&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; using (SpreadsheetDocument LobjDocument = SpreadsheetDocument.Open(filePath, false))    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WorkbookPart LobjWorkbookPart = LobjDocument.WorkbookPart;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sheet LobjSheetToImport = LobjWorkbookPart.Workbook.Descendants&amp;lt;Sheet&amp;gt;().First&amp;lt;Sheet&amp;gt;();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WorksheetPart LobjWorksheetPart = (WorksheetPart)(LobjWorkbookPart.GetPartById(LobjSheetToImport.Id));    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SheetData LobjSheetData = LobjWorksheetPart.Worksheet.Elements&amp;lt;SheetData&amp;gt;().First();&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Read only the data rows and skip all the header rows.   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int LiRowIterator = 1;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //&amp;#160; for progress bar   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int LiTotal = LobjSheetData.Elements&amp;lt;Row&amp;gt;().Count() - MobjImportMapper.HeaderRowIndex;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // =================&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (Row LobjRowItem in LobjSheetData.Elements&amp;lt;Row&amp;gt;().Skip(6))   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataRow LdrDataRow = LdtExcelData.NewRow();   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int LiColumnIndex = 0;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int LiHasData = 0;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LdrDataRow[LiColumnIndex] = LobjRowItem.RowIndex; //LiRowIterator;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LiColumnIndex++;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //TODO: handle restriction of column range.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (Cell LobjCellItem in LobjRowItem.Elements&amp;lt;Cell&amp;gt;().Where(PobjCell    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt; ImportHelper.GetColumnIndexFromExcelColumnName(ImportHelper.GetColumnName(PobjCell.CellReference))    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;= MobjImportMapper.LastColumnIndex))    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Gets the column index of the cell with data    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int LiCellColumnIndex = 10;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (LiColumnIndex &amp;lt; LiCellColumnIndex)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; do    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LdrDataRow[LiColumnIndex] = string.Empty;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LiColumnIndex++;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; while (LiColumnIndex &amp;lt; LiCellColumnIndex);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string LstrCellValue = LobjCellItem.InnerText;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (LobjCellItem.DataType != null)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; switch (LobjCellItem.DataType.Value)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case CellValues.SharedString:    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var LobjStringTable = LobjWorkbookPart.GetPartsOfType&amp;lt;SharedStringTablePart&amp;gt;().FirstOrDefault();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DocumentFormat.OpenXml.OpenXmlElement LXMLElment = null;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string LstrXMLString = String.Empty;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (LobjStringTable != null)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LstrXMLString =    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LobjStringTable.SharedStringTable.ElementAt(int.Parse(LstrCellValue, CultureInfo.InvariantCulture)).InnerXml;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (LstrXMLString.IndexOf(&amp;quot;&amp;lt;x:rPh&amp;quot;, StringComparison.CurrentCulture) != -1)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LXMLElment = LobjStringTable.SharedStringTable.ElementAt(int.Parse(LstrCellValue, CultureInfo.InvariantCulture)).FirstChild;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LstrCellValue = LXMLElment.InnerText;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LstrCellValue = LobjStringTable.SharedStringTable.ElementAt(int.Parse(LstrCellValue, CultureInfo.InvariantCulture)).InnerText;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; default:    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LdrDataRow[LiColumnIndex] = LstrCellValue.Trim();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (!string.IsNullOrEmpty(LstrCellValue))    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LiHasData++;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LiColumnIndex++;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (LiHasData &amp;gt; 0)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LiRowIterator++;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LdtExcelData.Rows.Add(LdrDataRow);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return LdtExcelData;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2013/05/reading-excel-using-openxml.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-3160912283075638357</guid><pubDate>Wed, 08 May 2013 12:57:00 +0000</pubDate><atom:updated>2013-05-08T18:46:22.313+05:30</atom:updated><title>Reading XML Content</title><description>&lt;p&gt;using System;   &lt;br /&gt;using System.Collections.Generic;    &lt;br /&gt;using System.Linq;    &lt;br /&gt;using System.Text;    &lt;br /&gt;using System.Xml.Linq;    &lt;br /&gt;using System.Diagnostics;    &lt;br /&gt;using System.Threading;    &lt;br /&gt;using System.Xml;    &lt;br /&gt;using System.Reflection;&lt;/p&gt;  &lt;p&gt;namespace XMLReading&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;class Program   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;static void Main(string[] args)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;  &lt;p&gt;string fileName = @&amp;quot;C:\temp\t.xml&amp;quot;;   &lt;br /&gt;List&amp;lt;EmergencyContactXMLDTO&amp;gt; emergencyContacts = new XmlReader&amp;lt;EmergencyContactXMLDTO, EmergencyContactXMLDTOMapper&amp;gt;().Read(fileName);&lt;/p&gt;  &lt;p&gt;foreach (var item in emergencyContacts)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;Console.WriteLine(item.FileNb);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;public class XmlReader&amp;lt;TDTO, TMAPPER&amp;gt; where TDTO : BaseDTO, new() where TMAPPER : PCPWXMLDTOMapper, new()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;public List&amp;lt;TDTO&amp;gt; Read(String fileName)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;XmlTextReader reader = new XmlTextReader(fileName);    &lt;br /&gt;List&amp;lt;TDTO&amp;gt; emergencyContacts = new List&amp;lt;TDTO&amp;gt;();    &lt;br /&gt;while (true)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TMAPPER mapper = new TMAPPER();    &lt;br /&gt;bool isFound = SeekElement(reader, mapper.GetMainXMLTagName());    &lt;br /&gt;if (!isFound) break;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TDTO dto = new TDTO();    &lt;br /&gt;foreach (var propertyKey in mapper.GetPropertyXMLMap())    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;String dtoPropertyName = propertyKey.Key;    &lt;br /&gt;String xmlPropertyName = propertyKey.Value;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SeekElement(reader, xmlPropertyName);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SetValue(dto, dtoPropertyName, reader.ReadElementString());    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; emergencyContacts.Add(dto);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;return emergencyContacts;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;private void SetValue(Object dto, String propertyName, String value)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;PropertyInfo prop = dto.GetType().GetProperty(propertyName, BindingFlags.Public | BindingFlags.Instance);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; prop.SetValue(dto, value, null);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;private bool SeekElement(XmlTextReader reader, String elementName)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;while (reader.Read())    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;XmlNodeType nodeType = reader.MoveToContent();    &lt;br /&gt;if (nodeType != XmlNodeType.Element)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;continue;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;if (reader.Name == elementName)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;return true;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;return false;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;public class BaseDTO&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;public class EmergencyContactXMLDTO : BaseDTO   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;  &lt;p&gt;public string FileNb { get; set; }&lt;/p&gt;  &lt;p&gt;public string ContactName { get; set; }&lt;/p&gt;  &lt;p&gt;public string ContactPhoneNumber { get; set; }&lt;/p&gt;  &lt;p&gt;public string Relationship { get; set; }&lt;/p&gt;  &lt;p&gt;public string DoctorName { get; set; }&lt;/p&gt;  &lt;p&gt;public string DoctorPhoneNumber { get; set; }&lt;/p&gt;  &lt;p&gt;public string HospitalName { get; set; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;public interface PCPWXMLDTOMapper   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;Dictionary&amp;lt;string, string&amp;gt; GetPropertyXMLMap();    &lt;br /&gt;String GetMainXMLTagName();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;public class EmergencyContactXMLDTOMapper : PCPWXMLDTOMapper   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;public Dictionary&amp;lt;string, string&amp;gt; GetPropertyXMLMap()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;return new Dictionary&amp;lt;string, string&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &amp;quot;FileNb&amp;quot;, &amp;quot;XFileNb&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &amp;quot;ContactName&amp;quot;, &amp;quot;XContactName&amp;quot;},    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &amp;quot;ContactPhoneNumber&amp;quot;, &amp;quot;XContactPhoneNumber&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &amp;quot;Relationship&amp;quot;, &amp;quot;XRelationship&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &amp;quot;DoctorName&amp;quot;, &amp;quot;XDoctorName&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &amp;quot;DoctorPhoneNumber&amp;quot;, &amp;quot;XDoctorPhoneNumber&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &amp;quot;HospitalName&amp;quot;, &amp;quot;XHospitalName&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;public String GetMainXMLTagName()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;return &amp;quot;EmergencyContact&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}    &lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2013/05/reading-xml-content.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-7635582605644529896</guid><pubDate>Wed, 08 May 2013 12:53:00 +0000</pubDate><atom:updated>2013-05-08T18:23:20.118+05:30</atom:updated><title>Reading Excel using ClosedXML</title><description>&lt;p&gt;I have used closedXML api to read the excel. Here is how you do it. Statistically, this performs better than OpenXML.&lt;/p&gt;  &lt;p&gt;public DataTable ReadDataFromExcelUsingClosedXML()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;string filePath =&amp;quot;@c:/temp/example.xlsx&amp;quot;;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var LobjWorkbook = new XLWorkbook(filePath);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var LobjWorksheet = LobjWorkbook.Worksheets.First();&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var LobjFullRange = LobjWorksheet.RangeUsed();   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var LobjUsedRange = LobjWorksheet.Range(MobjImportMapper.HeaderRowIndex + 1, 1, LobjFullRange.RangeAddress.LastAddress.RowNumber,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LobjFullRange.RangeAddress.LastAddress.ColumnNumber);&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var LiNumberOfcolumnsInTheExcel = LobjUsedRange.ColumnCount();&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //&amp;#160; for progress bar   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int LiAggregateRowCounter = MobjImportMapper.HeaderRowIndex;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int LiTotalNumberOfRows = LobjWorksheet.RowCount() - LiAggregateRowCounter;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int LiPercentage = 0;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (var LobjRow in LobjUsedRange.RowsUsed())   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int LiTemp = 0;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; object[] LobjrowData = new object[LiNumberOfcolumnsInTheExcel + 1];    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LobjrowData[LiTemp] = LobjRow.RangeAddress.FirstAddress.RowNumber;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LiTemp++;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LobjRow.Cells().ForEach(PobjCell =&amp;gt; LobjrowData[LiTemp++] = PobjCell.Value);   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LdtExcelData.Rows.Add(LobjrowData);&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //&amp;#160; for progress bar   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LiPercentage = ((100 * LiAggregateRowCounter / LiTotalNumberOfRows) / 4) * 3;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (LiPercentage &amp;gt; 5)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PobjBackgoundWorker.ReportProgress(LiPercentage);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LiAggregateRowCounter++;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // =====================    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return LdtExcelData;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2013/05/reading-excel-using-closedxml.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-2150199445023396417</guid><pubDate>Mon, 24 Oct 2011 20:26:00 +0000</pubDate><atom:updated>2011-10-25T02:05:03.858+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><title>In JavaScript, curly brace placement matters: An example by David</title><description>I used to follow Kernighan and Ritchie style of code formatting, but lost that habit. Not sure how may hours spent on fixing JS issues due to Allman format. &lt;span class=&quot;fullpost&quot;&gt;Every time I feel bad whilst Visual Studio gives K&amp;amp;R style. Just realized the impotence of K&amp;amp;R style for JS. My Big thanks to David for pointing the curly brace placement issue with JS and posting such a nice article. &lt;a title=&quot;In JavaScript, curly brace placement matters: An example&quot; href=&quot;http://encosia.com/in-javascript-curly-brace-placement-matters-an-example/&quot; rel=&quot;In JavaScript, curly brace placement matters: An example&quot; target=&quot;_blank&quot;&gt;In JavaScript, curly brace placement matters: An example&lt;/a&gt;&lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/10/in-javascript-curly-brace-placement.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-84508569195230390</guid><pubDate>Sat, 08 Oct 2011 11:05:00 +0000</pubDate><atom:updated>2011-10-08T16:50:45.373+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">asp.net</category><category domain="http://www.blogger.com/atom/ns#">Video Tutorials</category><title>ASP.NET Event Handling using ASPX and Code behind</title><description>This video shows how to register UI events in ASP.NET. Registration can be done in two ways first one is using APSX file and second one is using Code behind. This Video explains both the approaches, also explains you how easily events can be created in Visual Studio.   &lt;br /&gt;&lt;center&gt;&lt;iframe height=&quot;615&quot; src=&quot;http://www.youtube.com/embed/UJ-2ZXY4esA?rel=0&quot; frameborder=&quot;0&quot; width=&quot;860&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;&lt;/center&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/10/aspnet-event-handling-using-aspx-and.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/UJ-2ZXY4esA/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-7834361747704992065</guid><pubDate>Sun, 25 Sep 2011 20:03:00 +0000</pubDate><atom:updated>2011-09-26T01:33:52.544+05:30</atom:updated><title>State Design Pattern .NET Code Sample</title><description>&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Collections.Generic;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Linq;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Text;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Program&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;static void &lt;/span&gt;Main(&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;[] args)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style=&quot;color: #2b91af&quot;&gt;Person &lt;/span&gt;p1 = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Person&lt;/span&gt;(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;P1&amp;quot;&lt;/span&gt;);&lt;br /&gt;        &lt;span style=&quot;color: #2b91af&quot;&gt;Person &lt;/span&gt;p2 = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Person&lt;/span&gt;(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;P2&amp;quot;&lt;/span&gt;);&lt;br /&gt;        p1.EatFood();&lt;br /&gt;        p2.EatFood();&lt;br /&gt;        p1.Vomit();&lt;br /&gt;        p2.Vomit();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;pre class=&quot;code&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;interface &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StomachState&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;void &lt;/span&gt;Eat(&lt;span style=&quot;color: #2b91af&quot;&gt;Person &lt;/span&gt;p);&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;void &lt;/span&gt;Vomit(&lt;span style=&quot;color: #2b91af&quot;&gt;Person &lt;/span&gt;p);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StomachFull &lt;/span&gt;: &lt;span style=&quot;color: #2b91af&quot;&gt;StomachState&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public void &lt;/span&gt;Eat(&lt;span style=&quot;color: #2b91af&quot;&gt;Person &lt;/span&gt;p)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Can&#39;t eat more.&amp;quot;&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public void &lt;/span&gt;Vomit(&lt;span style=&quot;color: #2b91af&quot;&gt;Person &lt;/span&gt;p)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;I&#39;ve just Vomited.&amp;quot;&lt;/span&gt;);&lt;br /&gt;        p.StomachState = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StomachEmpty&lt;/span&gt;();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StomachEmpty &lt;/span&gt;: &lt;span style=&quot;color: #2b91af&quot;&gt;StomachState&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public void &lt;/span&gt;Eat(&lt;span style=&quot;color: #2b91af&quot;&gt;Person &lt;/span&gt;p)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;I&#39;ve just had food.&amp;quot;&lt;/span&gt;);&lt;br /&gt;        p.StomachState = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StomachFull&lt;/span&gt;();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public void &lt;/span&gt;Vomit(&lt;span style=&quot;color: #2b91af&quot;&gt;Person &lt;/span&gt;p)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Nothing to Vomit.&amp;quot;&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Person&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;private &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StomachState &lt;/span&gt;stomachState;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;private &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;String &lt;/span&gt;personName;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public &lt;/span&gt;Person(&lt;span style=&quot;color: #2b91af&quot;&gt;String &lt;/span&gt;personName)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;.personName = personName;&lt;br /&gt;        StomachState = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StomachEmpty&lt;/span&gt;();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StomachState &lt;/span&gt;StomachState &lt;br /&gt;    { &lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;get &lt;br /&gt;        &lt;/span&gt;{&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;return &lt;/span&gt;stomachState;&lt;br /&gt;        } &lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;set &lt;br /&gt;        &lt;/span&gt;{&lt;br /&gt;            stomachState = &lt;span style=&quot;color: blue&quot;&gt;value&lt;/span&gt;;&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(personName + &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot; Stomach State Changed to &amp;quot; &lt;/span&gt;+ StomachState.GetType().Name);&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;***********************************************\n&amp;quot;&lt;/span&gt;);&lt;br /&gt;        } &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public &lt;/span&gt;Person(&lt;span style=&quot;color: #2b91af&quot;&gt;StomachState &lt;/span&gt;StomachState)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;.StomachState = StomachState;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public void &lt;/span&gt;EatFood()&lt;br /&gt;    {&lt;br /&gt;        StomachState.Eat(&lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public void &lt;/span&gt;Vomit()&lt;br /&gt;    {&lt;br /&gt;        StomachState.Vomit(&lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/09/state-design-pattern-net-code-sample.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-2950482796346614822</guid><pubDate>Mon, 23 May 2011 11:32:00 +0000</pubDate><atom:updated>2011-05-23T17:02:40.179+05:30</atom:updated><title>Export from asp.net page to Excel, word &amp; pdf</title><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is an excellent articles that talks about exporting data from asp.net page to Excel, word and pdf&lt;/p&gt;  &lt;p&gt;&lt;a title=&quot;http://www.codeproject.com/KB/TipsnTricks/AllInOneExportData.aspx&quot; href=&quot;http://www.codeproject.com/KB/TipsnTricks/AllInOneExportData.aspx&quot;&gt;http://www.codeproject.com/KB/TipsnTricks/AllInOneExportData.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/05/export-from-aspnet-page-to-excel-word.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-8745446426455141839</guid><pubDate>Sun, 01 May 2011 19:21:00 +0000</pubDate><atom:updated>2011-05-02T00:51:11.632+05:30</atom:updated><title>DataTable to Generic List Conversion</title><description>&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Collections.Generic;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Linq;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Data;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;namespace &lt;/span&gt;ConsoleApplication1&lt;br /&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Program&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;static void &lt;/span&gt;Main(&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;[] args)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;DataTable &lt;/span&gt;table = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;DataTable&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                Columns = {&lt;br /&gt;                            {&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Number&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: blue&quot;&gt;typeof&lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;)},&lt;br /&gt;                            {&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: blue&quot;&gt;typeof&lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;)}&lt;br /&gt;                         }&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: green&quot;&gt;//Just adding few test rows to datatable.&lt;br /&gt;            &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;for &lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;int &lt;/span&gt;i = 1; i &amp;lt;= 5; i++)&lt;br /&gt;            {&lt;br /&gt;                table.Rows.Add(i, &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Name&amp;quot; &lt;/span&gt;+ i);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;returnList = &lt;span style=&quot;color: blue&quot;&gt;from &lt;/span&gt;row &lt;span style=&quot;color: blue&quot;&gt;in &lt;/span&gt;table.AsEnumerable()&lt;br /&gt;                              &lt;span style=&quot;color: blue&quot;&gt;select new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;MyObject&lt;br /&gt;                              &lt;/span&gt;{&lt;br /&gt;                                  Number = row.Field&amp;lt;&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Number&amp;quot;&lt;/span&gt;),&lt;br /&gt;                                  Name = row.Field&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;String&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;)&lt;br /&gt;                              };&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: green&quot;&gt;//Displaying converted collection&lt;br /&gt;            &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;foreach &lt;/span&gt;(&lt;span style=&quot;color: #2b91af&quot;&gt;MyObject &lt;/span&gt;item &lt;span style=&quot;color: blue&quot;&gt;in &lt;/span&gt;returnList)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;{0}\t{1}&amp;quot;&lt;/span&gt;, item.Number, item.Name);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;MyObject&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public int &lt;/span&gt;Number { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;String &lt;/span&gt;Name { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/05/datatable-to-generic-list-conversion.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-3783516010702108844</guid><pubDate>Fri, 11 Feb 2011 09:50:00 +0000</pubDate><atom:updated>2011-02-12T00:25:19.806+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Database</category><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><title>Microsoft offers Professional Tools for small companies with support at no cost</title><description>&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/web/downloads/platform.aspx&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 4px 5px 0px 4px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;VisualStudioAndSQLServer_Free&quot; border=&quot;0&quot; alt=&quot;VisualStudioAndSQLServer_Free&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TVUGQVW17bI/AAAAAAAAEAM/ioIuHjJdXOs/VisualStudioAndSQLServer_Free_thumb4.jpg?imgmax=800&quot; width=&quot;655&quot; height=&quot;424&quot; /&gt;&lt;/a&gt;&lt;/p&gt; &lt;span class=&quot;fullpost&quot;&gt;   &lt;p align=&quot;center&quot;&gt;&amp;#160; &lt;/p&gt;    &lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/web/downloads/platform.aspx&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 4px 5px 0px 4px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;Microsoft_Web_Platform_installer30&quot; border=&quot;0&quot; alt=&quot;Microsoft_Web_Platform_installer30&quot; src=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TVUGR5kJMzI/AAAAAAAAEAQ/bEzbKmrXgVw/Microsoft_Web_Platform_installer309.jpg?imgmax=800&quot; width=&quot;852&quot; height=&quot;1485&quot; /&gt;&lt;/a&gt;&amp;#160;&amp;#160; &lt;/p&gt;    &lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://www.asp.net/downloads&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 4px 5px 0px 4px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;ASP.NET_Free_Installer&quot; border=&quot;0&quot; alt=&quot;ASP.NET_Free_Installer&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TVUGS3jrnVI/AAAAAAAAEAU/mLW9b1vSjwY/ASP.NET_Free_Installer14.jpg?imgmax=800&quot; width=&quot;566&quot; height=&quot;342&quot; /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;&lt;br /&gt;&lt;br /&gt;span.fullpost {display:none;}&lt;/style&gt;&lt;/div&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/02/microsoft-offers-professional-tools-for.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_5bxQMD4HzSY/TVUGQVW17bI/AAAAAAAAEAM/ioIuHjJdXOs/s72-c/VisualStudioAndSQLServer_Free_thumb4.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-6269419368458443585</guid><pubDate>Thu, 10 Feb 2011 22:16:00 +0000</pubDate><atom:updated>2011-02-11T04:34:25.137+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET Tips and Tricks</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><title>How to Hibernate from .NET Apps and How to enable Hibernate in Windows XP</title><description>The usage of Computer desktop or laptop is increased all around the world phenomenally. This &lt;a title=&quot;Power consumption&quot; href=&quot;http://michaelbluejay.com/electricity/computers.html&quot; rel=&quot;Power consumption&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt; gives you the picture on how power consumption is for various devices we use daily. to reduce the power consumption Hibernate is one of the best way provided by default in Windows Vista or Windows 7. Hibernate feature enables you to close the machine without closing your applications, that means the applications will be restored as they were once we restart the machine. &lt;span class=&quot;fullpost&quot;&gt;Hibernate feature is not enabled in Windows XP by default. I’ve seen many people that they run (do not switch off) the machines months and months as they do not want to close the windows or applications running in Windows XP. below are the steps to enable Hibernate in Windows XP.    &lt;br /&gt;    &lt;ol&gt;     &lt;li&gt;Right click on Desktop. &lt;/li&gt;      &lt;li&gt;Click on properties. &lt;/li&gt;      &lt;li&gt;Go to screen save tab. &lt;/li&gt;      &lt;li&gt;Click on power button &lt;/li&gt;      &lt;li&gt;Select Hibernate tab &lt;/li&gt;      &lt;li&gt;Check the checkbox “Enabled Hibernate” &lt;/li&gt;      &lt;li&gt;Apply the settings. &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TVRu7a1feHI/AAAAAAAAD_8/_MG9_hqz4hg/s1600-h/hibernateXP%5B1%5D.png&quot;&gt;&lt;img style=&quot;margin: 4px 5px 0px 4px; display: inline&quot; title=&quot;hibernateXP&quot; alt=&quot;hibernateXP&quot; src=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TVRjqOIiaDI/AAAAAAAAEAA/p66WDaao2vQ/hibernateXP_thumb.png?imgmax=800&quot; width=&quot;676&quot; height=&quot;601&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Now when you try to shutdown, “Shut down windows” dialog shows “Hibernate” options. Now you can safely close the machine without closing your applications or windows as they will be restored once you on the machine.&lt;/p&gt; &amp;lt;/SPAN?        &lt;p&gt;Some time you might want to provide this future programmatically for the applications you develop for windows. Generally you might want to provide this option in windows applications where process needs huge time. Download managers are the one of the best example. below is the code to do a Hibernate from the .NET code.&lt;/p&gt;    &lt;pre class=&quot;csharpcode&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Windows.Forms;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;namespace &lt;/span&gt;CodeKicks.WinApp.Machine&lt;br /&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public static class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;MyMachineHelper&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public static void &lt;/span&gt;DoHibernate()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style=&quot;color: green&quot;&gt;//Application.SetSuspendState(PowerState.Suspend, true, false);&lt;br /&gt;            &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Application&lt;/span&gt;.SetSuspendState(&lt;span style=&quot;color: #2b91af&quot;&gt;PowerState&lt;/span&gt;.Hibernate, &lt;span style=&quot;color: blue&quot;&gt;true&lt;/span&gt;, &lt;span style=&quot;color: blue&quot;&gt;false&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/02/how-to-enable-hibernate-in-windows-xp.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_5bxQMD4HzSY/TVRjqOIiaDI/AAAAAAAAEAA/p66WDaao2vQ/s72-c/hibernateXP_thumb.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-7280998233030354053</guid><pubDate>Fri, 28 Jan 2011 09:46:00 +0000</pubDate><atom:updated>2011-01-30T07:46:47.519+05:30</atom:updated><title>Configure SQL Express 2005 for remote access</title><description>Please follow the below steps as shown in pictures to configure SQL Server Express 2005 for remote access.&lt;span class=&quot;fullpost&quot;&gt;    &lt;br /&gt;    &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TUKQZpxbBoI/AAAAAAAAD-4/zCTPFgZc3Sg/s1600-h/clip_image0026.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TUKQaTOQRmI/AAAAAAAAD-8/777sYb0gD14/clip_image002_thumb3.jpg?imgmax=800&quot; width=&quot;417&quot; height=&quot;280&quot; /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Fig1: Open SQL Serve Configuration Manager &lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TUKQbAja12I/AAAAAAAAD_A/A8yDCkw0R0Y/s1600-h/clip_image0046.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;clip_image004&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; src=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TUKQcI2jm9I/AAAAAAAAD_E/LZy3Ey5B9IU/clip_image004_thumb3.jpg?imgmax=800&quot; width=&quot;420&quot; height=&quot;210&quot; /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Fig2: Navigate to SQL Serve 2005 N/W configuration and click on Protocols node &lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TUKQc4o4hwI/AAAAAAAAD_I/JhznuZ-WKlA/s1600-h/clip_image0066.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;clip_image006&quot; border=&quot;0&quot; alt=&quot;clip_image006&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TUKQd9Ca6BI/AAAAAAAAD_M/B19iTIXOb0g/clip_image006_thumb3.jpg?imgmax=800&quot; width=&quot;423&quot; height=&quot;208&quot; /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Fig3: Enable TCP/IP Protocol &lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TUKQen3-z-I/AAAAAAAAD_Q/hARUMzihbIU/s1600-h/clip_image0086.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;clip_image008&quot; border=&quot;0&quot; alt=&quot;clip_image008&quot; src=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TUKQfintmVI/AAAAAAAAD_U/hGBohaLVvLg/clip_image008_thumb3.jpg?imgmax=800&quot; width=&quot;413&quot; height=&quot;160&quot; /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Fig4: Enable Named Pipes Protocol &lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TUKQgwzhdII/AAAAAAAAD_Y/tuhxNbWJMeo/s1600-h/clip_image0106.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;clip_image010&quot; border=&quot;0&quot; alt=&quot;clip_image010&quot; src=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TUKQhryYVlI/AAAAAAAAD_c/Eu4_BlP9pbo/clip_image010_thumb3.jpg?imgmax=800&quot; width=&quot;419&quot; height=&quot;171&quot; /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Fig5: After enabling TCP/IP and Named Pipes protocols &lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TUKQiYB17tI/AAAAAAAAD_g/_QOcfbcaTh8/s1600-h/clip_image0126.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;clip_image012&quot; border=&quot;0&quot; alt=&quot;clip_image012&quot; src=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TUKQjY_jVSI/AAAAAAAAD_k/oIOK3tFnb6E/clip_image012_thumb3.jpg?imgmax=800&quot; width=&quot;434&quot; height=&quot;289&quot; /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Fig6: Finally click on TCP/IP to configure the port number to listen N/W requests to SQL Express 2005.&lt;/p&gt; &lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/01/configure-sql-express-2005-for-remote.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_5bxQMD4HzSY/TUKQaTOQRmI/AAAAAAAAD-8/777sYb0gD14/s72-c/clip_image002_thumb3.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-7787584064741689917</guid><pubDate>Thu, 27 Jan 2011 21:15:00 +0000</pubDate><atom:updated>2011-01-28T03:05:43.430+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Installation</category><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><title>Visual Studio 2010 Installation Screenshots, links to installation Guides, Forum</title><description>Today Installed Visual Studio 2010 in my new Sony Vaio laptop. I’ve habit of taking screen shots while setups are running. It helps me if I want to find the items what I installed earlier for that software. but taking screen shots is not required for the software&#39;s like Visual Studio as it provides add/remove items at anytime. Below are the screen shorts for the members are you new to Visual Studio installation, it’s pretty much easy and self understandable if you follow the instructions mentioned in installation wizard. I thought it does several system restarts as earlier versions, but VS2010 did not restart the machine. Just it said successfully installed. You might want to &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/e2h7fzkw.aspx&quot; target=&quot;_blank&quot;&gt;refer this link&lt;/a&gt; for further assistance. You can also ask your queries in this &lt;a href=&quot;http://social.msdn.microsoft.com/Forums/eu/vssetup/threads&quot; target=&quot;_blank&quot;&gt;forum&lt;/a&gt;. You can also find &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2d531219-2c39-4c69-88ef-f5ae6ac18c9f&amp;amp;displaylang=en&quot; target=&quot;_blank&quot;&gt;installation guide&lt;/a&gt;. Happy coding with Visual Studio 2010 :-)      &lt;p&gt;You might also want to other articles      &lt;br /&gt;&lt;a title=&quot;27 New Features of .NET Framework 4.0&quot; href=&quot;http://www.codekicks.com/2009/06/27-new-features-of-net-framework-40.html&quot; rel=&quot;27 New Features of .NET Framework 4.0 &quot;&gt;27 New Features of .NET Framework 4.0&lt;/a&gt;       &lt;br /&gt;&lt;a title=&quot;New features of IIS 7.0&quot; href=&quot;http://www.codekicks.com/2008/03/iis-70-new-features.html&quot; rel=&quot;New features of IIS 7.0&quot;&gt;New features of IIS 7.0&lt;/a&gt;       &lt;br /&gt;&lt;a title=&quot;22 New Features of Visual Studio 2008 for .NET Professionals&quot; href=&quot;http://www.codekicks.com/2007/11/22-new-features-of-visual-studio-2008.html&quot; rel=&quot;22 New Features of Visual Studio 2008 for .NET Professionals&quot;&gt;22 New Features of Visual Studio 2008 for .NET Professionals&lt;/a&gt; &lt;/p&gt; &lt;span class=&quot;fullpost&quot;&gt;   &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TUHf9xSNkEI/AAAAAAAAD94/bfcAtAj2or4/s1600-h/Visual_Studio_Installation1%5B7%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Visual_Studio_Installation1&quot; border=&quot;0&quot; alt=&quot;Visual_Studio_Installation1&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TUHf_AgSA0I/AAAAAAAAD98/_qay0xcrtLM/Visual_Studio_Installation1_thumb%5B5%5D.jpg?imgmax=800&quot; width=&quot;758&quot; height=&quot;594&quot; /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TUHgADXZ-vI/AAAAAAAAD-A/wWD1WnS9gYM/s1600-h/Visual_Studio_Installation2%5B7%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Visual_Studio_Installation2&quot; border=&quot;0&quot; alt=&quot;Visual_Studio_Installation2&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TUHgBiB4n4I/AAAAAAAAD-E/yIbFN2oeXpE/Visual_Studio_Installation2_thumb%5B5%5D.jpg?imgmax=800&quot; width=&quot;758&quot; height=&quot;595&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TUHgPAgKZmI/AAAAAAAAD-I/JM3jEbXsD90/s1600-h/Visual_Studio_Installation3%5B5%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Visual_Studio_Installation3&quot; border=&quot;0&quot; alt=&quot;Visual_Studio_Installation3&quot; src=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TUHgQACs5vI/AAAAAAAAD-M/8OB8mZpCJAs/Visual_Studio_Installation3_thumb%5B3%5D.jpg?imgmax=800&quot; width=&quot;751&quot; height=&quot;584&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TUHgSx-0iXI/AAAAAAAAD-Q/SnXZ8px4pf8/s1600-h/Visual_Studio_Installation4%5B5%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Visual_Studio_Installation4&quot; border=&quot;0&quot; alt=&quot;Visual_Studio_Installation4&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TUHgU0drJ6I/AAAAAAAAD-U/YbcBGM_2o5I/Visual_Studio_Installation4_thumb%5B3%5D.jpg?imgmax=800&quot; width=&quot;745&quot; height=&quot;579&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TUHgWk8XWSI/AAAAAAAAD-Y/GQhic7ofJ6Q/s1600-h/Visual_Studio_Installation5%5B6%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Visual_Studio_Installation5&quot; border=&quot;0&quot; alt=&quot;Visual_Studio_Installation5&quot; src=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TUHgXzSebMI/AAAAAAAAD-c/2jYG4daYOBE/Visual_Studio_Installation5_thumb%5B4%5D.jpg?imgmax=800&quot; width=&quot;742&quot; height=&quot;580&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TUHgY9SvvQI/AAAAAAAAD-g/qdPqUjSZriM/s1600-h/Visual_Studio_Installation6%5B5%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Visual_Studio_Installation6&quot; border=&quot;0&quot; alt=&quot;Visual_Studio_Installation6&quot; src=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TUHgaAKHa5I/AAAAAAAAD-k/WjfzH8dnIyE/Visual_Studio_Installation6_thumb%5B3%5D.jpg?imgmax=800&quot; width=&quot;745&quot; height=&quot;579&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TUHgbDICGcI/AAAAAAAAD-o/5sPJTavIUV4/s1600-h/Visual_Studio_Installation7%5B7%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Visual_Studio_Installation7&quot; border=&quot;0&quot; alt=&quot;Visual_Studio_Installation7&quot; src=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TUHgcI6EKxI/AAAAAAAAD-s/PO2fxXQIYsE/Visual_Studio_Installation7_thumb%5B5%5D.jpg?imgmax=800&quot; width=&quot;748&quot; height=&quot;589&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TUHgdeR_CBI/AAAAAAAAD-w/lwvLjRICTks/s1600-h/Visual_Studio_Installation8%5B5%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Visual_Studio_Installation8&quot; border=&quot;0&quot; alt=&quot;Visual_Studio_Installation8&quot; src=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TUHgedosENI/AAAAAAAAD-0/IH9-nbR3hhc/Visual_Studio_Installation8_thumb%5B3%5D.jpg?imgmax=800&quot; width=&quot;744&quot; height=&quot;579&quot; /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/01/visual-studio-2010-installation.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_5bxQMD4HzSY/TUHf_AgSA0I/AAAAAAAAD98/_qay0xcrtLM/s72-c/Visual_Studio_Installation1_thumb%5B5%5D.jpg?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-3074002820335958606</guid><pubDate>Mon, 24 Jan 2011 11:49:00 +0000</pubDate><atom:updated>2011-01-26T15:35:18.172+05:30</atom:updated><title>An observation on .NET loops – foreach, for, while, do-while</title><description>It’s very common that .NET programmers use “foreach” loop for iterating through collections. Following is my observation whilst I was testing simple scenario on loops. “for” loop is 30% faster than “foreach” and “while” loop is 50% faster than “foreach”. “do-while” is bit faster than “while”. Someone may feel that how does it make difference if I’m iterating only 1000 times in a loop.   &lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;   &lt;br /&gt;&lt;b&gt;This test case is only for simple iteration. According to the &amp;quot;Data structure&amp;quot; concepts, best and worst cases are completely based on the data we provide to the algorithm. so we can not conclude that a &amp;quot;foreach&amp;quot; algorithm is not good. All I want to tell that we need to be little cautious even choosing the loops.      &lt;br /&gt;      &lt;br /&gt;Example:- You might want to chose quick sort when you want to sort more numbers. At the same time bubble sort may be effective than quick sort when you want to sort less numbers.&lt;/b&gt;     &lt;br /&gt;    &lt;br /&gt;Take a simple scenario, a request of a simple web application fetches the data of 10000 (10K) rows and iterating them for some business logic. Think, this application is being accessed by 1000 (1K) people simultaneously. In this simple scenario you are ending up with 10000000 (10Million or 1 Crore) iterations.     &lt;p&gt;below is the test scenario with simple console application to test 100 Million records.&lt;/p&gt;    &lt;pre class=&quot;csharpcode&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Collections.Generic;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Diagnostics;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;namespace &lt;/span&gt;ConsoleApplication1&lt;br /&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Program&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;static void &lt;/span&gt;Main(&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;[] args)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;sw = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Stopwatch&lt;/span&gt;();&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;numbers = GetSomeNumbers();&lt;br /&gt;&lt;br /&gt;            sw.Start();&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;foreach &lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;item &lt;span style=&quot;color: blue&quot;&gt;in &lt;/span&gt;numbers)&lt;br /&gt;            {&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            sw.Stop();&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;String&lt;/span&gt;.Format(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;\&amp;quot;foreach\&amp;quot; took {0} milliseconds&amp;quot;&lt;/span&gt;,&lt;br /&gt;            sw.ElapsedMilliseconds));&lt;br /&gt;&lt;br /&gt;            sw.Reset();&lt;br /&gt;            sw.Start();&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;for &lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;int &lt;/span&gt;i = 0; i &amp;lt; numbers.Count; i++)&lt;br /&gt;            {&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            sw.Stop();&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;String&lt;/span&gt;.Format(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;\&amp;quot;for\&amp;quot; loop took {0} milliseconds&amp;quot;&lt;/span&gt;,&lt;br /&gt;            sw.ElapsedMilliseconds));&lt;br /&gt;&lt;br /&gt;            sw.Reset();&lt;br /&gt;            sw.Start();&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;it = 0;&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;while &lt;/span&gt;(it++ &amp;lt; numbers.Count)&lt;br /&gt;            {&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            sw.Stop();&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;String&lt;/span&gt;.Format(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;\&amp;quot;while\&amp;quot; loop took {0} milliseconds&amp;quot;&lt;/span&gt;,&lt;br /&gt;            sw.ElapsedMilliseconds));&lt;br /&gt;&lt;br /&gt;            sw.Reset();&lt;br /&gt;            sw.Start();&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;it2 = 0;&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;do&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;&lt;br /&gt;            } &lt;span style=&quot;color: blue&quot;&gt;while &lt;/span&gt;(it2++ &amp;lt; numbers.Count);&lt;br /&gt;&lt;br /&gt;            sw.Stop();&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;String&lt;/span&gt;.Format(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;\&amp;quot;do-while\&amp;quot; loop took {0} milliseconds&amp;quot;&lt;/span&gt;,&lt;br /&gt;            sw.ElapsedMilliseconds));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;#region &lt;/span&gt;Get me 10Crore (100 Million) numbers&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;private static &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;&amp;gt; GetSomeNumbers()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;lstNumbers = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;&amp;gt;();&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;count = 100000000;&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;for &lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;i = 1; i &amp;lt;= count; i++)&lt;br /&gt;            {&lt;br /&gt;                lstNumbers.Add(i);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;return &lt;/span&gt;lstNumbers;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;#endregion &lt;/span&gt;Get me some numbers&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  In above example, I was just iterating through 100 Million numbers. You can see the time to execute various&amp;#160; loops provided in .NET&lt;br/&gt;&lt;br /&gt;  &lt;strong&gt;Output&lt;/strong&gt;&lt;br /&gt;     &amp;quot;foreach&amp;quot; took 1108 milliseconds &lt;br /&gt;    &lt;br /&gt;&amp;quot;for&amp;quot; loop took 727 milliseconds &lt;br /&gt;    &lt;br /&gt;&amp;quot;while&amp;quot; loop took 596 milliseconds &lt;br /&gt;    &lt;br /&gt;&amp;quot;do-while&amp;quot; loop took 594 milliseconds &lt;br /&gt;    &lt;br /&gt;&amp;#160; Press any key to continue . . . &lt;/br&gt;&lt;br /&gt;  &lt;a href=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TT1nW85N7WI/AAAAAAAAD9w/wE57lr42_fs/s1600-h/NET_LOOPS_OUTPUT11.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;NET_LOOPS_OUTPUT&quot; border=&quot;0&quot; alt=&quot;NET_LOOPS_OUTPUT&quot; src=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TT1nXi-FKhI/AAAAAAAAD90/pzwwg5ykhzY/NET_LOOPS_OUTPUT_thumb9.jpg?imgmax=800&quot; width=&quot;368&quot; height=&quot;123&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  So I feel we need to be careful while choosing the looping strategy. Please comment your thoughts.&lt;br /&gt;&lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/01/try-to-avoid-foreachfor-loops.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_5bxQMD4HzSY/TT1nXi-FKhI/AAAAAAAAD90/pzwwg5ykhzY/s72-c/NET_LOOPS_OUTPUT_thumb9.jpg?imgmax=800" height="72" width="72"/><thr:total>25</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-674364396866721498</guid><pubDate>Fri, 21 Jan 2011 10:34:00 +0000</pubDate><atom:updated>2011-01-21T16:04:36.011+05:30</atom:updated><title>Control HelpButton, HelpRequested, HelpButtonClicked - Instant help for windows Dialog Form components</title><description>Instant help for windows dialog components is a great feature and very much known since windows 98. but I saw many many people are not aware it and query on Google to get help, but “help button” for dialogs helps you or your customers to get the help instantly. &lt;span class=&quot;fullpost&quot;&gt;Every dialog window has help icon if that dialog was coded to enable it. it really helps to know the functionality of the components quickly. For example I was trying to pint a document from acrobat reader and opened printer properties to print the content front and back of the paper.   &lt;br /&gt;    &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TTlhLqmWtrI/AAAAAAAAD9c/l-0R2jcPq-8/s1600-h/Windows_Dialog_Help_Button11.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Windows_Dialog_Help_Button&quot; border=&quot;0&quot; alt=&quot;Windows_Dialog_Help_Button&quot; src=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TTlhM0ciiYI/AAAAAAAAD9g/2ecnJz0dcO4/Windows_Dialog_Help_Button_thumb7.jpg?imgmax=800&quot; width=&quot;451&quot; height=&quot;408&quot; /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;If you observe there is a help button before close button. To get help on options of “Print on Both Sides” you would need to click on help button first and then click on the area on which you want to see the help. above picture shows help text for the options of “Print on Both Sides”. If you would like to get the help using keyboard you can use F1 key.&lt;/p&gt;    &lt;p&gt;Help button can be displayed only if minimize button and maximize button both are not shown unless you want go with custom buttons. below is the way if you want to get Help button for windows forms. &lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TTlhNjYBFpI/AAAAAAAAD9k/P1XLbIN6WMg/s1600-h/Windows_Form_Help_Demo8.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;Windows_Form_Help_Demo&quot; border=&quot;0&quot; alt=&quot;Windows_Form_Help_Demo&quot; src=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TTlhOvmtulI/AAAAAAAAD9o/wpziDk62n38/Windows_Form_Help_Demo_thumb3.jpg?imgmax=800&quot; width=&quot;240&quot; height=&quot;145&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;In this sample demo I want to have a checkbox and need to show help when I click on F1 on check box. So I created a form which country check box and help label as show in adjacent picture.&lt;/p&gt;    &lt;p&gt;Below is the code for your code bind file.&lt;/p&gt;    &lt;p&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System;      &lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Windows.Forms;      &lt;br /&gt;      &lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;namespace &lt;/span&gt;WindowsFormsApplication1      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;public partial class&lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Form1&lt;/span&gt;: &lt;span style=&quot;color: #2b91af&quot;&gt;Form       &lt;br /&gt;&amp;#160;&amp;#160; &lt;/span&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;public&lt;/span&gt;Form1()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;private void &lt;/span&gt;Form1_Load(&lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt;sender, &lt;span style=&quot;color: #2b91af&quot;&gt;EventArgs &lt;/span&gt;e)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;.Text = &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Help Button Demo Form&amp;quot;&lt;/span&gt;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lblHelp.Text = &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Press F1 on any component to get Instant Help&amp;quot;&lt;/span&gt;;      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;.HelpButton = &lt;span style=&quot;color: blue&quot;&gt;true&lt;/span&gt;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;.MaximizeBox = &lt;span style=&quot;color: blue&quot;&gt;false&lt;/span&gt;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;.MinimizeBox = &lt;span style=&quot;color: blue&quot;&gt;false&lt;/span&gt;;      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; chkCountry.Tag = &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Check or Uncheck Coutry Check Box&amp;quot;&lt;/span&gt;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; chkCountry.HelpRequested += &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;HelpEventHandler&lt;/span&gt;(chkCountry_HelpRequested);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; chkCountry.MouseLeave += &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;EventHandler&lt;/span&gt;(chkCountry_MouseLeave);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;void &lt;/span&gt;chkCountry_HelpRequested(&lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt;sender, &lt;span style=&quot;color: #2b91af&quot;&gt;HelpEventArgs &lt;/span&gt;hlpevent)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: #2b91af&quot;&gt;Control&lt;/span&gt;requestingControl = (&lt;span style=&quot;color: #2b91af&quot;&gt;Control&lt;/span&gt;)sender;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lblHelp.Text = (&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;)requestingControl.Tag;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; hlpevent.Handled = &lt;span style=&quot;color: blue&quot;&gt;true&lt;/span&gt;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;void &lt;/span&gt;chkCountry_MouseLeave(&lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt;sender, &lt;span style=&quot;color: #2b91af&quot;&gt;EventArgs &lt;/span&gt;e)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lblHelp.Text = &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Press F1 on any component to get Instant Help&amp;quot;&lt;/span&gt;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;br /&gt;&lt;/p&gt;    &lt;div class=&quot;CSharpCode&quot;&gt;     &lt;p&gt;       &lt;br /&gt;In above code&amp;#160; “HelpRequested” is an event will be fired when you click on F1 on Country checkbox. I stored the help information in the checkbox property called “Tag”. You might also maintain a property file to keep help text for each component differently. If you click on F1 when focus is on main form instead on individual component then generally separate help window opens. This can be done using the event “Form.HelpRequested” to open help windows as in below code.&lt;/p&gt;      &lt;p&gt;&lt;span style=&quot;color: blue&quot;&gt;this&lt;/span&gt;.HelpRequested += &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt;HelpEventHandler(Form1_HelpRequested);        &lt;br /&gt;        &lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;void&lt;/span&gt;Form1_HelpRequested(&lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt;sender, &lt;span style=&quot;color: #2b91af&quot;&gt;HelpEventArgs &lt;/span&gt;hlpevent)        &lt;br /&gt;{        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; frmHelp.Show();        &lt;br /&gt;}&lt;/p&gt;   &lt;/div&gt; &lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/01/control-helpbutton-helprequested.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_5bxQMD4HzSY/TTlhM0ciiYI/AAAAAAAAD9g/2ecnJz0dcO4/s72-c/Windows_Dialog_Help_Button_thumb7.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-7810290753032434</guid><pubDate>Thu, 20 Jan 2011 09:32:00 +0000</pubDate><atom:updated>2011-01-20T15:02:58.359+05:30</atom:updated><title>NetAdvantage - jQuery, ASP .NET MVC and HTML5 UI Components released for Web Developers</title><description>&lt;img title=&quot;NetAdvantage JQuery HTML5 MVC&quot; alt=&quot;NetAdvantage JQuery HTML5 MVC&quot; align=&quot;left&quot; src=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TTgBSUT41eI/AAAAAAAAD9Y/a2ZC60nGTJk/NetAdvantage_JQuery_HTML5_MVC_thumb1.jpg?imgmax=800&quot; /&gt; Built for speed and portability across operating systems, iPad/tablets, desktops and multi-browser support. Includes controls for ASP .NET MVC and uses the latest technologies like HTML 5 &amp;amp; CSS 3. &lt;span class=&quot;fullpost&quot;&gt;This preview includes a sampling of powerful UI controls: grid, date picker, rating, editors, even a video player! All work with the popular WebKit engine that underpins many modern desktop browsers without requiring plug-ins or extensions. The grid embraces the latest Web techniques and frameworks like jQuery Client Templates and DOM virtualization. &lt;a href=&quot;http://www.infragistics.com/dotnet/netadvantage.aspx#Overview&quot; target=&quot;_blank&quot;&gt;Download&lt;/a&gt; these essentials for jQuery and ASP .NET MVC from us today.&lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/01/netadvantage-jquery-asp-net-mvc-and.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_5bxQMD4HzSY/TTgBSUT41eI/AAAAAAAAD9Y/a2ZC60nGTJk/s72-c/NetAdvantage_JQuery_HTML5_MVC_thumb1.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-1594830273725803880</guid><pubDate>Wed, 19 Jan 2011 12:04:00 +0000</pubDate><atom:updated>2011-01-19T17:34:14.168+05:30</atom:updated><title>NHibernate 3 Webcast - Open to Public – Thursday from Pluralsight</title><description>&lt;img align=&quot;left&quot; src=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TTbTPB173NI/AAAAAAAAD9U/Hs-NLDofMCo/clip_image0026.jpg?imgmax=800&quot; /&gt; This week for the very first time, we&#39;re giving all newsletter subscribers FREE access to our exclusive weekly webcast! Join us Thursday for a 45 minute presentation on NHibernate 3 presented by James Kovacs. James is an independent architect, developer, trainer and jack-of-all-trades. He also &lt;span class=&quot;fullpost&quot;&gt;happens to be the instructor for our upcoming &lt;a href=&quot;http://cts.vresp.com/c/?Pluralsight/6dafc2ddc3/ef033e0f13/0ad32cc2a1/id=AP52&quot;&gt;NHibernate virtual classroom course&lt;/a&gt; next week.     &lt;br /&gt;&lt;a href=&quot;http://cts.vresp.com/c/?Pluralsight/6dafc2ddc3/ef033e0f13/e269ed0e8c/id=N87SG3&amp;amp;role=attend&amp;amp;pw=rqpT%5E4h&quot;&gt;LiveMeeting Login&lt;/a&gt; &lt;a href=&quot;http://cts.vresp.com/c/?Pluralsight/6dafc2ddc3/ef033e0f13/98d343555d&quot;&gt;Add to outlook calendar&lt;/a&gt;     &lt;p&gt;&lt;b&gt;Thursday 20 Jan 2011 - &lt;/b&gt;&lt;b&gt;09:30PM IST, 11:00 AM EST , 16:00 UTC &lt;/b&gt;      &lt;br /&gt;&lt;/p&gt; &lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/01/nhibernate-3-webcast-open-to-public.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_5bxQMD4HzSY/TTbTPB173NI/AAAAAAAAD9U/Hs-NLDofMCo/s72-c/clip_image0026.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-5162362491606033108</guid><pubDate>Tue, 18 Jan 2011 02:03:00 +0000</pubDate><atom:updated>2011-01-18T07:50:51.995+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Enterprise Library</category><title>Getting started with Blocks and namespaces - Enterprise Library 5.0 Tutorial Part 2</title><description>&lt;p&gt;This is my second post in this series. In first blog post I explained &lt;a title=&quot;How to install Enterprise Library 5.0&quot; href=&quot;http://www.codekicks.com/2011/01/installing-enterprise-library-50.html&quot; rel=&quot;How to install Enterprise Library 5.0&quot; target=&quot;_blank&quot;&gt;how to install Enterprise Library 5.0&lt;/a&gt; and provided links to various resources. Enterprise Library is divided into various blocks. Simply we can say, a block is a ready made solution for a particular common problem across various applications. So instead focusing on implementation of common problem across various applications, we can reuse these fully tested and extendable blocks to increase the productivity and also extendibility as these blocks are made with good design principles and patterns. Major blocks of Enterprise Library 5.0 are as follows.&lt;/p&gt; &lt;span class=&quot;fullpost&quot;&gt;   &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TTT4_CCrCUI/AAAAAAAAD9I/bDaHDeBkuIU/s1600-h/image%5B8%5D.png&quot;&gt;&lt;img style=&quot;margin: 4px 5px 0px 4px; display: inline; float: right&quot; title=&quot;image&quot; alt=&quot;image&quot; align=&quot;right&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TTT5Ai7phtI/AAAAAAAAD9M/egXizKRNP_U/image_thumb%5B3%5D.png?imgmax=800&quot; width=&quot;458&quot; height=&quot;294&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Core infrastructure        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Functional Application Blocks        &lt;ul&gt;         &lt;li&gt;Caching &lt;/li&gt;          &lt;li&gt;Data &lt;/li&gt;          &lt;li&gt;Exception Handling &lt;/li&gt;          &lt;li&gt;Logging &lt;/li&gt;          &lt;li&gt;Security &lt;/li&gt;          &lt;li&gt;Cryptography &lt;/li&gt;          &lt;li&gt;Validation            &lt;br /&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Wiring Application Blocks &lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Unity &lt;/li&gt;        &lt;li&gt;Policy Injection/Interception &lt;/li&gt;     &lt;/ul&gt;   &lt;/ul&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Each block resides in its own assembly, and also some extra assemblies for common infrastructure. Assemblies are as follows.&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Caching.Cryptography.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Caching.Database.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Caching.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Common.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Configuration.Design.HostAdapter.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Configuration.Design.HostAdapterV5.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Configuration.DesignTime.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Configuration.EnvironmentalOverrides.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Data.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Data.SqlCe.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Logging.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.PolicyInjection.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Security.Cache.CachingStore.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Security.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Validation.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Validation.Integration.AspNet.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.ServiceLocation.dll        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Microsoft.Practices.Unity.Configuration.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.Unity.dll &lt;/li&gt;      &lt;li&gt;Microsoft.Practices.Unity.Interception.dll &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;Enterprise Library Configuration Tool&lt;/strong&gt;&lt;/p&gt;   &lt;a href=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TTT1BcHZcjI/AAAAAAAAD9A/vbrHYVtGqPY/s1600-h/image%5B5%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; align=&quot;left&quot; src=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TTT1CdGL7YI/AAAAAAAAD9E/lrTgoYow1ZQ/image_thumb%5B3%5D.png?imgmax=800&quot; width=&quot;354&quot; height=&quot;363&quot; /&gt;&lt;/a&gt;     &lt;p&gt;In addition to these assemblies you would get configuration tool &lt;strong&gt;“EntLibConfig-32.exe”&lt;/strong&gt;. If you are targeting your application to .NET 4.0 framework then you would need to use &lt;strong&gt;“EntLibConfig.NET4.exe”.&lt;/strong&gt; Optionally you can install &lt;a title=&quot;Visual Studio 2008 new features&quot; href=&quot;http://msdotnetsupport.blogspot.com/2007/11/22-new-features-of-visual-studio-2008.html&quot; rel=&quot;Visual Studio 2008 new features&quot; target=&quot;_blank&quot;&gt;Visual Studio 2008&lt;/a&gt; and Visual Studio 2010 add-ins whilst &lt;a href=&quot;http://www.codekicks.com/2011/01/installing-enterprise-library-50.html&quot; target=&quot;_blank&quot;&gt;installing of Enterprise Library&lt;/a&gt;. So that you can invoke the enterprise Library configuration from Visual Studio by right clicking on “app.config” or “web.config” file as shown below.&lt;/p&gt;    &lt;p&gt;I would suggest you to download the documentation from &lt;a title=&quot;Enterprise Library Documentation&quot; href=&quot;http://entlib.codeplex.com/releases/view/43135&quot; rel=&quot;Enterprise Library Documentation&quot; target=&quot;_blank&quot;&gt;Codeplex&lt;/a&gt; which was released on May 2010. It consists 3MB of information.&lt;/p&gt;    &lt;p&gt;you can also find issue tracker to know various issues/bugs currently people talking about enterprise library. There is also discussion link takes you to community site where you can post your questions.&lt;/p&gt;    &lt;p&gt;In my next blog post, I would cover more on each block.&lt;/p&gt; &lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/01/enterprise-library-blocks-and.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_5bxQMD4HzSY/TTT5Ai7phtI/AAAAAAAAD9M/egXizKRNP_U/s72-c/image_thumb%5B3%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-3323731798000850004</guid><pubDate>Sun, 16 Jan 2011 06:33:00 +0000</pubDate><atom:updated>2011-01-18T07:37:13.447+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Enterprise Library</category><title>Installing Enterprise Library 5.0 - Enterprise Library 5.0 Tutorial Part 1</title><description>Microsoft has released Enterprise Library on April 2010. it’s free you can download and install from “&lt;a title=&quot;Download Enterprise Library&quot; href=&quot;http://msdn.microsoft.com/library/cc467894.aspx&quot; rel=&quot;Download Enterprise Library&quot; target=&quot;_blank&quot;&gt;Download Enterprise Library&lt;/a&gt;”. you can also find older version of enterprise library 4.1 still if your project needs it for maintenance purpose. but I suggest go for 5.0 as it has great enhancements and improved UI configuration tool.&lt;span class=&quot;fullpost&quot;&gt;    &lt;p&gt;Will it work only with &lt;a title=&quot;Visual Studio 2008 new features&quot; href=&quot;http://msdotnetsupport.blogspot.com/2007/11/22-new-features-of-visual-studio-2008.html&quot; target=&quot;_blank&quot;&gt;Visual Studio 2008&lt;/a&gt;? Yes, it works with also .NET 3.5 and Visual Studio 2008. you can take advantage of new improved UI configuration tool which comes from enterprise library 5.0 with VS2008. I suggest you to install it including documentation. you can also find community links. &lt;/p&gt;    &lt;p&gt;You’ll find 2 types of installers Whilst download. You might want to chose 2nd type with no source code option for production usage you .&lt;/p&gt;    &lt;p&gt;1. “Enterprise Library 5.0 - Source Code.msi” which is of 5.3 MB size contains source code of enterprise library.&lt;/p&gt;    &lt;p&gt;This installer is useful if you want to have a insight of the enterprise patterns source code. In this installation you would need to go through following steps.&lt;/p&gt;   &lt;a href=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TTScF77I9_I/AAAAAAAAD7w/KD13tUUe5es/s1600-h/image%5B12%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TTScHRqhnoI/AAAAAAAAD70/2ffQqYi5DlY/image_thumb%5B5%5D.png?imgmax=800&quot; width=&quot;560&quot; height=&quot;459&quot; /&gt;&lt;/a&gt;        &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TTScIc01efI/AAAAAAAAD74/GcoRiWtllT4/s1600-h/image%5B14%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TTScJs_j71I/AAAAAAAAD78/5thf-c5vMjA/image_thumb%5B7%5D.png?imgmax=800&quot; width=&quot;552&quot; height=&quot;456&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TTScKtOniFI/AAAAAAAAD8A/ZAYUVX7_QQ0/s1600-h/image%5B18%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TTScL4XPFxI/AAAAAAAAD8E/hDVZf8hUit4/image_thumb%5B9%5D.png?imgmax=800&quot; width=&quot;561&quot; height=&quot;447&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Once you finish above wizard you can see that all the source code has been copied to the folder given in first step. Folders are as follows…&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TTScMd2BNqI/AAAAAAAAD8I/Rufm2xzcew4/s1600-h/image%5B28%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TTScNPKSf7I/AAAAAAAAD8M/4TJc1HML7XY/image_thumb%5B13%5D.png?imgmax=800&quot; width=&quot;522&quot; height=&quot;151&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;You can find the source code at the folder Blocks. If you want to build the assemblies yourself or dig into the code for advanced usage. but once you complete the wizard automatically installer initiate the MSBuild script file &lt;strong&gt;“BuildLibrary.bat”&lt;/strong&gt; which compiles the source code and copies all the required dlls in bin folder. You can find the batch script execution screen below. This step completes the required installation with default configuration.&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TTScOFvNMzI/AAAAAAAAD8Q/6dsyDl4YVsk/s1600-h/image%5B29%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TTScPaifggI/AAAAAAAAD8U/g9Je97JbiHc/image_thumb%5B14%5D.png?imgmax=800&quot; width=&quot;548&quot; height=&quot;292&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;2. “Enterprise Library 5.0.msi” which is of 11 MB size. You can get following things with this installer.&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;1. Source Code        &lt;br /&gt;2. All compiled binaries/assemblies         &lt;br /&gt;3. Configuration Editor for Visual Studio.&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Once you start the installer, You would need to read and agree the license terms as shown below.&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TTScQTPus4I/AAAAAAAAD8Y/aEQMmLoIFm4/s1600-h/image%5B39%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TTScRjFnD_I/AAAAAAAAD8c/tLtRouPdtQo/image_thumb%5B18%5D.png?imgmax=800&quot; width=&quot;553&quot; height=&quot;448&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TTScSiRp4JI/AAAAAAAAD8g/Kv81q9OQ6EQ/s1600-h/image%5B40%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TTScT6iY1dI/AAAAAAAAD8k/wOae1jzQQgs/image_thumb%5B19%5D.png?imgmax=800&quot; width=&quot;556&quot; height=&quot;450&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TTScVECrolI/AAAAAAAAD8o/8_5pSWNalt8/s1600-h/image%5B42%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TTScWRqWRPI/AAAAAAAAD8s/zEm8hQ9Uxew/image_thumb%5B21%5D.png?imgmax=800&quot; width=&quot;550&quot; height=&quot;453&quot; /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;In this following screen you can find that installer is going to install Configuration tool for &lt;a title=&quot;Visual Studio 2008 new features&quot; href=&quot;http://msdotnetsupport.blogspot.com/2007/11/22-new-features-of-visual-studio-2008.html&quot; rel=&quot;Visual Studio 2008 new features&quot; target=&quot;_blank&quot;&gt;Visual Studio 2008&lt;/a&gt;. if you have Visual Studio 2010 installed in your machine, then this wizard also installs the configuration tool for Visual Studio 2010.&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_5bxQMD4HzSY/TTScXG4-HjI/AAAAAAAAD8w/_fMJV__6gw0/s1600-h/image%5B46%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 4px 5px 0px 4px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TTScYqAtufI/AAAAAAAAD80/1t_SDT-jB7o/image_thumb%5B23%5D.png?imgmax=800&quot; width=&quot;547&quot; height=&quot;443&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;In this &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyId=bcb166f7-dd16-448b-a152-9845760d9b4c&amp;amp;displaylang=en&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt; you can find all overview and system requirements to use these patterns. In my next blog posts I’ll provide more insight to various blocks of Enterprise Library 5.0.&lt;/p&gt;&lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2011/01/installing-enterprise-library-50.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_5bxQMD4HzSY/TTScHRqhnoI/AAAAAAAAD70/2ffQqYi5DlY/s72-c/image_thumb%5B5%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-4138979148005469248</guid><pubDate>Sun, 31 Oct 2010 14:02:00 +0000</pubDate><atom:updated>2010-11-26T02:32:19.064+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET Tools</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><title>VMMap - awesome memory analysis tool</title><description>&lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_5bxQMD4HzSY/TM12_6-BQPI/AAAAAAAAD2Q/h_YXxpLIb9o/s1600-h/image%5B3%5D.png&quot;&gt;&lt;img style=&quot;display: inline; float: left&quot; title=&quot;image&quot; alt=&quot;image&quot; align=&quot;left&quot; src=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TM13CkZdekI/AAAAAAAAD2U/MUtmdfQvxvc/image_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;240&quot; height=&quot;167&quot; /&gt;&lt;/a&gt;VMMap is a process virtual and physical memory analysis utility. It shows a breakdown of a process&#39;s committed virtual memory types as well as the amount of physical memory (working set) assigned by the operating system to those types. Besides graphical representations of memory usage, VMMap also shows summary information and a detailed process memory map. Powerful filtering and refresh capabilities allow you to identify the sources of process memory usage and the memory cost of application features.&lt;/p&gt; &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;   &lt;p&gt;Besides flexible views for analyzing live processes, VMMap supports the export of data in multiple forms, including a native format that preserves all the information so that you can load back in. It also includes command-line options that enable scripting scenarios.&lt;/p&gt;    &lt;p&gt;VMMap is the ideal tool for developers wanting to understand and optimize their application&#39;s memory resource usage.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2010/10/vmmap-awesome-memory-analysis-tool.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_5bxQMD4HzSY/TM13CkZdekI/AAAAAAAAD2U/MUtmdfQvxvc/s72-c/image_thumb%5B1%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-2588085593657207231</guid><pubDate>Fri, 29 Oct 2010 17:27:00 +0000</pubDate><atom:updated>2010-10-29T22:59:43.907+05:30</atom:updated><title>How great leaders inspire action - Simon Sinek</title><description>&lt;p&gt;&lt;b&gt;&lt;a title=&quot;Simon O. Sinek&quot; href=&quot;http://en.wikipedia.org/wiki/Simon_Sinek&quot; rel=&quot;Simon O. Sinek&quot; target=&quot;_blank&quot;&gt;Simon O. Sinek&lt;/a&gt;&lt;/b&gt; (born 1973) is a marketing consultant known for developing &amp;quot;The Golden Circle,&amp;quot; a model based on human decision-making that guides organizations on how to inspire people to buy or support any product, company or idea.&lt;/p&gt;  &lt;p&gt;Here is one of his speech&lt;/p&gt; &lt;center&gt;   &lt;p&gt;&lt;object width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/qp0HIF3SfI4?fs=1&amp;amp;hl=en_GB&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/qp0HIF3SfI4?fs=1&amp;amp;hl=en_GB&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;500&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt; &lt;/center&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2010/10/how-great-leaders-inspire-action-simon.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-6400321268896395731</guid><pubDate>Fri, 29 Oct 2010 17:09:00 +0000</pubDate><atom:updated>2010-10-29T22:46:10.455+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Microsoft News</category><title>Own a KINECT for MS-XBOX before anyone does</title><description>&lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_5bxQMD4HzSY/TMsAbP_FBjI/AAAAAAAAD2I/6NkEOew_oCU/s1600-h/image%5B5%5D.png&quot;&gt;&lt;img style=&quot;display: inline; float: right&quot; title=&quot;image&quot; alt=&quot;image&quot; align=&quot;right&quot; src=&quot;http://lh4.ggpht.com/_5bxQMD4HzSY/TMsAcvZ2A9I/AAAAAAAAD2M/4FjVgoObrtM/image_thumb%5B3%5D.png?imgmax=800&quot; width=&quot;240&quot; height=&quot;87&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Following is the announced by &lt;a title=&quot;Richik Nandi&quot; href=&quot;http://richik.posterous.com/&quot; rel=&quot;Richik Nandi&quot; target=&quot;_blank&quot;&gt;Richik Nandi&lt;/a&gt; from &lt;a title=&quot;Microsoft&quot; href=&quot;http://microsoft.com&quot; rel=&quot;Microsoft&quot; target=&quot;_blank&quot;&gt;Microsoft&lt;/a&gt; team.     &lt;br /&gt;Dear Customer,     &lt;br /&gt;We believe that our privileged customers shouldn&#39;t have to wait for good things. So, here&#39;s a special offer exclusively for you. Be one of the first in India to own and experience Kinect for XBOX 360, few days before it is even launched in stores. &lt;/p&gt; &lt;span class=&quot;fullpost&quot;&gt;   &lt;p&gt;Introducing the new Kinect for XBOX 360®. &lt;b&gt;Kinect needs no controllers. You are the controller.&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;Kinect brings games and entertainment to life in extraordinary new ways without using a controller. The sensor recognizes your face, eyes and body movements to deliver a superb gaming experience. &lt;/p&gt;    &lt;p&gt;Easy to use and great fun, Kinect gets everyone off the couch. See a ball? Kick it. Want to join a friend in the fun? Simply jump in. Imagine controlling movies and music with the wave of a hand or the sound of your voice! Kinect is all about fun for you and your family. And the best part is Kinect works with every Xbox 360®. &lt;/p&gt;    &lt;p&gt;There are two options you can choose from: &lt;/p&gt;    &lt;p&gt;&lt;b&gt;•&amp;#160; &lt;/b&gt;&lt;strong&gt;Kinect sensor + 4GB Xbox 360 bundle + Kinect Adventures game&lt;/strong&gt; at       &lt;br /&gt;&lt;b&gt;Rs 22,990/-&lt;/b&gt;and get Dance Central game worth Rs 1999 from Redington, 20% discount voucher from Starwood on food and beverages, T-shirt from PUMA and a Kinect adventure live card absolutely free using your &lt;strong&gt;unique promo code : XbTXXZl2Sb&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;•&amp;#160; &lt;/b&gt;&lt;strong&gt;Kinect Sensor&lt;/strong&gt; at &lt;b&gt;Rs 9,500/-&lt;/b&gt;and get 20% discount voucher from Starwood on food and beverages, T-shirt from PUMA and a Kinect adventure live card absolutely free &lt;strong&gt;using your unique promo code : lDg6o8SuYh&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;We want you to own your Kinect before the official launch. The promotion closes by &lt;strong&gt;10th November&lt;/strong&gt;. &lt;/p&gt;    &lt;p&gt;To know more about Kinect &lt;a href=&quot;http://click.email.microsoftemail.com/?qs=dfeeb9cdbfa2f0bea3a878e1f6791d0964b04643735377247b4a115ae93cecee8a85fc2167ea1caa&quot; target=&quot;_blank&quot;&gt;click here&lt;/a&gt;. To book your Kinect&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://click.email.microsoftemail.com/?qs=dfeeb9cdbfa2f0befcd675ec4454f86913594df2f0635cc7b796bf4e2f268defa2c1c8a6985374f8&quot; target=&quot;_blank&quot;&gt;PRE-ORDER now!&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;Enter your details along with the above mentioned promo code to avail of the free gifts offer. We will have your Kinect delivered by 19th November 2010.      &lt;br /&gt;Enjoy being the controller. Enjoy the Kinect.&lt;/p&gt; &lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2010/10/own-kinect-before-anyone-does.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_5bxQMD4HzSY/TMsAcvZ2A9I/AAAAAAAAD2M/4FjVgoObrtM/s72-c/image_thumb%5B3%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-231953031250892251</guid><pubDate>Wed, 20 Oct 2010 02:53:00 +0000</pubDate><atom:updated>2010-10-20T08:23:43.851+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET Tools</category><title>Now Shipping! NetAdvantage for .NET 2010 Volume 3!</title><description>&lt;p&gt;The new NetAdvantage Ultimate includes all four Line of Business user interface control sets for ASP .NET, Windows Forms, WPF and Silverlight plus two advanced Data Visualization UI control sets for WPF and Silverlight. With six NetAdvantage products in one robust package, Infragistics® gives you hundreds of controls and infinite development possibilities. &lt;/p&gt; &lt;span class=&quot;fullpost&quot;&gt; &lt;p&gt;&lt;b&gt;Unified XAML Product Strategy-Share Code, Get More Controls&lt;/b&gt; In the 10.3 release, Infragistics continues to deliver code parity between the XAML platforms, WPF and Silverlight. In the line of business toolsets, Infragistics introduces the new xamSchedule™, full-featured, Outlook® 2010-style schedule controls, and the new xamDataTree™, a data bound tree view that comfortably handles tens of thousands of tree nodes. Mimicking our Silverlight Drag and Drop Framework, the WPF Drag and Drop Framework CTP empowers you to add your own rich touches to your applications. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Track Users&#39; Behaviors &lt;/b&gt;New to all NetAdvantage Silverlight controls is the Infragistics Analytics Framework (IGAF), which empowers you to track user behavior in RIAs running on Silverlight 4. Building on the Microsoft® Silverlight Analytics Framework, with IGAF you can analyze the user&#39;s behaviors to ensure the experience you want to deliver. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;NetAdvantage for Windows Forms--New Office® 2010 Ribbon and Application Menu 2010&lt;/b&gt; Create new experiences with Windows Forms. Now with Office 2010 styling, NetAdvantage for Windows Forms has new features such as Microsoft® Office 2010 ribbon and enhanced Infragistics.Excel to export the contents of the high performance WinGrid™ into Microsoft Excel® 2010. The new Windows Message Support enables Infragistics standalone editor controls to process numerous Windows® OS messages, allowing them to respond just like native controls to changes in the Windows environment. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Create Faster Web 2.0 Experiences with NetAdvantage for ASP .NET&lt;/b&gt; Infragistics continues to push the envelope to deliver the fastest ASP .NET WebForms controls available on the market. Our lightning fast ASP .NET grids are now enhanced with XPS/PDF Exporting and Summary Rows. This release also includes support for jQuery Templating (as a CTP) within our WebDataGrid™ and WebDataTree™ controls allowing you to quickly cut down overall page size.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Deliver Business Intelligence with Power, Flexibility and the Office 2010 Experience&lt;/b&gt; NetAdvantage for WPF Data Visualization and NetAdvantage for Silverlight Data Visualization help you deliver flexible, powerful and usable end user experiences in Business Intelligence applications. Both suites include the Pivot Grid that delivers the full power of online analytical processing (OLAP) to present multi-dimensional data, sliced and diced in cross-tabulated form for end users to drill down into, interact with and easily extract meaning from the data. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Mapping Made Easy&lt;/b&gt; 10.3 marks the official release of the WPF Data Visualization xamMap™ control to map anything and everything from geographic to geo-spacial mapping data. Map layers allow you to add successive levels of detail, navigational panes for panning in all directions, color swatch panes that facilitate value scales like Choropleth shading, and scale panes allowing users to zoom-in and out. Both toolsets introduce the first of many relationship maps! With the xamOrgChart™ CTP you can map out organizational charts of up to 50K employees, competitive brackets (think World Cup) and any other relational, organizational map your application needs. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.infragistics.com/redirects/NA2010vol3-IG&quot;&gt;http://www.infragistics.com&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2010/10/now-shipping-netadvantage-for-net-2010.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-31991684.post-6285304513678607058</guid><pubDate>Wed, 20 Oct 2010 02:45:00 +0000</pubDate><atom:updated>2010-10-20T08:15:20.908+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET Code Samples</category><category domain="http://www.blogger.com/atom/ns#">.NET Interview questions</category><title>Number of Weeks between 2 Dates in SQL Server and Oracle</title><description>This post gives you queries in Oracle and SQL Server to find number of weeks between 2 given dates &lt;span class=&quot;fullpost&quot;&gt;&lt;strong&gt;Microsoft SQL Server Syntax:&lt;/strong&gt;     &lt;br /&gt;    &lt;br /&gt;SELECT DATEDIFF (ww, &#39;01/01/1753&#39;, &#39;12/31/9999&#39;);     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Oracle Syntax:&lt;/strong&gt;     &lt;br /&gt;    &lt;br /&gt;SELECT floor(     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (to_date(&#39;12/31/9999&#39;,&#39;mm/dd/yyyy&#39;)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; - to_date(&#39;01/01/1753&#39;,&#39;mm/dd/yyyy&#39;)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; )     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; / 7) diff     &lt;br /&gt;FROM DUAL;&lt;/span&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;style&gt;
span.fullpost {display:none;}
&lt;/style&gt;&lt;/div&gt;</description><link>http://www.codekicks.com/2010/10/number-of-weeks-between-2-dates-in-sql.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item></channel></rss>