<?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:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Code-Inside Blog</title>
	
	<link>http://code-inside.de/blog</link>
	<description>.NET &amp; C# Blogging...</description>
	<lastBuildDate>Tue, 27 Jul 2010 21:57:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Code-insideBlog" /><feedburner:info uri="code-insideblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>“.cshtml” HTML Syntax Highlighting in MVC 3 Preview 1</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/Z0ohIlj8f8o/</link>
		<comments>http://code-inside.de/blog/2010/07/27/cshtml-syntax-highlighting-in-mvc-3-preview-1/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 20:42:19 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Preview]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/07/27/cshtml-syntax-highlighting-in-mvc-3-preview-1/</guid>
		<description><![CDATA[
Die 1. Preview vom ASP.NET MVC Framework ist draußen und ScottGu &#38; Phil Haack haben bereits darüber gebloggt. Eine große Neuheit ist der Razor Syntax. Da das Tooling in diese Preview noch nicht soweit ist, fehlt standardmäßig jegliche Syntaxhighlighting in den “cshtml”. Mit einem kleinen Trick bekommt man wenigstens HTML Syntax Highlighting in den Views.
 [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "&#8220;.cshtml&#8221; HTML Syntax Highlighting in MVC 3 Preview 1", url: "http://code-inside.de/blog/2010/07/27/cshtml-syntax-highlighting-in-mvc-3-preview-1/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image1011.png"><img style="border-right-width: 0px; margin: 0px 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://code-inside.de/blog/wp-content/uploads/image_thumb195.png" width="227" height="97" /></a>
<p>Die <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cb42f741-8fb1-4f43-a5fa-812096f8d1e8&amp;displaylang=en">1. Preview vom ASP.NET MVC Framework ist draußen</a> und <a href="http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx">ScottGu</a> &amp; <a href="http://haacked.com/archive/2010/07/27/aspnetmvc3-preview1-released.aspx">Phil Haack</a> haben bereits darüber gebloggt. Eine große Neuheit ist der <a href="http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx">Razor Syntax</a>. Da das Tooling in diese Preview noch nicht soweit ist, fehlt standardmäßig jegliche Syntaxhighlighting in den “cshtml”. Mit einem kleinen Trick bekommt man wenigstens HTML Syntax Highlighting in den Views.</p>
<p> <span id="more-2762"></span>
<p><strong>So sieht es nach der Installation aus:</strong>&#160;</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image1012.png"><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://code-inside.de/blog/wp-content/uploads/image_thumb196.png" width="591" height="364" /></a> </p>
<p>Etwas trist. Das wird sich aber bis zum Release von MVC 3 natürlich noch verbessern. Hoff ich jedenfalls <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Trick zum HTML Syntax Highlighting</strong></p>
<p>Rechtsklick auf eine “.cshtml” dann “Open with…”/”Öffnen mit…” auswählen und dort den HTML Editor auswählen. Wichtig wäre noch das man auf die Auswahl als “Default” markiert, damit man diese Prozedur nicht ständig wiederholen muss.</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image1013.png"><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://code-inside.de/blog/wp-content/uploads/image_thumb197.png" width="452" height="297" /></a> </p>
<p><strong>Danach hat man immerhin einfaches HTML Syntax Highlighting:</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image1014.png"><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://code-inside.de/blog/wp-content/uploads/image_thumb198.png" width="519" height="272" /></a> </p>
<p>Diese einfachen, aber effektiven Tipp hab ich von <a title="http://blog.tatham.oddie.com.au/" href="http://blog.tatham.oddie.com.au/">Tatham Oddie</a>. Super Idee, solange das MVC Tooling noch nicht fertig ist.</p>
<p>Ein Blick auf die <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cb42f741-8fb1-4f43-a5fa-812096f8d1e8&amp;displaylang=en">Preview</a> lohnt.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=%26ldquo%3B.cshtml%26rdquo%3B+HTML+Syntax+Highlighting+in+MVC+3+Preview+1&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F07%2F27%2Fcshtml-syntax-highlighting-in-mvc-3-preview-1%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/Z0ohIlj8f8o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/07/27/cshtml-syntax-highlighting-in-mvc-3-preview-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/07/27/cshtml-syntax-highlighting-in-mvc-3-preview-1/</feedburner:origLink></item>
		<item>
		<title>Visual Studio 2010 Extensions: Productivity Power Tools &amp; Power Commands</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/Kv5t1ZSka74/</link>
		<comments>http://code-inside.de/blog/2010/07/23/visual-studio-2010-extensions-productivity-power-tools-power-commands/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 22:20:54 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/07/23/visual-studio-2010-extensions-productivity-power-tools-power-commands/</guid>
		<description><![CDATA[ Wer mal einen Blick in den Extension Manager unter VS 2010 geworfen hat, der wird feststellen, dass es da sehr viele Addins gibt. Zwei Addins gefallen mir am besten. Die Productivity Power Tools &#38; die Power Commands.
 
Der Extension Manager
Wer noch nie den Extension Manager erblickt hat, sollte unter “Tools” –&#62; “Extension Manager” ihn [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Visual Studio 2010 Extensions: Productivity Power Tools &#38; Power Commands", url: "http://code-inside.de/blog/2010/07/23/visual-studio-2010-extensions-productivity-power-tools-power-commands/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image1009.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb193.png" width="189" height="78" /></a> Wer mal einen Blick in den Extension Manager unter VS 2010 geworfen hat, der wird feststellen, dass es da sehr viele Addins gibt. Zwei Addins gefallen mir am besten. Die <a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef">Productivity Power Tools</a> &amp; die <a href="http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99">Power Commands</a>.</p>
<p> <span id="more-2753"></span>
<p><strong>Der Extension Manager</strong></p>
<p>Wer noch nie den Extension Manager erblickt hat, sollte unter “Tools” –&gt; “Extension Manager” ihn mal aufmachen. Dort gibt es drei große Bereiche:</p>
<ul>
<li>Plugins welche ihr schon installiert habt. </li>
<li>Die Online Gallery (quasi der AppStore)</li>
<li>Und Updates für bereits installierte Plugins</li>
</ul>
<p>Die meisten Plugins sind kostenlos, allerdings sind dort auch die professionellen Toolhersteller mit vertreten und man bekommt eine Testversion oder sonst was zum Download. So sieht er jedenfalls aus:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image1010.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb194.png" width="530" height="304" /></a> </p>
<p>Die ersten beiden finde ich persönlich echt nützlich. Wer einen TFS hat wird sich auch über die TFS Power Tools freuen. Den Rest hab ich allerdings noch nicht wirklich ausprobiert <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Productivity Power Tools</strong></p>
<p>ScottGu hatte über die erste Version <a href="http://weblogs.asp.net/scottgu/archive/2010/06/09/visual-studio-2010-productivity-power-tool-extensions.aspx">einen größeren Blogpost geschrieben</a>. Seitdem ist aber auch ein neues Update rausgekommen. <a href="http://blogs.msdn.com/b/visualstudio/archive/2010/07/20/solution-navigator-blog-post.aspx">Dieses Update bringt z.B. den “Solution Navigator” mit</a> – ein deutlich verbesserter Solution Explorer mit Suche und mehr Details. Fetzt.</p>
<p>Download entweder <a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef">von hier</a> oder per Extension Manager.</p>
<p><strong>Power Commands</strong></p>
<p>Die Power Commands erweitern das Kontext menü um ein paar Punkte. Einige davon sind recht praktisch.</p>
<p>Download entweder <a href="http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99">von hier</a> oder per Extension Manager.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Visual+Studio+2010+Extensions%3A+Productivity+Power+Tools+%26amp%3B+Power+Commands&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F07%2F23%2Fvisual-studio-2010-extensions-productivity-power-tools-power-commands%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/Kv5t1ZSka74" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/07/23/visual-studio-2010-extensions-productivity-power-tools-power-commands/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/07/23/visual-studio-2010-extensions-productivity-power-tools-power-commands/</feedburner:origLink></item>
		<item>
		<title>HowTo: Sehr alte Posts mit dem Windows Live Writer bearbeiten</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/9R-7GmRNyfo/</link>
		<comments>http://code-inside.de/blog/2010/07/18/howto-sehr-alte-posts-mit-dem-windows-live-writer-bearbeiten/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 13:56:36 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Windows Live Writer]]></category>
		<category><![CDATA[Writer]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/07/18/howto-sehr-alte-posts-mit-dem-windows-live-writer-bearbeiten/</guid>
		<description><![CDATA[Ich blogge eigentlich immer mit dem Windows Live Writer. Für mich ein absolut praktisches und tolles Tool, nur leider lassen sich ältere Posts nur sehr schwer bearbeiten, da man keine direkte URL angeben kann. Auf diesem Blog hab ich ein nettes “Plugin” gefunden, mit dem man auch ältere Posts bequem editieren kann.
 

Ältere Posts editieren [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: Sehr alte Posts mit dem Windows Live Writer bearbeiten", url: "http://code-inside.de/blog/2010/07/18/howto-sehr-alte-posts-mit-dem-windows-live-writer-bearbeiten/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image1008.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb192.png" width="130" height="135" /></a>Ich blogge eigentlich immer mit dem <a href="http://explore.live.com/windows-live-writer">Windows Live Writer</a>. Für mich ein absolut praktisches und tolles Tool, nur leider lassen sich ältere Posts nur sehr schwer bearbeiten, da man keine direkte URL angeben kann. <a href="http://codeclimber.net.nz/archive/2010/07/10/How-to-edit-very-old-posts-with-Windows-Live-Writer.aspx">Auf diesem Blog</a> hab ich ein nettes “<a href="http://aovestdipaperino.com/downloads/WLWDownloader.msi">Plugin</a>” gefunden, mit dem man auch ältere Posts bequem editieren kann.</p>
<p> <span id="more-2748"></span>
</p>
<p><strong>Ältere Posts editieren – ein Krampf</strong></p>
<p>Entweder man nimmt den eingebauten WYSIWYG Editor von Wordpress/BloggingPlatformXYZ oder man lädt sich alle Artikel über “Datei –&gt; Öffnen –&gt; Blog”. Nachdem das Tool ewig die Liste erstellt hat, darf man dann noch ewig den richtigen Post suchen. Da ist User Experience groß geschrieben wurden <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Das “Plugin” was Abhilfe schaff.</strong></p>
<p>Zum Glück hat sich ein <a href="http://aovestdipaperino.com/posts/windows-live-writer-post-download-plugin.aspx">Microsofti</a> entschieden ein kleines Plugin zu schreiben. Allerdings ist es kein gewöhnliches Windows Live Plugin, sondern eigentlich nur ein URL Handler. Über die Eingabe einer speziellen URL in den Internet Explorer öffnet sich der Windows Live Writer und lädt den entsprechenden Post runter.</p>
<p><strong>Download &amp; Install</strong></p>
<p>Das Plugin kann man <strong><a href="http://aovestdipaperino.com/downloads/WLWDownloader.msi">hier</a></strong> runterladen &amp; installieren. </p>
<p><strong>Ältere Posts editieren</strong></p>
<p>Um einen älteren Post zu editieren gebt einfach eine URL nach folgenden Schema in den Internet Explorer ein (vielleicht geht auch Firefox, im Chrome ging es jedenfalls bei mir nicht) :</p>
<p><a title="wlw://example.com/?postid=yourPostId" href="wlw://example.com/?postid=yourPostId"><strong>wlw://example.com/?postid=yourPostId</strong></a></p>
<p>Die Post-Id findet man z.B. auch im Admin Bereich von Wordpress in der URL, wenn man einen Post editiert.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+Sehr+alte+Posts+mit+dem+Windows+Live+Writer+bearbeiten&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F07%2F18%2Fhowto-sehr-alte-posts-mit-dem-windows-live-writer-bearbeiten%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/9R-7GmRNyfo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/07/18/howto-sehr-alte-posts-mit-dem-windows-live-writer-bearbeiten/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/07/18/howto-sehr-alte-posts-mit-dem-windows-live-writer-bearbeiten/</feedburner:origLink></item>
		<item>
		<title>HowTo: Senden von Emails testen mit Smtp4Dev</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/4wciqmuHOSc/</link>
		<comments>http://code-inside.de/blog/2010/07/18/howto-senden-von-emails-testen-mit-smtp4dev/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 13:07:14 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[Smtp4Dev]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/07/18/howto-senden-von-emails-testen-mit-smtp4dev/</guid>
		<description><![CDATA[ 
Vor einer ganzen Weile habe ich bereits darüber gebloggt, wie man das Email-Senden ohne einen richtigen SMTP Server auf seinem Entwickler PC testen kann. Über diverse Blogposts, z.B. dem hier von Alex, bin ich auf Smtp4Dev gestoßen. Fazit: Funktioniert gut &#38; ungemein praktisch.
 
Smtp4Dev
Smtp4Dev ist ein kleines Tool, welches in der System Tray läuft [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: Senden von Emails testen mit Smtp4Dev", url: "http://code-inside.de/blog/2010/07/18/howto-senden-von-emails-testen-mit-smtp4dev/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image1003.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb187.png" width="193" height="142" /></a> </p>
<p>Vor einer ganzen Weile habe ich bereits <a href="http://code-inside.de/blog/2009/03/16/howto-senden-von-emails-testen-ohne-mailserver/">darüber gebloggt</a>, wie man das Email-Senden ohne einen richtigen SMTP Server auf seinem Entwickler PC testen kann. Über diverse Blogposts, z.B. dem <a href="http://blog.alexonasp.net/post/2010/07/14/smtp4dev-e28093-Dummy-Mailserver-fur-Entwickler.aspx">hier von Alex</a>, bin ich auf <a href="http://smtp4dev.codeplex.com/">Smtp4Dev</a> gestoßen. Fazit: Funktioniert gut &amp; ungemein praktisch.</p>
<p> <span id="more-2742"></span>
<p><strong>Smtp4Dev</strong></p>
<p>Smtp4Dev ist ein kleines Tool, welches in der System Tray läuft und auf Port 25 lauscht. Wenn eine Mail eingeht, kommt auch ein kleine Info-Box:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image1004.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb188.png" width="220" height="114" /></a> </p>
<p>Es gibt auch eine Übersicht mit allen eingegangen Mails:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image1005.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb189.png" width="383" height="280" /></a> </p>
<p>Über “View” wird das Standard-Email Programm gestartet. Über “Inspect” kann man Details der Mail anschauen:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image1006.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb190.png" width="489" height="228" /></a> </p>
<p><strong>Was müsst ihr tun, damit es funktioniert?</strong></p>
<ul>
<li><a href="http://smtp4dev.codeplex.com/">Smtp4Dev</a> downloaden &amp; installieren</li>
<li>Sichergehen dass das Tool auch auf Port 25 lauscht:<a href="http://code-inside.de/blog/wp-content/uploads/image1007.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb191.png" width="390" height="289" /></a> </li>
<li>In der web.config die Smtp Settings auf Network &amp; Localhost setzen:</li>
</ul>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3b9511a3-ef1c-449c-9f89-58daafbd63cc" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">	&lt;system.net&gt;
    &lt;mailSettings&gt;
      &lt;smtp deliveryMethod="Network"&gt;
        &lt;network host="localhost"/&gt;
      &lt;/smtp&gt;
    &lt;/mailSettings&gt;
	&lt;/system.net&gt;</pre>
</div>
<p>Mein Beispielcode stammt noch <a href="http://code-inside.de/blog/2009/03/16/howto-senden-von-emails-testen-ohne-mailserver/">aus dem alten Blogpost</a>, nur mit der Änderung in der web.config (&amp; das ich es mit VS2010 bearbeitet habe)</p>
<p><strong><a href="http://code-inside.de/files/democode/testingemailswithsmtp4dev/testingemailswithsmtp4dev.zip">[ Download Democode ]</a></strong></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+Senden+von+Emails+testen+mit+Smtp4Dev&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F07%2F18%2Fhowto-senden-von-emails-testen-mit-smtp4dev%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/4wciqmuHOSc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/07/18/howto-senden-von-emails-testen-mit-smtp4dev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/07/18/howto-senden-von-emails-testen-mit-smtp4dev/</feedburner:origLink></item>
		<item>
		<title>HowTo: Upgrade von ASP.NET MVC 1.0 auf 2.0 &amp; .NET 4.0</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/0QZweEFmDP0/</link>
		<comments>http://code-inside.de/blog/2010/07/12/howto-upgrade-von-asp-net-mvc-1-0-auf-2-0-net-4-0/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 22:19:43 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/07/12/howto-upgrade-von-asp-net-mvc-1-0-auf-2-0-net-4-0/</guid>
		<description><![CDATA[Wir hatten vor kurzem eine Umstellung einer ASP.NET MVC 1.0 Anwendung, welche unter .NET 3.5 lief, auf ASP.NET MVC 2 mit .NET 4.0 vollzogen. Hier ein paar kleine Anmerkungen dazu.
&#160;
 
Sobald mit mit VS2010 eine Solution öffnet, welche mit VS2008 erstellt wurde und unter .NET 3.5 oder älter läuft, kommt sofort der Konvertierungswizard und fragt [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: Upgrade von ASP.NET MVC 1.0 auf 2.0 &#38; .NET 4.0", url: "http://code-inside.de/blog/2010/07/12/howto-upgrade-von-asp-net-mvc-1-0-auf-2-0-net-4-0/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image1001.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb185.png" width="108" height="106" /></a>Wir hatten vor kurzem eine Umstellung einer ASP.NET MVC 1.0 Anwendung, welche unter .NET 3.5 lief, auf ASP.NET MVC 2 mit .NET 4.0 vollzogen. Hier ein paar kleine Anmerkungen dazu.</p>
<p>&#160;</p>
<p> <span id="more-2731"></span>
<p>Sobald mit mit VS2010 eine Solution öffnet, welche mit VS2008 erstellt wurde und unter .NET 3.5 oder älter läuft, kommt sofort der Konvertierungswizard und fragt ob man auch die .NET Framework Version 4.0 haben möchte.</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image1002.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb186.png" width="485" height="381" /></a> </p>
<p>Nach der Konvertierung wurden auch automatisch die MVC 2 dlls hinzugefügt. Für <strong>VS 2008</strong> gibt es auch einen <a href="http://weblogs.asp.net/leftslipper/archive/2009/10/19/migrating-asp-net-mvc-1-0-applications-to-asp-net-mvc-2.aspx">Konverter</a>, weil man diverse Änderungen in den web.configs machen muss.</p>
<p><strong>MvcHtmlString</strong></p>
<p>Die Helper im MVC 2 geben nun ein <a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.mvchtmlstring.aspx">MvcHtmlString</a> anstatt eines einfachen Strings zurück. Das kann z.B. <a href="http://stackoverflow.com/questions/2382942/mvchtmlstring-mvc-2-conversion-error">beim ActionLink Helper zu Problemen</a> führen, da der MvcHtmlString nicht die Methoden eines normalen Strings enthält (z.B. Substring)</p>
<p><strong>ValueProvider</strong></p>
<p>Der Zugriff auf die ValueProvider ist jetzt anders geregelt. War vorher der Zugriff so:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:51731c35-d551-4f30-9978-e35d3989fddc" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">ViewContext.Controller.ValueProvider["Bla"].AttemptedValue</pre>
</div>
<p>So ist er nun so:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:72f98e37-505e-4eb4-aa96-a3088c1cfd20" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">ViewContext.Controller.ValueProvider.GetValue("Bla").AttemptedValue</pre>
</div>
<p>&#160;</p>
</p>
<p><strong>Render View To String</strong></p>
<p>In einem <a href="http://code-inside.de/blog/2010/01/29/howto-excel-export-mit-asp-net-mvc-und-render-view-to-string/">HowTo</a> ging es darum, wie man das Ergebnis eines Views als String zurückbekommt um dies z.B. für Email-Templates zu verwenden.</p>
<p>In diesem <a href="http://stackoverflow.com/questions/483091/render-a-view-as-a-string">Stackoverflow Thread</a> gibts auch eine MVC 2 kompatible Lösung.</p>
<p><strong>RedirectToAction&lt;&gt;</strong></p>
<p>Auch im neuen MVC 2 Framework gibt es kein streng typisiertes RedirectToAction. Dies befindet sich wieder in den <a href="http://aspnet.codeplex.com/wikipage?title=MVC&amp;referringTitle=Home">Futures</a>. </p>
<p><strong>Für das Deployment</strong></p>
<p>Wichtig ist natürlich auch, dass im <a href="http://code-inside.de/blog/2010/04/29/howto-net-4-0-asp-net-mvc-on-iis-7-5-pagehandlerfactory-integrated-has-a-bad-module-managedpipelinehandler/">IIS alles richtig konfiguriert ist</a>.</p>
<p><strong>Mehr Schwierigkeiten sind uns jedenfalls nicht aufgetreten – happy upgrading <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+Upgrade+von+ASP.NET+MVC+1.0+auf+2.0+%26amp%3B+.NET+4.0&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F07%2F12%2Fhowto-upgrade-von-asp-net-mvc-1-0-auf-2-0-net-4-0%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/0QZweEFmDP0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/07/12/howto-upgrade-von-asp-net-mvc-1-0-auf-2-0-net-4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/07/12/howto-upgrade-von-asp-net-mvc-1-0-auf-2-0-net-4-0/</feedburner:origLink></item>
		<item>
		<title>HowTo: In das .NET Framework reindebuggen mit VS2010</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/e4Iqv7QNATM/</link>
		<comments>http://code-inside.de/blog/2010/07/08/howto-in-das-net-framework-reindebuggen-mit-vs2010/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 22:50:46 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Debugging]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/07/08/howto-in-das-net-framework-reindebuggen-mit-vs2010/</guid>
		<description><![CDATA[ 
Es kann ab und an sehr nützlich sein in die Interna des Frameworks reinzuschauen. Das sollte auch mit allen Libraries im .NET Framework mit ein paar Handgriffen funktionieren.
 
VS2008?
In dem Blogpost sind die Schritte mit VS2010 aufgezeigt. Mit VS2008 sollte es aber auch gehen, allerdings habe ich dies dort nie geprüft und bin eigentlich [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: In das .NET Framework reindebuggen mit VS2010", url: "http://code-inside.de/blog/2010/07/08/howto-in-das-net-framework-reindebuggen-mit-vs2010/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image995.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb179.png" width="178" height="100" /></a> </p>
<p>Es kann ab und an sehr nützlich sein in die Interna des Frameworks reinzuschauen. Das sollte auch mit allen Libraries im .NET Framework mit ein paar Handgriffen funktionieren.</p>
<p> <span id="more-2726"></span>
<p><strong>VS2008?</strong></p>
<p>In dem Blogpost sind die Schritte mit VS2010 aufgezeigt. Mit VS2008 sollte es aber <a href="http://referencesource.microsoft.com/Default.aspx">auch gehen</a>, allerdings habe ich dies dort nie geprüft und bin eigentlich durch <a href="http://weblogs.asp.net/gunnarpeipman/archive/2010/07/04/stepping-into-asp-net-mvc-source-code-with-visual-studio-debugger.aspx">diesen Blogpost</a> mal wieder auf die Möglichkeit aufmerksam geworden. </p>
<p><strong>Tools –&gt; Options –&gt; Debugging</strong></p>
<p>Die Einstellung müssen genau so eingerichtet sein:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image996.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb180.png" width="495" height="295" /></a> </p>
<p><strong>Symbol Server einrichten</strong></p>
<p>WIchtig ist es, dass man den Haken bei dem MS Symbol Server macht. Weiter unten kann man entweder sagen “Lad alle Module die du brauchst” oder man beschränkt sich auf ganz bestimmte, wie z.B. System.Data oder System.Web.Mvc für die ASP.NET MVC Geschichten.</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image997.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb181.png" width="498" height="290" /></a> </p>
<p><strong>Debug</strong></p>
<p>Wenn man jetzt irgendwo einen Breakpoint setzt und ins Debugging geht, werden erst mal die Symbols runtergeladen – das kann eine kleine Weile dauern:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image998.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb182.png" width="448" height="95" /></a> </p>
<p>Dann noch die EULA akzeptieren:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image999.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb183.png" width="367" height="335" /></a> </p>
<p>Und fertig – jetzt sollte man irgendwo im .NET Framework sein <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Unicode Fehlermeldung:</strong></p>
<p>Komischerweise bekomm ich auf meinem System eine Fehlermeldung, dass etwas mit dem Encoding nicht stimmt. Debugging geht trotz der etwas lästigen Fehlermeldung.</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image1000.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb184.png" width="431" height="239" /></a> </p>
<p><strong>Mehr Symbol Server von Microsoft</strong></p>
<p>Das <a href="http://referencesource.microsoft.com/Default.aspx">Microsoft Reference Source Code Center</a> stellt alle Symbol Server bereit. Dort gibt es auch nochmal diese Anleitung. Viel mehr als das .NET Framework bieten Sie allerdings auch nicht wirklich an.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+In+das+.NET+Framework+reindebuggen+mit+VS2010&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F07%2F08%2Fhowto-in-das-net-framework-reindebuggen-mit-vs2010%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/e4Iqv7QNATM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/07/08/howto-in-das-net-framework-reindebuggen-mit-vs2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/07/08/howto-in-das-net-framework-reindebuggen-mit-vs2010/</feedburner:origLink></item>
		<item>
		<title>HowTo: Dependency Injection in ASP.NET MVC Controllern mit Windsor Castle</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/3kjLVl9omhs/</link>
		<comments>http://code-inside.de/blog/2010/07/02/howto-dependency-injection-in-asp-net-mvc-controllern-mit-windsor-castle/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 23:21:21 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Castle Windsor]]></category>
		<category><![CDATA[DI]]></category>
		<category><![CDATA[IoC]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/07/02/howto-dependency-injection-in-asp-net-mvc-controllern-mit-windsor-castle/</guid>
		<description><![CDATA[Um einem MVC Controller seine Abhängigkeiten (z.B. Repositories, Services etc.) über ein DI-Framework, wie z.B. Windsor Castle, reinzugeben muss man ein klein wenig am MVC Workflow rumschrauben. Glücklicherweise erlaubt das MVC Framework die Überschreibung der ControllerFactory.
 
Für die Testbarkeit – das Szenario
Wir haben den simplen HomeController:

    [HandleError]
    public class [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: Dependency Injection in ASP.NET MVC Controllern mit Windsor Castle", url: "http://code-inside.de/blog/2010/07/02/howto-dependency-injection-in-asp-net-mvc-controllern-mit-windsor-castle/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image993.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb177.png" width="192" height="150" /></a>Um einem MVC Controller seine Abhängigkeiten (z.B. Repositories, Services etc.) über ein DI-Framework, wie z.B. <a href="http://www.castleproject.org/container/">Windsor Castle</a>, reinzugeben muss man ein klein wenig am MVC Workflow rumschrauben. Glücklicherweise erlaubt das MVC Framework die Überschreibung der ControllerFactory.</p>
<p> <span id="more-2713"></span>
<p><strong>Für die Testbarkeit – das Szenario</strong></p>
<p>Wir haben den simplen HomeController:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:a2504d90-70b3-41f3-8142-10ab02df7869" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">    [HandleError]
    public class HomeController : Controller
    {
        private IFooService _fooService;

        public HomeController(IFooService fooService)
        {
            this._fooService = fooService;
        }

        public ActionResult Index()
        {
            ViewData["Message"] = "Welcome to ASP.NET MVC!" + this._fooService.Bar();

            return View();
        }

        public ActionResult About()
        {
            return View();
        }
    }</pre>
</div>
<p>Dieser nimmt im Konstruktor eine Implementation von IFooService entgegen. Der FooService wird in der Index Methode gebraucht. In einer realen Anwendung könnte dies z.B. ein Repository sein. </p>
<p>Der FooService:</p>
<p><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:61b4648c-619b-4949-bf5c-8ebb14e43a63" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">    public interface IFooService
    {
        string Bar();
    }

    public class DummyFooService : IFooService
    {
        public string Bar()
        {
            return "DummyFooBar";
        }
    }</pre>
</div>
<p>Durch den Einsatz des Interfaces könnten wir dies z.B. in einem UnitTest mocken. </p>
<p><strong></strong></p>
<p><strong>Knackpunkt: Die Objekterzeugung</strong></p>
<p>In einer normalen Anwendung könnte man, wie z.B. <a href="http://code-inside.de/blog/2010/06/27/howto-alle-implementationen-vom-interface-x-ber-castle-windsor-per-di-auflsen/">in diesem Post</a> erklärt, recht einfach über den IoC Container die Implementation reingeben. Allerdings wird ein Objekt zum HomeController vom MVC Framework erzeugt – dies übernimmt die <a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.defaultcontrollerfactory.aspx">DefaultControllerFactory</a>.</p>
<p>Zum Glück kann man auch eine eigene ControllerFactory schreiben. So würde es im Grunde aussehen:</p>
<p><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:89a4ad22-9ec1-4579-9844-6dded75da5d6" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">// nur für Demozwecke. Im richtigen Beispiel nutze ich MvcContrib
public class ControllerFactory : IControllerFactory
{
    public IController CreateController(RequestContext context, Type controllerType)
    {
        return IoC.Resolve&lt;IController&gt;(controllerType.Name);
    }
}</pre>
</div>
<p>Es gibt im MVC Framework momentan noch ein paar Ecken wo man nur über Umwege die Objekterzeugung steuern kann. Bei ActionFiltern wird es z.B. etwas kniffliger (<a href="http://www.lostechies.com/blogs/jimmy_bogard/archive/2010/05/03/dependency-injection-in-asp-net-mvc-filters.aspx">geht aber wohl auch</a> – vielleicht ein anderer Blogpost). Dies soll aber mit <a href="http://aspnet.codeplex.com/wikipage?title=Road%20Map&amp;ProjectName=aspnet">MVC3 besser werden</a> <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>MvcContrib</strong> </p>
<p>Ich nutze dafür aus dem <a href="http://mvccontrib.codeplex.com/">MvcContrib</a> Projekt die WindsorControllerFactory, benötigt werden aus den vielen DLLs lediglich zwei:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image994.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb178.png" width="244" height="194" /></a>&#160;</p>
<p><strong>Der Einstiegspunkt – Global.asax</strong></p>
<p>In die Global.asax habe ich einfach noch eine “Bootstrapper” Methode eingebaut:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c8554a38-99d5-49d4-8b4f-e5bb8e1cadf2" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">        protected void Application_Start()
        {
            Bootstrapper();

            AreaRegistration.RegisterAllAreas();
            RegisterRoutes(RouteTable.Routes);
        }

        private void Bootstrapper()
        {
            IWindsorContainer container = new WindsorContainer();
            // IFooService with DummyFooService
            container.Register(AllTypes.Pick().FromAssembly(typeof(MvcApplication).Assembly)
                    .WithService.FirstInterface());
            // Controller
            container.RegisterControllers(typeof(HomeController).Assembly);

            // Set the controller factory
            ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container));
        }</pre>
</div>
<p>Durch das nutzen der “WindsorControllerFactory” müssen auch alle Controller registriert werden. Dies geschieht in Zeile 16. In Zeile 19 wird dann die ControllerFactory gesetzt.</p>
<p>Fertig. Die richtige Implementation landet beim Aufruf des HomeControllers auch dort wo sie hin soll.</p>
<p><strong>Für andere IoC Container</strong></p>
<p>Phil Haack hat z.B. <a href="http://haacked.com/archive/2007/12/07/tdd-and-dependency-injection-with-asp.net-mvc.aspx">ein Post</a> mit StructureMap gemacht. In <a href="http://www.pnpguidance.net/Post/SetDefaultControllerFactoryIControllerFactoryASPNETMVCFramework.aspx">diesem Post</a> wird es mit Spring.NET gemacht.</p>
<p><strong>Wenn es komplexer wird</strong></p>
<p>In <a href="http://blog.coreycoogan.com/2009/11/06/castle-windsor-tutorial-in-asp-net-mvc/">diesem Post von Corey Coogan</a> ist ein komplexeres Beispiel erläutert. Jedenfalls hat mir der Blogpost recht viel gebracht und mein Blogpost soll es nur (etwas simpler) wiedergeben.</p>
<p><a href="http://code-inside.de/files/democode/mvccontrollerinjection/mvccontrollerinjection.zip"><strong>[ Download Democode ]</strong></a></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+Dependency+Injection+in+ASP.NET+MVC+Controllern+mit+Windsor+Castle&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F07%2F02%2Fhowto-dependency-injection-in-asp-net-mvc-controllern-mit-windsor-castle%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/3kjLVl9omhs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/07/02/howto-dependency-injection-in-asp-net-mvc-controllern-mit-windsor-castle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/07/02/howto-dependency-injection-in-asp-net-mvc-controllern-mit-windsor-castle/</feedburner:origLink></item>
		<item>
		<title>ASP.NET MVP 2010</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/uvi5y7Wrqss/</link>
		<comments>http://code-inside.de/blog/2010/07/01/asp-net-mvp-2010/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 22:14:12 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[MVP]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/07/01/asp-net-mvp-2010/</guid>
		<description><![CDATA[ 
Für ein weiteres Jahr wurde ich von Microsoft mit dem ASP.NET MVP Award geehrt.  
Allen anderen MVPs, welche auch renominiert wurden oder neu ernannt, gratuliere ich natürlich auch.
<script type="text/javascript">SHARETHIS.addEntry({ title: "ASP.NET MVP 2010", url: "http://code-inside.de/blog/2010/07/01/asp-net-mvp-2010/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image992.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb176.png" width="107" height="167" /></a> </p>
<p>Für ein weiteres Jahr wurde ich von Microsoft mit dem ASP.NET MVP Award geehrt. <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Allen anderen MVPs, welche auch renominiert wurden oder neu ernannt, gratuliere ich natürlich auch.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=ASP.NET+MVP+2010&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F07%2F01%2Fasp-net-mvp-2010%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/uvi5y7Wrqss" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/07/01/asp-net-mvp-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/07/01/asp-net-mvp-2010/</feedburner:origLink></item>
		<item>
		<title>UI Prototyping mit SketchFlow &amp; Blend 4</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/T2oXHJfVdF4/</link>
		<comments>http://code-inside.de/blog/2010/06/30/ui-prototyping-mit-sketchflow-blend-4/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 23:20:25 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/06/30/ui-prototyping-mit-sketchflow-blend-4/</guid>
		<description><![CDATA[ 
Das man mit SketchFlow UI Prototypen bauen kann, ist ja kein großes Geheimnis. In Blend 3 hat mich das Feature aber nicht völlig umgehauen. In Blend 4 gibt es ein nettes Mockup Sample, welches bereits das ein oder andere Control mitbringt und die Verwendung besser aufzeigt. Für Besitzer von Blend 3: Der Umstieg ist [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "UI Prototyping mit SketchFlow &#38; Blend 4", url: "http://code-inside.de/blog/2010/06/30/ui-prototyping-mit-sketchflow-blend-4/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image983.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb167.png" width="244" height="68" /></a> </p>
<p>Das man mit SketchFlow UI Prototypen bauen kann, ist ja kein großes Geheimnis. In Blend 3 hat mich das Feature aber nicht völlig umgehauen. In Blend 4 gibt es ein nettes Mockup Sample, welches bereits das ein oder andere Control mitbringt und die Verwendung besser aufzeigt. Für Besitzer von Blend 3: Der Umstieg ist glaub ich sogar kostenlos auf die neue Version.</p>
<p> <span id="more-2705"></span>
<p><strong>Wichtig: Das Sample</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image984.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb168.png" width="227" height="338" /></a> </p>
<p>Dieses Sample Projekt beinhaltet einige Controls, die man wahrscheinlich regelmäßig braucht.</p>
<p>Auch der Umgang mit den Controls wird erläutert.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>In diesem Projekt befinden sich mehrere komplexere SketchFlow Controls:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image985.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb169.png" width="463" height="203" /></a> </p>
<p>Auch die Verwendung von diesen wird erklärt:</p>
<p><strong>Screenshots:</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image986.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb170.png" width="475" height="363" /></a> </p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image987.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb171.png" width="489" height="376" /></a> </p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image988.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb172.png" width="498" height="385" /></a> </p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image989.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb173.png" width="513" height="396" /></a> </p>
<p>Auch der Umgang mit Animationen wird näher erläutert:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image990.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb174.png" width="526" height="380" /></a> </p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image991.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb175.png" width="537" height="408" /></a> </p>
<p>Wer weitere Controls für SketchFlow sucht könnte sich folgende Links anschauen:</p>
<ul>
<li><a href="http://mockuptoxaml.codeplex.com/">Mockup2Xaml</a></li>
<li><a href="http://www.hardcodet.net/2010/05/announcing-sketchables">Sketchables</a></li>
</ul>
<p>Gefunden hab ich den Hinweis auf die neuen Funktionalitäten auf <a href="http://www.uxmagic.com/blog/post/2010/06/04/Blend-4-to-get-huge-SketchFlow-Prototyping-upgrade-with-new-e2809cMockupe2809d-controls.aspx">diesem Blog</a>.</p>
<p>Vielleicht geb ich SketchFlow ja nochmal eine Chance, ansonsten greif ich wieder zu Powerpoint <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=UI+Prototyping+mit+SketchFlow+%26amp%3B+Blend+4&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F06%2F30%2Fui-prototyping-mit-sketchflow-blend-4%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/T2oXHJfVdF4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/06/30/ui-prototyping-mit-sketchflow-blend-4/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/06/30/ui-prototyping-mit-sketchflow-blend-4/</feedburner:origLink></item>
		<item>
		<title>HowTo: Alle Implementationen vom Interface X über Castle Windsor per DI auflösen</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/PheqAp_zB1M/</link>
		<comments>http://code-inside.de/blog/2010/06/27/howto-alle-implementationen-vom-interface-x-ber-castle-windsor-per-di-auflsen/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 22:24:37 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Castle]]></category>
		<category><![CDATA[DI]]></category>
		<category><![CDATA[Windsor]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/06/27/howto-alle-implementationen-vom-interface-x-ber-castle-windsor-per-di-auflsen/</guid>
		<description><![CDATA[ 
Der Titel klingt recht &#34;kompliziert”, ist es aber eigentlich gar nicht. Grundproblem: Wir haben ein Interface und mehrere Implementationen davon. In unserer Applikation wollen diese über Konstruktor-Injektion holen und nacheinander aufrufen. Mit dem ArrayResolver und Castle Windsor dies sehr einfach zu bewerkstelligen. Der Blogpost darf auch als “realer” Einstieg in das Thema Dependency Injection [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: Alle Implementationen vom Interface X &#252;ber Castle Windsor per DI aufl&#246;sen", url: "http://code-inside.de/blog/2010/06/27/howto-alle-implementationen-vom-interface-x-ber-castle-windsor-per-di-auflsen/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image980.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb164.png" width="211" height="162" /></a> </p>
<p>Der Titel klingt recht &quot;kompliziert”, ist es aber eigentlich gar nicht. Grundproblem: Wir haben ein Interface und mehrere Implementationen davon. In unserer Applikation wollen diese über Konstruktor-Injektion holen und nacheinander aufrufen. Mit dem ArrayResolver und Castle Windsor dies sehr einfach zu bewerkstelligen. Der Blogpost darf auch als “realer” Einstieg in das Thema Dependency Injection angesehen werden.</p>
<p> <span id="more-2685"></span>
<p><strong>Grundlagen</strong></p>
<p>Einen kleinen Einstieg hab ich <a href="http://code-inside.de/blog/2010/03/15/howto-dependency-injection-service-locator/">hier</a> bereits gegeben. In meinem Beispiel nutze ich <a href="http://www.castleproject.org/container/index.html">Castle Windsor</a>, genauso gut hätte ich wahrscheinlich ein anderes DI Framework nehmen können. </p>
<p><strong>Benötigte Assemblies</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image981.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb165.png" width="203" height="97" /></a> </p>
<p>Der <a href="http://www.castleproject.org/castle/download.html">Download</a> von Castle Windsor kann erstmal etwas erschreckend sein. Benötigt werden diese 4 Dlls (Core/DynamicProxy2/MicroKernel/Windsor).</p>
<p>&#160;</p>
<p><strong>Mein (reales) Beispiel</strong></p>
<p>Wir haben bei uns eine Applikation die auf einige Backend Systeme zugreift. Da die Backend Systeme ab und an “einschlafen” haben wir ein “WakeUpTool” geschrieben, welches nach einem bestimmten Intervall die Systeme auf Stand-by hält. </p>
<p>Wir haben bei uns ein “IWakeUpCommand” mit der simplen Methode “WakeUp”. Pro Backendsystem gibt es eine Implementation davon. Die einzelnen Aufwach-Befehle können völlig getrennt voneinander agieren. Wichtig ist nur, dass immer alle geladen werden.   <br />Da es sein kann, dass nun noch ein weiteres Backend System dazu kommt (oder eins wegfällt), wollten wir die Verbindung zwischen ApplicationRunner und den einzelnen Commands so lose wie möglich gestalten. </p>
<p><strong>Fake Beispiel</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image982.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb166.png" width="244" height="213" /></a> In meinem Beispiel, welches ihr ganz unten auch runterladen könnt, wird einfach nur ein ConsoleWriteLine ausgegeben. </p>
<p>In dem Beispiel gibt es das Interface “ICommand” mit der Methode “Exceute” und 3 Implementationen.</p>
<p>&#160;</p>
<p>Das Interface “IApplicationRunner” beinhaltet nur eine “Run” Methode. Dies ist mein eigentlicher Eintrittspunkt in die Applikationslogik. </p>
<p>Beispiel Command:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:2caa3608-03f6-4c49-9c87-083a0c6305b9" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">namespace CastleWindsorFindAllImplementations.Commands
{
    public class WakeUpCommand : ICommand
    {
        public void Execute()
        {
            Console.WriteLine("WakeUpCommand");
        }
    }
}</pre>
</div>
<p>Der ApplicationRunner nimmt einfach ein Array an ICommands entgegen und ruft diese nacheinander auf. Keine große Magie. </p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e1b6fcb0-a358-4158-8ecd-66bc84450468" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">namespace CastleWindsorFindAllImplementations
{
    public class ApplicationRunner : IApplicationRunner
    {
        private ICommand[] _commands;

        public ApplicationRunner(ICommand[] commands)
        {
            this._commands = commands;
        }

        public void Run()
        {
            foreach (ICommand command in _commands)
            {
                command.Execute();
            }
        }
    }
}</pre>
</div>
<p><strong>Castle Windsor Magie – wie der ApplicationRunner zu den Implementationen kommt!</strong></p>
<p>Ganz am Anfang registrieren wir einen ArrayResolver für Windsor Castle. Nur damit kann unser “container” auch Arrays auflösen.</p>
<p>Die Zeile 7 erspart eine Menge tipparbeit. Damit wird dem Container (so wie ich es verstanden habe <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) gesagt, dass er alle Interfaces suchen soll und dazu die passenden Implementationen registrieren soll. Suchen soll er zudem nur in dieser Assembly. Nur durch diesen Automatismus ist es auch erst elegant, weil man so einfach nur eine neuen Command hinzufügen muss und das Framework kümmert sich um die Auflösung. Man muss kein Setup etc. anpassen. Sehr praktisch, aber sicherlich wird es auch zu Problemen führen wenn es komplexer wird. </p>
<p>In Zeile 10 holen wir uns über den “container” unseren IApplicationRunner und sagen dann einfach nur “Run”. Windsor Castle hat als einzige Implementation unsere “ApplicationRunner” Klasse gefunden. Diese wiederrum braucht ein Array aus ICommands. Voodoo <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:12271daa-b0a1-4d4c-a392-87e3a54c12e3" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">    class Program
    {
        static void Main(string[] args)
        {
            IWindsorContainer container = new WindsorContainer();
            container.Kernel.Resolver.AddSubResolver(new ArrayResolver(container.Kernel));
            container.Register(AllTypes.Pick().FromAssembly(typeof(ApplicationRunner).Assembly)
                    .WithService.FirstInterface());

            IApplicationRunner runner = container.Resolve&lt;IApplicationRunner&gt;();
            runner.Run();

            Console.ReadLine();
        }
    }</pre>
</div>
<p><strong>Was ist wenn ich einen konkreten Typ von ICommand haben will?</strong></p>
<p>Dann hat man erst mal ein Problem, weil es so nicht vorgesehen ist. Was man machen kann ist bestimmten Komponenten innerhalb des “containers” einen Namen zu geben. </p>
<p><strong>Fazit</strong></p>
<p> Diese Methode ist äußerst praktisch wenn man einfach nur eine Liste von Implementationen nutzen will ohne sie explizit erst zu registrieren. Einen genauen Typen daraus wieder herauszupuzzeln ist allerdings schwieriger.</p>
<p><strong><a href="http://code-inside.de/files/democode/CastleWindsorFindAllImplementations/CastleWindsorFindAllImplementations.zip">[ Download Democode ]</a></strong></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+Alle+Implementationen+vom+Interface+X+%26uuml%3Bber+Castle+Windsor+per+DI+aufl%26ouml%3Bsen&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F06%2F27%2Fhowto-alle-implementationen-vom-interface-x-ber-castle-windsor-per-di-auflsen%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/PheqAp_zB1M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/06/27/howto-alle-implementationen-vom-interface-x-ber-castle-windsor-per-di-auflsen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/06/27/howto-alle-implementationen-vom-interface-x-ber-castle-windsor-per-di-auflsen/</feedburner:origLink></item>
		<item>
		<title>Remote Desktop Connection Manager</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/tCadWN6QH3k/</link>
		<comments>http://code-inside.de/blog/2010/06/16/remote-desktop-connection-manager/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 13:38:51 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/06/16/remote-desktop-connection-manager/</guid>
		<description><![CDATA[ 
Wer auf mehreren Systemen über RDP Zugriff hat, der kann recht leicht den Überblick verlieren. Vor allem wenn man für jede Verbindung andere Credentials braucht. Microsoft hat vor kurzem den Remote Desktop Connection Manager freigegeben, der das Verwalten von RDP Sessions vereinfacht.
 
Ein paar nette Features seien hier noch erwähnt:

Die Verbindungen können in einer [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Remote Desktop Connection Manager", url: "http://code-inside.de/blog/2010/06/16/remote-desktop-connection-manager/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image979.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb163.png" width="135" height="124" /></a> </p>
<p>Wer auf mehreren Systemen über RDP Zugriff hat, der kann recht leicht den Überblick verlieren. Vor allem wenn man für jede Verbindung andere Credentials braucht. Microsoft hat vor kurzem den <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4603c621-6de7-4ccb-9f51-d53dc7e48047&amp;displaylang=en">Remote Desktop Connection Manager</a> freigegeben, der das Verwalten von RDP Sessions vereinfacht.</p>
<p> <span id="more-2678"></span>
<p>Ein paar nette Features seien hier noch erwähnt:</p>
<ul>
<li>Die Verbindungen können in einer Baum-Struktur gespeichert werden, ähnlich dem Windows Explorer.</li>
<li>Für jeden Ordner oder jedes System kann man die Credentials hinterlegen</li>
<li>Wer über einen Remote Gateway gehen muss kann diesen ebenfalls mit angeben. </li>
<li>Kann auch sonst alles was der RDP Client im Windows kann.</li>
<li>… und es ist kostenlos und es funktioniert recht gut <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<p>Ein kleiner Kritikpunkt: RDP Dateien kann man scheinbar nicht importieren, d.h. man muss die Verbindungsdaten nochmal eingeben.</p>
<p>Auf das Tool bin ich durch <a href="http://www.faq-o-matic.net/2010/06/13/rdp-verbindungsmanager-fr-admins/">diesen Blogpost</a> aufmerksam geworden. </p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=4603c621-6de7-4ccb-9f51-d53dc7e48047"><strong>[ Zum Download ]</strong></a></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Remote+Desktop+Connection+Manager&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F06%2F16%2Fremote-desktop-connection-manager%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/tCadWN6QH3k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/06/16/remote-desktop-connection-manager/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/06/16/remote-desktop-connection-manager/</feedburner:origLink></item>
		<item>
		<title>HowTo: “PublishedApplications” mit MSBuild &amp; dem TFS für Windows Services / DLLs</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/vFwkrBhEGUg/</link>
		<comments>http://code-inside.de/blog/2010/06/10/howto-publishedapplications-mit-msbuild-dem-tfs-fr-windows-services-dlls/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 12:01:25 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[MSBuild]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/06/10/howto-publishedapplications-mit-msbuild-dem-tfs-fr-windows-services-dlls/</guid>
		<description><![CDATA[ 
Wir benutzen bei uns für den Build Prozess MSBuild und nutzen den Team Foundation Server. Wer eine ASP.NET Applikation baut bekommt diese in einem “PublishedWebsites” Ordner serviert. Jegliche andere Sachen werden aber einfach ins Bin/Release Verzeichnis kopiert. Da das nicht gerade besonders hilfreich ist, kann man das natürlich auch ändern – allerdings mit etwas [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: &#8220;PublishedApplications&#8221; mit MSBuild &#38; dem TFS f&#252;r Windows Services / DLLs", url: "http://code-inside.de/blog/2010/06/10/howto-publishedapplications-mit-msbuild-dem-tfs-fr-windows-services-dlls/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image978.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb162.png" width="162" height="92" /></a> </p>
<p>Wir benutzen bei uns für den Build Prozess MSBuild und nutzen den Team Foundation Server. Wer eine ASP.NET Applikation baut bekommt diese in einem “PublishedWebsites” Ordner serviert. Jegliche andere Sachen werden aber einfach ins Bin/Release Verzeichnis kopiert. Da das nicht gerade besonders hilfreich ist, kann man das natürlich auch ändern – allerdings mit etwas basteln.</p>
<p> <span id="more-2675"></span>
<p><strong>Was muss man tun um die Ordnerstruktur beizubehalten?</strong></p>
<p>Eigentlich möchte man ja pro Applikation einen eigenen Output Folder haben. Leider baut der TFS alles und kopiert das Ergebnis einfach ins Release Verzeichnis.   <br />In unserem Beispiel haben wir eine TFSBuild.proj Datei, welche momentan 3 Solutions baut.    <br />Die Solutionnames sind bei uns natürlich etwas anders <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<ul>
<li>“Websolution1” enthält im Großen und Ganzen eine ASP.NET MVC Webseite.</li>
<li>“Websolution2” enthält einen Webservice </li>
<li>“WindowsSolution1” enthält einen Windows Dienst und einige andere Klassenbibliotheken.</li>
</ul>
<p>Der TFS legt automatisch für ASP.NET Projekte einen “PublishedWebsites” Ordner an. </p>
<p>Hier mal direkt einen Ausschnitt aus dem TFSBuild.proj File:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:4a126f43-c582-4539-a9c5-fc6b3ddae947" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">    &lt;SolutionToBuild Include="$(BuildProjectFolderPath)/../../Main/Source/Websolution1.sln"&gt;
        &lt;Targets&gt;&lt;/Targets&gt;
        &lt;Properties&gt;OutDir=$(OutDir)&lt;/Properties&gt;
    &lt;/SolutionToBuild&gt;
    &lt;SolutionToBuild Include="$(BuildProjectFolderPath)/../../Main/Source/Websolution2.sln"&gt;
        &lt;Targets&gt;&lt;/Targets&gt;
        &lt;Properties&gt;OutDir=$(OutDir)&lt;/Properties&gt;
    &lt;/SolutionToBuild&gt;
    &lt;SolutionToBuild Include="$(BuildProjectFolderPath)/../../Main/Source/WindowsSolution1.sln"&gt;
      &lt;Targets&gt;&lt;/Targets&gt;
      &lt;Properties&gt;&lt;/Properties&gt;
    &lt;/SolutionToBuild&gt;
  &lt;/ItemGroup&gt;

  &lt;PropertyGroup&gt;
    &lt;CustomizableOutDir&gt;true&lt;/CustomizableOutDir&gt;
  &lt;/PropertyGroup&gt;</pre>
</div>
<p>Wichtig ist die untere PropertyGroup und das der Wert “<a href="http://msdn.microsoft.com/en-us/library/aa337598.aspx">CustomizableOutDir</a>” auf “true” gesetzt ist. Damit wird im Grunde der Default-Mechanismus des TFS ausgeschalten. Daher muss man in den Properties das OutDir mitgeben. Da es bei den Webseiten keine Problem gab setzt ich es wieder zum Standard.</p>
<p>Nun geht man in die Projektdatei von dem Windowsservice (welche in der WindowsSolution1) ist. Dort hab ich es wie folgt angepasst:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d1682145-79aa-432d-88cb-52d8ae28d30b" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">  &lt;PropertyGroup&gt;
    &lt;PublishedApplicationOutputDir Condition=" '$(TeamBuildOutDir)'!='' "&gt;$(TeamBuildOutDir)_PublishedApplications\$(MSBuildProjectName)&lt;/PublishedApplicationOutputDir&gt;
    &lt;PublishedApplicationOutputDir Condition=" '$(TeamBuildOutDir)'=='' "&gt;$(MSBuildProjectDirectory)&lt;/PublishedApplicationOutputDir&gt;
  &lt;/PropertyGroup&gt;

  &lt;PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "&gt;
    &lt;DebugType&gt;pdbonly&lt;/DebugType&gt;
    &lt;Optimize&gt;true&lt;/Optimize&gt;
    &lt;OutputPath&gt;$(PublishedApplicationOutputDir)&lt;/OutputPath&gt;
    &lt;DefineConstants&gt;TRACE&lt;/DefineConstants&gt;
    &lt;ErrorReport&gt;prompt&lt;/ErrorReport&gt;
    &lt;WarningLevel&gt;4&lt;/WarningLevel&gt;
  &lt;/PropertyGroup&gt;</pre>
</div>
<p>Wenn es vom TeamBuild gebaut wird gibt der TFS die Property TeamBuildOutDir mit rein und setzt entsprechend meinen gewünschten “PublishedApplication” Pfad. </p>
<p>Das ganze wird am Ende als OutputPath bestimmt und schon haben wir pro Windowsdienst / Klassenbibliothek etc. einen eigenen Output-Folder.</p>
<p>Meine Lösung stammt ursprünglich von <a href="http://mikehadlow.blogspot.com/2009/10/tfs-build-publishedwebsites-for-exe-and.html">diesem Blogpost</a>. Hintergrund für das CustomizableOutDir Verhalten kann man in diesem <a href="http://mikehadlow.blogspot.com/2009/10/tfs-build-publishedwebsites-for-exe-and.html">Blogpost nachlesen</a>. </p>
<p>Wenn man auf das Datum der Blogposts schaut, sieht man, dass das Problem schon etwas älter ist, aber ich bin jetzt erst drauf gestoßen <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>MSBuild</strong></p>
<p>Wer einen Einstieg in MSBuild sucht, der findet eine klasse Serie auf Thorsten Hans seinem Blog: <a href="http://dotnet-forum.de/blogs/thorstenhans/pages/das-msbuild-universum.aspx">Das MSBuild Universum</a></p>
<p><strong>PS:</strong> Natürlich geb ich keine Garantie ab, dass dies die ideale Lösung ist. Aber es baut erstmal <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+%26ldquo%3BPublishedApplications%26rdquo%3B+mit+MSBuild+%26amp%3B+dem+TFS+f%26uuml%3Br+Windows+Services+%2F+DLLs&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F06%2F10%2Fhowto-publishedapplications-mit-msbuild-dem-tfs-fr-windows-services-dlls%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/vFwkrBhEGUg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/06/10/howto-publishedapplications-mit-msbuild-dem-tfs-fr-windows-services-dlls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/06/10/howto-publishedapplications-mit-msbuild-dem-tfs-fr-windows-services-dlls/</feedburner:origLink></item>
		<item>
		<title>Für absolute ASP.NET MVC Neulinge: MVC Music Store &amp; warum man es nicht al Best Practices verstehen sollte</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/z-l42PMFKbE/</link>
		<comments>http://code-inside.de/blog/2010/05/17/fr-absolute-asp-net-mvc-neulinge-mvc-music-store-warum-man-es-nicht-al-best-practices-verstehen-sollte/#comments</comments>
		<pubDate>Mon, 17 May 2010 21:56:58 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/05/17/fr-absolute-asp-net-mvc-neulinge-mvc-music-store-warum-man-es-nicht-al-best-practices-verstehen-sollte/</guid>
		<description><![CDATA[Wer mal in die ASP.NET MVC Entwicklung reinschauen möchte, der kann sich von Microsoft das Nerddinner und seit neustem auch den MVC Music Store samt PDF Anleitung anschauen. Allerdings ist die Anwendung mit Vorsicht zu genießen und IMHO nicht als Best Practices zu verstehen.
 

Laut Projektbeschreibung (“MVC Music Store is a tutorial application built on [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "F&#252;r absolute ASP.NET MVC Neulinge: MVC Music Store &#38; warum man es nicht al Best Practices verstehen sollte", url: "http://code-inside.de/blog/2010/05/17/fr-absolute-asp-net-mvc-neulinge-mvc-music-store-warum-man-es-nicht-al-best-practices-verstehen-sollte/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image977.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb161.png" width="153" height="100" /></a>Wer mal in die ASP.NET MVC Entwicklung reinschauen möchte, der kann sich von Microsoft das <a href="http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx">Nerddinner</a> und seit neustem auch den <a href="http://mvcmusicstore.codeplex.com/">MVC Music Store samt PDF Anleitung</a> anschauen. Allerdings ist die Anwendung mit Vorsicht zu genießen und IMHO <strong><u>nicht</u> als Best Practices zu verstehen</strong>.</p>
<p> <span id="more-2672"></span>
</p>
<p>Laut Projektbeschreibung (<em>“MVC Music Store is a tutorial application built on ASP.NET MVC 2. It&#8217;s a lightweight sample store which sells albums online, demonstrating ASP.NET MVC 2&#8217;s productivity features and data access via Entity Framework 4. See what you can do with MVC 2 in under 1000 lines of c# code!”)</em> soll dieses Sample die “Produktivitätsfeatures” von ASP.NET MVC 2 zeigen. Mehr aber auch nicht.</p>
<p><strong>Warum es nicht als Best Practices zu verstehen sein soll/sollte:</strong></p>
<ul>
<li>Keine Unit Tests</li>
<ul>
<li>Leider spricht Microsoft viel zu häufig von Testbarkeit anstatt mal ein gutes Sample zu erstellen</li>
</ul>
<li>Die Controller enthalten DB/Repository Logik. Abfragen werden dort direkt gegen den Entity Framework Context gemacht. Das ist nicht schön und ist auch für die Testbarkeit der Super GAU.</li>
<li>Fehlerbehandlung/Logging/Dependency Injection: Fehlt alles komplett. </li>
<li>Lokalisierung: Fehlanzeige</li>
<li>Profildaten speichern? MIt der (fragwürdigen) Profile API oder wie? Hier wird kein Ansatz gezeigt.</li>
<li>Ayende hat sich die Anwendung in Hinsicht auf die Performance/Skalierbarkeit angeschaut: <a href="http://ayende.com/Blog/archive/2010/05/17/analyzing-the-mvc-music-store-data-access.aspx">Da geht auch noch was</a>.</li>
</ul>
<p>IMHO ein netter Showcase was man in ein paar Stunden sicherlich zusammenbasteln kann, mehr aber auch nicht. Wie ein typisches Microsoft Sample halt ist – es zeigt recht gut die einfachen Anfänge, leider aber nicht die Feinheiten wenn es wirklich schwierig wird.</p>
<p>Wer sich die Funktionsweise von <a href="http://www.asp.net/mvc">ASP.NET MVC 2</a> anschauen will, kann einen Blick reinwerfen, aber bitte nicht alle Konzepte übernehmen, sondern mit etwas Weitsicht handeln <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=F%26uuml%3Br+absolute+ASP.NET+MVC+Neulinge%3A+MVC+Music+Store+%26amp%3B+warum+man+es+nicht+al+Best+Practices+verstehen+sollte&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F05%2F17%2Ffr-absolute-asp-net-mvc-neulinge-mvc-music-store-warum-man-es-nicht-al-best-practices-verstehen-sollte%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/z-l42PMFKbE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/05/17/fr-absolute-asp-net-mvc-neulinge-mvc-music-store-warum-man-es-nicht-al-best-practices-verstehen-sollte/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/05/17/fr-absolute-asp-net-mvc-neulinge-mvc-music-store-warum-man-es-nicht-al-best-practices-verstehen-sollte/</feedburner:origLink></item>
		<item>
		<title>Was bedeutet eigentlich System.webServer –  “validateIntegratedModeConfiguration” &amp; “runAllManagedModulesForAllRequests”</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/B0SbmZd7WII/</link>
		<comments>http://code-inside.de/blog/2010/05/17/was-bedeutet-eigentlich-system-webserver-validateintegratedmodeconfiguration-runallmanagedmodulesforallrequests/#comments</comments>
		<pubDate>Sun, 16 May 2010 23:03:41 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[IIS7]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/05/17/was-bedeutet-eigentlich-system-webserver-validateintegratedmodeconfiguration-runallmanagedmodulesforallrequests/</guid>
		<description><![CDATA[ 
Ein Kollege, der eine IIS6 Webapplikation auf IIS7 migriert, fragte mich was denn eigentlich dieses Validation Tag bedeutet. Unter ASP.NET 4.0 ist die Web.config um einiges schlanker, allerdings taucht das Validation und Modules Tag wieder auf. Was hat es mit den beiden Flags auf sich?
 
Migration auf IIS7
Der Post soll nur die beiden Properties [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Was bedeutet eigentlich System.webServer &#8211;  &#8220;validateIntegratedModeConfiguration&#8221; &#38; &#8220;runAllManagedModulesForAllRequests&#8221;", url: "http://code-inside.de/blog/2010/05/17/was-bedeutet-eigentlich-system-webserver-validateintegratedmodeconfiguration-runallmanagedmodulesforallrequests/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image974.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb158.png" width="199" height="102" /></a> </p>
<p>Ein Kollege, der eine IIS6 Webapplikation auf IIS7 migriert, fragte mich was denn eigentlich dieses Validation Tag bedeutet. Unter ASP.NET 4.0 ist die Web.config um einiges schlanker, allerdings taucht das Validation und Modules Tag wieder auf. Was hat es mit den beiden Flags auf sich?</p>
<p> <span id="more-2669"></span>
<p><strong>Migration auf IIS7</strong></p>
<p>Der Post soll nur die beiden Properties beleuchten. Wer eine Migration auf von IIS6 auf IIS7 machen möchte, der sollte <a href="http://mvolo.com/blogs/serverside/archive/2007/12/08/IIS-7.0-Breaking-Changes-ASP.NET-2.0-applications-Integrated-mode.aspx">hier</a> sich genauere Informationen besorgen. </p>
<p><strong>system.webServer</strong></p>
<p>Wer eine frische ASP.NET MVC Anwendung erstellt findet in der web.config diese Konfiguration:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:f91f3b93-c2f6-4e11-b5de-546215c79d81" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">  &lt;system.webServer&gt;
    &lt;validation validateIntegratedModeConfiguration="false"/&gt;
    &lt;modules runAllManagedModulesForAllRequests="true"/&gt;
  &lt;/system.webServer&gt;</pre>
</div>
<p><strong>Validation: “validateIntegratedModeConfiguration”</strong></p>
<p> Im Standardfall ist dies auf “false” gesetzt. Vor dem IIS7 hat man alle Handler &amp; Module unter “System.Web” oder irgendwo in der web.config verstreut&#160; reingeschrieben. Ab dem IIS7 wurde ein spezieller Bereich in der web.config für den Webserver eingerichtet: system.webServer. Mit dem IIS7 gibt es mehrere Möglichkeiten sich in den ASP.NET Prozess einzuklinken. Das ist der s.g. “Integrated” Mode.<br />
  <br />Mit dem validation Tag &amp; dem Property <a href="http://msdn.microsoft.com/en-us/library/bb422433(VS.90).aspx">validateIntegratedModeConfiguration</a> wird im Grunde nur geprüft ob die web.config vollständig richtig konfiguriert ist. Würde das Flag auf “true” stehen, würde eine Fehlermeldung kommen wenn unter in der web.config einfach so ein &lt;HttpModules&gt; stehen würde.</p>
<p>Da viele Anwendung aber trotzdem noch korrekt auf dem IIS6 laufen sollen und auch der interne Entwicklungsserver im Visual Studio (Cassini) auf IIS6 aufbaut, ist das Flag auf “false” gesetzt. Es wird im Grunde nur die Fehlermeldung ignoriert. </p>
<p><strong>Modules: “runAllManagedModulesForAllRequests”</strong></p>
<p>Wer auf dem IIS6 versucht hat “endunglose” URLs wie z.B. </p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:f442b90a-19f0-4fe6-9561-c4d824a1d5da" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">http://code-inside.de/blog/2010/05/16/howto-visual-studio-immer-als-admin-starten/</pre>
</div>
<p>Der musste entweder direkt am IIS etwas ändern oder etwas <a href="http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx">rumbasteln</a>. Ähnliche Änderungen am IIS6 sind auch notwendig wenn man eine ASP.NET MVC Anwendung <a href="http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx">zum Laufen</a> bekommen will. </p>
<p>Mit dem Flag “runAllManagedModulesForAllRequests” wird der IIS nur angewiesen alle registrierten “verwalteten” Module bei jedem Request zu durchlaufen:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image975.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb159.png" width="533" height="374" /></a> </p>
<p>Diese kann man pro Seite jeweils im <a href="http://learn.iis.net/page.aspx/121/iis-7-modules-overview/">IIS verwalten</a>. Das Flag ist also nur ein Shortcut um die web.config nicht unendlich aufzublähen und damit man im IIS zentral dies steuern kann.</p>
<p>Statische Dateien, wie z.B. jpegs, durchlaufen nicht diese Module. “Statische Datein” können ebenfalls im IIS verwaltet werden.</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image976.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb160.png" width="369" height="220" /></a></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Was+bedeutet+eigentlich+System.webServer+%26%238211%3B++%26ldquo%3BvalidateIntegratedModeConfiguration%26rdquo%3B+%26amp%3B+%26ldquo%3BrunAllManagedModulesForAllRequests%26rdquo%3B&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F05%2F17%2Fwas-bedeutet-eigentlich-system-webserver-validateintegratedmodeconfiguration-runallmanagedmodulesforallrequests%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/B0SbmZd7WII" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/05/17/was-bedeutet-eigentlich-system-webserver-validateintegratedmodeconfiguration-runallmanagedmodulesforallrequests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/05/17/was-bedeutet-eigentlich-system-webserver-validateintegratedmodeconfiguration-runallmanagedmodulesforallrequests/</feedburner:origLink></item>
		<item>
		<title>HowTo: Visual Studio immer als Admin starten</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/jiLN3uzjbnA/</link>
		<comments>http://code-inside.de/blog/2010/05/16/howto-visual-studio-immer-als-admin-starten/#comments</comments>
		<pubDate>Sun, 16 May 2010 22:11:02 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[UAC]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/?p=2660</guid>
		<description><![CDATA[ 
Wer den richtigen IIS als Development Server nimmt, der wird das Problem unter Vista &#38; Win7 kennen:     Solange die Benutzerkontensteuerung/UAC nicht ausgeschalten ist, muss man erst mühsam über *Rechtsklick* *Als Admin ausführen* klicken. Mit einem kleinen Trick spart man sich das Geklicke im Kontextmenü.
 
“Programm als Administrator ausführen”
Diese Einstellung kann [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: Visual Studio immer als Admin starten", url: "http://code-inside.de/blog/2010/05/16/howto-visual-studio-immer-als-admin-starten/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image972.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb156.png" width="196" height="120" /></a> </p>
<p>Wer den <a href="http://code-inside.de/blog/2009/03/19/howto-iis7-als-development-server-im-visual-studio-2008-einrichten/">richtigen IIS als Development Server</a> nimmt, der wird das Problem unter Vista &amp; Win7 kennen:    <br /> Solange die Benutzerkontensteuerung/UAC nicht ausgeschalten ist, muss man erst mühsam über *Rechtsklick* *Als Admin ausführen* klicken. Mit einem kleinen Trick spart man sich das Geklicke im Kontextmenü.</p>
<p> <span id="more-2660"></span>
<p><strong>“Programm als Administrator ausführen”</strong></p>
<p>Diese Einstellung kann man im Kompatibilitätstab in den Eigenschaften machen:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image973.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb157.png" width="269" height="378" /></a> </p>
<p>Bei einem Doppelklick auf ein .SLN File wird diese Exe aufgerufen:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d124fd5f-85d6-4fe6-885c-902d301ac08b" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\VSLauncher.exe
</pre>
</div>
<p>Die normale Exe liegt dort:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d7069844-3cc5-40eb-946b-66ac71198f3d" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe</pre>
</div>
</p>
<p>Diese Einstellung<strong> bei beiden Dateien</strong> machen. Ohne weitere Änderungen der UAC kommt weiter der “Warndialog” – allerdings vergisst man nun nicht mehr VS als Admin auszuführen und man muss nicht in Kontextmenüs nach dem “Als Admin ausführen” suchen. </p>
<p>Wer Desktop Programme entwickelt sollte sich allerdings im Hinterkopf behalten, dass sein Programm auch ohne Admin-Rechte laufen sollte – jedenfalls für den gewöhnlichen Nutzer.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+Visual+Studio+immer+als+Admin+starten&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F05%2F16%2Fhowto-visual-studio-immer-als-admin-starten%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/jiLN3uzjbnA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/05/16/howto-visual-studio-immer-als-admin-starten/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/05/16/howto-visual-studio-immer-als-admin-starten/</feedburner:origLink></item>
		<item>
		<title>HowTo: ASP.NET Anwendungen auf IIS6/7 &amp; co. zum Laufen bekommen</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/hzdpzVVS_9w/</link>
		<comments>http://code-inside.de/blog/2010/05/10/howto-asp-net-anwendungen-auf-iis67-co-zum-laufen-bekommen/#comments</comments>
		<pubDate>Mon, 10 May 2010 20:58:59 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/05/10/howto-asp-net-anwendungen-auf-iis67-co-zum-laufen-bekommen/</guid>
		<description><![CDATA[Der IIS (insbesondere der IIS6) kann sich unter Umständen recht zickig anstellen wenn man eine ASP.NET (oder noch schlimmer: ASP.NET MVC) Anwendung zum Laufen bekommen möchte. Hier ein paar zusammengestellte Tipps für Windows Server 2003 (IIS6) und spätere Versionen. (IIS7 / IIS7.5)
 

Die Tipps gelten für Windows Server 2003 bzw. höhere Versionen – auch wenn [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: ASP.NET Anwendungen auf IIS6/7 &#38; co. zum Laufen bekommen", url: "http://code-inside.de/blog/2010/05/10/howto-asp-net-anwendungen-auf-iis67-co-zum-laufen-bekommen/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image968.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb153.png" width="159" height="77" /></a>Der IIS (insbesondere der IIS6) kann sich unter Umständen recht zickig anstellen wenn man eine ASP.NET (oder noch schlimmer: ASP.NET MVC) Anwendung zum Laufen bekommen möchte. Hier ein paar zusammengestellte Tipps für Windows Server 2003 (IIS6) und spätere Versionen. (IIS7 / IIS7.5)</p>
<p> <span id="more-2654"></span>
</p>
<p>Die Tipps gelten für Windows Server 2003 bzw. höhere Versionen – auch wenn es da deutlich einfacher geworden ist.</p>
<ul>
<li>Ist die richtige .NET Version auf dem Server installiert?</li>
<ul>
<li>Nachprüfen kann man das entweder über Programme/Software in der Systemsteuerung oder man schaut mal in den GAC (C:\Windows\assembly) ob dort .NET DLLs mit der nötigen Versionsnummer da sind.</li>
<li>Wenn es nicht installiert ist: Einfach die neuste Version installieren.</li>
</ul>
<li>Ist auf dem Windows Server überhaupt der IIS installiert?</li>
<ul>
<li>Nachprüfen kann man das in der Systemsteuerung unter Software/Programme. Der IIS ist unter den Windows Komponenten zu finden.</li>
<li>Wenn er nicht installiert ist: Den nächsten Punkt noch beachten.</li>
</ul>
<li>Ist im IIS die .NET Unterstützung mit installiert? Im IIS 7 gibt es so genannte “Anwendungsentwicklungsfeatures” – dort ASP.NET mit anklicken. Im IIS6 gibt es glaub ich was ähnliches.</li>
<li>Jetzt muss man rausbekommen unter welcher Version die Anwendung laufen lassen möchte:</li>
<ul>
<li>Im IIS6 ist das etwas magisch. Auf 32bit Maschinen gibt es unter Eigenschaften einer Webseite einen ASP.NET Tab – auf einer 64bit Maschine muss man erst mal irgendwelche <a href="http://weblogs.asp.net/plip/archive/2006/05/25/Where_2700_s-the-ASP.NET-Tab-in-IIS_3F00_-It_2700_s-Missing_2100_-I_2700_ve-installed-.NET-2.0-_2E002E002E00_.aspx">RegistryKeys umändern</a>. Allerdings läuft bei mir eine ASP.NET MVC Anwendung im IIS6 auch ohne das ich diesen Reiter hab. Wer ihn sieht, sollte mal nachschauen ob dort evtl. ASP.NET 1.1 ausgewählt ist.</li>
<li>Im IIS7 (und IIS7.5) wird dies über die Anwendungspools geregelt<a href="http://code-inside.de/blog/wp-content/uploads/image969.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb154.png" width="244" height="219" /></a> </li>
</ul>
<li>Ganz wichtig: asp_regiis.exe</li>
<ul>
<li>Diese Datei registriert macht ein paar wichtige Änderungen am IIS. Bis .NET 4.0 muss man diese Datei ausführen:</li>
<ul>
<li>C:\Windows\Microsoft.NET\Framework\v2.0.50727\asp_regiis.exe –i</li>
</ul>
<li>Ab .NET 4.0 gibt es eine neue Variante unter der Frameworkversion v4… </li>
</ul>
<li>Wenn man eine ASP.NET MVC Anwendung unter IIS6 zum Laufen bringen soll: Ein Wildcard Mapping auf die aspnet_isapi.dll &amp; deaktivieren von “Verify that the file exists” unter den Konfigurationsoptionen im Basisverzeichnis Tab oder <a href="http://blog.stevensanderson.com/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/">diese Tipps</a> befolgen: <a href="http://code-inside.de/blog/wp-content/uploads/image970.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb155.png" width="263" height="291" /></a> </li>
</ul>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Wenn diese Punkte schon mal erfüllt sind, kann es z.B. noch ein Problem mit Schreibrechten geben bzw. wenn die Anwendung unter einem speziellen Account läuft zu Problemen kommen.</p>
<ul>
<li>Hat der User unter dem die Anwendung läuft Schreib- &amp; Leserechte auf den Ordner. Siehe auch <a href="http://code-inside.de/blog/2010/04/29/iis6-fix/">hier</a>.</li>
<li>Ist der User unter dem die Anwendung läuft auch Mitglied der Windows Gruppe IIS_WPG (IIS6) bzw. IIS_IUSRS</li>
</ul>
<p>Wenn es nicht eine ganz exotische Anwendung ist, sollte diese spätestens nun auch laufen. Ansonsten lohnt ein Blick in den Windowslog. Wenn ich doch etwas vergessen habe, dann werde ich dies hier weiterführen <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+ASP.NET+Anwendungen+auf+IIS6%2F7+%26amp%3B+co.+zum+Laufen+bekommen&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F05%2F10%2Fhowto-asp-net-anwendungen-auf-iis67-co-zum-laufen-bekommen%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/hzdpzVVS_9w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/05/10/howto-asp-net-anwendungen-auf-iis67-co-zum-laufen-bekommen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/05/10/howto-asp-net-anwendungen-auf-iis67-co-zum-laufen-bekommen/</feedburner:origLink></item>
		<item>
		<title>eBook ASP.NET MVC 2 in Action</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/H1jHwZw22iI/</link>
		<comments>http://code-inside.de/blog/2010/05/05/ebook-asp-net-mvc-2-in-action/#comments</comments>
		<pubDate>Tue, 04 May 2010 23:11:24 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[eBook]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/05/05/ebook-asp-net-mvc-2-in-action/</guid>
		<description><![CDATA[ 
Die Autoren rund um das Buch “ASP.NET MVC 2 in Action”, darunter u.a. Jeffrey Palermo, haben das Manuscript auf GitHub für jeden einsehbar und herunterladebar zur Verfügung gestellt. Ab Ende Juli sollte es auch bei Amazon lieferbar sein. Wer das eBook sich so zulegen möchte um die Autoren zu unterstützen, der kann es auch [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "eBook ASP.NET MVC 2 in Action", url: "http://code-inside.de/blog/2010/05/05/ebook-asp-net-mvc-2-in-action/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image967.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb152.png" width="143" height="180" /></a> </p>
<p>Die Autoren rund um das Buch “ASP.NET MVC 2 in Action”, darunter u.a. Jeffrey Palermo, haben das Manuscript auf <a href="http://github.com/jeffreypalermo/mvc2inaction/tree/master/manuscript/">GitHub</a> für jeden einsehbar und herunterladebar zur Verfügung gestellt. Ab Ende Juli sollte es auch <a href="http://www.amazon.de/gp/product/193518279X?ie=UTF8&amp;tag=meinkleinerbl-21&amp;linkCode=as2&amp;camp=1638&amp;creative=19454&amp;creativeASIN=193518279X">bei Amazon</a> lieferbar sein. Wer das eBook sich so zulegen möchte um die Autoren zu unterstützen, der kann es <a href="http://manning.com/palermo2/">auch hier kaufen</a>.    <br /><a href="http://github.com/jeffreypalermo/mvc2inaction/tree/master/manuscript/"><strong>Zum Manuscript</strong></a>. Mehr Information auf <a href="http://jeffreypalermo.com/blog/read-all-of-asp-net-mvc-2-in-action-now-while-you-wait-for-the-printed-book/"><strong>Jeffrey Palermos Blog</strong></a>.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=eBook+ASP.NET+MVC+2+in+Action&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F05%2F05%2Febook-asp-net-mvc-2-in-action%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/H1jHwZw22iI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/05/05/ebook-asp-net-mvc-2-in-action/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/05/05/ebook-asp-net-mvc-2-in-action/</feedburner:origLink></item>
		<item>
		<title>Fix: “System.Xml.XmlException: An error occurred while parsing EntityName.”</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/-dsNWs066JQ/</link>
		<comments>http://code-inside.de/blog/2010/05/04/fix-system-xml-xmlexception-an-error-occurred-while-parsing-entityname/#comments</comments>
		<pubDate>Tue, 04 May 2010 22:48:46 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Fix]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Exception]]></category>
		<category><![CDATA[Xml]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/05/04/fix-system-xml-xmlexception-an-error-occurred-while-parsing-entityname/</guid>
		<description><![CDATA[ 
Ich hatte heute mit einem kleinen XML Problem zu kämpfen. Bei der Generierung des XMLs trat der oben genannte Fehler auf. Problemlösung in kurz: “&#38;”, “&#60;” &#38; “&#62;” maskieren wenn man InnerXml setzt oder “vollständiges” Xml Element setzen.
 
Problemfall:


    class Program
    {
       [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Fix: &#8220;System.Xml.XmlException: An error occurred while parsing EntityName.&#8221;", url: "http://code-inside.de/blog/2010/05/04/fix-system-xml-xmlexception-an-error-occurred-while-parsing-entityname/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image966.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb151.png" width="199" height="108" /></a> </p>
<p>Ich hatte heute mit einem kleinen XML Problem zu kämpfen. Bei der Generierung des XMLs trat der oben genannte Fehler auf. Problemlösung in kurz: “&amp;”, “&lt;” &amp; “&gt;” maskieren wenn man <a href="http://msdn.microsoft.com/de-de/library/system.xml.xmlelement.innerxml.aspx">InnerXml</a> setzt oder “vollständiges” Xml Element setzen.</p>
<p> <span id="more-2644"></span>
<p><strong>Problemfall:</strong></p>
<p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:69aa5c86-11b8-440b-b9b9-30673e674f2e" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">    class Program
    {
        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();
            XmlElement element = doc.CreateElement("element");
            element.InnerXml = "hello &amp; good bye";
        }
    }</pre>
</div>
<p>Dieser Code endet mit einer Exception. Entweder man setzt InnerText oder maskiert das “&amp;”. Das gleiche gilt auch für “&lt;” bzw. “&gt;” z.B. mit <a href="http://msdn.microsoft.com/de-de/library/system.web.httputility.htmlencode.aspx">HttpUtility.HtmlEncode</a>. Wenn man komplettes, valides XML reingibt funktioniert es auch:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:b65ad8f3-87d9-46d4-a119-7c3c2d9f3c11" class="wlWriterEditableSmartContent">
<pre name="code" class="c#">        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();
            XmlElement element = doc.CreateElement("element");
            element.InnerXml = "hello &lt;test&gt;&lt;/test&gt; good bye";
        }</pre>
</div>
<p>Eigentlich völlig logisch. Problematisch wird es nur wenn man z.B. HTML Markup wie “&lt;br/&gt;” und vom User eingegebene Texte (wo auch ein “&amp;” oder “&lt;” drin stehen könnte) auftauchen. Da die Fehlermeldung mir recht nichtsagend war, hab ich mir gedacht es zu bloggen. <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Fix%3A+%26ldquo%3BSystem.Xml.XmlException%3A+An+error+occurred+while+parsing+EntityName.%26rdquo%3B&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F05%2F04%2Ffix-system-xml-xmlexception-an-error-occurred-while-parsing-entityname%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/-dsNWs066JQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/05/04/fix-system-xml-xmlexception-an-error-occurred-while-parsing-entityname/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/05/04/fix-system-xml-xmlexception-an-error-occurred-while-parsing-entityname/</feedburner:origLink></item>
		<item>
		<title>Gratis eBook zum SQL Server 2008 R2</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/POHfm5KJAU4/</link>
		<comments>http://code-inside.de/blog/2010/05/04/gratis-ebook-zum-sql-server-2008-r2/#comments</comments>
		<pubDate>Tue, 04 May 2010 13:14:59 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[eBook]]></category>
		<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/05/04/gratis-ebook-zum-sql-server-2008-r2/</guid>
		<description><![CDATA[ 

Gerade auf dem MS Technet Blog gefunden: MS Press stellt das Buch “Introducing Microsoft SQL Server 2008 R2” kostenfrei zum Download (PDF) / (XPS) bereit. Haupthemen: Database Administration &#38; Business Intelligence Development    
 
Database Administration

SQL Server 2008 R2 Editions and Enhancements 
Multi-Server Administration 
Data-Tier Applications 
High Availability and Virtualization Enhancements 
Consoldidation [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Gratis eBook zum SQL Server 2008 R2", url: "http://code-inside.de/blog/2010/05/04/gratis-ebook-zum-sql-server-2008-r2/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image965.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb150.png" width="130" height="158" /></a> </p>
</p>
<p>Gerade auf dem <a href="http://blogs.technet.com/austria/archive/2010/05/04/sql-server-2008-r2-ebook.aspx">MS Technet Blog</a> gefunden: MS Press stellt das Buch “Introducing Microsoft SQL Server 2008 R2” kostenfrei <a href="http://go.microsoft.com/fwlink/?LinkId=189147">zum <strong>Download</strong> (PDF)</a> / (<a href="http://go.microsoft.com/fwlink/?LinkId=189148">XPS</a>) bereit. <strong>Haupthemen:</strong> Database Administration &amp; Business Intelligence Development    </p>
<p> <span id="more-2640"></span>
<p><strong>Database Administration</strong></p>
<ul>
<li>SQL Server 2008 R2 Editions and Enhancements </li>
<li>Multi-Server Administration </li>
<li>Data-Tier Applications </li>
<li>High Availability and Virtualization Enhancements </li>
<li>Consoldidation and Monitoring</li>
</ul>
<p><strong>Business Intelligence Development</strong></p>
<ul>
<li>Scalable Data Warehousing </li>
<li>Master Data Services </li>
<li>Complex Event Processing with StreamInsight </li>
<li>Reporting Services Enhancements </li>
<li>Self-Service Analysis with PowerPivot</li>
</ul>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Gratis+eBook+zum+SQL+Server+2008+R2&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F05%2F04%2Fgratis-ebook-zum-sql-server-2008-r2%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/POHfm5KJAU4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/05/04/gratis-ebook-zum-sql-server-2008-r2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/05/04/gratis-ebook-zum-sql-server-2008-r2/</feedburner:origLink></item>
		<item>
		<title>HowToCode: Null Problemo mit Null, Exceptions &amp; andere Rückgabetypen</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/xAkz_Ux0gbc/</link>
		<comments>http://code-inside.de/blog/2010/05/03/howtocode-null-problemo-mit-null-exceptions-andere-rckgabetypen/#comments</comments>
		<pubDate>Mon, 03 May 2010 22:18:21 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowToCode]]></category>
		<category><![CDATA[Null]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/05/03/howtocode-null-problemo-mit-null-exceptions-andere-rckgabetypen/</guid>
		<description><![CDATA[Die Null-Diskussion die Thomas Bandt begonnen hatte flaut langsam ab und ich möchte hier mal für mich die Hauptpunkte niederschrieben. Die Hauptfrage war: Ist es OK Null bei einer Methode zurückzugeben, wenn z.B. kein User mit der ID 5 existiert? Macht man es über Enums? Oder über Exceptions?
 
Beispiel: IUserRepository mit der Methode “GetUser(Guid id)”
Wir [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowToCode: Null Problemo mit Null, Exceptions &#38; andere R&#252;ckgabetypen", url: "http://code-inside.de/blog/2010/05/03/howtocode-null-problemo-mit-null-exceptions-andere-rckgabetypen/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image964.png"><img style="border-right-width: 0px; margin: 0px 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://code-inside.de/blog/wp-content/uploads/image_thumb149.png" width="110" height="121" /></a>Die Null-Diskussion die <a href="http://blog.thomasbandt.de/39/2333/de/blog/null-verstaendnis.html">Thomas Bandt begonnen</a> hatte flaut langsam ab und ich möchte hier mal für mich die Hauptpunkte niederschrieben. Die Hauptfrage war: Ist es OK Null bei einer Methode zurückzugeben, wenn z.B. kein User mit der ID 5 existiert? Macht man es über <a href="http://code-inside.de/blog/2009/02/06/howtocode-errorcodes-exceptions-den-user-informieren-wenn-etwas-schief-luft-wie-gehts/">Enums</a>? Oder über Exceptions?</p>
<p> <span id="more-2636"></span>
<p><strong>Beispiel: IUserRepository mit der Methode “GetUser(Guid id)”</strong></p>
<p>Wir stellen uns vor, wir hätten ein eines UserRepository was eine Get Methode besitzt, welche eine Guid als Parameter erwartet. </p>
<p><strong>Was passiert wenn kein Ergebnis gefunden wird?</strong></p>
<p><a href="http://blog.thomasbandt.de/39/2333/de/blog/null-verstaendnis.html">Thomas sein ursprünglicher Gedanke: Null</a>.     <br />Das Problem dabei: Man muss es prüfen und es wird nicht wirklich erwartet (einfach die vielen Kommentare lesen).</p>
<p>Jürgen Gutsch hat die vielen verstreuten Posts <a href="http://www.aspnetzone.de/blogs/juergengutsch/archive/2010/05/03/katastrophenfall-null.aspx">in einem Blogpost</a> mal zusammengefasst.</p>
<p><strong>Das was ich aus der Diskussion mitgenommen habe:</strong></p>
<ul>
<li>Im Normalfall niemals NULL zurückgegeben
<ul>
<li>Man erwartet es nicht und es gibt bessere Varianten </li>
</ul>
</li>
<li>Wenn ein Objekt erwartet wird:
<ul>
<li>bei einer “Get” Methode eine Exception werfen wenn das gewünschte nicht gefunden wurde </li>
<li>evtl. eine “Find” mit speziellen Rückgabetypen (ReturnCodes/bool/IResultWrapper) oder “TryXXX” Methode mit einem out Parameter anbieten.
<ul>
<li>Um die Lesbarkeit zu erhöhen hat sich <a href="http://ralfw.blogspot.com/2010/05/nullonade-monade-statt-null.html">Ralf ein paar Gedanken</a> gemacht </li>
</ul>
</li>
</ul>
</li>
<li>Wenn eine Collection erwartet wird:
<ul>
<li>Eine leere Collection zurückgeben </li>
</ul>
</li>
</ul>
<p>Wichtig ist, dass die API intuitiv zu benutzen ist. NULL ist IMHO nicht wirklich intuitiv. Ich seh die ganze Sache auch aus Webentwicklersicht – ein Geräteprogrammierer mag das völlig anders sehen.</p>
<p>My 2 cents <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowToCode%3A+Null+Problemo+mit+Null%2C+Exceptions+%26amp%3B+andere+R%26uuml%3Bckgabetypen&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F05%2F03%2Fhowtocode-null-problemo-mit-null-exceptions-andere-rckgabetypen%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/xAkz_Ux0gbc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/05/03/howtocode-null-problemo-mit-null-exceptions-andere-rckgabetypen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/05/03/howtocode-null-problemo-mit-null-exceptions-andere-rckgabetypen/</feedburner:origLink></item>
		<item>
		<title>Byebye ASP.NET AJAX Library, hello jQuery</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/x8wdqnH5x74/</link>
		<comments>http://code-inside.de/blog/2010/05/03/byebye-asp-net-ajax-library-hello-jquery/#comments</comments>
		<pubDate>Mon, 03 May 2010 06:57:17 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/05/03/byebye-asp-net-ajax-library-hello-jquery/</guid>
		<description><![CDATA[ Microsoft hat für ASP.NET als der AJAX Hype aufkam zwei wesentliche “Frameworks” entwickelt: Microsoft AJAX Library auf der Client Seite und das AJAX Control Toolkit teils server- aber auch clientseitig. Da die Frage auch in der MVP Mailingliste aufkam: Microsoft entwickelt die AJAX Client Library nicht weiter. Wer es weiterhin benutzen möchte, für den [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Byebye ASP.NET AJAX Library, hello jQuery", url: "http://code-inside.de/blog/2010/05/03/byebye-asp-net-ajax-library-hello-jquery/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image963.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb148.png" width="153" height="79" /></a> Microsoft hat für ASP.NET als der AJAX Hype aufkam zwei wesentliche “Frameworks” entwickelt: <a href="http://msdn.microsoft.com/library/bb398822.aspx">Microsoft AJAX Library</a> auf der Client Seite und das <a href="http://www.asp.net/(S(fu2l2uzphr2u3u45q2dnez55))/ajax/AjaxControlToolkit/Samples/">AJAX Control Toolkit</a> teils server- aber auch clientseitig. Da die Frage auch in der MVP Mailingliste aufkam: Microsoft entwickelt die AJAX Client Library nicht weiter. Wer es weiterhin benutzen möchte, für den ist es in dem <a href="http://www.asp.net/ajax/">AJAX Control Toolkit</a> enthalten. Neue Sachen, wie z.B. <a href="http://msdn.microsoft.com/en-us/magazine/cc546561.aspx">das Client Templating</a>, wird es in <a href="http://stephenwalther.com/blog/archive/2010/03/16/microsoft-jquery-and-templating.aspx">Zukunft in jQuery</a> geben.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Byebye+ASP.NET+AJAX+Library%2C+hello+jQuery&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F05%2F03%2Fbyebye-asp-net-ajax-library-hello-jquery%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/x8wdqnH5x74" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/05/03/byebye-asp-net-ajax-library-hello-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/05/03/byebye-asp-net-ajax-library-hello-jquery/</feedburner:origLink></item>
		<item>
		<title>Fix: “Microsoft.WebApplication.targets was not found.”</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/8K06dhVA9-0/</link>
		<comments>http://code-inside.de/blog/2010/04/29/fix-microsoft-webapplication-targets-was-not-found/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 21:43:08 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Fix]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[MSBuild]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[WebApplications]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/04/29/fix-microsoft-webapplication-targets-was-not-found/</guid>
		<description><![CDATA[Wer mit MSBuild Webapplikationen baut (z.B. im Zusammenhang mit dem TFS 2008/2010) kann u.U. folgende Fehlermeldung erhalten:    “The imported project C:\Program Files (x86) \MSBuild\Microsoft\VisualStudio\ v10.0\WebApplications\ Microsoft.WebApplication.targets was not found.”. Einfachste Problemlösung: Visual Studio 2010/2008 installieren.
 
Vor der .NET 4.0 Zeit: “The imported project &#34;C:\Program Files\MSBuild\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplication.targets&#34; was not found” 
Wer mit .NET 4.0 [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Fix: &#8220;Microsoft.WebApplication.targets was not found.&#8221;", url: "http://code-inside.de/blog/2010/04/29/fix-microsoft-webapplication-targets-was-not-found/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image962.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb147.png" width="174" height="157" /></a>Wer mit MSBuild Webapplikationen baut (z.B. im Zusammenhang mit dem TFS 2008/2010) kann u.U. folgende Fehlermeldung erhalten:    <br />“The imported project C:\Program Files (x86) \MSBuild\Microsoft\VisualStudio\ v10.0\WebApplications\ Microsoft.WebApplication.targets was not found.”. Einfachste Problemlösung: Visual Studio 2010/2008 installieren.</p>
<p> <span id="more-2622"></span>
<p><u>Vor der .NET 4.0 Zeit:</u> “The imported project &quot;C:\Program Files\MSBuild\Microsoft\VisualStudio\<strong>v8.0</strong>\WebApplications\Microsoft.WebApplication.targets&quot; was not found” </p>
<p><u>Wer mit .NET 4.0 baut:</u> “The imported project &quot;C:\Program Files\MSBuild\Microsoft\VisualStudio\<strong>v10.0</strong>\WebApplications\Microsoft.WebApplication.targets&quot; was not found”</p>
<p><strong>Einfachste Fehlerbehebung:</strong> Visual Studio auf dem Build Server installieren.</p>
<p><strong>Eine andere Variante:</strong> Einfach den WebApplications Ordner mit Inhalt (ein .target File + dll) kopieren. </p>
<p>Im Zusammenhang mit TeamCity ist mir dieser “Bug” <a href="http://code-inside.de/blog/2009/07/14/howto-teamcity-web-application-projects/">bereits aufgefallen</a>. Mit dem neuen TFS2010 hat sich das auch nicht geändert, daher der “nochmalige” Blogpost.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Fix%3A+%26ldquo%3BMicrosoft.WebApplication.targets+was+not+found.%26rdquo%3B&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F04%2F29%2Ffix-microsoft-webapplication-targets-was-not-found%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/8K06dhVA9-0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/04/29/fix-microsoft-webapplication-targets-was-not-found/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/04/29/fix-microsoft-webapplication-targets-was-not-found/</feedburner:origLink></item>
		<item>
		<title>Fix: Failed to execute request because the App-Domain could not be created. Error: 0×80070005 Access is denied</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/G_mn2Cz3uZc/</link>
		<comments>http://code-inside.de/blog/2010/04/29/iis6-fix/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 21:14:18 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Fix]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/04/29/iis6-fix/</guid>
		<description><![CDATA[ Auf einem Windows Server 2003 mit IIS6 bekam ich diese Fehlermeldung “Failed to execute request because the App-Domain could not be created. Error: 0&#215;80070005 Access is denied.”     Lösung: Die IIS_WPG Gruppe (welche IIS bezogene User umfasst) einfach Schreib- und Leserechte auf das Verzeichnis &#38; Unterverzeichnisse der Webanwendung geben.
<script type="text/javascript">SHARETHIS.addEntry({ title: "Fix: Failed to execute request because the App-Domain could not be created. Error: 0&#215;80070005 Access is denied", url: "http://code-inside.de/blog/2010/04/29/iis6-fix/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image961.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb146.png" width="187" height="141" /></a> Auf einem Windows Server 2003 mit IIS6 bekam ich diese Fehlermeldung “Failed to execute request because the App-Domain could not be created. Error: 0&#215;80070005 Access is denied.”     <br /><a href="http://www.eggheadcafe.com/software/aspnet/29612671/failed-to-execute-request.aspx">Lösung:</a> Die IIS_WPG Gruppe (welche IIS bezogene User umfasst) einfach Schreib- und Leserechte auf das Verzeichnis &amp; Unterverzeichnisse der Webanwendung geben.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Fix%3A+Failed+to+execute+request+because+the+App-Domain+could+not+be+created.+Error%3A+0%26%23215%3B80070005+Access+is+denied&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F04%2F29%2Fiis6-fix%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/G_mn2Cz3uZc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/04/29/iis6-fix/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/04/29/iis6-fix/</feedburner:origLink></item>
		<item>
		<title>HowTo: ASP.NET Entwicklung in VMWare &amp; iPhone Simulator auf einem Mac nutzen</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/1AiA5GBjLLI/</link>
		<comments>http://code-inside.de/blog/2010/04/29/howto-asp-net-per-vmware-iphone-simulator-auf-einem-mac-einrichten/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 23:39:21 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Fusion]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/04/29/howto-asp-net-per-vmware-iphone-simulator-auf-einem-mac-einrichten/</guid>
		<description><![CDATA[Wer einen Mac besitzt kann sich kostenlos beim Apple Developer Program registrieren und dort diverse iPhone Entwicklungs Tools runterladen. Darunter befindet sich auch ein iPhone/iPad Simulator, der wahrscheinlich mehr oder minder fast so agiert wie ein richtiges iPhone/iPad. Als ASP.NET Entwickler habe ich das Visual Studio in einer VM laufen – in meinem Fall: VMWare [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: ASP.NET Entwicklung in VMWare &#038; iPhone Simulator auf einem Mac nutzen", url: "http://code-inside.de/blog/2010/04/29/howto-asp-net-per-vmware-iphone-simulator-auf-einem-mac-einrichten/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image956.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb141.png" width="96" height="185" /></a>Wer einen Mac besitzt kann sich kostenlos beim <a href="http://developer.apple.com/">Apple Developer Program</a> registrieren und dort diverse iPhone Entwicklungs Tools runterladen. Darunter befindet sich auch ein iPhone/iPad Simulator, der wahrscheinlich mehr oder minder fast so agiert wie ein richtiges iPhone/iPad. Als ASP.NET Entwickler habe ich das Visual Studio in einer VM laufen – in meinem Fall: VMWare Fusion. Wie bekomm ich nun meine Webanwendung die in der VM gehostet ist auf das Host System?</p>
<p> <span id="more-2614"></span>
</p>
<p><strong>Vorbereitungen im IIS / Visual Studio</strong></p>
<p>Mein Demoprojekt habe ich nach <a href="http://code-inside.de/blog/2009/03/19/howto-iis7-als-development-server-im-visual-studio-2008-einrichten/">dieser (IIS als Entwicklungsserver nutzen)</a> &amp; <a href="http://code-inside.de/blog/2010/04/29/howto-net-4-0-asp-net-mvc-on-iis-7-5-pagehandlerfactory-integrated-has-a-bad-module-managedpipelinehandler/">dieser (.NET 4.0 &amp; IIS 7.5) Anleitung</a> konfiguriert – der Source Code entspricht dem Standard MVC Projekttyp.</p>
<p><strong>Windows Konfiguration</strong></p>
<p>Desweitern sollte man unbedingt die Windows Firewall ausschalten.</p>
<p><strong>VMWare Konfiguration</strong></p>
<p>Als letztes sollten die VMWare Netzwerkkonfigurationen auf “Bridged” gesetzt sein:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image957.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb142.png" width="438" height="286" /></a> </p>
<p>Das Theme VMWare Gast/Host System und Netzwerk ist <a href="http://communities.vmware.com/docs/DOC-2527">hier</a> ganz gut beschrieben.</p>
<p><strong>IPConfig /renew</strong></p>
<p>Nachdem das gemacht wurde empfiehlt es sich sich vom DHCP (die meisten Router haben per Default einen eingeschalteten DHCP) eine neue IP Adresse zu holen. Das ganze geht z.B. über den Kommandozeilenbefehl ipconfig/renew</p>
<p>Nun die aktuelle IP Adresse vom Windows auslesen und diese kann nun auch auf dem Mac in jegliche Browser eingegeben werden:</p>
<p>Egal ob im Chrome unter MacOSX:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image958.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb143.png" width="428" height="299" /></a> </p>
<p>Im iPhone Simulator:</p>
</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image959.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb144.png" width="137" height="244" /></a></p>
<p>Oder iPad: </p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image960.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb145.png" width="190" height="244" /></a> </p>
</p>
<p><strong>Debugging?</strong> </p>
<p>Geht auch. Breakpoints die in der VM gesetzt werden, werden angestoßen sobald man z.B. mit dem iPad Browser die Seite besucht.</p>
<p><strong>Erster Eindruck:</strong></p>
<p>Grundsätzlich funktioniert diese Konstellation. Ob es immer Angenehm ist zwischen VM und den Simulatoren hin- und herzuwechseln wage ich zu bezweifeln, aber am Ende wird dies “angenehmer” sein als ein komplettes Deployment durchzuführen. </p>
<p>Wer kein VMWare Fusion benutzt kann wahrscheinlich eine ähnliche Einstellung auch im Parallels treffen – beide Produkte scheinen sich ja so oder so sehr zu gleichen <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Den entscheidenen Tipp für den Brigded Mode fand ich auf <a href="http://dotnetaddict.dotnetdevelopersjournal.com/vmware_iis_fusion.htm">dieser Seite</a>.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+ASP.NET+Entwicklung+in+VMWare+%26%23038%3B+iPhone+Simulator+auf+einem+Mac+nutzen&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F04%2F29%2Fhowto-asp-net-per-vmware-iphone-simulator-auf-einem-mac-einrichten%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/1AiA5GBjLLI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/04/29/howto-asp-net-per-vmware-iphone-simulator-auf-einem-mac-einrichten/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/04/29/howto-asp-net-per-vmware-iphone-simulator-auf-einem-mac-einrichten/</feedburner:origLink></item>
		<item>
		<title>Fix: .NET 4.0 ASP.NET MVC on IIS 7.5 "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler"</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/fY72XpId09o/</link>
		<comments>http://code-inside.de/blog/2010/04/29/howto-net-4-0-asp-net-mvc-on-iis-7-5-pagehandlerfactory-integrated-has-a-bad-module-managedpipelinehandler/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 23:09:14 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Fix]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[.NET 4.0]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[IIS 7.5]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/04/29/howto-net-4-0-asp-net-mvc-on-iis-7-5-pagehandlerfactory-integrated-has-a-bad-module-managedpipelinehandler/</guid>
		<description><![CDATA[Wer .NET 4.0 und ASP.NET MVC (und wahrscheinlich viele weitere ASP.NET Beispiele/Frameworks) nutzen möchte, der muss eine kleine Sache beachten: Man muss .NET 4.0 am IIS installieren, ansonsten quittiert der IIS es mit&#160; engl. “Internal Server Error Handler &#34;PageHandlerFactory-Integrated&#34; has a bad module &#34;ManagedPipelineHandler&#34; in its module list”

 

“Der Handler &#34;PageHandlerFactory-Integrated&#34; weist das ungültige Modul [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Fix: .NET 4.0 ASP.NET MVC on IIS 7.5 &#34;PageHandlerFactory-Integrated&#34; has a bad module &#34;ManagedPipelineHandler&#34;", url: "http://code-inside.de/blog/2010/04/29/howto-net-4-0-asp-net-mvc-on-iis-7-5-pagehandlerfactory-integrated-has-a-bad-module-managedpipelinehandler/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image954.png"><img style="border-right-width: 0px; margin: 0px 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://code-inside.de/blog/wp-content/uploads/image_thumb139.png" width="244" height="104" /></a>Wer .NET 4.0 und ASP.NET MVC (und wahrscheinlich viele weitere ASP.NET Beispiele/Frameworks) nutzen möchte, der muss eine kleine Sache beachten: Man muss .NET 4.0 am IIS installieren, ansonsten quittiert der IIS es mit&#160; engl. “Internal Server Error Handler &quot;PageHandlerFactory-Integrated&quot; has a bad module &quot;ManagedPipelineHandler&quot; in its module list”</p>
</p>
<p> <span id="more-2603"></span>
</p>
<p><strong>“Der Handler &quot;PageHandlerFactory-Integrated&quot; weist das ungültige Modul &quot;ManagedPipelineHandler&quot; in der Modulliste auf.” (dt.)</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image955.png"><img style="border-right-width: 0px; margin: 0px 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://code-inside.de/blog/wp-content/uploads/image_thumb140.png" width="244" height="170" /></a> <strong>1.</strong> Sicherstellen dass die Website unter .NET 4.0 läuft (siehe z.B. Default Website –&gt; Erweiterte Einstellungen –&gt; schauen ob der <strong>ASP.NET v4.0 AppPool</strong> ausgewählt ist).</p>
<p><strong>2.</strong> In der <strong>CMD ASP.NET 4.0 installieren</strong>: </p>
<p><strong>Für 64bit:</strong></p>
<p>C:\Windows\Microsoft.NET\Framework64\v4.0.30128\aspnet_regiis.exe –ir</p>
<p><strong>Für 32bit:</strong></p>
<p>C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –ir</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Fix%3A+.NET+4.0+ASP.NET+MVC+on+IIS+7.5+%26quot%3BPageHandlerFactory-Integrated%26quot%3B+has+a+bad+module+%26quot%3BManagedPipelineHandler%26quot%3B&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F04%2F29%2Fhowto-net-4-0-asp-net-mvc-on-iis-7-5-pagehandlerfactory-integrated-has-a-bad-module-managedpipelinehandler%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/fY72XpId09o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/04/29/howto-net-4-0-asp-net-mvc-on-iis-7-5-pagehandlerfactory-integrated-has-a-bad-module-managedpipelinehandler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/04/29/howto-net-4-0-asp-net-mvc-on-iis-7-5-pagehandlerfactory-integrated-has-a-bad-module-managedpipelinehandler/</feedburner:origLink></item>
		<item>
		<title>HowTo: Einstieg in Branching &amp; Merging Strategien</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/VmiHdXtfH9A/</link>
		<comments>http://code-inside.de/blog/2010/04/27/howto-einstieg-in-branching-merging-strategien/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 22:13:57 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Branching]]></category>
		<category><![CDATA[Merging]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/04/27/howto-einstieg-in-branching-merging-strategien/</guid>
		<description><![CDATA[ Wer ein Source Control Management benutzt wird früher oder später an dem Punkt eines Releases kommen. Spätestens ab diesem Zeitpunkt muss man sich Gedanken machen, wie man den Quellcode nun am besten verwaltet. Branching &#38; Merging sind hier in dem Blogpost die Schlagwörter um die es gehen soll.
 
Grundbegriffserklärung: Branching?
Ein Branch (dt. Zweig) ist [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: Einstieg in Branching &#38; Merging Strategien", url: "http://code-inside.de/blog/2010/04/27/howto-einstieg-in-branching-merging-strategien/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image947.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb132.png" width="153" height="133" /></a> Wer ein <a href="http://en.wikipedia.org/wiki/Revision_control">Source Control Management</a> benutzt wird früher oder später an dem Punkt eines Releases kommen. Spätestens ab diesem Zeitpunkt muss man sich Gedanken machen, wie man den Quellcode nun am besten verwaltet. Branching &amp; Merging sind hier in dem Blogpost die Schlagwörter um die es gehen soll.</p>
<p> <span id="more-2598"></span>
<p><strong>Grundbegriffserklärung: Branching?</strong></p>
<p>Ein <a href="http://en.wikipedia.org/wiki/Branching_(software)">Branch</a> (dt. Zweig) ist eine quasi eine Kopie des IST Zustandes des Source Codes. So kann man z.B. 2 unterschiedliche “Entwicklungszweige” haben um verschiedene Sachen zu entwickeln – völlig voneinander losgelöst.</p>
<p><strong>Merging?</strong></p>
<p><a href="http://en.wikipedia.org/wiki/Merge_(revision_control)">Merging</a> ist genau die Umkehroperation des branchings. Wenn man aus einem Hauptzweig einen “Entwicklerzweig” abgespaltet hat, möchte man diesen auch irgendwann wieder in den Hauptzweig zurückführen. Diesen Vorgang nennt man mergen.</p>
<p><strong>Toolunterstützung</strong></p>
<p>Ich werde in diesem Blogpost nur die Theorie erklären, allerdings sind beide Vorgänge in mir jedem bekannten Source Control Management System irgendwie mit dabei. Das System kennt also die Verzweigungen. Dies ist wichtig damit das System beim Merging wieder unterstützt.</p>
<p>Ein guten Guide (besonders im Zusammenhang mit dem TFS) zum Thema Branching &amp; Merging befindet sich auf Codeplex.</p>
<p><strong>Branching Strategien: “Basic Branching”</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image948.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb133.png" width="525" height="199" /></a> </p>
</p>
<p>Das ist die simpelste Herangehensweise. Der Main-Pfad repräsentiert unser Hauptentwicklungszweig. Hierbei muss sichergestellt werden, dass man möglichst immer den Main-Zweig “stabil” lässt, sodass man theoretisch jederzeit ein neues Release rausgeben kann. Entwicklungsarbeiten würden nur im Development-Zweig gemacht. Am Ende einer Entwicklungsphase würde der Entwicklungszweig wieder in den Mainzweig “gemerged” und von dort aus wieder ein neuer Branch für einen neuen Release gezogen.</p>
<p><strong>Was erreichen wir dadurch?</strong></p>
<p>Man kann jedes Release nachvollziehen und die Entwicklung beeinträchtigt nicht den Mainzweig – was bei einem Hotfix z.B. wichtig wäre.</p>
<p><strong>“Standard Branch Plan”</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image949.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb134.png" width="515" height="236" /></a> </p>
<p>Dieses Vorgehensmodell könnte schon bei weniger komplexen Projekten ausreichen. Ziel ist es immer den Main Zweig absolut stabil zu halten.</p>
<p>Im Alltag wird man ein Entwicklungsprojekt X haben, welches nun z.B. in Version 1 released wurde. Nun gehen die Arbeiten für Version 1.5 im Entwicklungszweig gut voran, allerdings wurde ein Bug auf dem Live System gefunden. Direkt in dem Main Zweig den Bug zu finden und zu lösen kann Nebenwirkungen haben. Daher hat man noch einen “Service Pack” bzw. “Hotfix” Zweig. In diesem Zweig kann der Fehler gefunden werden und auch getestet werden. Wenn alles OK ist, kann man aus dem “Service Pack” bzw. “Hotfix” Zweig wieder nach Main mergen (also die Bugfixes nun auch im Main Zweig einchecken) und ein neues Release ausgeben.</p>
<p><strong>“Advanced Branch Plan”</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image950.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb135.png" width="513" height="288" /></a> </p>
</p>
</p>
<p>Hier wird noch zusätzlich ein direkter Hot Fix Zweig eingeführt. Dies kann man vielleicht ganz gut mit den Windows Service Packs und Hotfixes vergleichen. Kleinere Sachen werden in einem Hotfix Zweig gefixt. Der Hotfix wird dann weiter nach oben in den Service Pack Branch gemerged. Nachdem man einige Hotfixes gemacht hat kann man ein Service Pack rausgeben. In diversen Abständen sollten die Änderungen die im Service Pack Zweig sind natürlich auch wieder nach Main fliessen, damit man in der nächsten großen Version die alten Fehler nicht wieder drin hat.</p>
<p><strong>Der Development Zweig &#8211; “Branch per Feature”</strong></p>
<p>Diese drei Beispiele sind nur für die Produktivumgebungen wichtig gewesen. Für die Entwicklung kann man natürlich auch mehrere Entwicklungszweige anfangen. So kann man z.B. mehrere Entwicklungsteams getrennt voneinander arbeiten lassen oder man macht ein Branch für jedes Feature:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image951.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb136.png" width="525" height="278" /></a> </p>
<p>Jedes Entwicklungsteam kann für sich an einem Feature arbeiten. Nach einem gewissen Stand kann das Team auch für den Test einen eigenen Branch anlegen. </p>
<p>Egal wie komplex man es gestaltet. Der “Main” Zweig trennt die Entwicklung und das Produktivsystem. Man kann Änderungen die auf dem Produktivsystem gemacht wurden über den Hotfix –&gt; Service Pack –&gt; Main Zweig bis zu den diversen Development Branches durchreichen “Forward Integration” bzw. “Reverse Integration” sind hier die Stichwörter.</p>
<p><strong>Wie kann das z.B. im Source Control aussehen:</strong></p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image952.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://code-inside.de/blog/wp-content/uploads/image_thumb137.png" width="168" height="354" /></a> </p>
<p>Was vorher in den Bildchen schematisch erklärt wurde, kann im Explorer z.B. so aussehen. Dies ist in dem Fall der TFS Team Explorer. In der Version 2010 hat sich auch einiges in dem Gebiet getan. Als kleines Beispiel kann der TFS die Hierarchie sehr nett darstellen:</p>
<p><a href="http://code-inside.de/blog/wp-content/uploads/image953.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb138.png" width="282" height="217" /></a> </p>
<p><strong>Weitere Ressourcen:</strong></p>
<p>Alle Bilder stammen aus dem <a href="http://tfsbranchingguideiii.codeplex.com/">Visual Studio TFS 2010 Branching Guide</a> – allerdings trifft die pure Theorie genauso z.B. auf SVN zu.</p>
<p>Ich versuche die verschiedenen Sachen in den nächsten Blogposts direkt mal mit einem TFS Projekt zu zeigen. Das Thema ist sehr groß und nicht mit einem Blogpost zu erschlagen. Hier ging es mir nur um die aller gröbsten Basics.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+Einstieg+in+Branching+%26amp%3B+Merging+Strategien&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F04%2F27%2Fhowto-einstieg-in-branching-merging-strategien%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/VmiHdXtfH9A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/04/27/howto-einstieg-in-branching-merging-strategien/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/04/27/howto-einstieg-in-branching-merging-strategien/</feedburner:origLink></item>
		<item>
		<title>DDTV: Videos zu Silverlight 4 und dem SLARToolkit</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/3WF6Mq0NrT0/</link>
		<comments>http://code-inside.de/blog/2010/04/26/ddtv-videos-zu-silverlight-4-und-dem-slartoolkit/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 14:12:11 +0000</pubDate>
		<dc:creator>Oliver Guhr</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[.Net User Group]]></category>
		<category><![CDATA[Dresden]]></category>
		<category><![CDATA[Silverlight 4]]></category>
		<category><![CDATA[SLARToolkit]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/04/26/ddtv-videos-zu-silverlight-4-und-dem-slartoolkit/</guid>
		<description><![CDATA[ Wir hatten beim letzten Treffen der .Net User Group Dresden die Kamera dabei und haben die 2 sehr gelungenen Vorträge von Gregor Biswanger und René Schulte für alle aufgezeichnet die nicht dabei sein konnten. Viel Spaß 
 
Gregor Biswanger “Zurück in die Zukunft mit Silverlight 4”     


René Schulte “Silverlight Augmented [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "DDTV: Videos zu Silverlight 4 und dem SLARToolkit", url: "http://code-inside.de/blog/2010/04/26/ddtv-videos-zu-silverlight-4-und-dem-slartoolkit/" });</script>]]></description>
			<content:encoded><![CDATA[<p align="left"><a href="http://code-inside.de/blog/wp-content/uploads/dddotnetlogosmallsquare.png"><img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="dd-dotnet-logo-small-square" border="0" alt="dd-dotnet-logo-small-square" align="left" src="http://code-inside.de/blog/wp-content/uploads/dddotnetlogosmallsquare_thumb.png" width="125" height="125" /></a> Wir hatten beim letzten Treffen der <a href="http://dd-dotnet.de">.Net User Group Dresden</a> die Kamera dabei und haben die 2 sehr gelungenen Vorträge von <a href="http://twitter.com/BFreakout" target="_blank">Gregor Biswanger</a> und <a href="http://twitter.com/rschu" target="_blank">René Schulte</a> für alle aufgezeichnet die nicht dabei sein konnten. Viel Spaß </p>
<p> <span id="more-2573"></span>
<p align="left"><strong>Gregor Biswanger “Zurück in die Zukunft mit Silverlight 4”</strong>     </p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="325" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=10821459&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="325" src="http://vimeo.com/moogaloop.swf?clip_id=10821459&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
</p>
<h4><strong>René Schulte “Silverlight Augmented Reality Toolkit”</strong>     </p>
</h4>
<p> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="325" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=10604412&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="325" src="http://vimeo.com/moogaloop.swf?clip_id=10604412&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=DDTV%3A+Videos+zu+Silverlight+4+und+dem+SLARToolkit&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F04%2F26%2Fddtv-videos-zu-silverlight-4-und-dem-slartoolkit%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/3WF6Mq0NrT0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/04/26/ddtv-videos-zu-silverlight-4-und-dem-slartoolkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/04/26/ddtv-videos-zu-silverlight-4-und-dem-slartoolkit/</feedburner:origLink></item>
		<item>
		<title>Veranstaltungshinweis: TechTalk für WP7 &amp; WebCamp in München</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/XQAvIuAw5g0/</link>
		<comments>http://code-inside.de/blog/2010/04/21/veranstaltungshinweis-techtalk-fr-wp7-webcamp-in-mnchen/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 06:44:55 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/04/21/veranstaltungshinweis-techtalk-fr-wp7-webcamp-in-mnchen/</guid>
		<description><![CDATA[ Ein kleiner Veranstaltungshinweis für die Freunde von Silverlight oder Windows Phone 7: Es wird 5 TechTalks geben. Wem die &#8220;Microsoft WebPlatform&#8221; zusagt, der sollte vielleicht ein Blick auf das WebCamp in München werfen.

Techtalk
Frank Prengel und Oliver Scheer stellen in fünf Terminen die Entwicklung für das Windows Phone 7 vor:

7. Juni 2010; München
8. Juni 2010; [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Veranstaltungshinweis: TechTalk f&#252;r WP7 &#38; WebCamp in M&#252;nchen", url: "http://code-inside.de/blog/2010/04/21/veranstaltungshinweis-techtalk-fr-wp7-webcamp-in-mnchen/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image946.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="83" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb131.png" width="84" align="left" border="0"></a> Ein kleiner Veranstaltungshinweis für die Freunde von <a href="http://www.microsoft.com/germany/msdn/techtalk/WindowsPhone7.mspx">Silverlight oder Windows Phone 7</a>: Es wird 5 TechTalks geben. Wem die &#8220;Microsoft WebPlatform&#8221; zusagt, der sollte vielleicht ein Blick auf das <a href="http://www.webcamps.ms/#munich_panel">WebCamp in München</a> werfen.</p>
<p><span id="more-2567"></span>
<p><strong>Techtalk</strong></p>
<p>Frank Prengel und Oliver Scheer stellen in fünf Terminen die <a href="http://www.microsoft.com/germany/msdn/techtalk/WindowsPhone7.mspx">Entwicklung für das Windows Phone 7</a> vor:</p>
<ul>
<li>7. Juni 2010; München</li>
<li>8. Juni 2010; Köln</li>
<li>9. Juni 2010; Hamburg</li>
<li>10. Juni 2010; Berlin</li>
<li>15. Juni 2010; Karlsruhe</li>
</ul>
<p><strong>WebCamps &#8211; Make Web, Not War</strong></p>
<p>Das <a href="http://www.webcamps.ms/">WebCamp</a> dauert zwei Tage und soll die Microsoft Web Platform euch näher bringen. Das WebCamp Tour quer durch die Welt hält auch in <a href="http://www.webcamps.ms/#munich_panel"><strong>München</strong></a>. Sprecher (momentan) <a href="http://webcampsms.cloudapp.net/Speaker/jongalloway">Jon Galloway</a> &amp; <a href="http://webcampsms.cloudapp.net/Speaker/christianwenz">Christian Wenz</a>.</p>
<p><strong>Datum: 7. &#8211; 8. Juni<br />Preis: Kostenlos <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=Veranstaltungshinweis%3A+TechTalk+f%26uuml%3Br+WP7+%26amp%3B+WebCamp+in+M%26uuml%3Bnchen&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F04%2F21%2Fveranstaltungshinweis-techtalk-fr-wp7-webcamp-in-mnchen%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/XQAvIuAw5g0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/04/21/veranstaltungshinweis-techtalk-fr-wp7-webcamp-in-mnchen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/04/21/veranstaltungshinweis-techtalk-fr-wp7-webcamp-in-mnchen/</feedburner:origLink></item>
		<item>
		<title>HowTo: Scheduled Tasks mit "schtasks" lokal &amp; remote per Kommandozeile administrieren</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/YuX5cQa-Xo8/</link>
		<comments>http://code-inside.de/blog/2010/04/21/howto-scheduled-tasks-mit-schtasks-lokal-remote-per-kommandozeile-administrieren/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 05:55:30 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Deployment]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/04/21/howto-scheduled-tasks-mit-schtasks-lokal-remote-per-kommandozeile-administrieren/</guid>
		<description><![CDATA[In dem letzten HowTo ging es um Windows Services und sc.exe, diesmal wende ich mich den Scheduled Tasks zu.&#160; &#8220;schtasks&#8221; ist ein nettes Tool mit dem man lokal und remote Scheduled Tasks anlegen, löschen, abfragen und bearbeiten kann. 

schtasks
Hier mal der Syntax aus der MSDN für das Erstellen eines Tasks:


schtasks /Create
[/S system [/U username [/P [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: Scheduled Tasks mit &#34;schtasks&#34; lokal &#38; remote per Kommandozeile administrieren", url: "http://code-inside.de/blog/2010/04/21/howto-scheduled-tasks-mit-schtasks-lokal-remote-per-kommandozeile-administrieren/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image945.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="108" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb130.png" width="146" align="left" border="0"></a>In dem letzten HowTo ging es um <a href="http://code-inside.de/blog/2010/04/13/howto-windows-services-remote-installieren/">Windows Services und sc.exe,</a> diesmal wende ich mich den Scheduled Tasks zu.&nbsp; &#8220;<a href="http://msdn.microsoft.com/en-us/library/bb736357(VS.85).aspx">schtasks</a>&#8221; ist ein nettes Tool mit dem man lokal und remote Scheduled Tasks anlegen, löschen, abfragen und bearbeiten kann. </p>
<p><span id="more-2564"></span>
<p><strong>schtasks</strong></p>
<p>Hier mal der <a href="http://msdn.microsoft.com/en-us/library/bb736357(VS.85).aspx">Syntax aus der MSDN</a> für das Erstellen eines Tasks:</p>
<p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1c62f0db-3d55-4280-ab8e-a09ce980120e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">schtasks /Create
[/S system [/U username [/P [password]]]]
[/RU username [/RP [password]] /SC schedule [/MO modifier] [/D day]
[/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
[/RI interval] [ {/ET endtime | /DU duration} [/K]
[/XML xmlfile] [/V1]] [/SD startdate] [/ED enddate] [/IT] [/Z] [/F]</pre>
</div>
<p><strong>Anwendungsfall</strong></p>
<p>Wir benutzen eine Batch-Datei für das &#8220;installieren&#8221; einer neuen Version. Mit einem Klick werden <a href="http://code-inside.de/blog/2010/03/19/howto-home-directory-local-path-in-iis6-mit-adsutil-vbs-anpassen/">IIS 6 Websites</a>, <a href="http://code-inside.de/blog/2010/04/13/howto-windows-services-remote-installieren/">Windows Services</a> und nun auch Scheduled Tasks entsprechend angepasst. Für uns am interessantesten war der &#8220;TR&#8221; Parameter mit dem man den genauen Pfad des Programm angibt und der &#8220;change&#8221; Befehl.</p>
<p>Wenn wir eine neue Version gebaut haben und auf den Server kopiert haben haben wir z.B. folgende Ordnerstruktur:</p>
<p>C:\Projektname\1.0.0.0\WindowsService1\windowsservice1.exe<br />C:\Projektname\1.0.0.0\Website1\&#8230;aspx&#8230;<br />C:\Projektname\1.0.0.0\ScheduledTasks1\scheduledtask1.exe</p>
<p>Wenn jetzt Version 1.0.0.1 dazukommt legen wir diesen in den &#8220;Projektname&#8221; Ordner. Im Version 1.0.0.1 Ordner liegt dazu noch das Batchfile zum &#8220;scharf&#8221; schalten der Version &#8211; keine große Magie, aber praktisch und falls doch was schief geht ist die alte Version auch noch vorhanden <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+Scheduled+Tasks+mit+%26quot%3Bschtasks%26quot%3B+lokal+%26amp%3B+remote+per+Kommandozeile+administrieren&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F04%2F21%2Fhowto-scheduled-tasks-mit-schtasks-lokal-remote-per-kommandozeile-administrieren%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/YuX5cQa-Xo8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/04/21/howto-scheduled-tasks-mit-schtasks-lokal-remote-per-kommandozeile-administrieren/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/04/21/howto-scheduled-tasks-mit-schtasks-lokal-remote-per-kommandozeile-administrieren/</feedburner:origLink></item>
		<item>
		<title>HowTo: Windows Services remote installieren</title>
		<link>http://feedproxy.google.com/~r/Code-insideBlog/~3/IE3X1Q5XEoY/</link>
		<comments>http://code-inside.de/blog/2010/04/13/howto-windows-services-remote-installieren/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 23:05:47 +0000</pubDate>
		<dc:creator>Robert Mühsig</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://code-inside.de/blog/2010/04/13/howto-windows-services-remote-installieren/</guid>
		<description><![CDATA[ Windows Services (oder auf dt. &#8220;Dienste&#8221;) sind recht praktisch und ab und an besser als kleine Anwendungen die über den Scheduler gestartet werden. Allerdings gestaltet sich das Deployment eines Windows Services ein wenig komplizierter. Mit dem Windows Boardmittel &#8220;SC.exe&#8221; geht es aber sogar remote.

Service Control &#8211; sc.exe
Diese Anwendung befindet sich im System32 Verzeichnis von [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "HowTo: Windows Services remote installieren", url: "http://code-inside.de/blog/2010/04/13/howto-windows-services-remote-installieren/" });</script>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code-inside.de/blog/wp-content/uploads/image944.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="142" alt="image" src="http://code-inside.de/blog/wp-content/uploads/image_thumb129.png" width="198" align="left" border="0"></a> <a href="http://en.wikipedia.org/wiki/Windows_service">Windows Services</a> (oder auf dt. &#8220;Dienste&#8221;) sind recht praktisch und <a href="http://stackoverflow.com/questions/507674/scheduled-console-app-vs-windows-service-when-is-it-appropriate-to-use-each">ab und an besser als kleine Anwendungen die über den Scheduler</a> gestartet werden. Allerdings gestaltet sich das Deployment eines Windows Services ein wenig komplizierter. Mit dem Windows Boardmittel &#8220;<a href="http://technet.microsoft.com/en-us/library/bb490995.aspx">SC.exe</a>&#8221; geht es aber sogar remote.</p>
<p><span id="more-2561"></span>
<p><strong>Service Control &#8211; sc.exe</strong></p>
<p>Diese Anwendung befindet sich im System32 Verzeichnis von Windows (typischerweise: C:\Windows\System32\sc.exe) und scheint von Windows XP bis Windows 7 dabei zu sein.</p>
<p><strong>Was kann diese Tool?</strong></p>
<p>Mit purem Halbwissen (ich kenn das Tool jetzt 0,5 Tage <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) kann man Windows Service damit <a href="http://technet.microsoft.com/en-us/library/bb490995.aspx">verwalten</a> (anlegen, bearbeiten, löschen, starten, stoppen, abfragen&#8230;). Das ganze geht von der Kommandozeile und sogar <strong>remote</strong>.</p>
<p>z.B. um einen Dienst namens &#8220;NewService&#8221; auf dem Rechner &#8220;myserver&#8221; anzulegen:</p>
<p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:4ee554f6-42bd-4651-b379-ac7acdccb094" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">sc \\myserver create NewService binpath= c:\windows\system32\NewServ.exe </pre>
</div>
<p><strong>[SC] OpenSCManager FAILED 5: Access is denied.</strong></p>
<p>Wenn man der Zielrechner nicht in derselben Domäne ist oder die Credentials auf dem System anders sind, wird diesen Fehler bekommen. <a href="http://serverfault.com/questions/19382/why-sc-query-fails-from-one-machine-but-works-from-another">Abhilfe schafft ein &#8220;net use&#8221; vorher</a>:</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:0fcdf0dc-63ce-4686-8576-09bdde25aa9b" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">NET USE \\PRODSRV\IPC$ /USER:&lt;username you logon to PRODSRV with&gt; &lt;password you use on PRODSRV&gt;</pre>
</div>
<p><strong>Wofür brauch ich das?</strong></p>
<p>Im Zusammenhang mit unseren <a href="http://code-inside.de/blog/2010/03/19/howtocode-builddeploymentwtf-oder-auch-automatisierung-mit-msbuild/">Automatisierungsbestrebungen mit dem TFS und MSBuild</a> wollen wir auf unserer Entwicklungsplattform auch die Windows Services per Klick deployen &#8211; das ganze am besten auch noch einmal am Abend vollautomatisch -&gt; &#8220;Nightly Build &amp; Deploy&#8221;</p>
<p>Das NET USE und den SC Command werden im AfterBuild unseres MSBuild Scriptsausgeführt und dann wird der Dienst auf der Entwicklungsmaschine gestoppt, die neuen DLLs werden kopiert und wieder gestartet. Easy <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Powershell?</strong></p>
<p>Ich hab mich ehrlich gesagt bisher noch nicht an die Powershell rangewagt (bzw. sind solche &#8220;Admin&#8221; Aufgaben von mir täglich zu erledigen), aber wenn jemand spontan weiß, wie man das cool mit der Powershell machen kann, dann bin ich natürlich dafür ganz offen <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=3dc0f130-3c38-4ff7-addc-d62ab6c063ee&amp;title=HowTo%3A+Windows+Services+remote+installieren&amp;url=http%3A%2F%2Fcode-inside.de%2Fblog%2F2010%2F04%2F13%2Fhowto-windows-services-remote-installieren%2F">ShareThis</a></p><img src="http://feeds.feedburner.com/~r/Code-insideBlog/~4/IE3X1Q5XEoY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://code-inside.de/blog/2010/04/13/howto-windows-services-remote-installieren/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://code-inside.de/blog/2010/04/13/howto-windows-services-remote-installieren/</feedburner:origLink></item>
	</channel>
</rss>
