<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='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'><id>tag:blogger.com,1999:blog-7316311247828964170</id><updated>2017-06-29T21:54:59.596-07:00</updated><category term="&#39;s"/><category term=".NE"/><category term=".NET?"/><category term="1."/><category term="2."/><category term="C"/><category term="CIL"/><category term="CL"/><category term="CTS y"/><category term="I"/><category term="LR"/><category term="Pro"/><category term="Wha"/><category term="e"/><category term="ogu"/><title type='text'>Programozás,Szoftverfejlesztés...</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lackomageit.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://lackomageit.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dian László</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-NXESWhAZyPM/AAAAAAAAAAI/AAAAAAAADCM/SDLd7J5LKLY/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7316311247828964170.post-7589652805621023577</id><published>2017-02-25T18:23:00.000-08:00</published><updated>2017-06-29T21:53:43.953-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="&#39;s"/><category scheme="http://www.blogger.com/atom/ns#" term=".NE"/><category scheme="http://www.blogger.com/atom/ns#" term=".NET?"/><category scheme="http://www.blogger.com/atom/ns#" term="1."/><category scheme="http://www.blogger.com/atom/ns#" term="2."/><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="CIL"/><category scheme="http://www.blogger.com/atom/ns#" term="CL"/><category scheme="http://www.blogger.com/atom/ns#" term="CTS y"/><category scheme="http://www.blogger.com/atom/ns#" term="e"/><category scheme="http://www.blogger.com/atom/ns#" term="I"/><category scheme="http://www.blogger.com/atom/ns#" term="LR"/><category scheme="http://www.blogger.com/atom/ns#" term="ogu"/><category scheme="http://www.blogger.com/atom/ns#" term="Pro"/><category scheme="http://www.blogger.com/atom/ns#" term="Wha"/><title type='text'>.NET Framework Architecture </title><content type='html'>&lt;h2 style=&quot;text-align: center;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 24.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;DonLackomage Try To Understand And Learn ASP.NET&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;1.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc0&quot;&gt;&lt;span style=&quot;color: windowtext; mso-bidi-font-weight: bold;&quot;&gt;Prologue&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 24.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;2.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc1&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;What&#39;s .NET?&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;1.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc2&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;.NET, CLR, CLI, CTS y CIL&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;2.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc3&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;Managed code&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;3.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc4&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;Garbage collector&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;4.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc5&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;Code Access Security (CAS)&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 24.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;3.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc6&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;But I&#39;m anti M$&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 24.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;4.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc7&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;CIL, Assemblies and JIT (Just In Time) Compilation&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;1. &lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc8&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;Intermediate code, the PEHeader and Mono&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;2.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc9&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;Assemblies&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;3.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc10&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;Referenes (Static load of assemblies)&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;4. &lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc11&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;Win Compilation&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 24.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;5.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc12&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;System.Reflection&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;1.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc13&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;Assembly.Load(ing)&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;2.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc14&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;System.Reflection.Emit and System.CodeDom&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 24.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level1 lfo2; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;6.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc15&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;P/Invoke (Platform Invoke)&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;1.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;The DllImport attribute&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;2.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc17&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&quot;The Windows way&quot;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; margin-bottom: 1.8pt; margin-left: 48.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l3 level2 lfo2; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; mso-fareast-font-family: &amp;quot;Microsoft Sans Serif&amp;quot;;&quot;&gt;3.&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/content/10-2008/net-introduction#toc18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: windowtext; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&quot;The Mono way&quot;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align=&quot;center&quot; class=&quot;MsoTitleCxSpFirst&quot; style=&quot;margin-bottom: 12pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align=&quot;center&quot; class=&quot;MsoTitleCxSpLast&quot; style=&quot;margin-bottom: 12pt;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif;&quot;&gt;What is .NET&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;The .NET Framework is about:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 107%; margin-bottom: 8.0pt; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l4 level1 lfo1; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;andalus&amp;quot; , serif; font-size: 14.0pt; line-height: 107%;&quot;&gt;٭&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; line-height: 107%;&quot;&gt;Microsoft .NET (pronounced “dot net”) is a software component that runs on the &lt;b&gt;Windows operating system&lt;/b&gt;. &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; line-height: 107%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 107%; margin-bottom: 8.0pt; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l4 level1 lfo1; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;andalus&amp;quot; , serif; font-size: 14.0pt; line-height: 107%;&quot;&gt;٭&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; line-height: 107%;&quot;&gt;.NET provides tools and libraries that enable developers to create Windows software much faster and easier.&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; line-height: 107%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 107%; margin-bottom: 24.0pt; margin-left: 35.7pt; margin-right: 0cm; margin-top: 0cm; mso-list: l4 level1 lfo1; tab-stops: list 36.0pt; text-indent: -17.85pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;andalus&amp;quot; , serif; font-size: 14.0pt; line-height: 107%;&quot;&gt;٭&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; line-height: 107%;&quot;&gt;The .NET Framework must be installed on a user’s PC to &lt;b&gt;run .NET applications.&lt;/b&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; line-height: 107%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 18.0pt;&quot;&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;.Net is the name which refers to a technology created by Microsoft as an attempt (or a step forward) to improve the old COM technology.&lt;/span&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.8pt; margin-left: 21.3pt; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;Finally .NET includes both the CLR and the .NET Framework, that is, a couple of additional libraries (a framework as one of the goals of .NET was to compete with the J2EE) which provides with a great deal of additional functionallity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 18.0pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 107%; margin-bottom: 8.0pt; margin-left: 17.85pt; margin-right: 0cm; margin-top: 0cm; page-break-after: avoid;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16.0pt; line-height: 107%;&quot;&gt;About COM objects:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16.0pt; line-height: 107%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;COM (Common Object Model) technology, for those of you who haven&#39;t heart about it, is a technology &lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;which intents to be (and to a certain extent is) a communication protocol between application (local or remote) independent of the programming language used to write those applications. COM inserted new concepts like the separation between communication interfaces and actual implementation as well as the definition of contracts between the way communication was done. Nevertheless, COM brought with it a couple of problems in both its definition as well as it use.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-IN&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;In order to overcome the raising problems of COM (see the Don Box book) &lt;b&gt;&lt;u&gt;Microsoft started to work on a COM extension which finally ended becoming the CLR&lt;/u&gt;&lt;/b&gt; (Common Language Runtime) which is the core of the .NET languages and framework.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype  id=&quot;_x0000_t75&quot; coordsize=&quot;21600,21600&quot; o:spt=&quot;75&quot; o:preferrelative=&quot;t&quot;  path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; filled=&quot;f&quot; stroked=&quot;f&quot;&gt; &lt;v:stroke joinstyle=&quot;miter&quot;/&gt; &lt;v:formulas&gt;  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;/&gt;  &lt;v:f eqn=&quot;sum @0 1 0&quot;/&gt;  &lt;v:f eqn=&quot;sum 0 0 @1&quot;/&gt;  &lt;v:f eqn=&quot;prod @2 1 2&quot;/&gt;  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;/&gt;  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;/&gt;  &lt;v:f eqn=&quot;sum @0 0 1&quot;/&gt;  &lt;v:f eqn=&quot;prod @6 1 2&quot;/&gt;  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;/&gt;  &lt;v:f eqn=&quot;sum @8 21600 0&quot;/&gt;  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;/&gt;  &lt;v:f eqn=&quot;sum @10 21600 0&quot;/&gt; &lt;/v:formulas&gt; &lt;v:path o:extrusionok=&quot;f&quot; gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot;/&gt; &lt;o:lock v:ext=&quot;edit&quot; aspectratio=&quot;t&quot;/&gt;&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Kép_x0020_1&quot; o:spid=&quot;_x0000_i1025&quot; type=&quot;#_x0000_t75&quot;  alt=&quot;.NET Layers&quot; style=&#39;width:453.75pt;height:367.5pt;visibility:visible;  mso-wrap-style:square&#39;&gt; &lt;v:imagedata src=&quot;file:///C:/Users/Don/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png&quot;   o:title=&quot;&quot;/&gt;&lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img alt=&quot;.NET Layers&quot; border=&quot;0&quot; height=&quot;490&quot; src=&quot;file:///C:/Users/Don/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg&quot; v:shapes=&quot;Kép_x0020_1&quot; width=&quot;605&quot; /&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-size: 14.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; break-before: page; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 24pt;&quot;&gt;.NET, CLR, CLI, CTS y CIL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;There&#39;s a couple of acronyms that come along frecuently when you&#39;re reading .NET documentation, &lt;b&gt;CLR&lt;/b&gt; &lt;b&gt;(common language runtime)&lt;/b&gt;, &lt;b&gt;CLI (common language infrastructure)&lt;/b&gt;, &lt;b&gt;CTS (common type system), CIL (common intermediate language)&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.8pt; margin-left: 6.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;symbol&amp;quot;; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The &quot;CLI&quot; is the main specification of .NET&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;, that is, the workings and system architecture. During the development of the CLR Microsoft has sent the specification of the CLR to several standards organizations, among them especially the ECMA. That way the CLI constitutes an &lt;b&gt;&lt;u&gt;specification of a system which provides all the characteristics .NET offers (type safety, managed code, intermediate language...)&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;margin-top: 0cm;&quot; type=&quot;disc&quot;&gt; &lt;ul style=&quot;margin-top: 0cm;&quot; type=&quot;circle&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.8pt; margin-top: 1.8pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;The CLI defines the specificaton of the &quot;&lt;b&gt;&lt;u&gt;CTS&quot;, that is, the common type system&lt;/u&gt;&lt;/b&gt; which defines a type system and the inheritance which gives birth (in the .NET implementation) to the object hierarchy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.8pt; margin-top: 1.8pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;The CLI defines too the specification of the &quot;CIL&quot; which constitutes the intermediate language, that is, that every implementation of the CLI must generate assemblies (we&#39;ll cover this later) using an intermediate language which later on will be compiled depending on the actual machine the code is running.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.8pt; margin-left: 6.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;symbol&amp;quot;; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The &quot;&lt;b&gt;&lt;u&gt;CLR&lt;/u&gt;&lt;/b&gt;&quot; (which paradoxically have to be explained the last&lt;b&gt;&lt;u&gt;) constitutes an implementation&lt;/u&gt;&lt;/b&gt; (in fact the only existing implementation&lt;b&gt;&lt;u&gt;) of the CLI&lt;/u&gt;&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; break-after: avoid; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;Managed code&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;In .NET the code is said to be managed. As what is really executed is intermediate code, that execution is said to be &quot;watched&quot; so that no &quot;inappropriate&quot; actions can take place.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; break-after: avoid; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;Garbage collector&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;.NET includes a garbage collector. That means that we don&#39;t need to worry about manually freeing the memory we are no longer using because the garbage collector (also know as just GC) will monitor the entire used memory, decide what &quot;portions&quot; of that memory can be accessed and, in case they can&#39;t, and set it out as it fits better.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; break-after: avoid; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;Code Access Security (CAS)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;.NET includes a system called CAS (Code Access Security) which allows to restrict the execution permissions for a given section of code in a detailed way. That means that we&#39;ll be able to define that a given code segment (associated to a given role) will have only read access to three files.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;On the same way we will be able to configure our library, which provides with a couple of services, to provide different functionalities depending on the access level of the calling program (for example. we could prevent an application to create new documents based on its access level, or that it can only read certain kind of documents).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; break-after: avoid; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;But I&#39;m anti M$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;If you have some basic believe against Microsoft that shouldn&#39;t be a barrier. There are several free developments which implement (or are in the process of implementing) the CIL specification as well as other parts of the ECMA specification so that they can execute intermediate code and thus assemblies (and executables) generated in that intermediate language. As far as I know there are to main implementation neither of which is complete (specially the latest functionality in the .NET 2.0).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.8pt; margin-left: 6.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l0 level1 lfo4; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;symbol&amp;quot;; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;Plugin &amp;lt;em&amp;gt;&amp;lt;/em&amp;gt; Not Found&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;The Mono Project is the name of a project started by&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;Plugin &amp;lt;em&amp;gt;&amp;lt;/em&amp;gt; Not Found&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;acquired later by&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;Plugin &amp;lt;em&amp;gt;&amp;lt;/em&amp;gt; Not Found&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;whose purpose was to create a series of tools compatible with .NET which followed the ECMA specification.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.8pt; margin-left: 6.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l0 level1 lfo4; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;symbol&amp;quot;; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;Plugin &amp;lt;em&amp;gt;&amp;lt;/em&amp;gt; Not Found&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;The Portable .NET project is the equivalent to the Mono Project but being developed by the&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;Plugin &amp;lt;em&amp;gt;&amp;lt;/em&amp;gt; Not Found&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;(Free Software Foundation).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Those two projects allow to executed .NET projects in Windows as well as in Linux (and I think other operating systems as well like FreeBSD, MacOsX, etc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; margin: 9pt 0cm; padding: 0cm; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;CIL, Assemblies and JIT (Just In Time) Compilation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; break-after: avoid; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;Intermediate code, the PE Header and Mono&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;When we generate an executable or a dll in .NET, what&#39;s really being generated is not assembly code (object code being precise) the way that would happen if you were compiling with Visual Studio 6 or if you compile with Delphi, instead an special structure called assembly is created which contains the &quot;translation&quot; of the source code to the intermediate language code which is the core of .NET.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The PE header (PE comes from portable executable) is the structure of the Windows executables (both .exe and .dll) We could say that .NET extends or modify that header in a way that allows the .NET executables to be run transparently.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Into every executable there are several sections (logically divided into segments), code, data and stack. A traditional executable contains the PE header followed by the code section and then the rest of them if they are needed. In the case of a .NET executable the PE header is kept but after it there&#39;s a bootstrapper which is in charge of loading the CLR, the CLR &quot;loader&quot; to be precise which in turn access the text section which holds the intermediate code (the binary version of the intermediate code to be precise) of the application. That way, when windows runs the file, the CLR is automatically invoked and henceforth it takes over the execution of the intermediate code with out the user noticing anything.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Mono provides a similar functionality but, since the PE header is windows centric and Mono is not the execution of mono is something like &quot;mono.exe exe_name&quot; and therefore the part corresponding to the bootstraper and the call to the CLR is skipped and Mono just access the text section and runs it (that means that an executable generated by the mono compiler must be executed by mono as it lacks the bootstraper, at least I think so, I haven&#39;t test this so I&#39;m not completely sure).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; break-after: avoid; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;Assemblies&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;An assembly is the basic complete logical unit in .NET which encapsulates one or more code modules. I say complete because in reality you can generate a structure associated to a code module (which has the same name) that won&#39;t be able to be executed or used in any way but to be compiled into an assembly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Each assembly contains a series of metadata whicg define the information contained in it. That metadata includes information like the external assemblies it is using, the classes, structs and methods which are defined in the assembly, etc. An assembly might include several code modules including functionality which, for semantic reasons, we may want to hold on a single executable file (assembly).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The only difference (in Windows) between a .exe and a .dll (in .NET) is the fact that the former has an &quot;entry point&quot; which must be unique and which defines the place where execution will begin, as well as a bootstrapper which will be in charge of loading the CLR.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; break-after: avoid; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;Referenes (Static load of assemblies)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;When we&#39;re programming in .NET, sometimes we need to use classes and functionality located in some external assembly (in fact we always need at least the mscorlib assembly which contains the System.Object class as well as a great part of the basic libraries of .NET). A reference is just a way to indicate that use and in fact they are translated into the CIL as an entry &quot;.assembly extern mscorlib&quot; and we will be able to see instructions like &quot;isinst [mscorlib]System.Object&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;Win Compilation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;As I&#39;ve already mentioned the code that .NET generates (with some minor exceptions) is intermediate code. This intermediate code is not interpreted during execution but compiled when it&#39;s needed. That compilation occurs somewhat in a lazy way (lazy compilation), which means it&#39;s only performed when (and only if) the code is going to be used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The mechanism, in general terms, relays in the fact that, during the first execution, the method table of a class hold references to small pieces of JIT code. When the first call to a class method is issued the call direction obtained is not the real direction, instead the JIT one is obtained which in that moment compiles the intermediate code. Once the code has been compiled the JIT modifies the direction in the method table so all calls following after that first one hit the already compiled code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; margin: 18pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;System.Reflection&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The same way that static assembly load exists we have the option to load assemblies dynamically by means of a library called System.Reflection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Which traditional dlls the only thing we had was a table of addresses which contained the offset of the functions the dll exported... and that was about everything, we couldn&#39;t know what parameters the function expected, which, among other things, meant the parameters we handled were encoded as simple stack addresses which, possibly, could be executed by the dll or get corrupted or whatever hundred things may go wrong. In addition, since there wasn&#39;t a proper versioning system for dlls you could be calling a later or previous version whose specification doesn&#39;t fit nearly what you was expecting. All this ended up being known as &quot;the dll hell&quot; due to all the related problems it produced.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;First of all one must understand that, due to the structure of an assembly which contains all the metainformation about what&#39;s inside itself, not only do we have the possibility to invoke certain functions (as was the case with old dlls) but also to get a much wider functionality.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Since we have all that information, the CLR can manage all calls to the code inside the assembly so we don&#39;t make &quot;weird things&quot;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;In the other hand we can also examine the assembly in order to discover and analyze the functionality provided by it, searching, for example, for classes which implement a given interface, creating instance of that classes and treating them as if they were part of our own assembly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; margin: 9pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Assembly.Load(ing)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The System.Reflection library provides several static method inside the Assembly class which allow us to open an assembly. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; margin: 9pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;System.Reflection.Emit and System.CodeDom&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Another interesting functionality provided by .NET is code generation in runtime, that is, emitting lines of intermediate code which will be compiled by the JIT in runtime and will result on assembler code which will execute as if it was code compiled with the VS.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;In order to emit source code the .NET framework provides us with several libraries (at several levels). That libraries are mainly the&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://system.reflection.emit/&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;System.Reflection.Emit&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;and the System.CodeDom. With the&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://system.reflection.emit/&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;System.Reflection.Emit&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;we can, for example, create a new assembly, assign it a name, define module and classes, assign fields to the classes, define the constructor, define methods, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; margin: 9pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;P/Invoke (Platform Invoke)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Although the .NET framework is pretty wide and complex, there is still some functionality from the windows API which is not covered. In the same way, sometimes we need to access old functionality residing in old dlls (that is, not .NET) that we can&#39;t (or we do not want) to substitute with framework classes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;P/Invoke defines a service to invoke platform functions, that is, functionality from pre-CLR libraries.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;P / Invoke defines the service invocation functions provided by the platform, ie, pre-CLR functionality libraries.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; margin: 9pt 0cm; padding: 0cm;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The DllImport attribute&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The DllImport attribute, located in the System.Runtime.InteropServices, allows us to perform the aforementioned invocations, for example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F8F8F8; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;[DllImport(&quot;user32.dll&quot;)]&lt;br /&gt;static&amp;nbsp;extern&amp;nbsp;bool&amp;nbsp;CloseWindow(IntPtr hWnd);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;The declaration of the method is done by the reserved word &quot;extern&quot; which implies that that method isn&#39;t located in this assembly. As a parameter we supply the name of the library which contains the method we wish to use.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;DllImport accepts several parameters:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.8pt; margin-left: 6.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l2 level1 lfo5; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;symbol&amp;quot;; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Value: The name of the library, this parameter is mandatory&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.8pt; margin-left: 6.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l2 level1 lfo5; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;symbol&amp;quot;; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;EntryPoint: This parameter is optional and allows us to define a different method in our assembly than the one located in the library.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F8F8F8; margin-left: 12.0pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[DllImport(&quot;user32.dll&quot;&amp;nbsp;EntryPoint&amp;nbsp;=&amp;nbsp;&quot;CloseWindow&quot;)]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;static&amp;nbsp;extern&amp;nbsp;bool&amp;nbsp;MyOwnCloseWindow(IntPtr hWnd);&lt;br /&gt;&amp;nbsp; &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;margin-bottom: 1.8pt; margin-left: 6.0pt; margin-right: 0cm; margin-top: 1.8pt; mso-list: l2 level1 lfo5; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;symbol&amp;quot;; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;SetLastError: A lot of windows libraries use the windows function &quot;SetLastError&quot;, in order to guarantee that the error we recover (in case there&#39;s one) is correct, this parameter must be true.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; margin: 9pt 0cm; padding: 0cm; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&quot;The Windows way&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;On Windows the load of libraries through P/Invoke is a standard simple process, whenever a [DllImport] is found the compiler automatically generates the code corresponding to a LoadLibrary and a GetProcAddess.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: white; border-bottom: solid #B5C9D8 1.0pt; border: none; mso-border-bottom-alt: solid #B5C9D8 .75pt; mso-element: para-border-div; padding: 0cm 0cm 0cm 0cm;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; margin: 9pt 0cm; padding: 0cm; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&quot;The Mono way&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;With Mono things are a little more complicated. As Mono is multiplatform, several libraries can have different names between an instalation in Windows, Linux or MacOSX, and the same goes for its extensions (for example&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://mlib.so.1.2/&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;mlib.so.1.2&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;vs mlib.dll). I can&#39;t and its not an objective of this article to cover how does Mono manage to perform that operation transparently (for more information refer to this excellent [&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.mono-project.com/Interop_with_Native_Libraries#Copyright|article&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;from Jonathan Pryor about P/Invoke&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;]) but let&#39;s just say that it makes it so that the same [DllImport] directives that work with Windows will also work with Linux (even with calls to system libraries as Mono takes care to map that call to another library function which performs the same function as the one in Windows).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 18pt 0cm 12pt -11.9pt;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 16pt;&quot;&gt;Abstract methods and interfaces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Abstract classes and methods&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Generally we understand a pure abstract class as any class having only abstract methods.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Method abstraction is a very useful technique to define behavior patterns over the classes that are going to inherit from a given class we are defining.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;An abstract method is a class method which won&#39;t be implemented but is expected to be implemented by the descendants of the class. In delphi, if you try to call that method you&#39;ll get a runtime exception as there isn&#39;t really any code there that can be called. A basic example of an abstract method and its used could be:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;There are patterns which fit better such as&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot;&gt;&lt;a href=&quot;http://www.thecoldsun.com/en/search/node/abstract%2Bdata%2Bsources&quot; title=&quot;Search this site for content like &amp;quot;abstract+data+sources&amp;quot;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt; text-decoration: none;&quot;&gt;abstract+data+sources&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&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; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Interfaces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;An interface is a way of defining a&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;&amp;nbsp;&lt;b&gt;contract&lt;/b&gt;. When we talk about abstract classes we are defining characteristics of an object type, specifying&amp;nbsp;&lt;b&gt;what an object is&lt;/b&gt;&amp;nbsp;but in the case of an interface we define a capability and we bond to provide that capability, we are talking about establishing a contract about&amp;nbsp;&lt;b&gt;what the object can do.&lt;/b&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; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Interfaces express, as I&#39;ve already mentioned, a capability. They do not express something like &quot;a Doberman is a type of dog and every dog can walk&quot; but more like &quot;this thing can walk&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Or said in another way, the interface defines a contract so that if a class implements an interface then it guarantees it will fulfill that contract.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Contrary to what happens with inheritance, a class can implement as many interfaces as it wants, after all is just accepting a contract, so, in that way, if an object is renderable and can be affected by physics then it must implement both interfaces.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;That way our two interfaces specify that, if we want to be able to be renderized we must implement a Render method, accepting the specified parameters. That way if my rendering process can get the list of objects that compose the scene, for each of those object, it could verify if the object is renderable and, if it is, render it without having to worry about specific class details.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;When to use abstract classes and when to use interfaces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Decission about when to use what is being arround for long and is one of those discussions with a lot of people having its opinion or backing up this or that idea. I think there&#39;s a basic rule that works almost everytime: Use abstract lessons and inheritance if you can make the statement &quot;A&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;&amp;nbsp;&lt;b&gt;is a&lt;/b&gt;&amp;nbsp;B&quot;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Use interfaces if you can make the statement &quot;A&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;&amp;nbsp;&lt;b&gt;is capable&lt;/b&gt;&amp;nbsp;of [doing] as&quot;, or also, abstract for what a class is, interface for what a class can do.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;By example, we can say a triangle is a polygon but it makes no sense to say a triangle is capable of being a polygon.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; margin-bottom: 14.4pt; margin-left: 0cm; margin-right: 0cm; margin-top: 7.2pt; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14pt;&quot;&gt;Anyway, as ever, the rule of thumb for this is:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;microsoft sans serif&amp;quot; , sans-serif; font-size: 14.0pt;&quot;&gt;&amp;nbsp;&lt;b&gt;use your common sense&lt;/b&gt;. Sometimes an interface just fit much better, even if the above rule tells you the contrary, if that&#39;s it just use the interface (after considering consequences of course).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/h2&gt;</content><link rel='replies' type='application/atom+xml' href='http://lackomageit.blogspot.com/feeds/7589652805621023577/comments/default' title='Megjegyzések küldése'/><link rel='replies' type='text/html' href='http://lackomageit.blogspot.com/2017/02/net-framework-architecture.html#comment-form' title='0 megjegyzés'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/7589652805621023577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/7589652805621023577'/><link rel='alternate' type='text/html' href='http://lackomageit.blogspot.com/2017/02/net-framework-architecture.html' title='.NET Framework Architecture '/><author><name>Dian László</name><uri>https://plus.google.com/103629772718675719092</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-NXESWhAZyPM/AAAAAAAAAAI/AAAAAAAADCM/SDLd7J5LKLY/s512-c/photo.jpg'/></author><thr:total>0</thr:total><georss:featurename>United Kingdom</georss:featurename><georss:point>55.378051 -3.43597299999999</georss:point><georss:box>12.203021 -86.05316049999999 90 79.18121450000001</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7316311247828964170.post-2524737093670441126</id><published>2016-01-31T16:36:00.001-08:00</published><updated>2016-01-31T16:36:28.690-08:00</updated><title type='text'>weekendzz</title><content type='html'>&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;344&quot; src=&quot;https://www.youtube.com/embed/videoseries?list=PLR3Kn94yhYnGA3xwGxgtVpx_N5meAf8C-&quot; width=&quot;425&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://lackomageit.blogspot.com/feeds/2524737093670441126/comments/default' title='Megjegyzések küldése'/><link rel='replies' type='text/html' href='http://lackomageit.blogspot.com/2016/01/weekendzz.html#comment-form' title='0 megjegyzés'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/2524737093670441126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/2524737093670441126'/><link rel='alternate' type='text/html' href='http://lackomageit.blogspot.com/2016/01/weekendzz.html' title='weekendzz'/><author><name>Dian László</name><uri>https://plus.google.com/103629772718675719092</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-NXESWhAZyPM/AAAAAAAAAAI/AAAAAAAADCM/SDLd7J5LKLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/videoseries/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7316311247828964170.post-6423705618042582297</id><published>2015-04-17T15:27:00.001-07:00</published><updated>2015-04-17T15:27:08.100-07:00</updated><title type='text'>Ice Cube - Why We Thugs</title><content type='html'>&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;344&quot; src=&quot;https://www.youtube.com/embed/-F41m_ywC0Y&quot; width=&quot;459&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.2000007629395px;&quot;&gt;&quot;And Why We Thugs...?!&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.2000007629395px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.2000007629395px;&quot;&gt;Boyz In Da Hood, Thugs in tha hood.....&quot; - ICE CUBE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.2000007629395px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lackomageit.blogspot.com/feeds/6423705618042582297/comments/default' title='Megjegyzések küldése'/><link rel='replies' type='text/html' href='http://lackomageit.blogspot.com/2015/04/ice-cube-why-we-thugs.html#comment-form' title='0 megjegyzés'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/6423705618042582297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/6423705618042582297'/><link rel='alternate' type='text/html' href='http://lackomageit.blogspot.com/2015/04/ice-cube-why-we-thugs.html' title='Ice Cube - Why We Thugs'/><author><name>Dian László</name><uri>https://plus.google.com/103629772718675719092</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-NXESWhAZyPM/AAAAAAAAAAI/AAAAAAAADCM/SDLd7J5LKLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/-F41m_ywC0Y/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7316311247828964170.post-6886284981313023731</id><published>2015-04-17T15:22:00.001-07:00</published><updated>2015-04-17T15:22:31.250-07:00</updated><title type='text'>N.W.A. ft. Snoop Dogg - Chin Check</title><content type='html'>&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;344&quot; src=&quot;https://www.youtube.com/embed/9vAmKdgrLf8&quot; width=&quot;459&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&quot;I&#39;d have seen Dre rockin parties for hours&lt;br /&gt;&lt;br /&gt;And I&#39;d have seen Ren fuckin bitches from Howard&lt;br /&gt;&lt;br /&gt;And I&#39;d have seen Snoop give away Eddie Bauer&#39;s&lt;br /&gt;&lt;br /&gt;So fuck Jerry Heller and the white superpowers&quot; - N.W.A.</content><link rel='replies' type='application/atom+xml' href='http://lackomageit.blogspot.com/feeds/6886284981313023731/comments/default' title='Megjegyzések küldése'/><link rel='replies' type='text/html' href='http://lackomageit.blogspot.com/2015/04/nwa-ft-snoop-dogg-chin-check.html#comment-form' title='0 megjegyzés'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/6886284981313023731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/6886284981313023731'/><link rel='alternate' type='text/html' href='http://lackomageit.blogspot.com/2015/04/nwa-ft-snoop-dogg-chin-check.html' title='N.W.A. ft. Snoop Dogg - Chin Check'/><author><name>Dian László</name><uri>https://plus.google.com/103629772718675719092</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-NXESWhAZyPM/AAAAAAAAAAI/AAAAAAAADCM/SDLd7J5LKLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/9vAmKdgrLf8/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7316311247828964170.post-1899183229954401945</id><published>2015-04-17T15:16:00.001-07:00</published><updated>2015-04-17T15:16:45.982-07:00</updated><title type='text'>Eazy-E - Real Muthaphukkin G&#39;s HD</title><content type='html'>&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/trDFi_zSttQ&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&quot;Real G&#39;s?&lt;br /&gt;&lt;br /&gt;No, man, please,.....please stop to these....&lt;br /&gt;&lt;br /&gt;Studio gangsters,&lt;br /&gt;&lt;br /&gt;studio rappers,&lt;br /&gt;&lt;br /&gt;Dr Dre​ and Snoop Doggy Dogg are a motherfuckin&#39; actors......&quot; - Eazy-E</content><link rel='replies' type='application/atom+xml' href='http://lackomageit.blogspot.com/feeds/1899183229954401945/comments/default' title='Megjegyzések küldése'/><link rel='replies' type='text/html' href='http://lackomageit.blogspot.com/2015/04/eazy-e-real-muthaphukkin-gs-hd.html#comment-form' title='0 megjegyzés'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/1899183229954401945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7316311247828964170/posts/default/1899183229954401945'/><link rel='alternate' type='text/html' href='http://lackomageit.blogspot.com/2015/04/eazy-e-real-muthaphukkin-gs-hd.html' title='Eazy-E - Real Muthaphukkin G&#39;s HD'/><author><name>Dian László</name><uri>https://plus.google.com/103629772718675719092</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-NXESWhAZyPM/AAAAAAAAAAI/AAAAAAAADCM/SDLd7J5LKLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/trDFi_zSttQ/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>