<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 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:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Karims KrimsKrams Kiste</title>
    <link>http://www.eljed.de/blog/</link>
    <description>.NET und alles was mich sonst noch so bewegt...</description>
    <language>en-us</language>
    <copyright>Karim El Jed</copyright>
    <lastBuildDate>Tue, 24 Jan 2012 15:30:02 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.8.5223.2</generator>
    <managingEditor>el_jed@dotnet-braunschweig.de</managingEditor>
    <webMaster>el_jed@dotnet-braunschweig.de</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/KarimsKrimskramsKiste" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="karimskrimskramskiste" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=4575fd12-11a6-40f7-beaf-46ce6899936d</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,4575fd12-11a6-40f7-beaf-46ce6899936d.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,4575fd12-11a6-40f7-beaf-46ce6899936d.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4575fd12-11a6-40f7-beaf-46ce6899936d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Am Mittwoch, den 25.01.2012 findet das nächste Treffen der .NET Developer Group Braunschweig
      statt. <a href="http://http://blog.lars-keller.net/" target="_blank">Lars</a> und
      ich halten einen Vortrag über Windows 8 und was es Wichtiges aus Entwicklersicht gibt. 
   </p>
        <p>
      Seit September 2011 gibt es die erste Preview Version von Windows 8 und die Beta steht
      bereits vor der Tür. So langsam wird es Zeit sich mit den Neuerungen und Änderungen
      des neuen Betriebsystems zu beschäftigen. Mit der neuen Metro-Welt für Tablet-PCs
      führt Microsoft auch einen neuen App Store ein. Wie auch schon beim Window Phone 7
      ergibt sich hier für Entwickler ein neuer Markt für die Vertreibung der eigenen Software.
      Lars Keller und Karim El Jed machen einen kleinen Rundflug durch die neue Windows
      8 Welt und zeigen wie man eine Metro-Applikation mit der Windows Runtime entwickeln
      kann. 
   </p>
        <p>
      Weitere Infos unter: <a href="http://www.dotnet-braunschweig.de" target="_blank">http://www.dotnet-braunschweig.de</a></p>
        <img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=4575fd12-11a6-40f7-beaf-46ce6899936d" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/RjN45NCagdM" height="1" width="1" /></body>
      <title>Windows 8 für Entwickler</title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,4575fd12-11a6-40f7-beaf-46ce6899936d.aspx</guid>
      <link>http://www.eljed.de/blog/Windows8F%c3%bcrEntwickler.aspx</link>
      <pubDate>Tue, 24 Jan 2012 15:30:02 GMT</pubDate>
      <description>&lt;p&gt;
   Am Mittwoch, den 25.01.2012 findet das nächste Treffen der .NET Developer Group Braunschweig
   statt. &lt;a href="http://http://blog.lars-keller.net/" target="_blank"&gt;Lars&lt;/a&gt; und
   ich halten einen Vortrag über Windows 8 und was es Wichtiges aus Entwicklersicht gibt. 
&lt;/p&gt;
&lt;p&gt;
   Seit September 2011 gibt es die erste Preview Version von Windows 8 und die Beta steht
   bereits vor der Tür. So langsam wird es Zeit sich mit den Neuerungen und Änderungen
   des neuen Betriebsystems zu beschäftigen. Mit der neuen Metro-Welt für Tablet-PCs
   führt Microsoft auch einen neuen App Store ein. Wie auch schon beim Window Phone 7
   ergibt sich hier für Entwickler ein neuer Markt für die Vertreibung der eigenen Software.
   Lars Keller und Karim El Jed machen einen kleinen Rundflug durch die neue Windows
   8 Welt und zeigen wie man eine Metro-Applikation mit der Windows Runtime entwickeln
   kann. 
&lt;/p&gt;
&lt;p&gt;
   Weitere Infos unter: &lt;a href="http://www.dotnet-braunschweig.de" target="_blank"&gt;http://www.dotnet-braunschweig.de&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=4575fd12-11a6-40f7-beaf-46ce6899936d" /&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,4575fd12-11a6-40f7-beaf-46ce6899936d.aspx</comments>
      <category>.NET Developer Group Braunschweig</category>
    </item>
    <item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=f0930dce-02a7-4489-a00d-9a7bcea7b355</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,f0930dce-02a7-4489-a00d-9a7bcea7b355.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,f0930dce-02a7-4489-a00d-9a7bcea7b355.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f0930dce-02a7-4489-a00d-9a7bcea7b355</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Im September 2011 waren <a href="http://blog.lars-keller.net/" target="_blank">Lars
      Keller</a> und ich auf der Microsoft <a href="http://www.buildwindows.com/" taregt="_blank">BUILD</a> Konferenz
      in Anaheim/Kalifornien. Auf der Konferenz wurde die erste Preview von Windows 8 gezeigt
      und jeder Teilnehmer erhielt ein Tablet (ebenfalls reine Preview-Hardware) von Samsung
      mit installiertem Windows 8.
   </p>
        <p>
      Was es Neues und Wissenswertes zu Windows 8 gibt haben wir in einer sechsteiligen
      Videoserie aufgezeichnet, die sich nicht nur an Tekkies richtet.
   </p>
        <p>
      Die Videos findet man unter <a href="http://www.windows-8-preview.de/" target="_blank">http://www.windows-8-preview.de/</a>.
   </p>
        <p>
      Viel Spaß beim Anschauen!
   </p>
        <img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=f0930dce-02a7-4489-a00d-9a7bcea7b355" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/B1UTQwuPD6E" height="1" width="1" /></body>
      <title>Windows 8 Preview Videoreihe</title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,f0930dce-02a7-4489-a00d-9a7bcea7b355.aspx</guid>
      <link>http://www.eljed.de/blog/Windows8PreviewVideoreihe.aspx</link>
      <pubDate>Wed, 11 Jan 2012 09:01:11 GMT</pubDate>
      <description>&lt;p&gt;
   Im September 2011 waren &lt;a href="http://blog.lars-keller.net/" target="_blank"&gt;Lars
   Keller&lt;/a&gt; und ich auf der Microsoft &lt;a href="http://www.buildwindows.com/" taregt="_blank"&gt;BUILD&lt;/a&gt; Konferenz
   in Anaheim/Kalifornien. Auf der Konferenz wurde die erste Preview von Windows 8 gezeigt
   und jeder Teilnehmer erhielt ein Tablet (ebenfalls reine Preview-Hardware) von Samsung
   mit installiertem Windows 8.
&lt;/p&gt;
&lt;p&gt;
   Was es Neues und Wissenswertes zu Windows 8 gibt haben wir in einer sechsteiligen
   Videoserie aufgezeichnet, die sich nicht nur an Tekkies richtet.
&lt;/p&gt;
&lt;p&gt;
   Die Videos findet man unter &lt;a href="http://www.windows-8-preview.de/" target="_blank"&gt;http://www.windows-8-preview.de/&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
   Viel Spaß beim Anschauen!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=f0930dce-02a7-4489-a00d-9a7bcea7b355" /&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,f0930dce-02a7-4489-a00d-9a7bcea7b355.aspx</comments>
      <category>Allgemein</category>
    </item>
    <item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=5601c87a-28b4-4d46-bf31-fcf87244904c</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,5601c87a-28b4-4d46-bf31-fcf87244904c.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,5601c87a-28b4-4d46-bf31-fcf87244904c.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5601c87a-28b4-4d46-bf31-fcf87244904c</wfw:commentRss>
      <title>Advanced UI-Testing für WPF </title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,5601c87a-28b4-4d46-bf31-fcf87244904c.aspx</guid>
      <link>http://www.eljed.de/blog/AdvancedUITestingF%c3%bcrWPF.aspx</link>
      <pubDate>Thu, 01 Dec 2011 16:22:53 GMT</pubDate>
      <description>&lt;p&gt;
   Am Donnerstag, den 08.12.2011, findet das nächste Treffen der .NET Developer Group
   Braunschweig statt. Zu Gast ist Thomas Schissler mit einem Vortrag über das automatisierte
   Testen von WPF Oberflächen. 
&lt;/p&gt;
&lt;p&gt;
   &lt;b&gt;Advanced UI-Testing für WPF&lt;/b&gt;
&lt;/p&gt;
Haben sie schon eine der schönen Demos für Coded UI Tests in Visual Studio 2010 gesehen?
Haben sie vielleicht sogar schon mal an ihrer eigenen Applikation versucht, diese
Testmethode anzuwenden und sind damit gescheitert? Dann sollten sie unbedingt diese
Session besuchen. Der von Microsoft vorgesehene Record &amp; Play Ansatz sieht in Demos
zwar schön aus, in der Praxis gibt es jedoch eine Reihe von Problemen. In dieser Session
werden diese Probleme erläutert und es werden Lösungen und Alternativen speziell für
WPF-Applikationen aufgezeigt. UI-Testing kann funktionieren!&lt;br&gt;
&lt;br&gt;
Thomas entwickelt seit 1996 Software, seit dem Jahr 2001 ausschließlich mit .NET.
Er arbeitet als Coach und Berater in der Nähe von Ulm. Er ist MVP für Visual Studio
ALM und Professional Scrum Trainer. Seine Schwerpunkte sind Team Foundation Server,
Entwicklungsprozesse, insbesondere SCRUM und Softwarearchitektur. Als Sprecher ist
er auf verschiedenen Konferenzen und bei Usergroups unterwegs. Selbst leitet er die
.Net Developer Group Ulm (&lt;a href="http://www.dotnet-ulm.de/"&gt;www.dotnet-ulm.de&lt;/a&gt;)
und die EMEA-Sektion der Visual Studio ALM User Group (&lt;a href="http://www.vsalmug.com/"&gt;www.vsalmug.com&lt;/a&gt;).&lt;br&gt;
&gt; 
&lt;br&gt;
&lt;p&gt;
   Weitere Infos unter
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.dotnet-braunschweig.de"&gt;http://www.dotnet-braunschweig.de&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=5601c87a-28b4-4d46-bf31-fcf87244904c" /&gt;&lt;img src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/HkAcssbWlX0" height="1" width="1"/&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,5601c87a-28b4-4d46-bf31-fcf87244904c.aspx</comments>
      <category>.NET Developer Group Braunschweig;Community</category>
    </item>
    <item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=ec50898d-42e8-4084-8b05-fb6b9f0e523d</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,ec50898d-42e8-4084-8b05-fb6b9f0e523d.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,ec50898d-42e8-4084-8b05-fb6b9f0e523d.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ec50898d-42e8-4084-8b05-fb6b9f0e523d</wfw:commentRss>
      <title>Office Business Applications Day in München</title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,ec50898d-42e8-4084-8b05-fb6b9f0e523d.aspx</guid>
      <link>http://www.eljed.de/blog/OfficeBusinessApplicationsDayInM%c3%bcnchen.aspx</link>
      <pubDate>Thu, 20 Oct 2011 06:58:21 GMT</pubDate>
      <description>Am 04.11.11 findet zum dritten Mal die Community Veranstaltung Office Business Applikation (OBA) Day in Unterschleißheim bei Microsoft Deutschland statt. Dieser Tag widmet sich der Entwicklung rund um MS Office. Themen sind VSTO, SharePoint und Office 365. Des Weiteren bleibt auch viel Zeit für das Netzwerken und den Erfahrungsaustausch. Als Sprecher sind dabei: Thorsten Hans, Tom Wendel, Helmut Obertanner, Andreas Aschauer, Mario Meir-Huber und Lars Keller.

&lt;p&gt;
   Weitere Informationen &amp; die Anmeldung findet man unter &lt;a href="http://www.oba-day.de" target="_blank"&gt;http://www.oba-day.de&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=ec50898d-42e8-4084-8b05-fb6b9f0e523d" /&gt;&lt;img src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/hSn8Hy564fk" height="1" width="1"/&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,ec50898d-42e8-4084-8b05-fb6b9f0e523d.aspx</comments>
      <category>Community</category>
    </item>
    <item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=a26c0336-b817-42fe-b0e2-154319a70cdf</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,a26c0336-b817-42fe-b0e2-154319a70cdf.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,a26c0336-b817-42fe-b0e2-154319a70cdf.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a26c0336-b817-42fe-b0e2-154319a70cdf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Mein Gott, wie die Zeit rast. Vor 5 Jahren haben Lars Keller und ich die .NET Developer
      Group Braunschweig gegründet. Bei unserem ersten Treffen waren wir 7 Leute und trafen
      uns in einer kleinen Szenekneipe in Uni-Nähe. Auf unserer Homepage habe ich bereits
      einen kurzen Text zu unserer Gründung geschrieben. Wen es interessiert kann ihn <a href="http://www.dotnet-braunschweig.de/newsdetails.aspx?newsid=60" target="_blank">hier</a> lesen.
   </p>
        <p>
       
   </p>
        <p>
      Unsere Geburtstagsfeier findet am 24.10.2011 ab 19:00 Uhr im Restaurant Zucker im
      Tagungsraum statt. Zu Gast haben wir Neno Loje, Team Foundation Server MVP. Wie sein
      Abstract erahnen lässt, wird es ein sehr interaktiver Vortrag:
   </p>
        <p>
          <em>“Neno war früher mal Softwareentwickler und besucht mittlerweile viel zu selten
      User Groups. Umso mehr freut er sich, dass es mit der Terminfindung geklappt hat (i!)
      und er nun bei der UG Braunschweig über sein Steckenpferd, den Team Foundation Server
      (TFS) reden kann. Denn er war schon immer ein Freund pragmatischer Lösungen und hat
      sich schon früh in den TFS "verguckt". Aber alles weitere dann am Abend selbst. Ach
      ja, und er hat keine genaue Agenda dabei, das heißt Fragen und Wünsche dürfen gerne
      mitgebracht werden.”</em>
        </p>
        <p>
       
   </p>
        <p>
      Im Anschluss an den Vortrag veranstalten wir noch eine Verlosung mit tollen Preisen.
      Dafür möchte ich mich an dieser Stelle noch einmal recht herzlich bei unseren Sponsoren 
      (<a href="http://www.microsoft.com/germany/community/programme/clip.mspx">Microsoft
      CLIP</a>, <a href="http://us.grapecity.com/">Grape City</a>, <a href="http://www.redgate.com/">redgate</a>, <a href="http://www.telerik.com/">telerik</a>, <a href="http://www.jetbrains.com/">JetBRAINS</a>, <a href="http://www.infragistics.com/">Infragistics</a>, <a href="http://www.typemock.com/">Typemock</a> und <a href="http://www.devexpress.com" target="_blank">DevExpress</a>)
      bedanken.
   </p>
        <p>
       
   </p>
        <p>
      Die Teilnahme ist ist wie immer kostenlos. Für dieses Event bitte ich aber um eine
      kurze formlose Anmeldung an mich (karim at eljed dot de), damit wir das Event besser
      planen können. 
   </p>
        <img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=a26c0336-b817-42fe-b0e2-154319a70cdf" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/GTb5DFUeSWo" height="1" width="1" /></body>
      <title>5 Jahre DNUG Braunschweig: Team Foundation Server mit Neno Loje</title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,a26c0336-b817-42fe-b0e2-154319a70cdf.aspx</guid>
      <link>http://www.eljed.de/blog/5JahreDNUGBraunschweigTeamFoundationServerMitNenoLoje.aspx</link>
      <pubDate>Mon, 17 Oct 2011 08:38:29 GMT</pubDate>
      <description>&lt;p&gt;
   Mein Gott, wie die Zeit rast. Vor 5 Jahren haben Lars Keller und ich die .NET Developer
   Group Braunschweig gegründet. Bei unserem ersten Treffen waren wir 7 Leute und trafen
   uns in einer kleinen Szenekneipe in Uni-Nähe. Auf unserer Homepage habe ich bereits
   einen kurzen Text zu unserer Gründung geschrieben. Wen es interessiert kann ihn &lt;a href="http://www.dotnet-braunschweig.de/newsdetails.aspx?newsid=60" target="_blank"&gt;hier&lt;/a&gt; lesen.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   Unsere Geburtstagsfeier findet am 24.10.2011 ab 19:00 Uhr im Restaurant Zucker im
   Tagungsraum statt. Zu Gast haben wir Neno Loje, Team Foundation Server MVP. Wie sein
   Abstract erahnen lässt, wird es ein sehr interaktiver Vortrag:
&lt;/p&gt;
&lt;p&gt;
   &lt;em&gt;“Neno war früher mal Softwareentwickler und besucht mittlerweile viel zu selten
   User Groups. Umso mehr freut er sich, dass es mit der Terminfindung geklappt hat (i!)
   und er nun bei der UG Braunschweig über sein Steckenpferd, den Team Foundation Server
   (TFS) reden kann. Denn er war schon immer ein Freund pragmatischer Lösungen und hat
   sich schon früh in den TFS "verguckt". Aber alles weitere dann am Abend selbst. Ach
   ja, und er hat keine genaue Agenda dabei, das heißt Fragen und Wünsche dürfen gerne
   mitgebracht werden.”&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   Im Anschluss an den Vortrag veranstalten wir noch eine Verlosung mit tollen Preisen.
   Dafür möchte ich mich an dieser Stelle noch einmal recht herzlich bei unseren Sponsoren&amp;nbsp;
   (&lt;a href="http://www.microsoft.com/germany/community/programme/clip.mspx"&gt;Microsoft
   CLIP&lt;/a&gt;, &lt;a href="http://us.grapecity.com/"&gt;Grape City&lt;/a&gt;, &lt;a href="http://www.redgate.com/"&gt;redgate&lt;/a&gt;, &lt;a href="http://www.telerik.com/"&gt;telerik&lt;/a&gt;, &lt;a href="http://www.jetbrains.com/"&gt;JetBRAINS&lt;/a&gt;, &lt;a href="http://www.infragistics.com/"&gt;Infragistics&lt;/a&gt;, &lt;a href="http://www.typemock.com/"&gt;Typemock&lt;/a&gt; und &lt;a href="http://www.devexpress.com" target="_blank"&gt;DevExpress&lt;/a&gt;)
   bedanken.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   Die Teilnahme ist ist wie immer kostenlos. Für dieses Event bitte ich aber um eine
   kurze formlose Anmeldung an mich (karim at eljed dot de), damit wir das Event besser
   planen können. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=a26c0336-b817-42fe-b0e2-154319a70cdf" /&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,a26c0336-b817-42fe-b0e2-154319a70cdf.aspx</comments>
      <category>.NET Developer Group Braunschweig;Community</category>
    </item>
    <item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=3777de37-76a0-4740-b2ef-9d973d07cdc0</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,3777de37-76a0-4740-b2ef-9d973d07cdc0.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,3777de37-76a0-4740-b2ef-9d973d07cdc0.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3777de37-76a0-4740-b2ef-9d973d07cdc0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Am 29.09.2011 findet ab 19 Uhr das nächste Treffen der .NET Developer Group Braunschweig
      statt.
   </p>
        <p>
      Ich freue mich sehr <a href="http://www.sturmnet.org/blog/" target="_blank">Oliver
      Sturm</a>, bei uns in Braunschweig begrüßen zu dürfen. Jeder der ihn schon einmal
      sprechen gehört hat, weiß warum…
   </p>
        <p>
       
   </p>
        <p>
          <strong>Pragmatische Architektur</strong>
        </p>
        <p>
      Anwendungsarchitekturen zu planen ist eine komplexe Aufgabe, die große Anforderungen
      an das Verständnis für die Technologie stellt. Oliver zeigt und erklärt die wichtigsten
      Punkte des Vorgangs, ein Architekturkonzept für eine mittelgroße verteilte .NET-Anwendung
      zu erstellen. Vom Datenzugriff über die Schichtentrennung bis zur UI muss jeder Teilbereich
      berücksichtigt werden, und dieser Talk fasst die Essenz der technischen Überlegungen
      und einer gesunden pragmatischen Philosophie zusammen. Oliver lässt Sie an seinen
      reichhaltigen Erfahrungen aus Beratung und Projektgeschäft teilhaben - Architekten,
      Programmierer und Inhaber anderer Berufsbezeichnungen sind gleichermaßen willkommen!
   </p>
        <p>
       
   </p>
        <p>
      Weitere Infos unter
   </p>
        <p>
          <a href="http://www.dotnet-braunschweig.de">http://www.dotnet-braunschweig.de</a>
        </p>
        <p>
          <a href="http://www.sturmnet.org/blog/">http://www.sturmnet.org/blog/</a>
        </p>
        <p>
          <br />
        </p>
        <img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=3777de37-76a0-4740-b2ef-9d973d07cdc0" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/OEbZvtW4FPE" height="1" width="1" /></body>
      <title>Pragmatische Architektur</title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,3777de37-76a0-4740-b2ef-9d973d07cdc0.aspx</guid>
      <link>http://www.eljed.de/blog/PragmatischeArchitektur.aspx</link>
      <pubDate>Mon, 26 Sep 2011 08:54:03 GMT</pubDate>
      <description>&lt;p&gt;
   Am 29.09.2011 findet ab 19 Uhr das nächste Treffen der .NET Developer Group Braunschweig
   statt.
&lt;/p&gt;
&lt;p&gt;
   Ich freue mich sehr &lt;a href="http://www.sturmnet.org/blog/" target="_blank"&gt;Oliver
   Sturm&lt;/a&gt;, bei uns in Braunschweig begrüßen zu dürfen. Jeder der ihn schon einmal
   sprechen gehört hat, weiß warum…
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &lt;strong&gt;Pragmatische Architektur&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
   Anwendungsarchitekturen zu planen ist eine komplexe Aufgabe, die große Anforderungen
   an das Verständnis für die Technologie stellt. Oliver zeigt und erklärt die wichtigsten
   Punkte des Vorgangs, ein Architekturkonzept für eine mittelgroße verteilte .NET-Anwendung
   zu erstellen. Vom Datenzugriff über die Schichtentrennung bis zur UI muss jeder Teilbereich
   berücksichtigt werden, und dieser Talk fasst die Essenz der technischen Überlegungen
   und einer gesunden pragmatischen Philosophie zusammen. Oliver lässt Sie an seinen
   reichhaltigen Erfahrungen aus Beratung und Projektgeschäft teilhaben - Architekten,
   Programmierer und Inhaber anderer Berufsbezeichnungen sind gleichermaßen willkommen!
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   Weitere Infos unter
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.dotnet-braunschweig.de"&gt;http://www.dotnet-braunschweig.de&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.sturmnet.org/blog/"&gt;http://www.sturmnet.org/blog/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=3777de37-76a0-4740-b2ef-9d973d07cdc0" /&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,3777de37-76a0-4740-b2ef-9d973d07cdc0.aspx</comments>
      <category>.NET Developer Group Braunschweig;Community</category>
    </item>
    <item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=eb9b3cf7-31ec-4af1-85fa-a3a5ec6af1a4</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,eb9b3cf7-31ec-4af1-85fa-a3a5ec6af1a4.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,eb9b3cf7-31ec-4af1-85fa-a3a5ec6af1a4.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=eb9b3cf7-31ec-4af1-85fa-a3a5ec6af1a4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Auf meiner Rückfahrt vom <a href="http://karlsruhe.netopenspace.de/2011/">.NET Open
      Space Süd</a> hat <a href="http://therightstuff.de/">Alexander Groß</a> in einer ad-hoc
      Session <a href="http://blog.lars-keller.net/">Lars Keller</a> und mir Ruby etwas
      näher gebracht. Am Ende der Session sagte Alex, dass es in Ruby ein Gem (eine Art
      Package oder Modul) gibt, mit dem man dynamisch auf XML zugreifen kann. 
   </p>
        <p>
      Da es seit C# 4.0 Unterstützung für Dynamische Sprachen gibt, habe ich mich gefragt,
      ob das dann nicht auch mit C# geht. Um es kurz zu machen: Es geht! Wie das Ganze funktioniert
      zeige ich Schritt für Schritt.<br /></p>
        <p>
          <strong>Ziel<br /></strong>Erst mal möchte ich noch ein bisschen genauer spezifizieren was ich eigentlich
      umsetzen wollte. Stellen wir uns folgende XML-Datei vor:
   </p>
        <p>
          <span style="color: blue">&lt;</span>
          <span style="color: #a31515">Books</span>
          <span style="color: blue">&gt;</span>
          <br />
          <span style="color: blue">  &lt;</span>
          <span style="color: #a31515">Book</span>
          <span style="color: blue">&gt;</span>
          <br />
          <span style="color: blue">    &lt;</span>
          <span style="color: #a31515">Title</span>
          <span style="color: blue">&gt;</span>Ruby
      ist dynamisch<span style="color: blue">&lt;/</span><span style="color: #a31515">Title</span><span style="color: blue">&gt;</span><br /><span style="color: blue">  &lt;/</span><span style="color: #a31515">Book</span><span style="color: blue">&gt;</span><br /><span style="color: blue">  &lt;</span><span style="color: #a31515">Book</span><span style="color: blue">&gt;</span><br /><span style="color: blue">    &lt;</span><span style="color: #a31515">Title</span><span style="color: blue">&gt;</span>C#
      auch<span style="color: blue">&lt;/</span><span style="color: #a31515">Title</span><span style="color: blue">&gt;</span><br /><span style="color: blue">  &lt;/</span><span style="color: #a31515">Book</span><span style="color: blue">&gt;</span><br /><span style="color: blue">&lt;/</span><span style="color: #a31515">Books</span><span style="color: blue">&gt;</span></p>
        <p>
          <br />
      Wäre es nicht cool, wenn wir im Code (unter Voraussetzung, dass wir besagte XML-Struktur
      kennen) einfach schreiben könnten:<br /></p>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
          <span style="color: blue">dynamic</span> bookstore
   = <span style="color: blue">new</span> <span style="color: #2b91af">DynamicXDocument</span>(<span style="color: #a31515">@"c:\bookstore.xml"</span>);  </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
          <span style="color: blue">
            <br />
   foreach</span>(<span style="color: blue">var</span> book <span style="color: blue">in</span> bookstore.books)
   { <span style="color: #2b91af"> Console</span>.WriteLine(<span style="color: #a31515">"Titel:
   "</span> + book.Title); }</pre>
        <p>
          <br />
      “books” und “book” sollen dabei ebenfalls dynamisch sein. Es gibt also nirgendwo eine
      Klasse „Book“ mit der Eigenschaft „Title“.<br /></p>
        <p>
      Wie bekommen wir das hin? Fest steht schon einmal, dass bookstore durch das Keyword
      dynamic definiert werden muss, da wir sonst nicht auf Eigenschaften zugreifen können,
      die zur Compile-Zeit noch nicht vorhanden sind. Aber wie ist die noch nicht existierende
      Klasse DynamicXDocument zu implementieren?
   </p>
        <p>
      Bei meinen Recherchen bin ich auf den Artikel [1] von Mario Meir-Huber und das dynamische
      Objekt „ExpandoObject“ gestoßen. Einem ExpandoObject kann man dynamisch Properties
      hinzufügen, die  intern in einem Dictionary gespeichert werden. Das geht schon
      in die richtige Richtung, allerdings sollen unsere Eigenschaften nicht aus einem Dictionary
      kommen, sondern aus einer XML-Datei.
   </p>
        <p>
      Um selber eine dynamische Klasse zu erstellen, muss man das Interface IDynamicMetaObjectProvider
      implementieren. Dieses Interface hat allerdings nur eine Methode, die genau einen
      Parameter hat:
   </p>
        <p>
          <br />
          <span style="color: #2b91af">DynamicMetaObject</span> GetMetaObject(<span style="color: #2b91af">Expression</span> parameter)<br /></p>
        <p>
      Wer sich nicht mit ExpressionTrees rumschlagen möchte, kann glücklicherweise auf die
      Klasse DynamicObject zurückgreifen, die die Auswertung des ExpressionTrees für einen
      übernimmt und komfortablere/spezialisierte Methoden zur Überschreibung zu Verfügung
      stellt.
   </p>
        <p>
          <br />
      Die Erkenntnis, die wir bis jetzt haben ist, wenn wir ein dynamisches Objekt erzeugen
      wollen, können wir eine Klasse von DynamicObject ableiten und müssen nur die entsprechenden
      Methoden zur Erkennung der Aufrufe auf das Objekt überschreiben.
   </p>
        <p>
          <br />
      Okay, schauen wir mal was sich daraus machen lässt. Schauen wir uns noch mal den gewünschten
      Code an:
   </p>
        <p>
          <span style="color: blue">dynamic</span> bookstore = <span style="color: blue">new</span><span style="color: #2b91af">DynamicXDocument</span>(<span style="color: #a31515">@"c:\bookstore.xml"</span>); 
      <br /><br /><span style="color: blue">foreach</span>(<span style="color: blue">var</span> book <span style="color: blue">in</span> bookstore.books)<br />
      {<br /><span style="color: #2b91af">    Console</span>.WriteLine(<span style="color: #a31515">"Titel:
      "</span> + book.Title);<br />
      }
   </p>
        <p>
      Wir benötigen also als erstes eine Klasse DynamicXDocument, die von DataObject ableitet
      und einen Konstruktor hat, der einen Dateipfad übergeben bekommt. Da wir als erstes
      auf bookstore.books in einer foreach-Schleife zugreifen, muss unsere Klasse auch noch
      das Interface IEnumerable implementieren.
   </p>
        <p>
          <span style="color: blue">public</span> <span style="color: blue">class</span> <span style="color: #2b91af">DynamicXDocument</span> : <span style="color: #2b91af">DynamicObject, <span style="color: #2b91af">IEnumerable</span><br /></span>{<br /><span style="color: blue">    private</span> <span style="color: #2b91af">XElement</span> _node;<br />
           
      <br />
          <span style="color: blue">public</span> DynamicXDocument(<span style="color: blue">string</span> filePath)<br />
          {<br />
              _node = (<span style="color: #2b91af">XElement</span>)<span style="color: #2b91af">XDocument</span>.Load(<span style="color: #2b91af">File</span>.OpenRead(filePath)).FirstNode;<br />
          }
   </p>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
          <span style="color: blue"> private</span> DynamicXDocument(<span style="color: #2b91af">XElement</span> node)   
   <br />
   {     
   <br />
   _node = node;   
   <br />
   }</pre>
        <p>
          <span style="color: blue">public</span> <span style="color: #2b91af">IEnumerator</span> GetEnumerator()<br />
          {<br />
              <span style="color: blue">if</span> (_node
      == <span style="color: blue">null</span>)<br />
              {<br />
                  <span style="color: blue">yield</span> <span style="color: blue">break</span>;<br />
              }<br />
       
   </p>
        <p>
              <span style="color: blue">foreach</span> (<span style="color: blue">var</span> element <span style="color: blue">in</span> _node.Elements())<br />
              {<br />
                  <span style="color: blue">dynamic</span> dynElement
      = <span style="color: blue">new</span> <span style="color: #2b91af">DynamicXDocument</span>(element);<br />
                  <span style="color: blue">yield</span> <span style="color: blue">return</span> dynElement;<br />
              }<br />
          }<br />
      }
   </p>
        <p>
      Was ich im Enumerator mache, ist nix weiter, als alle Unterelemente von “Books” als
      neue Instanzen  meiner dynamischen Klasse zurückzugeben, die als Hauptknoten
      das XElement “Book” haben. Bleibt nur noch der Zugriff auf “book.Title”. Um auf diese
      “virtuelle” Eigenschaft zuzugreifen können wir folgende Methode von DynamicObject
      überschreiben:
   </p>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">TryGetMember(<span style="color: #2b91af">GetMemberBinder</span> binder, <span style="color: blue">out</span> <span style="color: blue">object</span> result) </pre>
        <p>
       
   </p>
        <p>
      Im Parameter “binder” werden Informationen übergeben, was genau aufgerufen wurde.
      Mit binder.Name kann man z.B. auf den Namen des aufgerufenen Properties (in unserem
      Fall “Title”) zugreifen. Eine simple Implementierung sieht wie folgt aus:
   </p>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
          <span style="color: blue">
            <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
              <span style="color: blue">public</span> <span style="color: blue">override</span> <span style="color: blue">bool</span> TryGetMember(<span style="color: #2b91af">GetMemberBinder</span> binder, <span style="color: blue">out</span> <span style="color: blue">object</span> result)
   {<br /></pre>
          </span>
          <span style="color: blue">var</span> node = <span style="color: blue">from</span> n <span style="color: blue">in</span> _node.Elements(binder.Name) <span style="color: blue">select</span> n;     </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
        </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
          <span style="color: blue">if</span> (node.Count()
   == 0)     </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">    {      </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">        result = <span style="color: blue">null</span>;         </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
          <span style="color: blue">return</span> <span style="color: blue">false</span>;     </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">    }     </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px"> </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
          <span style="color: blue">
            <span style="color: #2b91af">XElement</span> </span>element
   = node.First();     </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">    result = element.Value;     </pre>
        <pre style="font-family: consolas; background: white; color: black; font-size: 13px">
          <span style="color: blue">return</span> <span style="color: blue">true</span>;</pre>
        <p>
      }
   </p>
        <p>
          <br />
      So einfach ist das. Im angehängten Beispielprojekt habe ich noch Rekursion und Attribute
      eingebaut. Später werde ich vielleicht noch das Hinzufügen, Ändern, Löschen und Speichern
      der Daten implementieren. Etwas Fehlerbehandlung könnte auch nicht schaden ;-)
   </p>
        <p>
          <a href="http://www.eljed.de/stuff/DynamicXElement.zip">DOWNLOAD</a>
        </p>
        <p>
          <br />
          <strong>Fazit<br /></strong>Bisher hatte ich gedacht, dass das neue Schlüsselwort „dynamic“ nur dazu
      zu gebrauchen ist einfacher auf COM-Objekte zuzugreifen. Da habe ich mich gewaltig
      geirrt. Im Namespace System.Dynamics steckt noch wesentlich mehr, was es lohnt zu
      erkunden. Wie man an dem XML-Beispiel sehen kann, kann man mit nur ein paar Zeilen
      Code schon nützliche Sachen bauen.
   </p>
        <p>
      Es lohnt sich also immer mal wieder links und rechts zu schauen, auch wenn man meint,
      dass bestimmte Technologien, Tools, usw. für die momentane Arbeit uninteressant sind.
   </p>
        <p>
      Schönen Dank an dieser Stelle noch einmal an die Veranstalter des .NET Open Space
      und an Alexander Groß für die spontane Bahn-Session.
   </p>
        <p>
       
   </p>
        <p>
          <strong>Referenzen<br /></strong>[1] Dynamic in C# 4.0, Teil I: Einführung<br /><a href="http://www.codefest.at/post/2009/11/04/Dynamic-in-C-40-Teil-I-Einfuhrung.aspx">http://www.codefest.at/post/2009/11/04/Dynamic-in-C-40-Teil-I-Einfuhrung.aspx</a></p>
        <p>
          <br />
      [2] Dynamic in C# 4.0: Introducing the ExpandoObject<br /><a href="http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx">http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx</a><br /></p>
        <p>
      [3] Creating and using Dynamic Objects<br /><a href="http://msdn.microsoft.com/en-us/library/ee461504.aspx">http://msdn.microsoft.com/en-us/library/ee461504.aspx</a></p>
        <p>
       
   </p>
        <p>
          <strong>UPDATE: </strong>Ich bin gerade auf einen Artikel gestoßen, der so ziemlich
      genau das Gleiche macht und das Ganze noch um den Zugriff auf CSV-Dateien erweitert.<br /><a href="http://blogs.msdn.com/b/mcsuksoldev/archive/2010/02/04/dynamic-xml-reader-with-c-and-net-4-0.aspx">http://blogs.msdn.com/b/mcsuksoldev/archive/2010/02/04/dynamic-xml-reader-with-c-and-net-4-0.aspx</a></p>
        <img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=eb9b3cf7-31ec-4af1-85fa-a3a5ec6af1a4" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/h-xRX4H3pZU" height="1" width="1" /></body>
      <title>DynamicXDocument&amp;ndash;Zugriff auf XML-Dateien mit Dynamic und C# 4.0</title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,eb9b3cf7-31ec-4af1-85fa-a3a5ec6af1a4.aspx</guid>
      <link>http://www.eljed.de/blog/DynamicXDocumentndashZugriffAufXMLDateienMitDynamicUndC40.aspx</link>
      <pubDate>Mon, 18 Jul 2011 07:54:35 GMT</pubDate>
      <description>&lt;p&gt;
   Auf meiner Rückfahrt vom &lt;a href="http://karlsruhe.netopenspace.de/2011/"&gt;.NET Open
   Space Süd&lt;/a&gt; hat &lt;a href="http://therightstuff.de/"&gt;Alexander Groß&lt;/a&gt; in einer ad-hoc
   Session &lt;a href="http://blog.lars-keller.net/"&gt;Lars Keller&lt;/a&gt; und mir Ruby etwas
   näher gebracht. Am Ende der Session sagte Alex, dass es in Ruby ein Gem (eine Art
   Package oder Modul) gibt, mit dem man dynamisch auf XML zugreifen kann. 
&lt;/p&gt;
&lt;p&gt;
   Da es seit C# 4.0 Unterstützung für Dynamische Sprachen gibt, habe ich mich gefragt,
   ob das dann nicht auch mit C# geht. Um es kurz zu machen: Es geht! Wie das Ganze funktioniert
   zeige ich Schritt für Schritt.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;strong&gt;Ziel&lt;br&gt;
   &lt;/strong&gt;Erst mal möchte ich noch ein bisschen genauer spezifizieren was ich eigentlich
   umsetzen wollte. Stellen wir uns folgende XML-Datei vor:
&lt;/p&gt;
&lt;p&gt;
   &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Books&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
   &lt;br&gt;
   &lt;span style="color: blue"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Book&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
   &lt;br&gt;
   &lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Title&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Ruby
   ist dynamisch&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Title&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
   &lt;br&gt;
   &lt;span style="color: blue"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Book&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
   &lt;br&gt;
   &lt;span style="color: blue"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Book&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
   &lt;br&gt;
   &lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Title&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;C#
   auch&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Title&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
   &lt;br&gt;
   &lt;span style="color: blue"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Book&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
   &lt;br&gt;
   &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Books&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;br&gt;
   Wäre es nicht cool, wenn wir im Code (unter Voraussetzung, dass wir besagte XML-Struktur
   kennen) einfach schreiben könnten:&lt;br&gt;
&lt;/p&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;&lt;span style="color: blue"&gt;dynamic&lt;/span&gt; bookstore
= &lt;span style="color: blue"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af"&gt;DynamicXDocument&lt;/span&gt;(&lt;span style="color: #a31515"&gt;@"c:\bookstore.xml"&lt;/span&gt;);&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;&lt;span style="color: blue"&gt;
&lt;br&gt;
foreach&lt;/span&gt;(&lt;span style="color: blue"&gt;var&lt;/span&gt; book &lt;span style="color: blue"&gt;in&lt;/span&gt; bookstore.books)
{ &lt;span style="color: #2b91af"&gt; Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Titel:
"&lt;/span&gt; + book.Title); }&lt;/pre&gt;
&lt;p&gt;
   &lt;br&gt;
   “books” und “book” sollen dabei ebenfalls dynamisch sein. Es gibt also nirgendwo eine
   Klasse „Book“ mit der Eigenschaft „Title“.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
   Wie bekommen wir das hin? Fest steht schon einmal, dass bookstore durch das Keyword
   dynamic definiert werden muss, da wir sonst nicht auf Eigenschaften zugreifen können,
   die zur Compile-Zeit noch nicht vorhanden sind. Aber wie ist die noch nicht existierende
   Klasse DynamicXDocument zu implementieren?
&lt;/p&gt;
&lt;p&gt;
   Bei meinen Recherchen bin ich auf den Artikel [1] von Mario Meir-Huber und das dynamische
   Objekt „ExpandoObject“ gestoßen. Einem ExpandoObject kann man dynamisch Properties
   hinzufügen, die&amp;nbsp; intern in einem Dictionary gespeichert werden. Das geht schon
   in die richtige Richtung, allerdings sollen unsere Eigenschaften nicht aus einem Dictionary
   kommen, sondern aus einer XML-Datei.
&lt;/p&gt;
&lt;p&gt;
   Um selber eine dynamische Klasse zu erstellen, muss man das Interface IDynamicMetaObjectProvider
   implementieren. Dieses Interface hat allerdings nur eine Methode, die genau einen
   Parameter hat:
&lt;/p&gt;
&lt;p&gt;
   &lt;br&gt;
   &lt;span style="color: #2b91af"&gt;DynamicMetaObject&lt;/span&gt; GetMetaObject(&lt;span style="color: #2b91af"&gt;Expression&lt;/span&gt; parameter)&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
   Wer sich nicht mit ExpressionTrees rumschlagen möchte, kann glücklicherweise auf die
   Klasse DynamicObject zurückgreifen, die die Auswertung des ExpressionTrees für einen
   übernimmt und komfortablere/spezialisierte Methoden zur Überschreibung zu Verfügung
   stellt.
&lt;/p&gt;
&lt;p&gt;
   &lt;br&gt;
   Die Erkenntnis, die wir bis jetzt haben ist, wenn wir ein dynamisches Objekt erzeugen
   wollen, können wir eine Klasse von DynamicObject ableiten und müssen nur die entsprechenden
   Methoden zur Erkennung der Aufrufe auf das Objekt überschreiben.
&lt;/p&gt;
&lt;p&gt;
   &lt;br&gt;
   Okay, schauen wir mal was sich daraus machen lässt. Schauen wir uns noch mal den gewünschten
   Code an:
&lt;/p&gt;
&lt;p&gt;
   &lt;span style="color: blue"&gt;dynamic&lt;/span&gt; bookstore = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DynamicXDocument&lt;/span&gt;(&lt;span style="color: #a31515"&gt;@"c:\bookstore.xml"&lt;/span&gt;); 
   &lt;br&gt;
   &lt;br&gt;
   &lt;span style="color: blue"&gt;foreach&lt;/span&gt;(&lt;span style="color: blue"&gt;var&lt;/span&gt; book &lt;span style="color: blue"&gt;in&lt;/span&gt; bookstore.books)&lt;br&gt;
   {&lt;br&gt;
   &lt;span style="color: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Titel:
   "&lt;/span&gt; + book.Title);&lt;br&gt;
   }
&lt;/p&gt;
&lt;p&gt;
   Wir benötigen also als erstes eine Klasse DynamicXDocument, die von DataObject ableitet
   und einen Konstruktor hat, der einen Dateipfad übergeben bekommt. Da wir als erstes
   auf bookstore.books in einer foreach-Schleife zugreifen, muss unsere Klasse auch noch
   das Interface IEnumerable implementieren.
&lt;/p&gt;
&lt;p&gt;
   &lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af"&gt;DynamicXDocument&lt;/span&gt; : &lt;span style="color: #2b91af"&gt;DynamicObject, &lt;span style="color: #2b91af"&gt;IEnumerable&lt;/span&gt;
   &lt;br&gt;
   &lt;/span&gt;{&lt;br&gt;
   &lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af"&gt;XElement&lt;/span&gt; _node;&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
   &lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; DynamicXDocument(&lt;span style="color: blue"&gt;string&lt;/span&gt; filePath)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _node = (&lt;span style="color: #2b91af"&gt;XElement&lt;/span&gt;)&lt;span style="color: #2b91af"&gt;XDocument&lt;/span&gt;.Load(&lt;span style="color: #2b91af"&gt;File&lt;/span&gt;.OpenRead(filePath)).FirstNode;&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/p&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;&lt;span style="color: blue"&gt; private&lt;/span&gt; DynamicXDocument(&lt;span style="color: #2b91af"&gt;XElement&lt;/span&gt; node)&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
_node = node;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
}&lt;/pre&gt;
&lt;p&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af"&gt;IEnumerator&lt;/span&gt; GetEnumerator()&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;if&lt;/span&gt; (_node
   == &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;yield&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;break&lt;/span&gt;;&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;foreach&lt;/span&gt; (&lt;span style="color: blue"&gt;var&lt;/span&gt; element &lt;span style="color: blue"&gt;in&lt;/span&gt; _node.Elements())&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;dynamic&lt;/span&gt; dynElement
   = &lt;span style="color: blue"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af"&gt;DynamicXDocument&lt;/span&gt;(element);&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;yield&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;return&lt;/span&gt; dynElement;&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
   }
&lt;/p&gt;
&lt;p&gt;
   Was ich im Enumerator mache, ist nix weiter, als alle Unterelemente von “Books” als
   neue Instanzen&amp;nbsp; meiner dynamischen Klasse zurückzugeben, die als Hauptknoten
   das XElement “Book” haben. Bleibt nur noch der Zugriff auf “book.Title”. Um auf diese
   “virtuelle” Eigenschaft zuzugreifen können wir folgende Methode von DynamicObject
   überschreiben:
&lt;/p&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;TryGetMember(&lt;span style="color: #2b91af"&gt;GetMemberBinder&lt;/span&gt; binder, &lt;span style="color: blue"&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;object&lt;/span&gt; result) &lt;/pre&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   Im Parameter “binder” werden Informationen übergeben, was genau aufgerufen wurde.
   Mit binder.Name kann man z.B. auf den Namen des aufgerufenen Properties (in unserem
   Fall “Title”) zugreifen. Eine simple Implementierung sieht wie folgt aus:
&lt;/p&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;&lt;span style="color: blue"&gt;&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;bool&lt;/span&gt; TryGetMember(&lt;span style="color: #2b91af"&gt;GetMemberBinder&lt;/span&gt; binder, &lt;span style="color: blue"&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;object&lt;/span&gt; result)
{&lt;br&gt;
&lt;/span&gt;&lt;span style="color: blue"&gt;var&lt;/span&gt; node = &lt;span style="color: blue"&gt;from&lt;/span&gt; n &lt;span style="color: blue"&gt;in&lt;/span&gt; _node.Elements(binder.Name) &lt;span style="color: blue"&gt;select&lt;/span&gt; n;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;    &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;    &lt;span style="color: blue"&gt;if&lt;/span&gt; (node.Count()
== 0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;    {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;        result = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;        &lt;span style="color: blue"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;false&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;    }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;    &lt;span style="color: blue"&gt;&lt;span style="color: #2b91af"&gt;XElement&lt;/span&gt;&amp;nbsp;&lt;/span&gt;element
= node.First();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;    result = element.Value;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="font-family: consolas; background: white; color: black; font-size: 13px"&gt;    &lt;span style="color: blue"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&gt;
&lt;p&gt;
   }
&lt;/p&gt;
&lt;p&gt;
   &lt;br&gt;
   So einfach ist das. Im angehängten Beispielprojekt habe ich noch Rekursion und Attribute
   eingebaut. Später werde ich vielleicht noch das Hinzufügen, Ändern, Löschen und Speichern
   der Daten implementieren. Etwas Fehlerbehandlung könnte auch nicht schaden ;-)
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.eljed.de/stuff/DynamicXElement.zip"&gt;DOWNLOAD&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   &lt;br&gt;
   &lt;strong&gt;Fazit&lt;br&gt;
   &lt;/strong&gt;Bisher hatte ich gedacht, dass das neue Schlüsselwort „dynamic“ nur dazu
   zu gebrauchen ist einfacher auf COM-Objekte zuzugreifen. Da habe ich mich gewaltig
   geirrt. Im Namespace System.Dynamics steckt noch wesentlich mehr, was es lohnt zu
   erkunden. Wie man an dem XML-Beispiel sehen kann, kann man mit nur ein paar Zeilen
   Code schon nützliche Sachen bauen.
&lt;/p&gt;
&lt;p&gt;
   Es lohnt sich also immer mal wieder links und rechts zu schauen, auch wenn man meint,
   dass bestimmte Technologien, Tools, usw. für die momentane Arbeit uninteressant sind.
&lt;/p&gt;
&lt;p&gt;
   Schönen Dank an dieser Stelle noch einmal an die Veranstalter des .NET Open Space
   und an Alexander Groß für die spontane Bahn-Session.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &lt;strong&gt;Referenzen&lt;br&gt;
   &lt;/strong&gt;[1] Dynamic in C# 4.0, Teil I: Einführung&lt;br&gt;
   &lt;a href="http://www.codefest.at/post/2009/11/04/Dynamic-in-C-40-Teil-I-Einfuhrung.aspx"&gt;http://www.codefest.at/post/2009/11/04/Dynamic-in-C-40-Teil-I-Einfuhrung.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;br&gt;
   [2] Dynamic in C# 4.0: Introducing the ExpandoObject&lt;br&gt;
   &lt;a href="http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx"&gt;http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx&lt;/a&gt;
   &lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
   [3] Creating and using Dynamic Objects&lt;br&gt;
   &lt;a href="http://msdn.microsoft.com/en-us/library/ee461504.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee461504.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &lt;strong&gt;UPDATE: &lt;/strong&gt;Ich bin gerade auf einen Artikel gestoßen, der so ziemlich
   genau das Gleiche macht und das Ganze noch um den Zugriff auf CSV-Dateien erweitert.&lt;br&gt;
   &lt;a href="http://blogs.msdn.com/b/mcsuksoldev/archive/2010/02/04/dynamic-xml-reader-with-c-and-net-4-0.aspx"&gt;http://blogs.msdn.com/b/mcsuksoldev/archive/2010/02/04/dynamic-xml-reader-with-c-and-net-4-0.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=eb9b3cf7-31ec-4af1-85fa-a3a5ec6af1a4" /&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,eb9b3cf7-31ec-4af1-85fa-a3a5ec6af1a4.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=335ed076-4008-413a-993c-e1ad70407fff</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,335ed076-4008-413a-993c-e1ad70407fff.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,335ed076-4008-413a-993c-e1ad70407fff.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=335ed076-4008-413a-993c-e1ad70407fff</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Am 07.07.2011 findet das nächste User Group Treffen im Restaurant Zucker (ARTMax)
      statt. Zu Gast ist Daniel Fisher mit einem Vortrag über die Lokalisierung von ASP.NET
      MVC Anwendungen.
   </p>
        <p>
       
   </p>
        <p>
      Die neue Plattform zum Entwickeln von Web-Anwendungen auf der .NET Plattform bringt
      viele neue und produktivitätssteigernde Features mit sich. Dabei bleibt es nicht aus,
      dass einige alte Konzepte über Bord geworfen werden. Die Lokalisierung von Web-Anwendungen
      wie sie zu *klassischen ASP.NET* Zeiten ablief ist eines davon. Daniel Fisher zeigt
      Ansätze und Lösungen aus der MVC-Praxis für den Alltag.<br /></p>
        <p>
      Weitere Infos gibt es unter <a href="http://www.dotnet-braunschweig.de/">http://www.dotnet-braunschweig.de/</a></p>
        <img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=335ed076-4008-413a-993c-e1ad70407fff" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/Aa92kqXWv54" height="1" width="1" /></body>
      <title>ASP.NET MVC Lokalisieren</title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,335ed076-4008-413a-993c-e1ad70407fff.aspx</guid>
      <link>http://www.eljed.de/blog/ASPNETMVCLokalisieren.aspx</link>
      <pubDate>Tue, 28 Jun 2011 07:48:50 GMT</pubDate>
      <description>&lt;p&gt;
   Am 07.07.2011 findet das nächste User Group Treffen im Restaurant Zucker (ARTMax)
   statt. Zu Gast ist Daniel Fisher mit einem Vortrag über die Lokalisierung von ASP.NET
   MVC Anwendungen.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   Die neue Plattform zum Entwickeln von Web-Anwendungen auf der .NET Plattform bringt
   viele neue und produktivitätssteigernde Features mit sich. Dabei bleibt es nicht aus,
   dass einige alte Konzepte über Bord geworfen werden. Die Lokalisierung von Web-Anwendungen
   wie sie zu *klassischen ASP.NET* Zeiten ablief ist eines davon. Daniel Fisher zeigt
   Ansätze und Lösungen aus der MVC-Praxis für den Alltag.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
   Weitere Infos gibt es unter &lt;a href="http://www.dotnet-braunschweig.de/"&gt;http://www.dotnet-braunschweig.de/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=335ed076-4008-413a-993c-e1ad70407fff" /&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,335ed076-4008-413a-993c-e1ad70407fff.aspx</comments>
      <category>Community;.NET Developer Group Braunschweig</category>
    </item>
    <item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=abf06921-9d26-46fc-a6a0-0f41b142e0a6</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,abf06921-9d26-46fc-a6a0-0f41b142e0a6.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,abf06921-9d26-46fc-a6a0-0f41b142e0a6.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=abf06921-9d26-46fc-a6a0-0f41b142e0a6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="margin: 0px 10px 0px 0px" border="0" alt="dotnet-braunschweig" src="http://blogs.dotnet-braunschweig.de/karim/images/40f498e4f4a6_E252/dotnetbs_banner_225_thumb.gif" />
        </p>
        <p>
      Am 15.06.2011 findet das nächste User Group Treffen im Restaurant Zucker (ARTMax)
      statt. Zu Gast ist Golo Roden, der uns das Agile Development Framework näher bringen
      wird.
   </p>
        <p>
       
   </p>
        <p>
          <strong>
            <span id="ctl00_cphMiddle_DetailsView1_lblTitle" class="BC_TextTitle">Agil
      2.0 – das Agile Development Framework (ADF)</span>
            <br />
          </strong>
          <br />
      Scrum, XP &amp; Co – bestehende agile Methoden bedienen jeweils verschiedene Zielgruppen
      und Aspekte der Softwareentwicklung, doch eine einzelne agile Methode genügt in der
      Praxis häufig nicht. Was also fehlt, ist ein umfassendes Rahmenwerk, das die erfolgreichen
      Elemente der bestehenden agilen Methoden vereint, das jedoch – wenn erforderlich –
      auch eigene Pfade einschlägt.<br /><br />
      Das Agile Development Framework (ADF) tritt an, dieses Problem zu lösen, indem es
      Individuen, Teams und Unternehmen während des gesamten Entwicklungsprozesses von qualitativ
      hochwertiger Software unterstützt, unter Berücksichtigung der einzelnen Rollen und
      deren jeweiligen Interessen.<br /><br />
      Golo Roden (www.goloroden.de) stellt ADF und dessen Konzepte in einem kompakten Überblick
      vor, zeigt an Hand von praktischen Beispielen den Verlauf des Prozesses von ADF, und
      beschreibt Migrationspfade von Scrum und XP.<br /></p>
        <p>
       
   </p>
        <p>
      Detaillierte Infos zum Termin findet Ihr unter <a href="http://www.dotnet-braunschweig.de/termindetails.aspx?id=67">http://www.dotnet-braunschweig.de/termindetails.aspx?id=67</a></p>
        <img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=abf06921-9d26-46fc-a6a0-0f41b142e0a6" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/feNQ6ccUXP8" height="1" width="1" /></body>
      <title>Das Agile Development Framework (ADF)</title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,abf06921-9d26-46fc-a6a0-0f41b142e0a6.aspx</guid>
      <link>http://www.eljed.de/blog/DasAgileDevelopmentFrameworkADF.aspx</link>
      <pubDate>Wed, 08 Jun 2011 07:55:23 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;img style="margin: 0px 10px 0px 0px" border="0" alt="dotnet-braunschweig" src="http://blogs.dotnet-braunschweig.de/karim/images/40f498e4f4a6_E252/dotnetbs_banner_225_thumb.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
   Am 15.06.2011 findet das nächste User Group Treffen im Restaurant Zucker (ARTMax)
   statt. Zu Gast ist Golo Roden, der uns das Agile Development Framework näher bringen
   wird.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   &lt;strong&gt;&lt;span id="ctl00_cphMiddle_DetailsView1_lblTitle" class="BC_TextTitle"&gt;Agil
   2.0 – das Agile Development Framework (ADF)&lt;/span&gt; 
   &lt;br&gt;
   &lt;/strong&gt;
   &lt;br&gt;
   Scrum, XP &amp;amp; Co – bestehende agile Methoden bedienen jeweils verschiedene Zielgruppen
   und Aspekte der Softwareentwicklung, doch eine einzelne agile Methode genügt in der
   Praxis häufig nicht. Was also fehlt, ist ein umfassendes Rahmenwerk, das die erfolgreichen
   Elemente der bestehenden agilen Methoden vereint, das jedoch – wenn erforderlich –
   auch eigene Pfade einschlägt.&lt;br&gt;
   &lt;br&gt;
   Das Agile Development Framework (ADF) tritt an, dieses Problem zu lösen, indem es
   Individuen, Teams und Unternehmen während des gesamten Entwicklungsprozesses von qualitativ
   hochwertiger Software unterstützt, unter Berücksichtigung der einzelnen Rollen und
   deren jeweiligen Interessen.&lt;br&gt;
   &lt;br&gt;
   Golo Roden (www.goloroden.de) stellt ADF und dessen Konzepte in einem kompakten Überblick
   vor, zeigt an Hand von praktischen Beispielen den Verlauf des Prozesses von ADF, und
   beschreibt Migrationspfade von Scrum und XP.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   Detaillierte Infos zum Termin findet Ihr unter &lt;a href="http://www.dotnet-braunschweig.de/termindetails.aspx?id=67"&gt;http://www.dotnet-braunschweig.de/termindetails.aspx?id=67&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=abf06921-9d26-46fc-a6a0-0f41b142e0a6" /&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,abf06921-9d26-46fc-a6a0-0f41b142e0a6.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.eljed.de/blog/Trackback.aspx?guid=45fcaade-d6bd-48ea-9418-d7ee2d8cf99d</trackback:ping>
      <pingback:server>http://www.eljed.de/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.eljed.de/blog/PermaLink,guid,45fcaade-d6bd-48ea-9418-d7ee2d8cf99d.aspx</pingback:target>
      <dc:creator>el_jed@netcreate.de (Karim El Jed)</dc:creator>
      <wfw:comment>http://www.eljed.de/blog/CommentView,guid,45fcaade-d6bd-48ea-9418-d7ee2d8cf99d.aspx</wfw:comment>
      <wfw:commentRss>http://www.eljed.de/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=45fcaade-d6bd-48ea-9418-d7ee2d8cf99d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="margin: 0px 10px 0px 0px" border="0" alt="dotnet-braunschweig" src="http://blogs.dotnet-braunschweig.de/karim/images/40f498e4f4a6_E252/dotnetbs_banner_225_thumb.gif" />
        </p>
        <p>
      Am 10.05.2011 findet das nächste User Group Treffen im Restaurant Zucker (ARTMax)
      statt. Wir feiern eine Premiere, denn zum ersten Mal werden wir ein Coding Dojo veranstalten.
   </p>
        <p>
      In einem Coding-Dojo wird zusammen eine Programmieraufgabe (Code Kata) gelöst. Ziel
      dabei ist es u.a. gemeinsam etwas Neues zu lernen, sowie seine Fähigkeiten mit Hilfe
      der Übung zu verbessern. Dabei soll vor allem der Spaß im Vordergrund stehen. Folgende
      Grundsätze gelten:<br /></p>
        <ul>
          <li>
         Das Dojo ist nicht konkurrenzbetont sondern gemeinschafts- und spaßorientiert.</li>
          <li>
         Vom Einsteiger bis zum erfahrenen Softwareentwickler ist jeder willkommen.</li>
          <li>
         Lösungen werden im Team erarbeitet, gemeinsam umgesetzt und gemeinsam präsentiert.</li>
          <li>
         Zur Lösung müssen Tests geschrieben werden.</li>
          <li>
         Es gibt keine Musterlösung! Die Lösungsmöglichkeiten sind bewusst offen und geben
         Raum für unterschiedlichste Entscheidungen. Interessant ist insbesondere das gegenseitige
         Anleiten und Lehren.</li>
        </ul>
        <p>
       
   </p>
        <p>
      Detaillierte Infos zum Termin findet Ihr unter <a href="http://www.dotnet-braunschweig.de/termindetails.aspx?id=66">http://www.dotnet-braunschweig.de/termindetails.aspx?id=66</a>.
   </p>
        <p>
       
   </p>
        <p>
      Allgemeine Infos über Coding Dojos findet Ihr hier:
   </p>
        <ul>
          <li>
            <a href="http://www.codingdojo.org/">http://www.codingdojo.org/</a>
          </li>
          <li>
            <a title="http://www.altnetberlin.de" href="http://www.altnetberlin.de">http://www.altnetberlin.de</a>
          </li>
          <li>
            <a href="http://codedojos.wordpress.com/">http://codedojos.wordpress.com/</a>
          </li>
        </ul>
        <img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=45fcaade-d6bd-48ea-9418-d7ee2d8cf99d" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/KarimsKrimskramsKiste/~4/lYEJ--r8s6k" height="1" width="1" /></body>
      <title>Erstes Coding Dojo bei der .NET Developer Group Braunschweig</title>
      <guid>http://www.eljed.de/blog/PermaLink,guid,45fcaade-d6bd-48ea-9418-d7ee2d8cf99d.aspx</guid>
      <link>http://www.eljed.de/blog/ErstesCodingDojoBeiDerNETDeveloperGroupBraunschweig.aspx</link>
      <pubDate>Wed, 04 May 2011 06:54:19 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;img style="margin: 0px 10px 0px 0px" border="0" alt="dotnet-braunschweig" src="http://blogs.dotnet-braunschweig.de/karim/images/40f498e4f4a6_E252/dotnetbs_banner_225_thumb.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
   Am 10.05.2011 findet das nächste User Group Treffen im Restaurant Zucker (ARTMax)
   statt. Wir feiern eine Premiere, denn zum ersten Mal werden wir ein Coding Dojo veranstalten.
&lt;/p&gt;
&lt;p&gt;
   In einem Coding-Dojo wird zusammen eine Programmieraufgabe (Code Kata) gelöst. Ziel
   dabei ist es u.a. gemeinsam etwas Neues zu lernen, sowie seine Fähigkeiten mit Hilfe
   der Übung zu verbessern. Dabei soll vor allem der Spaß im Vordergrund stehen. Folgende
   Grundsätze gelten:&lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;
      Das Dojo ist nicht konkurrenzbetont sondern gemeinschafts- und spaßorientiert.&lt;/li&gt;
   &lt;li&gt;
      Vom Einsteiger bis zum erfahrenen Softwareentwickler ist jeder willkommen.&lt;/li&gt;
   &lt;li&gt;
      Lösungen werden im Team erarbeitet, gemeinsam umgesetzt und gemeinsam präsentiert.&lt;/li&gt;
   &lt;li&gt;
      Zur Lösung müssen Tests geschrieben werden.&lt;/li&gt;
   &lt;li&gt;
      Es gibt keine Musterlösung! Die Lösungsmöglichkeiten sind bewusst offen und geben
      Raum für unterschiedlichste Entscheidungen. Interessant ist insbesondere das gegenseitige
      Anleiten und Lehren.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   Detaillierte Infos zum Termin findet Ihr unter &lt;a href="http://www.dotnet-braunschweig.de/termindetails.aspx?id=66"&gt;http://www.dotnet-braunschweig.de/termindetails.aspx?id=66&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
   Allgemeine Infos über Coding Dojos findet Ihr hier:
&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;
      &lt;a href="http://www.codingdojo.org/"&gt;http://www.codingdojo.org/&lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
      &lt;a title="http://www.altnetberlin.de" href="http://www.altnetberlin.de"&gt;http://www.altnetberlin.de&lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
      &lt;a href="http://codedojos.wordpress.com/"&gt;http://codedojos.wordpress.com/&lt;/a&gt;
   &lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.eljed.de/blog/aggbug.ashx?id=45fcaade-d6bd-48ea-9418-d7ee2d8cf99d" /&gt;</description>
      <comments>http://www.eljed.de/blog/CommentView,guid,45fcaade-d6bd-48ea-9418-d7ee2d8cf99d.aspx</comments>
      <category>.NET Developer Group Braunschweig</category>
    </item>
  </channel>
</rss>

