<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>codefest.at</title>
    <description>Das Weblog rund um Software Entwicklung und Design auf der Microsoft Plattform.</description>
    <link>http://www.codefest.at/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.0.7</generator>
    <language>de-DE</language>
    <blogChannel:blogRoll>http://www.codefest.at/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>msdnblog</dc:creator>
    <dc:title>codefest.at</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/MsdnAustria" type="application/rss+xml" /><feedburner:emailServiceId>MsdnAustria</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>3. Interoperability Council – Impressionen</title>
      <description>&lt;p&gt;Letzten Donnerstag, am 5. November 2009, fand im Microsoft Innovation Center&amp;#160; unser drittes Microsoft Interoperability Council statt.    &lt;br /&gt;&lt;a href="http://www.codefest.at/image.axd?picture=image_38.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="http://www.codefest.at/image.axd?picture=image_thumb_34.png" width="248" height="149" /&gt;&lt;/a&gt;Das Interoperability Council ist ein Expertenkreis, mit dem wir gemeinsam für Österreich relevante Herausforderungen bezüglich Interoperabilität zwischen der Microsoft Plattform und anderen Plattformen identifizieren und potentielle Lösungswege erarbeiten. Das Council wurde am 10. Februar 2009 mit dem ersten Treffen ins Leben gerufen.     &lt;br /&gt;Im Rahmen dieses 3. Councils konnten wir die ersten Ergebnisse aus den vergangenen acht Monaten präsentieren und potentielle Initativen und Projekte für das nächste Jahr diskutieren. Diese werden in den nächsten Monaten durch das Council konkretisiert.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;e-card und Microsoft .NET        &lt;br /&gt;Sicherstellung der Interoperabilität neuer Schnittstellen.&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codefest.at/image.axd?picture=Interop.%20Council%205.11.2009%20007.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Interop. Council 5.11.2009 007" border="0" alt="Interop. Council 5.11.2009 007" align="right" src="http://www.codefest.at/image.axd?picture=Interop.%20Council%205.11.2009%20007_thumb.jpg" width="197" height="133" /&gt;&lt;/a&gt; Zur einem der beiden großen Interoperability-Labs der vergangenen Monate, welches wir gemeinsam mit SVC GmbH. vorangetrieben haben, wurde im Rahmen des Councils eine Pressemitteilung veröffentlicht. Rainer Schügerl, Bereichsleiter Technik und Mario Szpuszta, Architekt Advisor bei Microsoft, haben das Projekt vorgestellt.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.microsoft.com/austria/presse/pressemeldung1825.mspx?ID=42d6b719-45ef-4eab-9613-45b8db24d1e9" target="_blank"&gt;Klicken Sie hier, um zur Presse-Ankündigung über dieses Projekt zu kommen.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sämtliche technischen Details und Hintergründe zu diesem Projekt finden Sie in nachfolgenden Blogeinträgen:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.codefest.at/post/2009/10/19/Sicherstellung-der-Kompatibilitat-von-NETWCF-und-den-e-card-Services-UZE-und-ABS-Interoperability-Lab-mit-SV-Chipkarten-Betriebs-und-Errichtungsgesellschaft-mbH-erfolgreich-abgeschlossen!.aspx" target="_blank"&gt;Details auf codefest.at über das Interoperability-Lab&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://blogs.msdn.com/mszcool/archive/2009/10/19/windows-communication-foundation-and-soap-with-attachments-message-encoder-built-in-interop-lab-with-svc-sozialversicherungs-chipkarten-betriebs-und-errichtungsgesellschaft-m-b-h.aspx" target="_blank"&gt;Technische Details am Blog von Mario Szpuszta&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://wcfswaencoder.codeplex.com/" target="_blank"&gt;Ergebnisse (Source, Beschreibungen) auf Codeplex als Open Source Projekt&lt;/a&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;&lt;u&gt;Vielen Dank an alle Beteiligten&lt;/u&gt;&lt;/strong&gt; und an jene Mitglieder des Interop-Councils, die dieses Projekt ermöglicht haben: &lt;em&gt;Rainer Schügerl (Bereichsleiter Technik, SVC), Thomas Woisetschläger (Partner Support, SVC), Nenad Jovanovic (Senior Developer, SVC), Stefan Machura (Architect, SVC), Roland Pezzei (Architect, SVC), Mario Szpuszta (Architect Advisor, Microsoft).&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Portal-Verbund-Protokoll und die Microsoft Plattform        &lt;br /&gt;Veröffentlichung von Open Source Komponenten und Dokumentation&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Das &lt;a href="http://www.digitales.oesterreich.gv.at/site/5288/default.aspx" target="_blank"&gt;Portal-Verbund-Protokoll (kurz PVP)&lt;/a&gt; ist der eGovernment-Standard zur Vernetzung und Integration von Portalen im öffentlichen Bereich. Weitere Informationen zu dieser Spezifikation finden Sie &lt;a href="http://reference.e-government.gv.at/Portalverbund.577.0.html" target="_blank"&gt;hier.&lt;/a&gt;&lt;a href="http://www.codefest.at/image.axd?picture=image_39.png"&gt;&lt;img style="border-right-width: 0px; margin: 10px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://www.codefest.at/image.axd?picture=image_thumb_35.png" width="244" height="124" /&gt;&lt;/a&gt;Die Frage nach der Untestützung und Verwendung von PVP ist daher natürlich für die Microsoft Plattform ein zentrales Thema. Entsprechend wurde PVP als eines der Top-Themen im ersten Treffen des Councils identifiziert. Zahlreiche Unternehmen, von kleinen und großen Partnern bis hin zu Kunden im privaten und öffentlichen Sektor könnten von einer klaren Guidance oder gar von Komponenten profitieren, die zeigen, wie PVP mit Hilfe der Microsoft Plattform (allen voran .NET) als Protokoll unterstützt werden kann.&lt;/p&gt;  &lt;p&gt;Daher haben wir für dieses Thema unser größtes Interoperability Lab in mehreren Schritten veranstaltet. Die Ergebnisse können sich ebenfalls sehen lassen:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://egora.codeplex.com/" target="_blank"&gt;Veröffentlichung von PVP-Komponenten als Open Source Projekt auf Codeplex&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://egora.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=91043" target="_blank"&gt;Publikation eines Whitepapers, welches zeigt, wie mit diesen Komponenten      &lt;br /&gt;Stammportale und Anwendungsportale auf Basis Microsoft .NET       &lt;br /&gt;konfiguriert und Entwickelt werden können.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Die veröffentlichten Open Source Komponenten stammen zu einem großen Teil aus der &lt;a href="http://www.egora.at" target="_blank"&gt;egora-Initative&lt;/a&gt;und die ersten Komponenten wurden durch das Interoperability Council schlussendlich als Open Source veröffentlicht. Darüber hinaus konnten wir im Rahmen des PVP Interop-Labs weitere Anforderungen erarbeiten sowie “Proven Practices” aus der Praxis identifizieren. Aus diesen Aktivitäten wurden die PVP-Komponenten aus egora um einige Module erweitert, die ebenfalls als Open Source publiziert wurden. Zum Abschluss haben wir das Whitepaper auf Basis dieser Komponenten und der Erfahrungen aus der Praxis verfasst und veröffentlicht.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Vielen Dank an alle Beteiligten&lt;/u&gt;&lt;/strong&gt; und an jene Mitglieder des Interop-Councils, die dieses Projekt ermöglicht haben: &lt;em&gt;Peter Reichstädter (Bundeskanzleramt), Dietmar Wehinger (ACE), Thomas Kutha (Rubicon), Werner Kugler (Rubicon), Günter Fischer (BRZ), Dietmar Gombotz (LFRZ), Peter Pfläging (AGIZ), Rainer Hörbe (AGIZ), Benedikt Redl (Microsoft), Konstantin Dotchkoff (Microsoft), Mario Szpuszta (Microsoft)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Identity Interoperability – Zusammenfassung von Informationen&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codefest.at/image.axd?picture=Interop.%20Council%205.11.2009%20025.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Interop. Council 5.11.2009 025" border="0" alt="Interop. Council 5.11.2009 025" align="right" src="http://www.codefest.at/image.axd?picture=Interop.%20Council%205.11.2009%20025_thumb.jpg" width="187" height="126" /&gt;&lt;/a&gt;Auch das Thema Interoperability im Bereich “Digitale Identitäten” wurde als ein Thema im Rahmen des Councils identifiziert. Auf Basis der Diskussionen des Councils haben wir (Microsoft, Mario Szpuszta) einen Artikel verfasst, der die Möglichkeiten der Interoperabilität zwischen Plattformen in diesem Bereich zusammenfasst. In diesem Blog-Eintrag finden Sie Informationen zur Integration zwischen Microsoft und anderen Systemen wie Sun Metro / WSIT, Sun Open SSO, Novell Access Manager oder auch Open ID un Shibboleth.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/mszcool/archive/2009/11/05/identity-interop-update-for-our-interoperability-council-adfs-v2-and-wif-interop-with-sun-opensso-novell-access-manager-ca-openid-and-sun-metro-wsit.aspx" target="_blank"&gt;Klicken Sie hier, um zum Artikel zu gelangen.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Abschließende Anmerkungen&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Die ersten Erfolge des Interop-Councils zeigen, dass sich manche (nicht alle;)) Herausforderungen sehr rasch durch &lt;a href="http://www.codefest.at/image.axd?picture=Interop.%20Council%205.11.2009%20029.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 10px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Interop. Council 5.11.2009 029" border="0" alt="Interop. Council 5.11.2009 029" align="left" src="http://www.codefest.at/image.axd?picture=Interop.%20Council%205.11.2009%20029_thumb.jpg" width="241" height="162" /&gt;&lt;/a&gt;gemeinsamen und pragmatischen Einsatz von Ressourcen in einer Form lösen lassen, von welcher die österreichischen Entwickler, Architekten und Unternehmen profitieren.&lt;/p&gt;  &lt;p&gt;Im Rahmen des Councils wurden bereits weitere Ideen diskutiert, die in den nächsten Monaten konkretisiert werden. Einige spannende Themen werden sich etwa mit PVP 2.0 (SAML, Shibboleth) Interoperabilität und Microsoft (ADFS v2, WIF) beschäftigen. Auch Workshop-Tage zu den veröffentlichten Projekten auf technischer Ebene für österreichische Entwickler und Architekten wurden als Idee diskutiert.&lt;/p&gt;  &lt;p&gt;Wir sind auf jeden Fall gespannt, welche konkreten Projekte die Mitglieder unseres Council aufkommen werden und freuen uns schon auf diese!&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ihre Developer &amp;amp; Platform Group&lt;/strong&gt;&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/v1U0Omj_1t0/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/11/09/3-Interoperability-Council-e28093-Impressionen.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=7d0e1336-3d8b-46a7-b81d-f49118dac1b1</guid>
      <pubDate>Mon, 09 Nov 2009 18:48:42 +0100</pubDate>
      <category>Interoperability</category>
      <dc:publisher>ms</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=7d0e1336-3d8b-46a7-b81d-f49118dac1b1</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=7d0e1336-3d8b-46a7-b81d-f49118dac1b1</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/11/09/3-Interoperability-Council-e28093-Impressionen.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=7d0e1336-3d8b-46a7-b81d-f49118dac1b1</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=7d0e1336-3d8b-46a7-b81d-f49118dac1b1</feedburner:origLink></item>
    <item>
      <title>Dynamic in C# 4.0, Teil 2: MemberBinder, IndexBinder und InvokeMember</title>
      <description>&lt;p&gt;Im &lt;a href="http://www.codefest.at/post/2009/11/04/Dynamic-in-C-40-Teil-I-Einfuhrung.aspx" target="_blank"&gt;vorigen Posting&lt;/a&gt; habe ich versprochen, auf MemberBinder und IndexBinder in C# 4.0 einzugehen. Im letzten Beispiel haben wir bereits dynamisch Methoden hinzugefügt und verändert, doch dies geht noch wesentlich eleganter. Hierfür erstellen wir uns unser eigenes dynamisches Objekt. Dieses erbt von “&lt;a href="http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject(VS.100).aspx" target="_blank"&gt;DynamicObject&lt;/a&gt;”. In weiser Voraussicht auf das nächste Posting nennen wir das auch gleich mal “DynamicCSVObject”.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DynamicCSVObject &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;DynamicObject
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Damit wir unsere Member und die dazu passenden Variablen abspeichern können benötigen wir noch ein Dictionary. &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt; membervals;&lt;/pre&gt;

&lt;p&gt;Unser Konstruktor soll nun einen Array an Members und dazu passende Werte aufnehmen können. Wichtig ist hierbei, das die Anzahl der Members jenen der Werte entsprechen muss.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;DynamicCSVObject(&lt;span style="color: blue"&gt;string&lt;/span&gt;[] members, &lt;span style="color: blue"&gt;object&lt;/span&gt;[] values)
{
    membervals = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt;();

    &lt;span style="color: blue"&gt;if &lt;/span&gt;(members.Length == values.Length)
    {
        &lt;span style="color: blue"&gt;for &lt;/span&gt;(&lt;span style="color: blue"&gt;int &lt;/span&gt;i = &lt;span style="color: brown"&gt;0&lt;/span&gt;; i &amp;lt; members.Length; i++)
        {
            membervals.Add(members[i], values[i]);
        }
    }
}&lt;/pre&gt;

&lt;p&gt;Nun können wir uns auch bereits an die erste Methode machen. Konkret wollen wir einen Member zurück geben. Dies geschieht, indem man die Methode “TryGetMember” aufruft. Der Wert leitet sich hierbei aus dem Dictionary ab. Den Namen des Binders erhalten wir aus dem “&lt;a href="http://msdn.microsoft.com/en-us/library/system.dynamic.getmemberbinder(VS.100).aspx" target="_blank"&gt;GetMemberBinder&lt;/a&gt;”. Da das ganze ein “TryGet”-Pattern ist, wird True/False zurück geliefert und die Variablen in einer out-Variable ausgegeben. (Das TryGet-Pattern erlaubt eine sichere Abfrage von Werten und wurde &lt;a href="http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321246756" target="_blank"&gt;im Buch von Krzysztof Cwalina und Brad Abrams beschrieben&lt;/a&gt;) &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public override bool &lt;/span&gt;TryGetMember(&lt;span style="color: #2b91af"&gt;GetMemberBinder &lt;/span&gt;binder, &lt;span style="color: blue"&gt;out object &lt;/span&gt;result)
{
    &lt;span style="color: blue"&gt;return &lt;/span&gt;membervals.TryGetValue(binder.Name, &lt;span style="color: blue"&gt;out &lt;/span&gt;result);
}&lt;/pre&gt;

&lt;p&gt;Nun können wir die Methode auch bereits Testen. Hierfür geben wir 2 Member und 2 Werte (jeweils vom Typ String der Einfachheit halber) an.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;dynamic &lt;/span&gt;dyn = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DynamicCSVObject&lt;/span&gt;(&lt;span style="color: blue"&gt;new string&lt;/span&gt;[] { &lt;span style="color: #a31515"&gt;&amp;quot;Date&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Value&amp;quot; &lt;/span&gt;}, &lt;span style="color: blue"&gt;new string&lt;/span&gt;[] { &lt;span style="color: #a31515"&gt;&amp;quot;12.12.2009&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;22&amp;quot; &lt;/span&gt;});

&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(dyn.Date);&lt;/pre&gt;

&lt;p&gt;Nun ist es auch noch sehr interessant, wie man diese Members setzen kann. Ähnlich der TryGetMember-Methode gibt es nun eine TrySetMember-Methode, welche darauf wartet überschrieben zu werden. Diese Methode liefert zum einem den SetMemberBinder und zum anderen ein Objekt mit dem Wert. Wir überprüfen zu Beginn ob der Wert bereits vorhanden ist. Wenn nicht, wird dieser hinzugefügt. &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public override bool &lt;/span&gt;TrySetMember(&lt;span style="color: #2b91af"&gt;SetMemberBinder &lt;/span&gt;binder, &lt;span style="color: blue"&gt;object &lt;/span&gt;value)
{
    &lt;span style="color: blue"&gt;if &lt;/span&gt;(!membervals.ContainsKey(binder.Name))
    {
        membervals.Add(binder.Name, value);
        &lt;span style="color: blue"&gt;return true&lt;/span&gt;;
    }
    &lt;span style="color: blue"&gt;else
    &lt;/span&gt;{
        &lt;span style="color: blue"&gt;return false&lt;/span&gt;;
    }
}&lt;/pre&gt;

&lt;p&gt;Nun können wir auch diese Methode testen.&lt;/p&gt;

&lt;pre class="code"&gt;dyn.MyOwn = &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.Today;

 &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(dyn.MyOwn);

 &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;a href="http://www.codefest.at/image.axd?picture=image_36.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.codefest.at/image.axd?picture=image_thumb_32.png" width="574" height="291" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wie in dieser Abbildung erkennbar ist funktioniert das auch schon sehr gut.&lt;/p&gt;

&lt;p&gt;Doch damit alleine wollen wir uns nun auch noch nicht zufrieden geben. Schließlich haben wir bis jetzt nur Properties abgefragt. Dies könnte man auch mit Dictionaries einfacher gestalten. Aber es ist auch Möglich, Methodenaufrufe zu machen. Hierfür gibt es die Methode “TryInvokeMember”. Diese bekommt zum einem den InvokeMemberBinder, dann einen Array von “args” (welche die Parameter darstellen) und das Ergebnis. &lt;/p&gt;

&lt;p&gt;Wir wollen Methoden aufrufen, welche Text zu einem vorhandenen Property hinzufügen. Der Text soll hierbei aus den Übergabe Parametern kommen. Damit das funktioniert müssen wir folgendes überprüfen:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Beginnt die Methode mit “Add”? &lt;/li&gt;

  &lt;li&gt;Ist alles danach ein im Dictionary vorhandenes Property? &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;wenn das funktioniert, iterieren wir über die Übergabe Parameter und fügen Sie einen StringBuilder an. Dieser StringBuilder ist dann unser Ergebnis. &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public override bool &lt;/span&gt;TryInvokeMember(&lt;span style="color: #2b91af"&gt;InvokeMemberBinder &lt;/span&gt;binder, &lt;span style="color: blue"&gt;object&lt;/span&gt;[] args, &lt;span style="color: blue"&gt;out object &lt;/span&gt;result)
{
    &lt;span style="color: blue"&gt;string &lt;/span&gt;member;
    &lt;span style="color: blue"&gt;object &lt;/span&gt;objmember;

    &lt;span style="color: #2b91af"&gt;StringBuilder &lt;/span&gt;sb;

    &lt;span style="color: blue"&gt;if &lt;/span&gt;(binder.Name.StartsWith(&lt;span style="color: #a31515"&gt;&amp;quot;Add&amp;quot;&lt;/span&gt;))
    {
        member = binder.Name.Substring(&lt;span style="color: brown"&gt;3&lt;/span&gt;);

        &lt;span style="color: blue"&gt;if &lt;/span&gt;(membervals.TryGetValue(member, &lt;span style="color: blue"&gt;out &lt;/span&gt;objmember))
        {
            sb = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;StringBuilder&lt;/span&gt;(objmember.ToString());

            &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue"&gt;object &lt;/span&gt;o &lt;span style="color: blue"&gt;in &lt;/span&gt;args)
            {
                sb.Append(o.ToString());
            }

            result = sb.ToString();
            &lt;span style="color: blue"&gt;return true&lt;/span&gt;;
        }

        result = &lt;span style="color: blue"&gt;null&lt;/span&gt;;
        &lt;span style="color: blue"&gt;return false&lt;/span&gt;;
    }
    &lt;span style="color: blue"&gt;else
    &lt;/span&gt;{
        result = &lt;span style="color: blue"&gt;null&lt;/span&gt;;
        &lt;span style="color: blue"&gt;return false&lt;/span&gt;;
    }
}&lt;/pre&gt;

&lt;p&gt;Nun müssen wir das auch noch testen:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(dyn.AddDate(&lt;span style="color: #a31515"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;));

&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;/pre&gt;

&lt;p&gt;Toll ist, das es wirklich mit beliebig vielen Parametern funktioniert:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(dyn.AddValue(&lt;span style="color: #a31515"&gt;&amp;quot;Mario&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Meir&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Huber&amp;quot;&lt;/span&gt;));

&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;/pre&gt;

&lt;p&gt;Wie man sieht es es nun bereits sehr dynamisch. Das Beispiel bietet nur einen kleinen Einblick in die Technologie. Hierbei könnte man anhand von unterschiedlichen Memberaufrufen DLL’s dynamisch nachladen, Webservice-Aufrufe vereinfachen wenn sich der Service öfter ändert oder eine Applikation schreiben welche sich an einen Kunden sehr einfach anpasst. Den Fantasien sind nun keine Grenzen mehr gesetzt ;)&lt;/p&gt;

&lt;p&gt;Was nun auch noch möglich ist, ist ein Indexer. Hierbei wollen wir mit “obj[2]” auf ein Property zugreifen. Dies geschieht mithilfe der Methode “TryGetIndex”. im Array “indexes[0]” ist unser Index abgespeichert. Dies ist ebenfalls wieder vom TryGet-Design&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public override bool &lt;/span&gt;TryGetIndex(&lt;span style="color: #2b91af"&gt;GetIndexBinder &lt;/span&gt;binder, &lt;span style="color: blue"&gt;object&lt;/span&gt;[] indexes, &lt;span style="color: blue"&gt;out object &lt;/span&gt;result)
{
    &lt;span style="color: blue"&gt;if &lt;/span&gt;((&lt;span style="color: blue"&gt;int&lt;/span&gt;)indexes[&lt;span style="color: brown"&gt;0&lt;/span&gt;] &amp;lt;= membervals.Count)
    {
        result = membervals.ElementAt((&lt;span style="color: blue"&gt;int&lt;/span&gt;)indexes[&lt;span style="color: brown"&gt;0&lt;/span&gt;]);
        &lt;span style="color: blue"&gt;return true&lt;/span&gt;;
    }
    &lt;span style="color: blue"&gt;else
    &lt;/span&gt;{
        result = &lt;span style="color: blue"&gt;null&lt;/span&gt;;
        &lt;span style="color: blue"&gt;return false&lt;/span&gt;;
    }
}&lt;/pre&gt;

&lt;p&gt;Und natürlich wollen wir das auch noch ausführen.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(dyn[&lt;span style="color: brown"&gt;2&lt;/span&gt;]);

&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://www.codefest.at/image.axd?picture=image_37.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.codefest.at/image.axd?picture=image_thumb_33.png" width="605" height="307" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Und fertig! &lt;/p&gt;

&lt;p&gt;Im nächsten Posting werde ich die Klasse weiterverwenden und zeigen wie man dynamisch CSV-Daten parsen kann und diese in WPF mit Databinding verwendet. &lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/OGqd25ke5L8/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/11/09/Dynamic-in-C-40-Teil-2-MemberBinder-IndexBinder-und-InvokeMember.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=f20bada0-8cea-40c4-b56b-3d3d70a65957</guid>
      <pubDate>Mon, 09 Nov 2009 11:26:08 +0100</pubDate>
      <category>General</category>
      <category>Client-Development</category>
      <dc:publisher>mmh</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=f20bada0-8cea-40c4-b56b-3d3d70a65957</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=f20bada0-8cea-40c4-b56b-3d3d70a65957</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/11/09/Dynamic-in-C-40-Teil-2-MemberBinder-IndexBinder-und-InvokeMember.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=f20bada0-8cea-40c4-b56b-3d3d70a65957</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=f20bada0-8cea-40c4-b56b-3d3d70a65957</feedburner:origLink></item>
    <item>
      <title>Codefest.at Wochenrückblick: 02.11. - 08.11. 2009</title>
      <description>&lt;p&gt;Der Codefest Wochenrückblick informiert über die Geschehnisse rund um .NET der letzten Woche. Damit möchten wir unseren Lesern einen kleinen Wegweiser bieten, der die Fülle an Information, die wöchentlich auf MSDN und vielen anderen Stellen im Web veröffentlicht wird, vorsortiert präsentiert. Wenn Du etwas interessantes vermisst, bitte einfach in den Comments ergänzen!&lt;/p&gt;  &lt;h1&gt;Softwareentwicklung&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://www.devproconnections.com/tabId/180/itemId/4586/Building-Occasionally-Connected-Smart-Clients-with.aspx" target="_blank"&gt;&lt;strong&gt;Occasionally Connected Smart Clients mit der WPF erstellen&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Auf DevProConnection gibt es einen sehr interessanten Artikel, wie man Occasionally Connected Clients erstellen kann. Hierbei werden die ADO.NET Sync Services verwendet.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/blogs/gerben/archive/2009/10/30/questionnaire-dsl-with-microsoft-quot-oslo-quot-overview.aspx" target="_blank"&gt;&lt;strong&gt;Was ist Oslo? Avanade hat eine interessante Demo was es ist&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;In diesem Demo wird gezeigt wie Oslo funktionieren kann. Hierbei wird mit “Intellipad” eine DSL entwickelt, welche einen Fragenkatalog auswertet. Danach wurde in “Quadrant” eine Visuelle DSL umgesetzt und das Modell in einer Runtime angezeigt.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/netservicesannounce/archive/2009/10/30/the-net-services-november-2009-ctp-breaking-changes-announcement-and-scheduled-maintenance.aspx" target="_blank"&gt;&lt;strong&gt;Updates in den .NET Services&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Die .NET Services werden auf eine November CTP upgedated. Hierbei sind einige Änderungen, unter anderem jene der Adressen, zu erwarten.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee658247.aspx" target="_blank"&gt;&lt;strong&gt;Dynamic Method Bags&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Bill Wagner erklärt in diesem sehr interessanten Artikel dynamic in C#. Neben der soeben gestarteten dynamic-Serie auf Codefest ist dies sehr gut als Ergänzung!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://download.microsoft.com/download/E/6/A/E6A8A715-7695-493C-8CFA-8E0C23A4BE1D/098-115952-NETFX4-Poster.pdf" target="_blank"&gt;&lt;strong&gt;.NET Framework 4.0 Poster downloaden&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Eine schöne Übersicht über das .NET Framework bietet dieses Poster. Neuerungen und Updates im .NET Framework werden dabei übersichtlich dargestellt.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dotnet-forum.de/blogs/thorstenhans/archive/2009/11/03/sharepoint-2010-linq2sharepoint.aspx" target="_blank"&gt;&lt;strong&gt;Linq2SharePoint für SharePoint 2010&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Eine sehr interessante Neuerung in SharePoint 2010 ist LinQ. LinQ ist bereits im .NET Framework weit verbreitet und findet nun auch in SharePoint 2010 Einzug. Thorsten Hans gibt in diesem Artikel einen Ausblick auf diese Technologie.&lt;/p&gt;  &lt;h1&gt;User Experience und Design&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://silverdraw.codeplex.com/" target="_blank"&gt;&lt;strong&gt;SilverDraw – eine MultiUser, Online Zeichenapplikation&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Sehr interessant ist diese Applikation. Hierbei können mehrere User auf ein “Board” zeichnen. Ferner ist auch ein Chat implementiert. Der Code ist auf Codeplex.com zugänglich. Hierbei kommt WCF Duplex und Silverlight zum Einsatz.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/11/02/silverlight-from-zero.aspx" target="_blank"&gt;&lt;strong&gt;Einführung in Silverlight von Jesse Liberty&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Jesse Liberty, Silverlight Geek der Ersten Stunde, erstellt eine Serie über Silverlight, welche das Thema von Anfang aufrollt. Diese ist speziell an Einsteiger adressiert.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/swiss_dpe_team/archive/2009/10/30/microsoft-surface-going-below-the-surface.aspx" target="_blank"&gt;&lt;strong&gt;Ein Einblick in das Surface Hardware-Design&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Microsoft Schweiz erklärt die Funktionsweise des Surface Gerätes. Hierbei wird nicht die API, sondern die Hardware erklärt. Viele Bilder vermitteln einen Eindruck darüber, wie das Gerät funktioniert.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://adamkinney.wordpress.com/2009/11/03/a-photosynth-of-neil-gaimans-library/" target="_blank"&gt;&lt;strong&gt;Photosynth der Neil Gaiman’s Bibliothek&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Ein sehr nettes Beispiel von Photosynth wurde anhand der Neil Gaiman Bibliothek realisiert. Das ganze basiert auf Silverlight. Reinschauen loht sich allemal!&lt;/p&gt;  &lt;h1&gt;Lese- und Linktipps&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/presspass/features/2009/oct09/10-28CustomerServiceWin7.mspx" target="_blank"&gt;&lt;strong&gt;Kundensupport am nächsten Level&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Lori Brownell, General Manager bei Microsoft, gibt Einblicke in den Kundensupport mit Windows 7 und welche neuen Tools dafür eingesetzt wurden. Der Artikel ist für jeden, welcher mit Software zu tun hat sehr empfehlenswert und gut zu lesen.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.msn.com/preview.aspx" target="_blank"&gt;&lt;strong&gt;MSN wird von Grund auf neu gestaltet&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Frisches Design für MSN, welches wesentlich frischer wirkt als das doch schon in die Jahre gekommene MSN-Design. Als zentrale Neuerung sticht die Facebook- und Twitter-Integration ins Auge.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/7gpVNmpAEh8/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/11/06/Codefestat-Wochenruckblick-0211-0811-2009.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=443277e5-0d3d-4153-96c8-4a05b25b70ab</guid>
      <pubDate>Fri, 06 Nov 2009 18:42:00 +0100</pubDate>
      <category>General</category>
      <dc:publisher>mmh</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=443277e5-0d3d-4153-96c8-4a05b25b70ab</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=443277e5-0d3d-4153-96c8-4a05b25b70ab</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/11/06/Codefestat-Wochenruckblick-0211-0811-2009.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=443277e5-0d3d-4153-96c8-4a05b25b70ab</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=443277e5-0d3d-4153-96c8-4a05b25b70ab</feedburner:origLink></item>
    <item>
      <title>Windows Azure Benefits für MSDN Subscriber</title>
      <description>&lt;p&gt;Besitzer einer MSDN Subscription können ab 4. Jänner 2010 unsere Cloud Computing Plattform Windows Azure für ein gewisses Transaktionsvolumen kostenfrei nutzen!&lt;/p&gt;  &lt;p&gt;Pro MSDN Subscription gibt es ein 8 monatiges Startangebot, danach für die gesamte Dauer der Subscription ein Paket mit kostenlosen Volumeni für Computing, Storage, Data Transfer, .NET Services und SQL Azure.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/subscriptions/ee461076.aspx" target="_blank"&gt;Link zur Übersicht&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/azure/default.aspx" target="_blank"&gt;Windows Azure Development Center&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.knor.net/blog/"&gt;&lt;img border="0" alt="Max_Foto3" src="http://blogs.msdn.com/blogfiles/msdnat/WindowsLiveWriter/MSDNdemocastRESTStyleServicesmitWCF3.5_D701/Max_Foto3_3.jpg" width="100" height="66" /&gt;&lt;/a&gt;&lt;strong&gt; &lt;a href="http://www.knor.net/blog/"&gt;&lt;em&gt;knom&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/q_G1DVjihR4/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/11/05/Windows-Azure-Benefits-fur-MSDN-Subscriber.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=56802b83-b6a3-42d8-8c24-88e54e3eb024</guid>
      <pubDate>Thu, 05 Nov 2009 10:34:31 +0100</pubDate>
      <category>Cloud-Computing</category>
      <dc:publisher>mk</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=56802b83-b6a3-42d8-8c24-88e54e3eb024</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=56802b83-b6a3-42d8-8c24-88e54e3eb024</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/11/05/Windows-Azure-Benefits-fur-MSDN-Subscriber.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=56802b83-b6a3-42d8-8c24-88e54e3eb024</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=56802b83-b6a3-42d8-8c24-88e54e3eb024</feedburner:origLink></item>
    <item>
      <title>Visual Studio 2010 / .NET 4.0 : Training Course auf Channel 9</title>
      <description>&lt;p&gt; Trainingskurse zu Visual Studio 2010 und .NET 4.0 gibt es auf Channel 9 zum Ansehen:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://channel9.msdn.com/learn/courses/VS2010/" target="_blank"&gt;&lt;strong&gt;Online Training:&lt;/strong&gt; Die Trainingsvideos zu Visual Studio 2010 und .NET 4.0&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9665216" target="_blank"&gt;&lt;strong&gt;Download&lt;/strong&gt;: Das Visual Studio 2010 und .NET 4.0 Trainingskit&lt;/a&gt; (Oktober Preview)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Have fun, Andi Pollak&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/iLUDK3wO1Pc/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/11/04/Visual-Studio-2010-NET-40-Training-Course-auf-Channel-9.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=c0e8f68c-ded1-460d-8e75-dc65dddf16bf</guid>
      <pubDate>Wed, 04 Nov 2009 11:13:50 +0100</pubDate>
      <category>General</category>
      <category>Client-Development</category>
      <category>Server Development</category>
      <category>Web-Development</category>
      <dc:publisher>ap</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=c0e8f68c-ded1-460d-8e75-dc65dddf16bf</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=c0e8f68c-ded1-460d-8e75-dc65dddf16bf</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/11/04/Visual-Studio-2010-NET-40-Training-Course-auf-Channel-9.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=c0e8f68c-ded1-460d-8e75-dc65dddf16bf</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=c0e8f68c-ded1-460d-8e75-dc65dddf16bf</feedburner:origLink></item>
    <item>
      <title>Dynamic in C# 4.0, Teil I: Einführung</title>
      <description>&lt;p&gt;Eines der Neuerungen in C# 4 ist die DLR (Dynamic Language Runtime). Hierbei ist das “dynamic” Keywort eines der zentralen Dinge. Ein dynamisches Objekt ist “ExpandoObject”. Dies kann man sich folgendermaßen generieren:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: green"&gt;//dynamische Person
&lt;/span&gt;&lt;span style="color: blue"&gt;dynamic &lt;/span&gt;aPerson = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ExpandoObject&lt;/span&gt;();
aPerson.Name = &lt;span style="color: #a31515"&gt;&amp;quot;Mario Meir-Huber&amp;quot;&lt;/span&gt;;
aPerson.Age = &lt;span style="color: brown"&gt;25&lt;/span&gt;;&lt;/pre&gt;

&lt;p&gt;Wie man dabei sehen kann, wurde “Name” und “Age” dynamisch hinzugefügt. Es ist auch möglich, auf alle Properties in diesem dynamischen Objekt zuzugreifen. Das ExpandoObject implementiert ein “IDictionary&amp;lt;string, object&amp;gt;” um auf alle Members zuzugreifen. Somit kann man Membername, Inhalt und sogar Typ ausgeben!&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private static void &lt;/span&gt;WriteDynobj(&lt;span style="color: blue"&gt;dynamic &lt;/span&gt;person)
{
    &lt;span style="color: #2b91af"&gt;IDictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt; p = person;

    &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue"&gt;var &lt;/span&gt;itm &lt;span style="color: blue"&gt;in &lt;/span&gt;p)
    {
        &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;&amp;quot;{0} ist vom Typ {1} und hat als Wert {2}&amp;quot;&lt;/span&gt;, itm.Key, itm.Value.GetType(), itm.Value));
    }
}&lt;/pre&gt;

&lt;p&gt;Dies sieht dann in der Konsole folgendermaßen aus:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codefest.at/image.axd?picture=image_34.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.codefest.at/image.axd?picture=image_thumb_30.png" width="640" height="325" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Damit es auch ausgegeben wird, muss aber vorher die Methode “WriteDynobj” aufgerufen werden:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Durchgang 1\n&amp;quot;&lt;/span&gt;);

&lt;span style="color: green"&gt;//ausgabe der properties
&lt;/span&gt;WriteDynobj(aPerson);&lt;/pre&gt;

&lt;p&gt;Natürlich wäre das ganze nicht so spektakulär wenn man nicht auch Methoden entfernen könnte. Hierfür greift man einfach wieder auf das Dictionary zu und entfernt einen Key&lt;/p&gt;

&lt;p&gt;&lt;span style="color: blue"&gt;private static void &lt;/span&gt;DeleteProperty(&lt;span style="color: blue"&gt;dynamic &lt;/span&gt;person, &lt;span style="color: blue"&gt;string &lt;/span&gt;property) 

  &lt;br /&gt;{ 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;IDictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt; p = person; 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; p.Remove(property); 

  &lt;br /&gt;} 

  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Das ganze sollte auch noch aufgerufen werden:&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: green"&gt;//ich bin zu alt - alter weg!
&lt;/span&gt;DeleteProperty(aPerson, &lt;span style="color: #a31515"&gt;&amp;quot;Age&amp;quot;&lt;/span&gt;);

&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;\nDurchgang 2\n&amp;quot;&lt;/span&gt;);

WriteDynobj(aPerson);&lt;/pre&gt;

&lt;p&gt;Noch besser ist es aber, wenn Methoden hinzu kommen. Dies wird auch einfach mit der “Add” Methode des Dictionaries geregelt:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private static void &lt;/span&gt;AddProperty(&lt;span style="color: blue"&gt;dynamic &lt;/span&gt;person)
{
    &lt;span style="color: #2b91af"&gt;IDictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt; p = person;

    p.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;KeyValuePair&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt;(&lt;span style="color: #a31515"&gt;&amp;quot;Alter&amp;quot;&lt;/span&gt;, &lt;span style="color: brown"&gt;12&lt;/span&gt;));
}&lt;/pre&gt;

&lt;p&gt;… und natürlich auch wieder aufrufen:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: green"&gt;//machen wir was dazu ... 
&lt;/span&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;\nDurchgang 3\n&amp;quot;&lt;/span&gt;);

AddProperty(aPerson);

WriteDynobj(aPerson);&lt;/pre&gt;

&lt;p&gt;Da das ganze ja sehr dynamisch ist kann man auch den soeben neu hinzugefügten Member im Code schreiben:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: green"&gt;//noch besser:

&lt;/span&gt;aPerson.Alter++;

&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;&amp;quot;Ein Jahr mehr = {0}&amp;quot;&lt;/span&gt;, aPerson.Alter));

&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://www.codefest.at/image.axd?picture=image_35.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.codefest.at/image.axd?picture=image_thumb_31.png" width="560" height="285" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Dies sind nur einige der vielen Vorteile der DLR in C# 4.0. Was es sonst noch so gibt und was MemberBinder, IndexBinder und dergleichen sind kommt in den nächsten Posting.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/IKJXC0OCHZ4/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/11/04/Dynamic-in-C-40-Teil-I-Einfuhrung.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=381175b4-41e3-4a6a-a4d3-b7e9eccf3e30</guid>
      <pubDate>Wed, 04 Nov 2009 10:18:30 +0100</pubDate>
      <category>Client-Development</category>
      <category>General</category>
      <dc:publisher>mmh</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=381175b4-41e3-4a6a-a4d3-b7e9eccf3e30</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=381175b4-41e3-4a6a-a4d3-b7e9eccf3e30</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/11/04/Dynamic-in-C-40-Teil-I-Einfuhrung.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=381175b4-41e3-4a6a-a4d3-b7e9eccf3e30</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=381175b4-41e3-4a6a-a4d3-b7e9eccf3e30</feedburner:origLink></item>
    <item>
      <title>Themen auf Codefest die nächsten beiden Monate: ASP.NET und Windows Azure</title>
      <description>&lt;p&gt;Wir wollen allen Lesern von Codefest einen kurzen Ausblick darauf geben was die nächsten beiden Monate hier zu erwarten ist:&lt;/p&gt;  &lt;p&gt;Nachdem wir im sommer einen Schwerpunkt auf alles rund um Rich Internet Applications mit Silverlight hatten, machen wir &lt;strong&gt;einen Schwenk zur Entwicklung von Web Applikationen mit ASP.NET&lt;/strong&gt;. Der Auftakt dazu war das MSDN Briefing Ende Oktober, und das wird jetzt weitergeführt mit der &lt;a href="http://webcast.codefest.at" target="_blank"&gt;7teiligen Webcast Serie&lt;/a&gt; zu ASP.NET. Parallel werden wir vermehrt Blog Posts zu den in den Webcasts behandelten Themen publizieren. Der ASP.NET Themenblock wird von Max Knor und Andreas Aschauer betreut.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Der zweite Themenschwerpunkt wird alles rund Windows Azure / Cloud Computing sein&lt;/strong&gt;. Etwas später wird das ganze rund um die PDC starten, also gegen Ende November. Das ganze wird auch im MSDN Briefing Jänner 2010 behandelt werden, wo es ausschließlich um das Thema Cloud Computing gehen wird (Datum reservieren, es wird der 22.1.2010 sein). Alles rund um Cloud Computing wird von Mario Szpuszta und Mario Meir-Huber behandelt werden.&lt;/p&gt;  &lt;p&gt;Im November werden wir fleißig von der TechEd aus Berlin und der PDC aus Los Angeles berichten, wo jeweils einige Leute vom Codefest Blog Team verweilen werden!&lt;/p&gt;  &lt;p&gt;D.h. natürlich nicht dass wir die beiden nächsten Monate ausschließlich zu ASP.NET und Windows Azure hier bloggen, alles andere interessante dazwischen werden wir immer einstreuen! :)&lt;/p&gt;  &lt;p&gt;Wir freuen uns außerdem über Feedback und Content-Wünsche über das Kontaktform und die Comments!&lt;/p&gt;  &lt;p&gt;LG-Rolf&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/sevTol0ZQVk/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/11/03/Themen-auf-Codefest-die-nachsten-beiden-Monate-ASPNET-und-Windows-Azure.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=d9e80dd4-9f65-4963-8c12-9ef7bc0b8a64</guid>
      <pubDate>Tue, 03 Nov 2009 15:10:15 +0100</pubDate>
      <category>General</category>
      <dc:publisher>rm</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=d9e80dd4-9f65-4963-8c12-9ef7bc0b8a64</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=d9e80dd4-9f65-4963-8c12-9ef7bc0b8a64</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/11/03/Themen-auf-Codefest-die-nachsten-beiden-Monate-ASPNET-und-Windows-Azure.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=d9e80dd4-9f65-4963-8c12-9ef7bc0b8a64</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=d9e80dd4-9f65-4963-8c12-9ef7bc0b8a64</feedburner:origLink></item>
    <item>
      <title>Windows Azure : Verwendung der REST API von Windows Azure Teil 3: Eine Queue mit asynchronem Callback erstellen</title>
      <description>&lt;p&gt;Dies ist das letzte Posting zur Windows Azure Serie und REST. Im &lt;a href="http://www.codefest.at/post/2009/10/14/Windows-Azure-Verwendung-der-REST-API-von-Windows-Azure-Teil-1-Uberblick.aspx" target="_blank"&gt;ersten Posting&lt;/a&gt; wurde erklärt, was REST ist und wie es funktioniert. Im &lt;a href="http://www.codefest.at/post/2009/10/28/Windows-Azure-Verwendung-der-REST-API-von-Windows-Azure-Teil-2-Anfragen-signieren.aspx" target="_blank"&gt;zweiten Posting&lt;/a&gt; wurde erklärt, wie man Anfragen verschlüsselt und signiert. Was jetzt noch fehlt ist, wie man auf der REST-API arbeitet. Hierfür wird ein einfaches Beispiel erstellt, wo eine neue MessageQueue in Windows Azure erstellt wird. &lt;/p&gt;  &lt;p&gt;Um eine Webafrage zu erstellen, ist ein &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx" target="_blank"&gt;HttpWebRequest&lt;/a&gt; notwendig. Dieser startet die Abfrage und wird mit “WebRequest.Create” erstellt. Wichtig ist hierbei auch noch der Cast. Als Adresse wird http://MEIN_ACCOUNT.queue.core.windows.net/MEINE_NEUE_MQ verwendet. Hierbei muss MEIN_ACCOUNT mit dem tatsächlichen Accountnamen ersetzt werden und MEINE_NEUE_MQ mit dem Namen unter welche diese identifiziert wird. Da es sich hierbei um die Erstellung eines neuen Elementes handelt, ist dies ein PUT. &lt;/p&gt;  &lt;p&gt;Die MessageQueue und die HTTP Verben wie PUT wurden bereits im &lt;a href="http://www.codefest.at/post/2009/10/14/Windows-Azure-Verwendung-der-REST-API-von-Windows-Azure-Teil-1-Uberblick.aspx" target="_blank"&gt;ersten Posting&lt;/a&gt; erklärt. Die Webabfrage soll asynchron laufen, damit diese den Thread nicht blockiert. Dies merkt man an der “BeginGetResponse” Methode. Dabei wird das Callback und der Request übergeben. &lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public static void &lt;/span&gt;CreateQueue(&lt;span style="color: blue"&gt;string &lt;/span&gt;secret, &lt;span style="color: blue"&gt;string &lt;/span&gt;accountName, &lt;span style="color: blue"&gt;string &lt;/span&gt;Queue)
{
 
    &lt;span style="color: blue"&gt;try
    &lt;/span&gt;{
        &lt;span style="color: blue"&gt;var &lt;/span&gt;request = &lt;span style="color: #2b91af"&gt;WebRequest&lt;/span&gt;.Create(&lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;&amp;quot;http://{0}.queue.core.windows.net/{1}&amp;quot;&lt;/span&gt;, accountName, Queue)) &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;HttpWebRequest&lt;/span&gt;;
        request.Method = &lt;span style="color: #a31515"&gt;&amp;quot;PUT&amp;quot;&lt;/span&gt;;
        request.ContentLength = 0;
        SignRequest(&lt;span style="color: blue"&gt;ref &lt;/span&gt;request, secret, accountName, &lt;span style="color: #a31515"&gt;&amp;quot;PUT&amp;quot;&lt;/span&gt;);
        request.BeginGetResponse(CreateQueueCallBack, request);
    }
    &lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Exception &lt;/span&gt;ex)
    {
        &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;&amp;quot;Error occured: {0}&amp;quot;&lt;/span&gt;, ex.Message));
    }
}&lt;/pre&gt;

&lt;p&gt;Das Ergebnis der Anfrage wird nun in den Callback ausgegeben. Dieser heißt “CreateQueueCallBack” in unserem Fall. Als erstes wird die HttpWebResponse aus dem WebRequest des Callback-Results (IAsyncResult) erstellt. Da jedoch nichts zurück geliefert wird außer der Status Code, soll dieser auf der Konsole ausgegeben werden. Jede HttpWebResponse hat ein Property “StatusCode”, auf welchen gearbeitet werden kann. &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private static void &lt;/span&gt;CreateQueueCallBack(&lt;span style="color: #2b91af"&gt;IAsyncResult &lt;/span&gt;result)
{
    &lt;span style="color: #2b91af"&gt;HttpWebResponse &lt;/span&gt;res = &lt;span style="color: blue"&gt;null&lt;/span&gt;;

    &lt;span style="color: blue"&gt;try
    &lt;/span&gt;{
        &lt;span style="color: #2b91af"&gt;WebRequest &lt;/span&gt;req = result.AsyncState &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WebRequest&lt;/span&gt;;
        res = req.EndGetResponse(result) &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;HttpWebResponse&lt;/span&gt;;

        &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(res.StatusCode);
    }
    &lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Exception &lt;/span&gt;ex)
    {
        &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;&amp;quot;Error occured: {0}&amp;quot;&lt;/span&gt;, ex.Message));
    }
}&lt;/pre&gt;

&lt;p&gt;Schlussendlich muss auch noch die Funktion “CreateQueue” aufgerufen werden. Hierfür müssen wir den SharedKey, den Account und die Queue angeben. &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;static void &lt;/span&gt;Main(&lt;span style="color: blue"&gt;string&lt;/span&gt;[] args)
{
    CreateQueue(&lt;span style="color: #a31515"&gt;&amp;quot;DEIN_SHARED_KEY&amp;quot;&lt;/span&gt;, 
        &lt;span style="color: #a31515"&gt;&amp;quot;DEIN_ACCOUNT&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Asf&amp;quot;&lt;/span&gt;);
    &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();
}&lt;/pre&gt;
&lt;a href="http://www.codefest.at/image.axd?picture=image_32.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codefest.at/image.axd?picture=image_thumb_28.png" width="556" height="282" /&gt;&lt;/a&gt; &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Bild 1: Queue wurde erfolgreich erstellt.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codefest.at/image.axd?picture=image_33.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codefest.at/image.axd?picture=image_thumb_29.png" width="564" height="286" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Bild 2: Fehler beim Erstellen; die Queue ist bereits vorhanden, man kann diese nur 1x erstellen. Um den Fehler zu entfernen muss man sich einen anderen Namen auswählen.&lt;/p&gt;

&lt;p&gt;So, dies war es vorerst mal mit der Windows Azure Serie. Die nächsten Serien sind schon in Vorbereitung, wobei eines kann ich schon verraten: es wird sehr dynamisch mit vielen Musterbeispielen ;)&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/-wnYTp5XfDk/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/11/03/Windows-Azure-Verwendung-der-REST-API-von-Windows-Azure-Teil-3-Eine-Queue-mit-asynchronem-Callback-erstellen.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=5335d884-1ca5-47ac-bf32-ea7a80fb6dc4</guid>
      <pubDate>Tue, 03 Nov 2009 15:01:19 +0100</pubDate>
      <category>General</category>
      <category>Cloud-Computing</category>
      <dc:publisher>mmh</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=5335d884-1ca5-47ac-bf32-ea7a80fb6dc4</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=5335d884-1ca5-47ac-bf32-ea7a80fb6dc4</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/11/03/Windows-Azure-Verwendung-der-REST-API-von-Windows-Azure-Teil-3-Eine-Queue-mit-asynchronem-Callback-erstellen.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=5335d884-1ca5-47ac-bf32-ea7a80fb6dc4</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=5335d884-1ca5-47ac-bf32-ea7a80fb6dc4</feedburner:origLink></item>
    <item>
      <title>Codefest.at Wochenrückblick: 26.10. - 01.11. 2009</title>
      <description>&lt;p&gt;Der Codefest Wochenrückblick informiert über die Geschehnisse rund um .NET der letzten Woche. Damit möchten wir unseren Lesern einen kleinen Wegweiser bieten, der die Fülle an Information, die wöchentlich auf MSDN und vielen anderen Stellen im Web veröffentlicht wird, vorsortiert präsentiert. Wenn Du etwas interessantes vermisst, bitte einfach in den Comments ergänzen!&lt;/p&gt;  &lt;h1&gt;Softwareentwicklung&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/10/26/wpf-4-vs-2010-and-net-4-0-series.aspx" target="_blank"&gt;&lt;strong&gt;Neues mit der WPF 4.0&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Microsofts Senior Vice President Scott Guthrie gibt einen sehr detaillierten Überblick über die Neuerungen mit der WPF 4.0&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://blogs.msdn.com/bethmassi/archive/2009/10/26/xaml-power-toys-released-for-visual-studio-2010.aspx" target="_blank"&gt;XAML PowerToys für Visual Studio 2010 verfügbar&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;Die XAML PowerToys, ein PlugIn für Visual Studio, welches die WPF Entwicklung vereinfacht, ist nun auch für Visual Studio 2010 und der aktuellen WPF Verfügbar. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/interoperability/archive/2009/10/28/tasktop-soyatec-microsoft-to-foster-eclipse-and-microsoft-platform-interoperability.aspx" target="_blank"&gt;&lt;strong&gt;Microsoft und Eclipse schließen eine Partnerschaft&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Microsoft und Eclipse arbeiten an weiteren Projekten zusammen. Bis zum jetzigen Zeitpunkt war bereits ein Silverlight Plugin für die Eclipse Umgebung vorhanden, nun werden weitere Plugins für Windows Azure entwickelt. Dies soll PHP und Java-Entwicklern die Möglichkeit geben, Windows Azure zu verwenden.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/ssds/archive/2009/10/29/9914882.aspx" target="_blank"&gt;&lt;strong&gt;Windows Azure Plattform Updates&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;Zur PDC wird es einige wichtige Updates für Windows Azure geben. So kommen viele neue Features in die vollständige Version. Ferner werden die Serrvices ab 1. Jänner kostenpflichtig, wobei erst ab 1. Februar abgerechnet wird.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;User Experience und Design&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://adamkinney.wordpress.com/2009/10/27/10-expression-blend-3-tutorials-for-silverlight-available-for-download/" target="_blank"&gt;&lt;strong&gt;10 neue Expression Blend Tutorials verfügbar&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;10 Tutorials, welche den Umgang mit Expression Blend 3 erklären, sind zum Download verfügbar. Hierbei geht es unter anderen um Animationen, Transformationen, Layouting und Design-Time Data.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Lese- und Linktipps&lt;/h1&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://msdn.microsoft.com/de-de/library/bb613549.aspx" target="_blank"&gt;Neue Einstiegstutorials zum Thema WPF&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;In der MSDN Library befinden sich neue Tutorials zum Thema WPF. Diese sollen den Einstieg in die Thematik vereinfachen und bieten einen guten Überblick.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.tom-mue.de/blog/2009/10/visual-studio-2010-and-net-framework-4.html" target="_blank"&gt;Visual Studio 2010 Trainingskit verfügbar&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;Der Trainingskit für Visual Studio 2010 steht zum Download bereit. Die Inhalte des Trainingskits sind unter andern C# 4.0, F#, WCF, WPF, Asp.NET 4, Windows 7, MEF, Entity Framework. Dieser Trainingskit eignet sich sehr gut, um einen Überblick über die Neuerungen zu erhalten.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/bethmassi/archive/2009/10/27/new-channel-9-videos-on-visual-studio-2010.aspx" target="_blank"&gt;&lt;strong&gt;Videos auf Channel9&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;Beth Massi hat in Ihrem Blogpost einige neue und interessante Videos zusammen gefasst. Diese gehen um Visual Studio 2010, SharePoint Listen, …&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sellsbrothers.com/news/showTopic.aspx?ixTopic=2305" target="_blank"&gt;&lt;strong&gt;Oslo auf der PDC&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;Was sich auf der PDC alles rund um Microsoft’s Modellierungssprache “Oslo” alles tun wird, hat Chris Sells in einem Blogpost zusammen gefasst. Es gibt einige sehr interessante Vorträge zu den Thema.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/onlkRqQgQwk/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/10/30/Codefestat-Wochenruckblick-2610-0111-2009.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=d8ad1fff-78f4-49c6-820f-258fcc0826a2</guid>
      <pubDate>Fri, 30 Oct 2009 20:29:31 +0100</pubDate>
      <category>General</category>
      <dc:publisher>mmh</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=d8ad1fff-78f4-49c6-820f-258fcc0826a2</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=d8ad1fff-78f4-49c6-820f-258fcc0826a2</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/10/30/Codefestat-Wochenruckblick-2610-0111-2009.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=d8ad1fff-78f4-49c6-820f-258fcc0826a2</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=d8ad1fff-78f4-49c6-820f-258fcc0826a2</feedburner:origLink></item>
    <item>
      <title>Aktuelle Ausgabe der Visual Studio 1 Probelesen</title>
      <description>&lt;p&gt;Die aktuelle Ausgabe der Visual Studio 1 kann gratis Probegelesen werden. Die Inhalte sind:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;DSLs und UML in VSTS 2010&lt;/li&gt;    &lt;li&gt;XNA Flexibilität&lt;/li&gt;    &lt;li&gt;Windows 7 aus Entwicklersicht&lt;/li&gt;    &lt;li&gt;Windows 7 – die neuen Taskbar-Features&lt;/li&gt;    &lt;li&gt;SharePoint Entwicklung mit MS-Build automatisiert&lt;/li&gt;    &lt;li&gt;Blitzeinstieg in Windows Azure (der Artikel ist von Mir :))&lt;/li&gt;    &lt;li&gt;Silverlight erobert den Desktop&lt;/li&gt;    &lt;li&gt;JavaScript braucht keine Klassen&lt;/li&gt;    &lt;li&gt;Die Clean Code Developer Initiative&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Um ein Exemplar zu erhalten, einfach eine E-Mail an rolfmi – at – microsoft.com senden.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/MsdnAustria/~3/r8EyT8y93WI/post.aspx</link>
      <author> </author>
      <comments>http://www.codefest.at/post/2009/10/30/Aktuelle-Ausgabe-der-Visual-Studio-1-Probelesen.aspx#comment</comments>
      <guid isPermaLink="false">http://www.codefest.at/post.aspx?id=2bb80cc6-6a26-46b2-9ae9-028e0da36842</guid>
      <pubDate>Fri, 30 Oct 2009 19:29:00 +0100</pubDate>
      <category>General</category>
      <dc:publisher>mmh</dc:publisher>
      <pingback:server>http://www.codefest.at/pingback.axd</pingback:server>
      <pingback:target>http://www.codefest.at/post.aspx?id=2bb80cc6-6a26-46b2-9ae9-028e0da36842</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.codefest.at/trackback.axd?id=2bb80cc6-6a26-46b2-9ae9-028e0da36842</trackback:ping>
      <wfw:comment>http://www.codefest.at/post/2009/10/30/Aktuelle-Ausgabe-der-Visual-Studio-1-Probelesen.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.codefest.at/syndication.axd?post=2bb80cc6-6a26-46b2-9ae9-028e0da36842</wfw:commentRss>
    <feedburner:origLink>http://www.codefest.at/post.aspx?id=2bb80cc6-6a26-46b2-9ae9-028e0da36842</feedburner:origLink></item>
  </channel>
</rss>
