<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="da"><title type="html">Henrik W H</title><subtitle type="html">&lt;p&gt;ISV Developer Evangelist&lt;br&gt;
&amp;lt;Code is poetry/&amp;gt;&lt;/p&gt;
</subtitle><id>http://blogs.msdn.com/henrikwh/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/henrikwh/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-07-14T23:47:00Z</updated><entry><title>ScottGu kommer til Danmark 3. december!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/11/10/scottgu-kommer-til-danmark-3-december.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/11/10/scottgu-kommer-til-danmark-3-december.aspx</id><published>2009-11-10T16:29:00Z</published><updated>2009-11-10T16:29:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://weblogs.asp.net/scottgu/" mce_href="http://weblogs.asp.net/scottgu/"&gt;ScottGu&lt;/A&gt; svinger forbi Danmark den 3. december. Så du kan godt sætte kryds i kalenderen. Vi vil naturligvis finde en passende scene i københavnsområdet, hvor vi kan få Scott til at optræde. Vi regner med en hel dag, med &lt;A href="http://www.microsoftpdc.com/" mce_href="http://www.microsoftpdc.com"&gt;PDC&lt;/A&gt;-highlights, hvor Scott selvfølgelig er på, med de nyheder som han annoncerer på &lt;A href="http://www.microsoftpdc.com/" mce_href="http://www.microsoftpdc.com"&gt;PDC 17. til 19. november&lt;/A&gt;, suppleret med lokale talere.&lt;/P&gt;
&lt;P&gt;Derudover planlægger vi med nogle fokuserede roundtables med Scott, herunder et for ISVer.&lt;/P&gt;
&lt;P&gt;Sæt kryds ved dagen. Kender din chef ikke ScottGu, så meld dig syg allerede nu;-)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9920240" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author></entry><entry><title>Slut med PIA problemer i .NET 4.0</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/10/28/slut-med-pia-problemer-i-net-4-0.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/10/28/slut-med-pia-problemer-i-net-4-0.aspx</id><published>2009-10-28T13:01:40Z</published><updated>2009-10-28T13:01:40Z</updated><content type="html">&lt;p&gt;Med .NET 4.0 har du mulighed for at embedde PIA i din VSTO applikation. Det vil sige at du slipper for at skulle installere PIA sammen med din VSTO applikation. Før .NET 4.0 så en dis-assembly sådan ud:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/SlutmedPIA_847E/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/SlutmedPIA_847E/image_thumb_1.png" width="333" height="251" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Der bliver altså under References refereret til Microsoft.Office.Interop.Outlook (PIA). Med .NET 4.0 bliver interop-typerne embedded:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/SlutmedPIA_847E/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/SlutmedPIA_847E/image_thumb_3.png" width="310" height="429" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Microsoft.Office.Interop.Outlook (PIA) er ikke længere refereret til under references. Men alle de typer jeg bruger i applikationen er nu med som et namespace i OutlookAddin2.dll.&lt;/p&gt;  &lt;p&gt;For at muliggøre dette skal man vælge “Embed Interop Types” på en reference.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/SlutmedPIA_847E/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/SlutmedPIA_847E/image_thumb.png" width="327" height="344" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Du kan se en præsentation om samme emne på Channel 9. &lt;/p&gt; &lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="533" height="400"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_10_20.xap" /&gt; &lt;param name="initParams" value="deferredLoad=true,duration=0,m=http://mschnlnine.vo.llnwd.net/d1/ch9/0/8/3/5/7/4/104Episode25TypeEquivalence_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://channel9.msdn.com/App_Themes/default/vp09_10_20.xap, postid=475380" /&gt; &lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; &lt;/object&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9914050" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="VSTO" scheme="http://blogs.msdn.com/henrikwh/archive/tags/VSTO/default.aspx" /><category term=".NET 4.0" scheme="http://blogs.msdn.com/henrikwh/archive/tags/.NET+4.0/default.aspx" /></entry><entry><title>Parallel Task og nye debugging tools i VS2010</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/10/22/parallel-task-og-nye-debugging-tools-i-vs2010.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/10/22/parallel-task-og-nye-debugging-tools-i-vs2010.aspx</id><published>2009-10-22T18:07:00Z</published><updated>2009-10-22T18:07:00Z</updated><content type="html">&lt;p&gt;&lt;a href="http://www.danielmoth.com/Blog/"&gt;Daniel Moth&lt;/a&gt; har lavet en rigtig god præsentation af de nye Parallel Task debugging tools i Visual Studio 2010. Det er 21 minutter godt brugt!&lt;/p&gt; &lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="318" height="238"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_06_22.xap" /&gt; &lt;param name="initParams" value="m=http://ecn.channel9.msdn.com/o9/ch9/1/8/4/8/9/4/ParallelTasksVS2010_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/1/8/4/8/9/4/ParallelTasksVS2010_320_ch9.png, postid=473501" /&gt; &lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; &lt;/object&gt;  &lt;p&gt;Desuden kan jeg klart anbefale &lt;a href="http://www.danielmoth.com/Blog/2009/10/parallel-tasks-and-parallel-stacks.html"&gt;en af hans blogposts&lt;/a&gt;, hvor han fint kommer rundt om Studiet og Parallel.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909279" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="Parallel Extensions" scheme="http://blogs.msdn.com/henrikwh/archive/tags/Parallel+Extensions/default.aspx" /><category term=".NET 4.0" scheme="http://blogs.msdn.com/henrikwh/archive/tags/.NET+4.0/default.aspx" /></entry><entry><title>TechTalk med Juval Löwy om .NET Service Bus</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/10/20/techtalk-med-juval-l-wy-om-net-service-bus.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/10/20/techtalk-med-juval-l-wy-om-net-service-bus.aspx</id><published>2009-10-20T06:08:51Z</published><updated>2009-10-20T06:08:51Z</updated><content type="html">&lt;p&gt;Nu har du muligheden for at høre Juval Löwy snakke .NET Service Bus på en TechTalk i &lt;a href="http://www.microsoft.com/danmark/mdcc/default.mspx"&gt;Vedbæk&lt;/a&gt; 5. november. Hvis ikke du har stiftet bekendtskab med .NET Service Bus, så er dette en helt unik mulighed. Juval plejer at være meget præcis og have klare meninger om hvor og hvordan teknologier skal/kan anvendes.
&lt;/p&gt;&lt;p&gt;Her er teaseren:
&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;The .NET services bus is part of the new Microsoft Cloud Computing Windows Azure initiative, and arguably, it is the most accessible, ready to use, powerful, and needed piece. The service bus allows clients to connects to services across any machine, network, firewall, NAT, routers, load balancers, virtualization, IP and DNS as if they were part of the same local network, and doing all that without compromising on the programming model or security. The service bus also supports callbacks, event publishing, authentication and authorization and doing all that in a WCF-friendly manner. This session will present the service bus programming model, how to configure and administer service bus solutions, working with the dedicated relay bindings including the available communication modes, relying on authentication in the cloud for local services and the various authentication options, and how to provide for end-to-end security through the relay service. You will also see some advanced WCF programming techniques, original helper classes, productivity-enhancing utilities and tools, as well as discussion of design best practices and pitfalls.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Du tilmelder dig &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032429979&amp;amp;Culture=da-DK"&gt;her&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909679" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="Foredrag" scheme="http://blogs.msdn.com/henrikwh/archive/tags/Foredrag/default.aspx" /><category term="Azure" scheme="http://blogs.msdn.com/henrikwh/archive/tags/Azure/default.aspx" /></entry><entry><title>Managed Extensibility Framework</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/10/13/managed-extensibility-framework.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/10/13/managed-extensibility-framework.aspx</id><published>2009-10-13T18:09:56Z</published><updated>2009-10-13T18:09:56Z</updated><content type="html">&lt;p&gt;Jeg har gennem noget tid snakket og blogget en del om Managed Extensibility framework som kommer med .NET 4.0. Læs &lt;a href="http://blogs.msdn.com/henrikwh/archive/tags/MEF/default.aspx"&gt;mine blogposts om MEF&lt;/a&gt; for en gennemgang. &lt;/p&gt;  &lt;p&gt;Hvis du er den mere visuelle type og gerne vil se hjemmevideoen, så kan jeg se at &lt;a href="http://channel9.msdn.com/shows/10-4/10-4-Episode-26-Creating-Extensible-Applications-with-the-Managed-Extensibility-Framework/"&gt;Jason Olson har lavet et 0-4 show på Channel 9&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Det er en god introduktion til MEF, samt hele argumentation for MEF.&lt;/p&gt; &lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="318" height="238"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_06_22.xap" /&gt; &lt;param name="initParams" value="m=http://mschnlnine.vo.llnwd.net/d1/ch9/7/7/7/7/7/4/104Episode26ManagedExtensibilityFramework_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://mschnlnine.vo.llnwd.net/d1/ch9/7/7/7/7/7/4/104Episode26ManagedExtensibilityFramework_large_ch9.png, postid=477777" /&gt; &lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; &lt;/object&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9906754" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="MEF" scheme="http://blogs.msdn.com/henrikwh/archive/tags/MEF/default.aspx" /><category term=".NET 4.0" scheme="http://blogs.msdn.com/henrikwh/archive/tags/.NET+4.0/default.aspx" /></entry><entry><title>Prøv Office online nu!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/10/12/pr-v-office-online-nu.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/10/12/pr-v-office-online-nu.aspx</id><published>2009-10-12T20:40:00Z</published><updated>2009-10-12T20:40:00Z</updated><content type="html">&lt;P&gt;Jeg har netop fået adgang! At der er blevet åbnet op for at alle kan få adgang er gået forbi næsen på mig. Office online blev demoet på PDC 2008 i keynoten. &lt;A href="http://channel9.msdn.com/pdc2008/KYN02/" mce_href="http://channel9.msdn.com/pdc2008/KYN02/"&gt;Du kan se keynoten og demoen her&lt;/A&gt; (134 minutter inde i keynoten).&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Du får adgang ved at gå ind på dit &lt;A href="http://skydrive.live.com/" mce_href="http://skydrive.live.com/"&gt;skydrive&lt;/A&gt; og upload en Excel eller Powerpoint fil – der er endnu ikke support for Word. Når du så er logget ind, så skal du skrifte sproget til Engelsk:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/PrveOfficeonlinenu_AE89/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/PrveOfficeonlinenu_AE89/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/PrveOfficeonlinenu_AE89/image_thumb_1.png" width=597 height=172 mce_src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/PrveOfficeonlinenu_AE89/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Derefter vil du blive spurgt om du vil deltage i tech preview. Efterfølgende har du mulighed for at redigere de uploadede dokumenter, direkte fra browseren. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/PrveOfficeonlinenu_AE89/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/PrveOfficeonlinenu_AE89/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/PrveOfficeonlinenu_AE89/image_thumb_2.png" width=588 height=213 mce_src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/PrveOfficeonlinenu_AE89/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Desuden kan der være flere der editere dokumentet på samme tid! Prøv at dele dokumenter i skydrive, og så lad andre redigere i dokumentet samtidig med dig. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9905344" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author></entry><entry><title>VSTS 2010 Historical debugger</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/10/10/vs2010-historical-debugger.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/10/10/vs2010-historical-debugger.aspx</id><published>2009-10-10T17:04:59Z</published><updated>2009-10-10T17:04:59Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/briankel/archive/2009/07/22/10-4-episode-28-an-introduction-to-the-historical-debugger.aspx"&gt;Brian Keller&lt;/a&gt; giver en god introduktion til den nye Historical debugger i VSTS 2010. Kort sagt, så giver den mulighed for at “step-back” i programeksekveringen. For at gå lige til demoen skal du 4:30 ind i videoen.&lt;/p&gt;  &lt;p&gt;&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="320" height="240"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_06_22.xap" /&gt; &lt;param name="initParams" value="m=http://mschnlnine.vo.llnwd.net/d1/ch9/4/1/2/0/8/4/104Episode28AnIntroductionToTheHistoricalDebugger_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://mschnlnine.vo.llnwd.net/d1/ch9/4/1/2/0/8/4/104Episode28AnIntroductionToTheHistoricalDebugger_large_ch9.png, postid=480214" /&gt; &lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; &lt;/object&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9905760" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="VS 2010" scheme="http://blogs.msdn.com/henrikwh/archive/tags/VS+2010/default.aspx" /></entry><entry><title>PDC09 facebookgruppe</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/09/22/pdc09-facebookgruppe.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/09/22/pdc09-facebookgruppe.aspx</id><published>2009-09-22T16:47:00Z</published><updated>2009-09-22T16:47:00Z</updated><content type="html">&lt;P&gt;Skal&amp;nbsp;du på &lt;A href="http://blogs.msdn.com/controlpanel/blogs/www.microsoftpdc.com" mce_href="http://blogs.msdn.com/controlpanel/blogs/www.microsoftpdc.com"&gt;PDC&lt;/A&gt;, eller vil du bare gerne følge med i hvad vi oplever på PDC 09? Så er muligheden for at følge med og netværke på facebookgruppen &lt;A href="http://www.facebook.com/groups/edit.php?success=1&amp;amp;customize&amp;amp;gid=29220635019" mce_href="http://www.facebook.com/groups/edit.php?success=1&amp;amp;customize&amp;amp;gid=29220635019"&gt;Danskere til PDC 2009&lt;/A&gt;. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9898007" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author></entry><entry><title>Har du meldt din ISV applikation klar til Windows 7/Windows Server 2008 R2?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/09/09/har-du-meldt-din-isv-applikation-klar-til-windows-7-windows-server-2008-r2.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/09/09/har-du-meldt-din-isv-applikation-klar-til-windows-7-windows-server-2008-r2.aspx</id><published>2009-09-09T13:45:17Z</published><updated>2009-09-09T13:45:17Z</updated><content type="html">&lt;p&gt;Om godt en måned bliver der åbnet op for almindelig tilgængelighed for Windows 7 og Windows Server 2008 R2.
&lt;/p&gt;&lt;p&gt;Et af de absolut vigtigste succeskritierer for jeres og vores kunder er applikationskompatabilitet. Kunder der vælger at opgradere, skal kunne afvikle de programmer der er indkøbt.
&lt;/p&gt;&lt;p&gt;For at hjælpe vores og jeres kunder,  introducerer vi &lt;a href="http://www.microsoft.com/windows/compatibility/"&gt;en portal&lt;/a&gt;, som vi også havde til Vista, med oplysninger om hvilke applikationer der er kompatible med Windows 7. 
&lt;/p&gt;&lt;p&gt;For at få jeres applikation med på denne liste skal i give "grønt lys" for jeres applikation. Det gør i ved at registerer jeres applikation på &lt;a href="http://www.isvappcompat.com"&gt;AppCompat sitet&lt;/a&gt;. Du skal opgive produktnavn, versions nummer, operativsystem der er understøttet, samt hvilke sprog der er understøttet. Det tager 3—5 minutter at registerer sig.
&lt;/p&gt;&lt;p&gt;Jeg opfordre til IKKE at være for sent ude, med at give et synligt grønt lys, så alle kan se, at jeres applikation kører på næste generation af Windows. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9893027" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="ISV" scheme="http://blogs.msdn.com/henrikwh/archive/tags/ISV/default.aspx" /></entry><entry><title>ASP.NET MVC XSLT viewengine</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/08/12/en-xslt-viewengine.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/08/12/en-xslt-viewengine.aspx</id><published>2009-08-12T10:07:01Z</published><updated>2009-08-12T10:07:01Z</updated><content type="html">&lt;p&gt;Der er en masse forskellige viewengines, som man kan vælge at bruge, i stedet for standard webformviewengine’en. I MVCContrib ligger der bl.a. NVelocity, Brail, NHaml, XSLT. Jeg syntes XSLT lød semifornuftigt, så den har jeg kigget lidt på, men har ikke kunne finde noget dokumentation/eksempler. Så hvad gør man, man forsøger at skrive en selv. Det viser sig at være ret nemt, eftersom parseren allerede er skrevet for os. &lt;/p&gt;  &lt;p&gt;Dsuden giver det ret god mening i min optik med en XSLTViewengine, eftersom man ofte har brug for at formattere og præsentere data, som modtages i XML.&lt;/p&gt;  &lt;p&gt;Lad os gå lige til essensen, controlleren.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XsltViewEngine &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;VirtualPathProviderViewEngine
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;public &lt;/span&gt;XsltViewEngine(&lt;span style="color: blue"&gt;string &lt;/span&gt;xsltHome)
    {
        &lt;span style="color: green"&gt;//sæt stierne, så controlleren ved hvor viewet kan findes
        &lt;/span&gt;ViewLocationFormats = &lt;span style="color: blue"&gt;new&lt;/span&gt;[] { 
            xsltHome + &lt;span style="color: #a31515"&gt;&amp;quot;{1}/{0}.xslt&amp;quot;&lt;/span&gt;, 
            xsltHome + &lt;span style="color: #a31515"&gt;&amp;quot;Shared/{0}.xslt&amp;quot; &lt;/span&gt;};
        PartialViewLocationFormats = ViewLocationFormats;
    }
    &lt;span style="color: green"&gt;//den helt overordnede metode til at &amp;quot;rendere&amp;quot; et view
    &lt;/span&gt;&lt;span style="color: blue"&gt;protected override &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IView &lt;/span&gt;CreateView(&lt;span style="color: #2b91af"&gt;ControllerContext &lt;/span&gt;controllerContext, 
        &lt;span style="color: blue"&gt;string &lt;/span&gt;viewPath, &lt;span style="color: blue"&gt;string &lt;/span&gt;masterPath)
    {
        &lt;span style="color: blue"&gt;return new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XsltTransformView&lt;/span&gt;() { ViewPath = viewPath };
    }
    &lt;span style="color: blue"&gt;protected override &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IView &lt;/span&gt;CreatePartialView(&lt;span style="color: #2b91af"&gt;ControllerContext &lt;/span&gt;controllerContext, 
        &lt;span style="color: blue"&gt;string &lt;/span&gt;partialPath)
    {
        &lt;span style="color: blue"&gt;throw new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;NotImplementedException&lt;/span&gt;();
    }
    &lt;span style="color: green"&gt;//lav tranformationen  
    &lt;/span&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XsltTransformView &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;IView
    &lt;/span&gt;{
        &lt;span style="color: blue"&gt;public string &lt;/span&gt;ViewPath { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }
        &lt;span style="color: blue"&gt;public void &lt;/span&gt;Render(&lt;span style="color: #2b91af"&gt;ViewContext &lt;/span&gt;viewContext, System.IO.&lt;span style="color: #2b91af"&gt;TextWriter &lt;/span&gt;writer)
        {
            &lt;span style="color: #2b91af"&gt;XsltArgumentList &lt;/span&gt;xslArg = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XsltArgumentList&lt;/span&gt;();
            &lt;span style="color: green"&gt;//tilføj alt ViewData til XsltArgumentList, så de kan bruges fra XSLT.
            &lt;/span&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue"&gt;var &lt;/span&gt;item &lt;span style="color: blue"&gt;in &lt;/span&gt;viewContext.ViewData)
            {
                xslArg.AddParam(item.Key, &lt;span style="color: #a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, item.Value);
            }
            &lt;span style="color: green"&gt;//lav XSLT transformationen
            &lt;/span&gt;&lt;span style="color: blue"&gt;var &lt;/span&gt;doc = &lt;span style="color: #2b91af"&gt;XDocument&lt;/span&gt;.Parse(viewContext.ViewData.Model.ToString());
            &lt;span style="color: blue"&gt;var &lt;/span&gt;path = viewContext.HttpContext.Server.MapPath(ViewPath);
            &lt;span style="color: blue"&gt;var &lt;/span&gt;xslt = &lt;span style="color: #2b91af"&gt;XDocument&lt;/span&gt;.Load(path);
            &lt;span style="color: blue"&gt;var &lt;/span&gt;transformer = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XslCompiledTransform&lt;/span&gt;(&lt;span style="color: blue"&gt;true&lt;/span&gt;);
            transformer.Load(xslt.CreateReader());
            transformer.Transform(doc.CreateReader(), xslArg, writer);
        }
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;For at kunne bruge min viewengine skal den registreres i Global.asax:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;protected void &lt;/span&gt;Application_Start()
{
    &lt;span style="color: #2b91af"&gt;ViewEngines&lt;/span&gt;.Engines.Clear();
    &lt;span style="color: #2b91af"&gt;ViewEngines&lt;/span&gt;.Engines.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WebFormViewEngine&lt;/span&gt;());
    &lt;span style="color: #2b91af"&gt;ViewEngines&lt;/span&gt;.Engines.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XsltViewEngine&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;~/Views/&amp;quot;&lt;/span&gt;));
    RegisterRoutes(&lt;span style="color: #2b91af"&gt;RouteTable&lt;/span&gt;.Routes);
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Det er faktisk det. Så er jeg klar til at bruge min viewengine. Se følgende controller:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DemoController &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;Controller
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ActionResult &lt;/span&gt;Index()
    {
        ViewData.Model = &lt;span style="color: #2b91af"&gt;XDocument&lt;/span&gt;.Load(Server.MapPath(&lt;span style="color: #a31515"&gt;&amp;quot;Web.sitemap&amp;quot;&lt;/span&gt;));
        ViewData[&lt;span style="color: #a31515"&gt;&amp;quot;header&amp;quot;&lt;/span&gt;]= &lt;span style="color: #a31515"&gt;&amp;quot;XSLT viewengine&amp;quot;&lt;/span&gt;;
        &lt;span style="color: blue"&gt;return &lt;/span&gt;View();
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Jeg kan nu i min View folder, lave en underfolder der hedder Demo, der matcher min DemoController, og i denne ligger jeg en Index.xslt.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/EnXSLTviewengine_6DE9/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/EnXSLTviewengine_6DE9/image_thumb_1.png" width="165" height="334" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Fordi det view der nu skal renderes, matcher det mønster jeg instantierede i constructoren på min controller (&lt;span style="color: #a31515"&gt;&amp;quot;..{1}/{0}.xslt&amp;quot;&lt;/span&gt;), så vil min viewengine blive valgt til renderingen.&lt;/p&gt;

&lt;p&gt;Mit view (Index.xslt) ud som følgende:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515"&gt;xml &lt;/span&gt;&lt;span style="color: red"&gt;version&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;?&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:stylesheet &lt;/span&gt;&lt;span style="color: red"&gt;version&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;xmlns:xsl&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;http://www.w3.org/1999/XSL/Transform&lt;/span&gt;&amp;quot;
    &lt;span style="color: red"&gt;xmlns:msxsl&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;urn:schemas-microsoft-com:xslt&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;exclude-result-prefixes&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;msxsl&lt;/span&gt;&amp;quot;
&lt;span style="color: blue"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:output &lt;/span&gt;&lt;span style="color: red"&gt;method&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;html&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;omit-xml-declaration&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;yes&lt;/span&gt;&amp;quot;  &lt;span style="color: red"&gt;indent&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;yes&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;&amp;quot; &lt;span style="color: blue"&gt;/&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:param &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;header&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:param&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
  
  &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:template &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;renderSiteMapEntry&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:variable &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;depth&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;select&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;count(ancestor::node())-2&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:variable&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:variable &lt;/span&gt;&lt;span style="color: red"&gt;name &lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;url&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;select&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;@url&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;td &lt;/span&gt;&lt;span style="color: red"&gt;style&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;text-indent: {$depth*10}px&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;a &lt;/span&gt;&lt;span style="color: red"&gt;href&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;{$url}&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;
          &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:value-of &lt;/span&gt;&lt;span style="color: red"&gt;select&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;@title&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;a&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
  &amp;lt;/&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:template&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;

  &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:template &lt;/span&gt;&lt;span style="color: red"&gt;match&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;/&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:if &lt;/span&gt;&lt;span style="color: red"&gt;test&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$header !=''&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:value-of &lt;/span&gt;&lt;span style="color: red"&gt;select&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$header&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:if&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:for-each  &lt;/span&gt;&lt;span style="color: red"&gt;select&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;//siteMapNode&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;table&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:call-template  &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;renderSiteMapEntry&lt;/span&gt;&amp;quot;  &lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;/&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:call-template&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;table&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:for-each&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:template&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #2b91af"&gt;xsl:stylesheet&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Bemærk at jeg bruger xsl:param, til at føre ViewData over med. I dette tilfælde bruger jeg parameteren header.&lt;/p&gt;

&lt;p&gt;En anden pointe er, at du selvfølgelig kan bruge denne XSLT viewengine, fra andre views. Se nu f.eks. dette “webform” view &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;Content &lt;/span&gt;&lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;indexContent&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;ContentPlaceHolderID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;MainContent&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&amp;gt;
    &lt;/span&gt;&lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;= &lt;/span&gt;Html.ActionLink(&lt;span style="color: #a31515"&gt;&amp;quot;SiteMap&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Demo&amp;quot;&lt;/span&gt;) &lt;span style="background: #ffee62"&gt;%&amp;gt;
&lt;/span&gt;    &lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt; Html.RenderAction&amp;lt;&lt;span style="color: #2b91af"&gt;DemoController&lt;/span&gt;&amp;gt;( a =&amp;gt; a.Index()  ); &lt;span style="background: #ffee62"&gt;%&amp;gt;
&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;asp&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;Content&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Med Html.RenderAction kan man kalde actions på andre controllere. Ovenstående resulterer i, at min sitemap bliver indsat inline. Html.RenderAction kommer med &lt;a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471"&gt;ASP.NET MVC Futures&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9865704" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="ASP.NET MVC" scheme="http://blogs.msdn.com/henrikwh/archive/tags/ASP.NET+MVC/default.aspx" /></entry><entry><title>ASP.NET MVC har også ramt mig</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/08/10/asp-net-mvc-har-ogs-ramt-mig.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/08/10/asp-net-mvc-har-ogs-ramt-mig.aspx</id><published>2009-08-10T13:45:12Z</published><updated>2009-08-10T13:45:12Z</updated><content type="html">&lt;p&gt;Det har holdt hårdt for mig at komme igang med at kigge på &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC.&lt;/a&gt; Hvorfor? Tjaaa. For 5 år siden startede jeg på .NET og dermed også ASP.NET. Jeg kom fra J2EE og &lt;a href="http://struts.apache.org/"&gt;Struts&lt;/a&gt; 1.1 (MVC). &lt;/p&gt;  &lt;p&gt;Jeg blev meget hurtigt betaget af, hvad jeg kunne nå at udrette med ASP.NET programmeringsmodellen og at jeg hurtigt kunne få det til at se nogenlunde professionelt ud. Det var ren Nirvana. Og ja, jeg kunne leve med pagelife cycle, view state, control state, &lt;em&gt;lidt &lt;/em&gt;drag &amp;amp; drop programmering, begrænset kontrol over HTML output mm. &lt;/p&gt;  &lt;p&gt;Men nu kommer MVC altså tilbage og bider mig bag i. Og ja, jeg kan godt se at det er pænt, rent, testbart, SEO venligere, har bedre speration of concern, ingen viewstate eller tilstand, udvidbart etc.&lt;/p&gt;  &lt;p&gt;Det første, måske det eneste, der slår mig er Viewet. Uden hjælp fra Javascript eller JQuery, så føler man sig tilbage til ASP eller JSP. Jeg savner den hurtige udvikling med ASP.NET, specielt UserControls. Prøv bare at sætte dig ned og lav et GridView, med paging, sortering, styling, samt CRUD features. Et optimistisk gæt fra min side ville være en uge – og ja, gå bare amok med JQuery/javascript.&amp;#160; &lt;/p&gt;  &lt;p&gt;Jeg tror man skal være meget klar i spyttet når man vælger webprogrammeringsmodel. Der er for og imod begge valg. Nogle overvejelser kunne være:&lt;/p&gt;  &lt;p&gt;Hvornår skal man vælge ASP.NET?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;RAD – Man får hurtigt lavet prototyper&lt;/li&gt;    &lt;li&gt;Datadrevne line of business applikationer er hurtige at lave&lt;/li&gt;    &lt;li&gt;Maksimal genbrug af kompetencer fra rige applikationer&lt;/li&gt;    &lt;li&gt;Rige kontroller&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hvornår skal man vælge ASP.NET MVC?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Hvis du kører TDD, så er MVC mere oplagt&lt;/li&gt;    &lt;li&gt;Hvis du vil have fuld kontrol over HTML&lt;/li&gt;    &lt;li&gt;Hvis du skal have søgemaskinevenlige URLs&lt;/li&gt;    &lt;li&gt;Hvis du allerede er bekendt med MVC, og måske har erfaring med andre viewengines ((N)Velocity, NHaml, Brail, og sikkert mange flere) &lt;/li&gt;    &lt;li&gt;Hvis du ikke har javascriptfobi/kompetence, som mig, så får du det, før projektet er omme&lt;/li&gt;    &lt;li&gt;Jeg tror på nemmere og billigere vedligeholdelse i ASP.NET MVC projekter. Spørgsmålet er hvor lang levetid forventer du af webapplikationen?&lt;/li&gt;    &lt;li&gt;I store projekter hvor man måske har UI folk med, som kan HTML, CSS,javascript og måske JQuery på fingerspidserne, er det rimelig oplagt&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Måske kan jeg blive medicineret for min javascriptfobi?&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9863079" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="ASP.NET" scheme="http://blogs.msdn.com/henrikwh/archive/tags/ASP.NET/default.aspx" /><category term="ASP.NET MVC" scheme="http://blogs.msdn.com/henrikwh/archive/tags/ASP.NET+MVC/default.aspx" /></entry><entry><title>Så ligger Windows 7 på MSDN</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/08/06/s-ligger-windows-7-p-msdn.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/08/06/s-ligger-windows-7-p-msdn.aspx</id><published>2009-08-06T20:49:36Z</published><updated>2009-08-06T20:49:36Z</updated><content type="html">&lt;p&gt;God fornøjelse ;-)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9859430" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author></entry><entry><title>SQL Azure og Entity Framework 4.0</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/08/01/sql-azure-f-rste-kig.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/08/01/sql-azure-f-rste-kig.aspx</id><published>2009-08-01T16:47:00Z</published><updated>2009-08-01T16:47:00Z</updated><content type="html">&lt;P&gt;Endelig har jeg fået mit token så jeg kan komme igang med SQL Azure. På SQL &lt;A href="http://blogs.msdn.com/ssds/archive/2009/07/12/9830818.aspx" mce_href="http://blogs.msdn.com/ssds/archive/2009/07/12/9830818.aspx"&gt;Azure bloggen&lt;/A&gt; skriver de hvilke features der er tilstede. Umiddelbart skulle features tilsvare SQL Express.&lt;/P&gt;
&lt;P&gt;Helt oplagt er det at køre Entity Frameworket 4.0 mod SQL Azure. Både Studiet og SQL Server Management Studio er ikke blevet opdateret så der er ordentlig undersøttlse for SQL Azure. Men det kan sagtens lade sig gøre. Her er hvad der skal til for at få hul igennem:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Lav din entity model i VS2010. Vælg “Empty model”, istedet for “Generate from database”. &lt;/LI&gt;
&lt;LI&gt;Når du har lavet en model, så højreklikker du på designeren og vælger ”Generate Datebase Script from Model”. &lt;/LI&gt;
&lt;LI&gt;Det kommer der så noget DDL ud af, som ikke er helt klar til SQL Azure 
&lt;OL&gt;
&lt;LI&gt;Udkommenter/slet følgende linier lige i starten af scriptet: &lt;BR&gt;SET ANSI_NULLS ON; &lt;BR&gt;GO &lt;BR&gt;USE [DitDatabaseNavn] &lt;/LI&gt;
&lt;LI&gt;Lave en søg og erstat på &lt;BR&gt;ON [PRIMARY] &lt;BR&gt;erstart med følgende linie for at udkommentere&amp;nbsp; &lt;BR&gt;--ON [PRIMARY]&lt;/LI&gt;
&lt;LI&gt;Dette kunne man automatisere med T4 templates eller MSBuild – formentlig en meget midlertidig løsning indtil det kommer fra produktgruppen.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;
&lt;LI&gt;Den DDL kan nu afvikles fra SQLCMD.exe mod SQL Azure eller fra SQL Server Management Studio (SMS). For at connecte til SQL Azure fra SMS skal du gøre følgende: 
&lt;OL&gt;
&lt;LI&gt;Når du starter SMS, skal du ikke connecte til nogen database. &lt;/LI&gt;
&lt;LI&gt;Tryk på “New Query” &lt;/LI&gt;
&lt;LI&gt;Udfyld connection data, som får fra Azure Management portalen, hvor du allerede har oprettet/navngivet databasen. &lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_thumb.png" width=356 height=272 mce_src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_thumb.png"&gt;&lt;/A&gt; &lt;BR&gt;Under “Options&amp;gt;&amp;gt;” skal du have databasenavnet med: &lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_thumb_1.png" width=321 height=184 mce_src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;Når du så trykker “Connect” får du formentlig en fejl: &lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_thumb_2.png" width=411 height=101 mce_src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/AzureSQLfrstekig_1176B/image_thumb_2.png"&gt;&lt;/A&gt; &lt;BR&gt;Den kan du se bort fra. Tryk ok. &lt;BR&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;
&lt;LI&gt;Du kan nu køre den DLL du har rettet til, i Query Editoren i SMS. &lt;/LI&gt;
&lt;LI&gt;Så skal du bare have din connectionstring ind i app.config/web.config:&amp;nbsp; &lt;BR&gt;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;connectionStrings&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;add &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;Model1Container&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;connectionString&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string&lt;STRONG&gt;&lt;EM&gt;=&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;SPAN style="COLOR: red"&gt;&amp;amp;quot;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Server=tcp:a9avwfj86x.ctp.database.windows.net;Database=DINDATABASE;User ID=DITBRUGERNAVN;Password=DITPASSWORD;Trusted_Connection=False;&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;&amp;amp;quot;&lt;/SPAN&gt;"&lt;/EM&gt;&lt;/STRONG&gt; &lt;SPAN style="COLOR: red"&gt;providerName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;System.Data.EntityClient&lt;/SPAN&gt;" &lt;SPAN style="COLOR: blue"&gt;/&amp;gt; &lt;BR&gt;&lt;/SPAN&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Så er du køreklar ;-) &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Nu skal der testes lidt mere, men der er hul igennem med EF 4.0.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9854651" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author></entry><entry><title>WPF Wikipedia Explorer</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/07/21/wpf-wikipedia-explorer.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/07/21/wpf-wikipedia-explorer.aspx</id><published>2009-07-21T13:21:41Z</published><updated>2009-07-21T13:21:41Z</updated><content type="html">&lt;p&gt;Jeg faldt lige over denne WPF &lt;a href="http://www.dotnetsolutions.ltd.uk/evidence/wikiexplorer/"&gt;Wikipedia Explorer&lt;/a&gt; og reader. Super lækker! ClickOnce deployed på Azure, data ligger i Azure storage. Du installerer den &lt;a href="http://wikipediaexplorer.blob.core.windows.net/wpf/WikipediaExplorer/publish.htm"&gt;her&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Wikipedia databasen, som man kan få et dump af, fylder rigtig meget og ville tage &lt;a href="http://www.dotnetsolutions.ltd.uk/evidence/wikiexplorer"&gt;4-6 måneder at konvertere&lt;/a&gt; til XML/XAML med “en maskine”. Her har man brugt Azure i et 50 instans setup til at konvertere, og gjorde det på godt 4 dage. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/WPFWikipediaExplorer_AAFE/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/henrikwh/WindowsLiveWriter/WPFWikipediaExplorer_AAFE/image_thumb.png" width="755" height="527" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9843220" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/henrikwh/archive/tags/WPF/default.aspx" /><category term="ClickOnce" scheme="http://blogs.msdn.com/henrikwh/archive/tags/ClickOnce/default.aspx" /><category term="Azure" scheme="http://blogs.msdn.com/henrikwh/archive/tags/Azure/default.aspx" /></entry><entry><title>Azure prismodel</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/henrikwh/archive/2009/07/14/azure-prismodel.aspx" /><id>http://blogs.msdn.com/henrikwh/archive/2009/07/14/azure-prismodel.aspx</id><published>2009-07-15T00:47:00Z</published><updated>2009-07-15T00:47:00Z</updated><content type="html">&lt;P&gt;Så er prismodellen for Azure klar i US. Vi mangler dog stadig lokale priser. Prisen kan variere for forskellige datacentre grundet forskellige omkostningsstrukturer i forskellige regioner. Der kommer tre prismodeller: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Consumption: Denne model er designet til elasticitet – betal kun for det du bruger. &lt;/LI&gt;
&lt;LI&gt;Subscription: Fast pris, uanset forbrug. &lt;/LI&gt;
&lt;LI&gt;Volume licensing, har man allerede en EA, så kan man købe over denne. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Comsumption modellen er den der er blevet snakket mest om. Jeg har hørt, at man vil arbejde på subscription de næste måneder, frem mod &lt;A href="http://www.microsoftpdc.com/" mce_href="http://www.microsoftpdc.com/"&gt;PDC&lt;/A&gt;, fordi man antager at mange kunder gerne vil have "flatrate". &lt;/P&gt;
&lt;P&gt;Men prismodellen for Consumption er annonceret og ser ud som følgende: &lt;/P&gt;
&lt;UL style="MARGIN-LEFT: 37pt"&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Windows Azure: &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Compute = $0.12 / hour &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Storage = $0.15 / GB stored &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Storage Transactions = $0.01 / 10K &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Bandwidth = $0.10 in / $0.15 out / GB &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;SQL Azure: Price for value, differentiated with scale, auto high availability, &amp;amp; self-provisioning. &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Web Edition – Up to 1 GB relational database = $9.99 &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Business Edition – Up to 10 GB relational database = $99.99 &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Bandwidth = $0.10 in / $0.15 out / GB &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;.Net Services: &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Messages = $0.15/100K message operations – this includes Access Control tokens and reliable queuing &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Bandwidth = $0.10 in / $0.15 out / GB &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;BR&gt;Windows Azure Compute koster først når du har valgt at gå i produktion med din applikation. Du betaler altså ikke noget for applikationer der er i test (det er et indbygget stageing miljø i Azure, hvor du altså har adgang til et testmiljø og et produktionsmiljø). &lt;/P&gt;
&lt;P&gt;Windows Azure storage er beregnet over et månedligt gennemsnit. Så hvis du uploader 30 GB og har data at ligge en dag, så vil det koste $0.15. &lt;/P&gt;
&lt;P&gt;Båndbredde afregnes også over en 30 dages periode. Datatrafik internt i datacenteret er gratis. &lt;/P&gt;
&lt;P&gt;På SQL Azure kan man vælge en Web eller en Business Edition. De detaljer jeg har kunne finde om disse er: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Web Edition DB: includes &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Up to 1 GB of T-SQL based relational database &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Self-managed DB, auto high availability and backup &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Auto Scale with pay-as-you grow &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Additional features in the future like auto-partition, CLR, fanouts etc.. &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;&lt;EM&gt;Best suited for ISVs packaged LOB apps, Departmental custom apps &lt;/EM&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Business Edition DB includes &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Up to 10 GB of T-SQL based relational database &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Self-managed DB, auto high availability and backup &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;Auto Scale, Pay-as- you grow &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Segoe UI; FONT-SIZE: 10pt"&gt;&lt;EM&gt;Best suited for custom Web applications &lt;/EM&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Det vil blive lavet en TCO Cost calculator så man kan estimere hvad omkostningerne vil blive på Azure, med consumption. Men værktøjet er her ikke endnu, så du må finde kuglerammen frem;-) &lt;/P&gt;
&lt;P&gt;Det er de oplysninger jeg har nu. Hvis jeg skulle blive klogere selvfølgelig nok få en update.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update 19/07: Læs det samme og mere &lt;A href="http://www.microsoft.com/azure/pricing.mspx" mce_href="http://www.microsoft.com/azure/pricing.mspx"&gt;her&lt;/A&gt;.&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9833562" width="1" height="1"&gt;</content><author><name>henrikwh</name><uri>http://blogs.msdn.com/members/henrikwh.aspx</uri></author><category term="Azure" scheme="http://blogs.msdn.com/henrikwh/archive/tags/Azure/default.aspx" /></entry></feed>