<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.aspnetzone.de/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Interessante Ressourcen' and 'C#'</title><link>http://www.aspnetzone.de/search/SearchResults.aspx?o=DateDescending&amp;tag=Interessante+Ressourcen,C%23&amp;orTags=0</link><description>Search results matching tags 'Interessante Ressourcen' and 'C#'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61120.2)</generator><item><title>Free eBooks: ADO.NET Entity Framework, Powershell &amp;amp; C#</title><link>http://www.aspnetzone.de/blogs/juergengutsch/archive/2009/04/16/free-ebooks-ado-net-entity-framework-powershell-c.aspx</link><pubDate>Thu, 16 Apr 2009 07:06:43 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:209443</guid><dc:creator>Jürgen Gutsch</dc:creator><description>&lt;p&gt;Ganz kurz: &lt;a title="Robert Mühsig" href="http://code-inside.de"&gt;Robert Mühsig&lt;/a&gt; verlinkt einem seiner neuesten Beiträge, auf drei eben entdeckte eBooks: &lt;a href="http://code-inside.de/blog/2009/04/15/free-ebooks-adonet-entity-framework-powershell-c/"&gt;Free eBooks: ADO.NET Entity Framework, Powershell &amp;amp; C#&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Neues .NET 3.5 Feature: Collection Initializers</title><link>http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/20/neues-net-3-5-feature-collection-initializers.aspx</link><pubDate>Tue, 20 Nov 2007 19:25:00 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:187983</guid><dc:creator>Jürgen Gutsch</dc:creator><description>&lt;P&gt;Noch mehr Schreibarbeit spart man zusätzlich mit den Collection Initializers, die so ähnlich wie die &lt;A href="http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/15/Object-Initializers.aspx"&gt;Object Initialisers &lt;/A&gt;aussehen.&lt;/P&gt;
&lt;P&gt;So wurden bisher Collections initialisiert:&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;List&amp;lt;Person&amp;gt; oldList &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; List&amp;lt;Person&amp;gt;();&lt;br /&gt;Person p1 &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Person();&lt;br /&gt;p1.Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Jürgen Gutsch"&lt;/span&gt;; &lt;br /&gt;p1.Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 29; &lt;br /&gt;p1.Address &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"www.gutsch-online.de"&lt;/span&gt;; &lt;br /&gt;oldList.Add(p1); &lt;br /&gt;Person p2 &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Person(); &lt;br /&gt;p2.Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Max Musterman"&lt;/span&gt;; &lt;br /&gt;p2.Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 34; &lt;br /&gt;p2.Address &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"mm.domain.com"&lt;/span&gt;; &lt;br /&gt;oldList.Add(p2); &lt;br /&gt;Person p3 &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Person(); &lt;br /&gt;p3.Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Susanne Sommer"&lt;/span&gt;; &lt;br /&gt;p3.Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 56; &lt;br /&gt;p3.Address &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"susi.domain.de"&lt;/span&gt;; &lt;br /&gt;oldList.Add(p3);&lt;/span&gt;&lt;/code&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So können mit .NET 3.5 Collections initialisiert werden:&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;List&amp;lt;Person&amp;gt; newList &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; List&amp;lt;Person&amp;gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Person {  &lt;br /&gt;        Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Jürgen Gutsch"&lt;/span&gt;,  &lt;br /&gt;        Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 29, &lt;br /&gt;        Address &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"www.gutsch-online.de"&lt;/span&gt; },&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Person {  &lt;br /&gt;        Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Max Musterman"&lt;/span&gt;,  &lt;br /&gt;        Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 34, &lt;br /&gt;        Address &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"mm.domain.com"&lt;/span&gt; },&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Person {  &lt;br /&gt;        Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Susanne Sommer"&lt;/span&gt;,  &lt;br /&gt;        Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 56, &lt;br /&gt;        Address &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"susi.domain.de"&lt;/span&gt; }&lt;br /&gt;};&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Der Compiler macht aus den obigen Zeilen wieder eine herkömmliche Collection Initialisierung:&lt;BR&gt;&lt;IMG src="http://www.aspnetzone.de/photos/juergengutsch/images/187984/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;Weitere Informationen zu den Collection Initializers&lt;BR&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx&lt;/A&gt;&lt;BR&gt;&lt;A href="http://blogs.msdn.com/abhinaba/archive/2005/09/17/470358.aspx"&gt;http://blogs.msdn.com/abhinaba/archive/2005/09/17/470358.aspx&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Neues .NET 3.5 Feature: Object Initializers</title><link>http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/15/Object-Initializers.aspx</link><pubDate>Thu, 15 Nov 2007 21:54:00 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:187771</guid><dc:creator>Jürgen Gutsch</dc:creator><description>&lt;P&gt;Die Nummer drei die ich hier vorstellen möchte, ist ebenfalls für Leute wie mich das absolute Highlight von .NET 3.5. Und zwar sind es die sogenannten Objekt Initialisierer.&lt;/P&gt;
&lt;P&gt;Man nehme die simple Klasse aus dem &lt;A href="http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/15/Automatic_5F00_Properties.aspx"&gt;letzten Beitrag&lt;/A&gt;:&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;class&lt;/span&gt; Dog&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; Name { get; set; }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Age { get; set; }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Height { get; set; }&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Und man Instanziere dieses:&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;Dog myOldDog &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Dog();&lt;br /&gt;myOldDog.Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Waldi"&lt;/span&gt;; &lt;br /&gt;myOldDog.Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 12; &lt;br /&gt;myOldDog.Height &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 25;&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Zu viel Code? Wirklich?&lt;BR&gt;Na dann halt so:&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;Dog myDog &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Dog { Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Hasso"&lt;/span&gt;, Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 6, Height &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 87 };&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Auf diese Art können ab sofort mit .NET 3.5 Objekte schnell initialisiert werden.&lt;/P&gt;
&lt;P&gt;Hier noch eine extremere Variante: Angenommen der Hund hätte ein Herrchen:&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;class&lt;/span&gt; Dog&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; Name { get; set; }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Age { get; set; }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Height { get; set; }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; Person Owner { get; set; }&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;class&lt;/span&gt; Person&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; Name { get; set; }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; Address { get; set; }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Age { get; set; }&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Dann könnte das so aussehen:&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;Dog myDog &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Dog&lt;br /&gt;{&lt;br /&gt;    Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Hasso"&lt;/span&gt;,&lt;br /&gt;    Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 6,&lt;br /&gt;    Height &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 87,&lt;br /&gt;    Owner &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;new&lt;/span&gt; Person &lt;br /&gt;    { &lt;br /&gt;        Name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Jürgen Gutsch"&lt;/span&gt;, &lt;br /&gt;        Address &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"www.gutsch-online.de"&lt;/span&gt;, &lt;br /&gt;        Age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 29 &lt;br /&gt;    }&lt;br /&gt;};&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Der Compiler macht aus diesem Code wieder eine Herkömmliche Objekt Initialisierung:&lt;IMG src="http://www.aspnetzone.de/photos/juergengutsch/images/187981/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;Weitere Informationen zu den Object Initializers:&lt;BR&gt;&lt;A href="http://community.bartdesmet.net/blogs/bart/archive/2006/12/04/C_2300_-3.0-Feature-Focus-_2D00_-Part-2-_2D00_-Object-Initializers.aspx"&gt;http://community.bartdesmet.net/blogs/bart/archive/2006/12/04/C_2300_-3.0-Feature-Focus-_2D00_-Part-2-_2D00_-Object-Initializers.aspx&lt;/A&gt;&lt;BR&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.winterdom.com/weblog/2006/08/28/ObjectInitializersInC30.aspx"&gt;http://www.winterdom.com/weblog/2006/08/28/ObjectInitializersInC30.aspx&lt;/A&gt;&lt;BR&gt;&lt;A href="http://blog.veloursnebel.de/PermaLink,guid,6f46a88a-1783-4e80-9060-a7c7131da959.aspx"&gt;http://blog.veloursnebel.de/PermaLink,guid,6f46a88a-1783-4e80-9060-a7c7131da959.aspx&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Neues .NET 3.5 Feature: Automatic Properties</title><link>http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/15/Automatic_5F00_Properties.aspx</link><pubDate>Thu, 15 Nov 2007 17:16:00 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:187760</guid><dc:creator>Jürgen Gutsch</dc:creator><description>&lt;P&gt;Ein weiteres neues Feature wird ganz besonders die schreibfaulen Programmierer - wie mich - freuen.&lt;/P&gt;
&lt;P&gt;Hierbei handelt es sich allerdings lediglich um eine vereinfachte Definierung für Eigenschaften. Wo man früher relativ viel Schreibarbeit hatte um folgende Klasse zu schreiben...&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;class&lt;/span&gt; Dog&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; name;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; age;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; height;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; Name&lt;br /&gt;    {&lt;br /&gt;        get&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;return&lt;/span&gt; name;&lt;br /&gt;        }&lt;br /&gt;        set&lt;br /&gt;        {&lt;br /&gt;            name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; value;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Age&lt;br /&gt;    {&lt;br /&gt;        get&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;return&lt;/span&gt; age;&lt;br /&gt;        }&lt;br /&gt;        set&lt;br /&gt;        {&lt;br /&gt;            age &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; value;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Height&lt;br /&gt;    {&lt;br /&gt;        get&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;return&lt;/span&gt; height;&lt;br /&gt;        }&lt;br /&gt;        set&lt;br /&gt;        {&lt;br /&gt;            height &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; value;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;...kann das mit .NET 3.5 bequem so geschrieben werden:&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;class&lt;/span&gt; Dog&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; Name { get; set; }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Age { get; set; }&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Height { get; set; }&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Der Kompiler erstellt anschließend wieder ganz normale Eigenschaften, die auf einen privaten Member zugreifen. &lt;BR&gt;Die Automatischen Eigenschaften benötigen immer einen Getter und einen Setter. Falls z. B. ein Setter nicht von außen erreichbar sein soll, kann er allerdings privat gesetzt werden:&lt;BR&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; Height { get; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;private&lt;/span&gt; set; }&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Weitere Informationen zu den Automatischen Eigenschaften:&lt;BR&gt;&lt;A href="http://blog.veloursnebel.de/PermaLink,guid,3ea32fc3-8e47-429b-bbb3-a77afee848fb.aspx"&gt;http://blog.veloursnebel.de/PermaLink,guid,3ea32fc3-8e47-429b-bbb3-a77afee848fb.aspx&lt;/A&gt;&lt;BR&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Neues .NET 3.5 Feature: Extension Methods</title><link>http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/14/neues-net-3-5-feature-extension-methods.aspx</link><pubDate>Wed, 14 Nov 2007 20:23:00 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:187671</guid><dc:creator>Jürgen Gutsch</dc:creator><description>&lt;P&gt;Die erste interessante Spracherweiterung in .NET 3.5 die ich hier beschreiben möchte, ist die Extension Method (Erweiterungs-Methode). 
&lt;P&gt;Mit den Extension Methods lassen sich vorhandene Typen um bestimmte Features erweitern. 
&lt;P&gt;Eine Extension Method könnte zum Beispiel so aussehen: 
&lt;P&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;static&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;class&lt;/span&gt; StringExtension&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;static&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;bool&lt;/span&gt; IsNumeric(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;this&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; s)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt; i &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; 0;&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;return&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;int&lt;/span&gt;.TryParse(s, &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;out&lt;/span&gt; i);&lt;br /&gt;    }&lt;br /&gt;} &lt;/span&gt;&lt;/code&gt; 
&lt;P&gt;
&lt;P&gt;Die Methode muss in einer öffentlichen statischen Klasse definiert dein und selber öffentlich und statisch sein. Das besondere an dieser Methode ist der erste Parameter, der zusätzlich mit dem Schlüsselwort „this“ definiert wird. Das Schlüsselwort gibt dem Compiler an, dass die Methode dem angegebenen Typ (hier „string“) hinzugefügt werden soll. 
&lt;P&gt;Üblicherweise würde man eine statische Methode auf folgende Weise benutzen (was mit Extension Methods auch weiterhin funktioniert): 
&lt;P&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;if&lt;/span&gt; (StringExtension.IsNumeric(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;this&lt;/span&gt;.txtInput.Text))&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;this&lt;/span&gt;.lblAlert.Text &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Bitte geben Sie einen numerischen Wert ein."&lt;/span&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt; 
&lt;P&gt;
&lt;P&gt;Aber die Extension Methode würde nicht so genannt werden, wenn sie nicht etwas erweitern würde. In unserem Fall wird er Typ „string“ um die Methode „IsNumeric()“ erweitert: 
&lt;P&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;if&lt;/span&gt; (!&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;this&lt;/span&gt;.txtInput.Text.IsNumeric())&lt;br /&gt;{&lt;br /&gt;     &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;this&lt;/span&gt;.lblAlert.Text &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"Bitte geben Sie einen numerischen Wert ein."&lt;/span&gt;;&lt;br /&gt;} &lt;/span&gt;&lt;/code&gt; 
&lt;P&gt;
&lt;P&gt;
&lt;P&gt;Im IntelliSense ist eine Extension Methode mit dem Methoden Symbol und einem nach unten zeigenden blauen Pfeil gekennzeichnet. Und im Tooltip mit dem in Klammern stehenden Wort „extension“. 
&lt;P&gt;&lt;/P&gt;
&lt;DIV class=wlWriterSmartContent id=scid:6960CE03-38FC-44df-87D4-FA4540212B06:4cfe2b15-cc9b-42d6-9ad6-da52a35cae23 style="PADDING-RIGHT:0px;DISPLAY:inline;PADDING-LEFT:0px;FLOAT:none;PADDING-BOTTOM:0px;MARGIN:0px;PADDING-TOP:0px;"&gt;&lt;IMG style="BORDER-RIGHT:black 1px solid;BORDER-TOP:black 1px solid;BORDER-LEFT:black 1px solid;WIDTH:538px;BORDER-BOTTOM:black 1px solid;HEIGHT:187px;" alt="Extension Method" src="http://www.aspnetzone.de/photos/juergengutsch/images/187669/original.aspx"&gt;&lt;/DIV&gt;
&lt;P&gt;Alle weiteren Parameter die zusätzlich definiert werden, werden dann wie normale Parameter behandelt: 
&lt;P&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;static&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;bool&lt;/span&gt; IsInArray(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;this&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; s, &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt;[] array)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;foreach&lt;/span&gt; (&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; item &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;in&lt;/span&gt; array)&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;if&lt;/span&gt; (s == item)&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;return&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;true&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;return&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;false&lt;/span&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt; 
&lt;P&gt;
&lt;P&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt;[] myarray &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; { &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"item1"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"item2"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"item3"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"item4"&lt;/span&gt; };&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; mystring &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"item3"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;if&lt;/span&gt; (mystring.IsInArray(myarray))&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;// do anything here&lt;/span&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt; 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT:black 1px solid;BORDER-TOP:black 1px solid;BORDER-LEFT:black 1px solid;WIDTH:499px;BORDER-BOTTOM:black 1px solid;HEIGHT:248px;" alt="Extension Method mit mehreren Parametern" src="http://www.aspnetzone.de/photos/juergengutsch/images/187670/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Weitere Resourcen zu Extension Methods:&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/11/basicinstincts/default.aspx?loc=de"&gt;http://msdn.microsoft.com/msdnmag/issues/07/11/basicinstincts/default.aspx?loc=de&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/de-de/library/ms364047(vs.80).aspx#cs3spec_topic3"&gt;http://msdn2.microsoft.com/de-de/library/ms364047(vs.80).aspx#cs3spec_topic3&lt;/A&gt;&lt;BR&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2007/03/13/new-orcas-language-feature-extension-methods.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2007/03/13/new-orcas-language-feature-extension-methods.aspx&lt;/A&gt;&lt;BR&gt;&lt;A href="http://en.wikipedia.org/wiki/Extension_method"&gt;http://en.wikipedia.org/wiki/Extension_method&lt;/A&gt;&lt;/P&gt;&lt;SPAN class=sbmLink&gt;
&lt;TABLE cellSpacing=1 cellPadding=1&gt;

&lt;TR&gt;
&lt;TD class=sbmText&gt;Share this post: &lt;/TD&gt;
&lt;TD class=sbmDim&gt;&lt;A class=sbmDim title="Post it to del.iri.ous!" href="http://de.lirio.us/bookmarks/sbmtool?action=add&amp;amp;address=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/14/neues-net-3-5-feature-extension-methods.aspx&amp;amp;title=Neues.NET3.5Feature:ExtensionMethods" target=_blank&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliriou4.png" border=0&gt;&lt;/A&gt; 
&lt;TD class=sbmDim&gt;&lt;A class=sbmDim title="Post it to digg" href="http://digg.com/submit?phase=2&amp;amp;url=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/14/neues-net-3-5-feature-extension-methods.aspx&amp;amp;title=Neues.NET3.5Feature:ExtensionMethods" target=_blank&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" border=0&gt;&lt;/A&gt; 
&lt;TD class=sbmDim&gt;&lt;A class=sbmDim title="Post it to dotnetkicks" href="http://www.dotnetkicks.com/kick/?url=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/14/neues-net-3-5-feature-extension-methods.aspx&amp;amp;title=Neues.NET3.5Feature:ExtensionMethods" target=_blank&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" border=0&gt;&lt;/A&gt; 
&lt;TD class=sbmDim&gt;&lt;A class=sbmDim title="Post it to live" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/14/neues-net-3-5-feature-extension-methods.aspx&amp;amp;title=Neues.NET3.5Feature:ExtensionMethods" target=_blank&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" border=0&gt;&lt;/A&gt; 
&lt;TD class=sbmDim&gt;&lt;A class=sbmDim title="Post it to spurl" href="http://www.spurl.net/spurl.php?v=3&amp;amp;url=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/14/neues-net-3-5-feature-extension-methods.aspx&amp;amp;title=Neues.NET3.5Feature:ExtensionMethods" target=_blank&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/spurl8.png" border=0&gt;&lt;/A&gt; 
&lt;TD class=sbmDim&gt;&lt;A class=sbmDim title="Post it to technorati!" href="http://technorati.com/faves/?add=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/14/neues-net-3-5-feature-extension-methods.aspx&amp;amp;title=Neues.NET3.5Feature:ExtensionMethods" target=_blank&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" border=0&gt;&lt;/A&gt; 
&lt;TD class=sbmDim&gt;&lt;A class=sbmDim title="Post it to yahoo!" href="http://myweb.yahoo.com/myresults/bookmarklet?u=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/11/14/neues-net-3-5-feature-extension-methods.aspx&amp;amp;t=Neues.NET3.5Feature:ExtensionMethods" target=_blank&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/yahoo9.png" border=0&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;</description></item><item><title>Der ?? Operator in C#</title><link>http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/09/19/der-operator-in-c.aspx</link><pubDate>Wed, 19 Sep 2007 07:39:00 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:185437</guid><dc:creator>Jürgen Gutsch</dc:creator><description>&lt;p&gt;Seit ich - vor 9 Monaten - angefangen habe, produktiv mit C# zu entwickeln (vorher jahrelang mit VB.NET), gefällt es mir immer besser. &lt;/p&gt; &lt;p&gt;Unter anderem auch wegen dem hier:&lt;br&gt;Mit dem Operator ?? kann abgefragt werden, ob ein Objekt null ist. &lt;/p&gt; &lt;p&gt;Beispiel:&lt;br&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; nullProperty&lt;br /&gt;{&lt;br /&gt;  get { &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;return&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;null&lt;/span&gt;; }&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;string&lt;/span&gt; testVar &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;=&lt;/span&gt; nullProperty ?? &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 14px;font-weight: normal;"&gt;"default value! (property is null)"&lt;/span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Eine ausfühliche Beschreibung des ?? Operators ist in der MSDN zu finden:&lt;br&gt;&lt;a title="http://msdn2.microsoft.com/de-de/library/ms173224(VS.80).aspx" href="http://msdn2.microsoft.com/de-de/library/ms173224(VS.80).aspx"&gt;http://msdn2.microsoft.com/de-de/library/ms173224(VS.80).aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Danke, &lt;a href="http://www.dotnetnukeblog.de/Das+Maumltige+Fragezeichen+Oder+Der+Opterator+In+C.aspx"&gt;Daniel&lt;/a&gt; für den Hinweis :-)&lt;/p&gt;&lt;span class="sbmLink"&gt; &lt;table cellspacing="1" cellpadding="1"&gt;  &lt;tr&gt; &lt;td class="sbmText"&gt;Share this post : &lt;/td&gt; &lt;td class="sbmDim"&gt;&lt;a class="sbmDim" title="Post it to del.icio.us" href="http://del.icio.us/post?url=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/09/19/der-operator-in-c.aspx&amp;amp;;title=Der??OperatorinC#" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" border="0"&gt;&lt;/a&gt; &lt;td class="sbmDim"&gt;&lt;a class="sbmDim" title="Post it to digg" href="http://digg.com/submit?phase=2&amp;amp;url=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/09/19/der-operator-in-c.aspx&amp;amp;title=Der??OperatorinC#" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" border="0"&gt;&lt;/a&gt; &lt;td class="sbmDim"&gt;&lt;a class="sbmDim" title="Post it to dotnetkicks" href="http://www.dotnetkicks.com/kick/?url=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/09/19/der-operator-in-c.aspx&amp;amp;title=Der??OperatorinC#" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" border="0"&gt;&lt;/a&gt; &lt;td class="sbmDim"&gt;&lt;a class="sbmDim" title="Post it to live" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/09/19/der-operator-in-c.aspx&amp;amp;title=Der??OperatorinC#" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" border="0"&gt;&lt;/a&gt; &lt;td class="sbmDim"&gt;&lt;a class="sbmDim" title="Post it to technorati!" href="http://technorati.com/faves/?add=http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/09/19/der-operator-in-c.aspx&amp;amp;title=Der??OperatorinC#" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;</description></item><item><title>Kostenlose .NET Poster</title><link>http://www.aspnetzone.de/blogs/peterbucher/archive/2007/04/10/kostenlose-net-poster.aspx</link><pubDate>Tue, 10 Apr 2007 07:52:00 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:178467</guid><dc:creator>Peter Bucher</dc:creator><description>&lt;P&gt;&lt;IMG src="http://www.aspnetzone.de/photos/peterbucher/images/178466/original.aspx" align=right border=0&gt;Die Schweizer Firma &lt;A href="http://www.bbv.ch/"&gt;bbv&lt;/A&gt; stellt der&amp;nbsp;Community&amp;nbsp;&lt;STRONG&gt;kostenlose&lt;/STRONG&gt; .NET Poster zur Verfügung.&lt;BR&gt;Die Poster werden gratis und franco zu dir nach Hause geschickt, egal ob in die Schweiz, nach Deutschland oder Österreich.&lt;/P&gt;
&lt;P&gt;Folgende Poster stehen im Angebot:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ASP.NET AJAX Web Application (Neu April 2007) 
&lt;LI&gt;ASP.NET 2.0 Web Application 
&lt;LI&gt;.NET Framework 3.0 Overview (Neu April 2007) 
&lt;LI&gt;.NET Framework 2.0 Overview 
&lt;LI&gt;.NET Framework 1.0 Overview&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Unter folgenden Adresse, kann man die Poster anfordern:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.bbv.ch/?site=offers/dotnet_news.html#dotnet_poster"&gt;http://www.bbv.ch/?site=offers/dotnet_news.html#dotnet_poster&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;</description></item><item><title>Openbooks von Galileo</title><link>http://www.aspnetzone.de/blogs/peterbucher/archive/2007/01/23/openbooks-von-galileo.aspx</link><pubDate>Tue, 23 Jan 2007 16:31:00 GMT</pubDate><guid isPermaLink="false">ce930855-ae9b-4fa4-8077-06a76071cc6a:174809</guid><dc:creator>Peter Bucher</dc:creator><description>&lt;IMG src="http://www.aspnetzone.de/photos/peterbucher/images/174811/original.aspx" align=right border=0&gt; 
&lt;P&gt;Galileo bietet neben dem normalen Verkauf der Bücher einen weiteren,&amp;nbsp;interessanten Bereich.&lt;BR&gt;Man kann im&amp;nbsp;"openbook" Bereich&amp;nbsp;viele Fachbücher&amp;nbsp;kostenlos&amp;nbsp;online lesen oder als offline Version herunterladen.&lt;BR&gt;Von ASP.NET über Java, Linux und C# ist alles dabei.&lt;/P&gt;
&lt;P&gt;Am interessantesten&amp;nbsp;und auch gut als Nachschlagewerk geeignet&amp;nbsp;sind m.E.&amp;nbsp;folgend Bücher:&lt;BR&gt;- &lt;A href="http://www.galileocomputing.de/openbook/visual_basic/"&gt;http://www.galileocomputing.de/openbook/visual_basic/&lt;/A&gt;&amp;nbsp;(Visual Basic 2005)&lt;BR&gt;- &lt;A href="http://www.galileocomputing.de/openbook/visual_csharp/"&gt;http://www.galileocomputing.de/openbook/visual_csharp/&lt;/A&gt;&amp;nbsp;(Visual C# 2005)&lt;BR&gt;- &lt;A href="http://www.galileocomputing.de/openbook/oo/"&gt;http://www.galileocomputing.de/openbook/oo/&lt;/A&gt;&amp;nbsp;(Objektorientierung)&lt;/P&gt;
&lt;P&gt;Die Buchübersicht findet man hier:&lt;BR&gt;- &lt;A href="http://www.galileocomputing.de/katalog/openbook"&gt;http://www.galileocomputing.de/katalog/openbook&lt;/A&gt;&lt;/P&gt;</description></item></channel></rss>