<?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="sv-SE"><title type="html">Robert Folkesson</title><subtitle type="html">Roses are &lt;font style='color:#FF3333'&gt;#FF0000&lt;/font&gt;, &lt;br&gt;
Violets are &lt;font style='color:#00C'&gt;#0000FF&lt;/font&gt;,  &lt;br&gt;
All my base are &lt;br&gt; belong to you.</subtitle><id>http://blogs.msdn.com/robf/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/robf/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-09-23T21:44:09Z</updated><entry><title>Augmented reality på PDC09</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/11/23/augmented-reality-p-pdc09.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/11/23/augmented-reality-p-pdc09.aspx</id><published>2009-11-23T12:58:36Z</published><updated>2009-11-23T12:58:36Z</updated><content type="html">&lt;br /&gt;  &lt;br /&gt;&lt;iframe height="300" src="http://91.189.45.77/robs/PDC09/augmentedreality/Default.html" frameborder="0" width="512"&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;&lt;/iframe&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9927238" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="PDC" scheme="http://blogs.msdn.com/robf/archive/tags/PDC/default.aspx" /></entry><entry><title>Huvudet i molnet</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/11/23/huvudet-i-molnet.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/11/23/huvudet-i-molnet.aspx</id><published>2009-11-23T09:43:16Z</published><updated>2009-11-23T09:43:16Z</updated><content type="html">&lt;p&gt;I utställararean på PDC hade Azure-teamet ställt en av de containrar som normalt står i &lt;a href="http://news.cnet.com/8301-13860_3-10371840-56.html?tag=newsLeadStoriesArea.1" target="_blank"&gt;ett av Microsofts nya datacenter&lt;/a&gt; och som innehåller ett par tusen rackmonterade servrar.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/Huvudetimolnetftternapjorden_CB7A/AzureContainer_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="AzureContainer" border="0" alt="AzureContainer" align="right" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/Huvudetimolnetftternapjorden_CB7A/AzureContainer_thumb.png" width="244" height="138" /&gt;&lt;/a&gt; Jag och Bjö&lt;a href="http://bjorneriksen.blogspot.com/" target="_blank"&gt;rn Eriksen från Connecta&lt;/a&gt; tog chansen att känna på hur molnet känns &lt;em&gt;inifrån&lt;/em&gt; – när kylningen slår på i full effekt:&lt;/p&gt; &lt;iframe height="300" src="http://91.189.45.77/robs/PDC09/inutiazure/Default.html" frameborder="0" width="512"&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;&lt;/iframe&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9927178" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="Azure" scheme="http://blogs.msdn.com/robf/archive/tags/Azure/default.aspx" /><category term="PDC" scheme="http://blogs.msdn.com/robf/archive/tags/PDC/default.aspx" /></entry><entry><title>Nyheter från PDC 2009</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/11/19/nyheter-fr-n-pdc-2009.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/11/19/nyheter-fr-n-pdc-2009.aspx</id><published>2009-11-19T18:51:00Z</published><updated>2009-11-19T18:51:00Z</updated><content type="html">&lt;P&gt;Under Professional Developer Conference i&amp;nbsp;&lt;STRONG&gt;Los Angeles&lt;/STRONG&gt;&amp;nbsp;har en mängd nyheter presenterats, här är ett urval av godbitarna:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/windowsazure/" target=_blank mce_href="http://www.microsoft.com/windowsazure/"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 0px 4px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=windows-azure-platform-headline border=0 alt=windows-azure-platform-headline align=right src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/windows-azure-platform-headline_3.gif" width=423 height=54 mce_src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/windows-azure-platform-headline_3.gif"&gt;&lt;/A&gt; MIcrosofts chefarkitekt &lt;A href="http://microsoftpdc.com/Sessions/Key01" target=_blank mce_href="http://microsoftpdc.com/Sessions/Key01"&gt;Ray Ozzie talade om hur Windows Azure har utvecklats sedan förra PDC:n&lt;/A&gt; och använde begreppet: “three screens and a cloud” för att beskriva hur PC:n, mobilen och de nya smarta apparater som vi har i hemmen (t.ex. TV m XBox 360) kommer att utnyttja tjänster i molnet i framtiden. “Three screens and a cloud” är ett begrepp som jag tror vi kommer få höra fler gånger i samband med Microsofts vision för Software + Services med olika typer av klienter och molnbaserade tjänster. &lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Bland nyheterna i &lt;A href="http://www.microsoft.com/windowsazure/" target=_blank mce_href="http://www.microsoft.com/windowsazure/"&gt;Windows Azure&lt;/A&gt; annonserades stöd för inte bara Java och PHP, utan också MySQL, Apache, Memcached och MediaWiki (som är plattformen Wikipedia körs på). Matt Mullenweg, grundade&amp;nbsp; av Wordpress, introducerade en demo som visade hur Wordpress kördes i Azure. &lt;A href="http://www.microsoft.com/windowsazure/interop/" target=_blank mce_href="http://www.microsoft.com/windowsazure/interop/"&gt;Ett antal färdiga ‘acceleratorer’ finns tillgängliga&lt;/A&gt; för att bygga lösningar med bl.a. MySQL, Apache och MediaWiki. &lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Windows Azure får också stöd för flera olika storlekar på virtuella maskiner: Small, Medium, Large och XLarge, där XLarge är en maskin med åtta processorer, 14GB minne och hög IO. &lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://pinpoint.microsoft.com/en-US/default.aspx" target=_blank mce_href="http://pinpoint.microsoft.com/en-US/default.aspx"&gt;Microsoft Pinpoint är en ny katalogtjänst&lt;/A&gt; som kopplar ihop utvecklare och leverantörer med kunder som har behov av produkter eller tjänster. &lt;A href="http://pinpoint.microsoft.com/en-US/default.aspx" target=_blank mce_href="http://pinpoint.microsoft.com/en-US/default.aspx"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 5px 10px 0px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=logo border=0 alt=logo align=left src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/logo_43c86297-a7c0-434a-8ee5-5a12a4b36e67.gif" width=260 height=51 mce_src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/logo_43c86297-a7c0-434a-8ee5-5a12a4b36e67.gif"&gt;&lt;/A&gt;En del av Pinpoint är något som än så länge går under &lt;A href="http://pinpoint.microsoft.com/en-US/Dallas" target=_blank mce_href="http://pinpoint.microsoft.com/en-US/Dallas"&gt;kodnamnet “Dallas”&lt;/A&gt; – som enklast kan beskrivas som ett sätt att prenumerera på datakällor, där data kan komma från t.ex. nyhetsbyråer, myndigheter eller finansanalysföretag. &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&lt;A href="http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx"&gt;Windows Server AppFabric&lt;/A&gt; annonserades. Lokalt installerad är AppFabric är en sammanslagning av det som tidigare hette “Dublin” och den distribuerade cachefunktionen&amp;nbsp; “Velocity”.&amp;nbsp; Det innebär att AppFabric erbjuder en körmiljö för WCF-tjänster och WF-arbetsflöden samt tillgång till en distribuerad cache för webbapplikationer. Allt administreras via ett gränssnitt som jackar in i IIS Manager. &lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;AppFabric är också en del av Windows Azure. Den del av Windows Azure som tidigare hette .NET Services, som innehåller en Service Bus och Access Control-del, har nu rullats in i något som heter &lt;A href="http://www.microsoft.com/windowsazure/dotnetservices/" target=_blank mce_href="http://www.microsoft.com/windowsazure/dotnetservices/"&gt;Windows Azure platform AppFabric&lt;/A&gt;. Det här är ett stort steg mot Microsofts vision om hur vi i framtiden bygger modelldrivna applikationer.&amp;nbsp; Modellerna beskriver &lt;EM&gt;vad&lt;/EM&gt; applikationen ska göra, snarare än exakt &lt;EM&gt;hur&lt;/EM&gt; den utför arbetet – det är upp till den aktuella miljön som applikationen körs i. I ett demo visades hur en modell av en applikation skapades, packades ihop och driftsattes i AppFabric med hjälp av VS 2010. Applikationen flyttades sedan till Windows Azure AppFabric och kunde också övervakas med System Center som övervakade lösningen och kunde ge förslag att skala ut lösningen med fler virtuella servrar i takt med att lasten ökade.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Under dag 2 annonserade Scott Guthrie att &lt;A href="http://silverlight.net/getstarted/silverlight-4-beta/" target=_blank mce_href="http://silverlight.net/getstarted/silverlight-4-beta/"&gt;Silverlight 4 Beta 1 finns tillgänglig&lt;/A&gt;, bara fyra månader efter att vi släppte Silverlight 3. Silverlight 4 innehåller mängder av ny funktionalitet – här är ett urval av godsaker: Print Support, Implicit Styling, WebCam/Microphone Support, RichTextArea Control, Right-Mouse Button Events, Drag-n-Drop/Clipboard Access, UDP/Multicast. En personlig favorit är stöd för Commands som gör det enklare att använda &lt;A href="http://blogs.msdn.com/robf/archive/2009/01/13/model-view-viewmodel.aspx" target=_blank mce_href="http://blogs.msdn.com/robf/archive/2009/01/13/model-view-viewmodel.aspx"&gt;MVVM-mönster&lt;/A&gt;. En annan sak som är riktigt riktigt cool är att du nu kan ge Silverlight applikationer Full trust vilket möjliggör att du t.ex. kan komma åt lokala filsystemet, plocka upp att hårdvara kopplats in – men också att du via COM kan integrera med t.ex. Outlook, Excel - eller vilken annan applikation som helst på maskinen som exponerar COM-interface. Missa inte kolla in &lt;A href="http://microsoftpdc.com/" target=_blank mce_href="http://microsoftpdc.com/"&gt;Scott Guthries keynote från dag 2&lt;/A&gt;(publiceras inom kort). En ny version av &lt;A href="http://silverlight.net/getstarted/riaservices/" target=_blank mce_href="http://silverlight.net/getstarted/riaservices/"&gt;WCF RIA Services&lt;/A&gt; (tidigare .NET RIA Services) annonserades också. &lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/Datafeeds64_2.png" mce_href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/Datafeeds64_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 5px 0px 5px 5px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=Datafeeds64 border=0 alt=Datafeeds64 align=right src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/Datafeeds64_thumb.png" width=68 height=68 mce_src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/Datafeeds64_thumb.png"&gt;&lt;/A&gt;Under dag 2 annonserades också publik tillgänglighet av &lt;A href="http://www.microsoft.com/office/2010/" target=_blank mce_href="http://www.microsoft.com/office/2010/"&gt;Office 2010 Beta&lt;/A&gt; och &lt;A href="http://sharepoint2010.microsoft.com/" target=_blank mce_href="http://sharepoint2010.microsoft.com/"&gt;Sharepoint Server 2010 Beta&lt;/A&gt;. Sharepoint 2010 innehåller ett ton förbättringar och nyheter för utvecklare. &lt;A href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/Logo_MSFTOffice2010_187x54_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/Logo_MSFTOffice2010_187x54_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 10px 10px 5px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=Logo_MSFTOffice2010_187x54 border=0 alt=Logo_MSFTOffice2010_187x54 align=left src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/Logo_MSFTOffice2010_187x54_thumb.jpg" width=207 height=86 mce_src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/PDCdag1ochdag2_A93E/Logo_MSFTOffice2010_187x54_thumb.jpg"&gt;&lt;/A&gt;Du kan nu köra Sharepoint server på en vanlig utvecklarmaskin och har möjlighet att debugga din kod direkt i VS 2010, utan att behöva lägga över ett paket på en testserver och göra attach mot en process på servern. Sharepoint designer är helt omarbetad och du har nu möjlighet att bygga egna anpassade Ribbon-kontroller i gränssnittet. En av de saker som jag tycker är riktigt cool i Sharepoint 2010 och Office 2010 är stödet för &lt;A href="http://www.odata.org/" target=_blank mce_href="http://www.odata.org/"&gt;Open Data-protokollet&lt;/A&gt;, eller ‘OData’ som det kallas för. Med hjälp av OData kan all data som finns i Sharepoint 2010 enkelt exponeras via REST-baserade tjänster som klienter, t.ex. Excel 2010 via&amp;nbsp; PowerPivot, kan anropa och använda sig av. Funktionalitet för att hantera OData finns nu också inbyggd i &lt;A href="http://msdn.microsoft.com/en-us/data/bb931106.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/data/bb931106.aspx"&gt;WCF Data Services&lt;/A&gt; (tidigare ADO.NET Data Services). &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Det har annonserats mängder med mer godsaker för utvecklare – stay tuned för mer tekniska djupdykningar i olika tekniker. Om du har möjlighet så &lt;A href="http://pdc2009afterparty.eventbrite.com/" target=_blank mce_href="http://pdc2009afterparty.eventbrite.com/"&gt;missa inte heller PDC 2009 Afterparty&lt;/A&gt; som arrangeras nu på onsdag 25/11 i Stockholm - där Johan Hedberg från Logica, Joakim Karlsson (Microsoft Consulting Services), Dag König och jag själv väljer några favoritämnen från PDC 2009 som vi talar om. &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9925656" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/robf/archive/tags/SharePoint/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/robf/archive/tags/Silverlight/default.aspx" /><category term="Arkitektur" scheme="http://blogs.msdn.com/robf/archive/tags/Arkitektur/default.aspx" /><category term=".NET" scheme="http://blogs.msdn.com/robf/archive/tags/.NET/default.aspx" /><category term="Office" scheme="http://blogs.msdn.com/robf/archive/tags/Office/default.aspx" /><category term="Azure" scheme="http://blogs.msdn.com/robf/archive/tags/Azure/default.aspx" /><category term="PDC" scheme="http://blogs.msdn.com/robf/archive/tags/PDC/default.aspx" /></entry><entry><title>Scott Guthrie kommer till Sverige!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/11/12/scott-guthrie-kommer-till-sverige.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/11/12/scott-guthrie-kommer-till-sverige.aspx</id><published>2009-11-12T08:53:00Z</published><updated>2009-11-12T08:53:00Z</updated><content type="html">&lt;P&gt;&lt;B&gt;Den 2 december kommer Scott Guthrie till Stockholm.&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Det är en unik chans för dig att få möjlighet att lyssna till en 5 timmar (!) lång föreläsning av mannen bakom ASP.NET. &lt;BR&gt;Håll utkik efter din inbjudan, men boka redan nu den 2 december för Scott Guthrie. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;UPDATE&lt;/STRONG&gt;: &lt;A href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032433666&amp;amp;culture=sv-SE" target=_blank mce_href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032433666&amp;amp;culture=sv-SE"&gt;Registrera dig för seminariet med&amp;nbsp;Scott Guthrie&amp;nbsp;i Stockholm&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Uppdaterar bloggen asap med klockslag, plats och länk till inbjudan – tills dess: håll tillgodo med &lt;A href="http://channel9.msdn.com/posts/Dan/Behind-the-scenes-How-Scott-Guthrie-prepares-for-his-MIX09-keynote/" target=_blank mce_href="http://channel9.msdn.com/posts/Dan/Behind-the-scenes-How-Scott-Guthrie-prepares-for-his-MIX09-keynote/"&gt;en video som visar hur The Gu förbereder sina sessioner&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921250" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author></entry><entry><title>Nya utvecklarkurser om SharePoint 2010 och Office 2010 på Channel9</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/11/10/nya-utvecklarkurser-om-sharepoint-2010-och-office-2010-p-channel9.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/11/10/nya-utvecklarkurser-om-sharepoint-2010-och-office-2010-p-channel9.aspx</id><published>2009-11-10T08:27:37Z</published><updated>2009-11-10T08:27:37Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/NyautvecklarkurseromSharePoint2010ochOff_84FD/CH9TrainingCourses_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="CH9TrainingCourses" border="0" alt="CH9TrainingCourses" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/NyautvecklarkurseromSharePoint2010ochOff_84FD/CH9TrainingCourses_thumb.png" width="244" height="51" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Igår lanserades två nya utvecklarkurser på Channel9 för SharePoint 2010 och Office 2010. Dessa erbjuds i form av en serie videoinspelningar gjorda av MVP:er som går igenom hur du som utvecklare kan dra nytta av alla spännande nyheter i Sharepoint och Office-plattformen. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://channel9.msdn.com/learn/courses/SharePoint2010Developer/" target="_blank"&gt;SharePoint 2010 Developer Training&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://channel9.msdn.com/learn/courses/Office2010" target="_blank"&gt;Office 2010 Developer Training&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;I början av december kommer dessa kurser kompletteras med hands-on-labbar, källkod och mer material – peta in &lt;a href="http://channel9.msdn.com/Feeds/RSS/" target="_blank"&gt;Channel9:s RSS-feed&lt;/a&gt; i din favoritläsare för att inte missa uppdateringarna.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9920032" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/robf/archive/tags/SharePoint/default.aspx" /><category term="Office" scheme="http://blogs.msdn.com/robf/archive/tags/Office/default.aspx" /></entry><entry><title>Nya intro-filmer till ASP.NET MVC 2 och Microsoft Ajax Library på Channel9</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/11/04/nya-intro-filmer-till-asp-net-mvc-2-och-microsoft-ajax-library-p-channel9.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/11/04/nya-intro-filmer-till-asp-net-mvc-2-och-microsoft-ajax-library-p-channel9.aspx</id><published>2009-11-04T22:57:55Z</published><updated>2009-11-04T22:57:55Z</updated><content type="html">&lt;p&gt;Fredrik Normén, som till vardags arbetar som utbildare på Cornerstone, har spelat in en serie screencasts där han ger bra kortare introduktioner till nyheter som kommer i ASP.NET MVC 2 samt Microsoft Ajax Library.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/MSDNSweden/Introduktion-till-ASPNET-MVC-2-Areas/" target="_blank"&gt;Introduktion till ASP.NET MVC 2 Areas&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/MSDNSweden/Introduktion-till-databindning-p-klienten-med-Microsoft-Ajax-Library/" target="_blank"&gt;Introduktion till databindning på klienten med Microsoft Ajax Library&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/MSDNSweden/Introduktion-till-Template-i-ASPNET-MVC-2/" target="_blank"&gt;Introduktion till Template i ASP.NET MVC 2&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Du hittar alltid &lt;a href="http://channel9.msdn.com/posts/MSDNSweden/" target="_blank"&gt;de senaste filmerna som publiceras från Sverige på Channel9 här.&lt;/a&gt; Ploppa in RSS-feeden i din favorit-feedreader för att vara säker på inte missa nya filmer.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917611" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="AJAX" scheme="http://blogs.msdn.com/robf/archive/tags/AJAX/default.aspx" /><category term="Webbutveckling" scheme="http://blogs.msdn.com/robf/archive/tags/Webbutveckling/default.aspx" /><category term="ASP.NET MVC" scheme="http://blogs.msdn.com/robf/archive/tags/ASP.NET+MVC/default.aspx" /></entry><entry><title>Så skapar du en Jump list i Windows 7</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/10/22/s-skapar-du-en-jump-list-i-windows-7.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/10/22/s-skapar-du-en-jump-list-i-windows-7.aspx</id><published>2009-10-22T09:16:37Z</published><updated>2009-10-22T09:16:37Z</updated><content type="html">&lt;p&gt;En Jump list i Windows 7 är ett sätt att skapa en intuitiv snabbare navigering för användaren direkt åtkomlig i aktivitetsfältet (Taskbar). I och med införandet av Jump list kan man säga att alla applikationer har fått möjlighet till en egen mini-startmeny som du som utvecklare kan anpassa.&lt;/p&gt;  &lt;p&gt;Ett exempel är den Jump List som Windows Live Messenger-klienten erbjuder:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenJumplistiWindows7C_14E49/MSNJumpList_4.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="MSNJumpList" border="0" alt="MSNJumpList" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenJumplistiWindows7C_14E49/MSNJumpList_thumb_1.png" width="264" height="355" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Här är en översikt över vilka delar en Jump list kan innehålla:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenJumplistiWindows7C_14E49/image_4_2.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image_4" border="0" alt="image_4" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenJumplistiWindows7C_14E49/image_4_thumb.png" width="628" height="330" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En Jump List kan alltså innehålla: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Destinationer, eller sökvägar, till information eller filer.      &lt;br /&gt;      &lt;br /&gt;Dessa delas in i       &lt;ul&gt;       &lt;li&gt;en fastlåst sektion (Pinned category), &lt;/li&gt;        &lt;li&gt;en sektion med nyligen använda (Known categories) &lt;/li&gt;        &lt;li&gt;eventuella egendefinierade sektioner (Custom Categories). &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Verbi form av ‘Tasks’, d.v.s. uppgifter som kan utföras av användaren. En typisk sådan kan t.ex. vara att spola fram en låt i en mediaspelare. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Som utvecklare kan du använda dig av det API som aktivitetsfältet exponerar genom ett antal COM–interface för att styra funktionaliteten i din applikations Jump List.&lt;/p&gt;  &lt;h3&gt;Application ID&lt;/h3&gt;  &lt;p&gt;Till att börja med så är det rekommenderat att du ger din applikation ett ‘Application ID’. Applikations ID:t används för att gruppera applikationer och processer i aktivitetsfältet. Alla applikationer och processer som har samma Applikations ID kommer att dela Jump List och aktivitetsfältsikon med varandra. Om du t.ex. har flera instanser av Internet Explorer igång så kommer dessa visas som en ikon i aktivitetsfältet och de kommer också att ha en gemensam Jump List där du ser de senaste adresserna som du surfat till.&lt;/p&gt;  &lt;p&gt;Om du inte ger din applikation ett ID kommer operativsystemet att automatiskt tilldela ett ID till applikationen. Men rekommenderat är alltså att du själv kontrollerar detta för att kunna styra grupperingen i aktivitetsfältet. ID:t används också för att registrera din applikation för kända filtyper – för att automatiskt kunna hålla reda på och visa senast öppnade dokument i Jump List.&lt;/p&gt;  &lt;p&gt;Se bloggposten &lt;a href="http://windowsteamblog.com/blogs/developers/archive/2009/06/18/developing-for-the-windows-7-taskbar-application-id.aspx" target="_blank"&gt;‘Developing for the Windows 7 Taskbar – Application ID’&lt;/a&gt; för hur du skapar ett Application ID.&lt;/p&gt;  &lt;h3&gt;Destinations&lt;/h3&gt;  &lt;p&gt;För att din applikation ska kunna öppna destinationer/sökvägar som visas i Jump List så måste &lt;a href="http://msdn.microsoft.com/en-us/library/bb776870(VS.85).aspx" target="_blank"&gt;en registrerad ‘file handler’ finnas för den aktuella filtypen i registret&lt;/a&gt;. Det innebär inte att din applikation måste vara ‘default handler’ för den aktuella filtypen, men en registrering måste alltså finnas där.&lt;/p&gt;  &lt;p&gt;När din applikation är registrerad för en viss filtyp kommer filer som användare öppnar via filutforskaren genom dubbelklick eller som öppnas via Common File Dialog (CFD) automatiskt att läggas till listan över nyligen använda ‘Recent’ – i applikationens Jump List. &lt;/p&gt;  &lt;p&gt;Om du vill skapa en egen kategori med en anpassad lista kan du göra det genom ett interface som heter ICustomDestinationList. Bloggposten ‘&lt;a href="http://windowsteamblog.com/blogs/developers/archive/2009/06/25/developing-for-the-windows-7-taskbar-jump-into-jump-lists-part-2.aspx" target="_blank"&gt;Developing for the Windows 7 Taskbar – Jump into Jump Lists – Part 2’&lt;/a&gt; går igenom det i detalj med kodexempel i C++ och C#. &lt;/p&gt;  &lt;h3&gt;Tasks&lt;/h3&gt;  &lt;p&gt;Som du såg i översiktsbilden ovan så kan du också skapa ‘Tasks’, alltså verb som är direktingångar till funktionalitet i din applikation. I exemplet Windows Live Messenger ovan så är det endast ‘Tasks’ som användaren kommer åt – ändra status, logga ut, navigera till MSN m.m. &lt;/p&gt;  &lt;p&gt;Ett ‘Task’ är ett sätt att erbjuda ett gränssnitt för användaren att direkt från Jump List kunna köra din applikations exekverbara fil, på samma sätt som om du hade anropat den från en kommandoprompt med tillhörande argument.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/blogs/developers/archive/2009/07/02/developing-for-the-windows-7-taskbar-jump-into-jump-lists-part-3.aspx" target="_blank"&gt;‘Developing for the Windows 7 Taskbar – Jump into Jump Lists – Part 3’&lt;/a&gt; innehåller bra exempel i C++ och C# på hur du lägger till egna ‘Tasks’ för din applikation.&lt;/p&gt;  &lt;p&gt;Om du utvecklar i .NET så rekommenderas också varmt att du laddar hem &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank"&gt;Windows® API Code Pack for Microsoft® .NET Framework&lt;/a&gt; som innehåller wrappers runt bl.a. de COM-interface som du använder för att skapa och hantera Jump List-objekt. Den innehåller också en mängd färdiga bra demoexempel som du kan lära ifrån.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911215" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term=".NET" scheme="http://blogs.msdn.com/robf/archive/tags/.NET/default.aspx" /><category term="Windows 7" scheme="http://blogs.msdn.com/robf/archive/tags/Windows+7/default.aspx" /><category term="Win32" scheme="http://blogs.msdn.com/robf/archive/tags/Win32/default.aspx" /><category term="C++" scheme="http://blogs.msdn.com/robf/archive/tags/C_2B002B00_/default.aspx" /></entry><entry><title>Visual Studio 2010 Beta 2 tillgänglig samt MSDN Relaunch</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/10/20/visual-studio-2010-beta-2-tillg-nglig-samt-msdn-relaunch.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/10/20/visual-studio-2010-beta-2-tillg-nglig-samt-msdn-relaunch.aspx</id><published>2009-10-20T10:36:48Z</published><updated>2009-10-20T10:36:48Z</updated><content type="html">&lt;p&gt;Igår gjordes Visual Studio 2010 Beta 2 tillgänglig för MSDN-prenumeranter, du hittar den under ‘MSDN Subscriber downloads’.&lt;strike&gt; Har du inte tillgång till MSDN-prenumeration får du vänta ytterligare några dagar innan den görs publikt tillgänglig.&lt;/strike&gt; &lt;strong&gt;EDIT: &lt;/strong&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-gb/try/default.mspx" target="_blank"&gt;alla versioner av Visual Studio 2010 Beta 2 finns nu tillgängliga här.&lt;/a&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Vi passade på att fira detta genom att göra &lt;a href="http://channel9.msdn.com/posts/buzzfrog/MSDN-Radio-20-Okt--MSDN-Relaunch/" target="_blank"&gt;senaste MSDN Radio till en Visual Studio 2010-special&lt;/a&gt;, där vi fick hjälp av vår Tools &amp;amp; MSDN-expert Simon Holm att reda ut vad de olika versionerna av Visual Studio kommer att heta och innehålla samt vilka uppgraderingsvägar som finns tillgängliga.    &lt;br /&gt;     &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/VisualStudio2010Beta2tillgngligsamtMSDNR_B15F/logo_msdn_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="logo_msdn" border="0" alt="logo_msdn" align="right" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/VisualStudio2010Beta2tillgngligsamtMSDNR_B15F/logo_msdn_thumb.png" width="91" height="27" /&gt;&lt;/a&gt;I samband med att Visual Studio 2010 Beta 2 släpptes så sjösattes också den nya strukturen och designen av våra MSDN-sajter. Det är ett arbete som vårt webbteam sysslat med under en tid där man också tagit fram en ny stilig logotyp för MSDN. Kolla in &lt;a href="http://www.msdn.se" target="_blank"&gt;www.msdn.se&lt;/a&gt; för den uppdaterade looken.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909809" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="Visual Studio" scheme="http://blogs.msdn.com/robf/archive/tags/Visual+Studio/default.aspx" /><category term="MSDN" scheme="http://blogs.msdn.com/robf/archive/tags/MSDN/default.aspx" /></entry><entry><title>Du är inbjuden till Windows 7 lanseringen</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/10/13/du-r-inbjuden-till-windows-7-lanseringen.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/10/13/du-r-inbjuden-till-windows-7-lanseringen.aspx</id><published>2009-10-13T09:02:47Z</published><updated>2009-10-13T09:02:47Z</updated><content type="html">&lt;p&gt;&lt;b&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/DurinbjudentillWindows7lanseringen_9B54/clip_image001_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/DurinbjudentillWindows7lanseringen_9B54/clip_image001_thumb.gif" width="244" height="52" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Den 23 oktober lanserar Microsoft Windows 7 &lt;a href="www.tekniskamuseet.se" target="_blank"&gt;på Tekniska museet i Stockholm&lt;/a&gt;. I samarbete med Handelskammaren och Företagarna presenteras en komplett orgie i teknik under en heldag. Tillsammans med&amp;#160; &lt;b&gt;Dell, Dustin, Samsung, HP, Lenovo, Acer och Asus&lt;/b&gt;&amp;#160; visas det senaste inom PC och Netbooks med Windows 7, skrivare, kameror, mobiltelefoner, skärmar, mjukvara, spel m.m. Det kommer också finnas folk på plats som svarar på frågor om Windows 7 och hårdvara.&lt;/p&gt;  &lt;p&gt;Programmet ser ut så här (det är fri entré &amp;amp; kostnadsfria seminarier):&lt;/p&gt;  &lt;p&gt;&lt;b&gt;10.00-20.00:&lt;/b&gt; Öppet hus     &lt;br /&gt;&lt;b&gt;10.00-11.00:&lt;/b&gt; Småföretagarfokus med Anna-Stina Nordmark VD på Företagarna &amp;amp;     &lt;br /&gt;Per Adolfsson, direktör Microsoft om hur du som företagare kan frigöra tid, fokusera på kärnverksamheten, öka din konkurrenskraft och finna nya affärsmöjligheter med ett bra IT-stöd.     &lt;br /&gt;&lt;b&gt;10.00-11.00: &lt;/b&gt;Utbildningsfokus hur tekniken kan påverka produktiviteten i utbildningen och minska tiden för administrationen.     &lt;br /&gt;&lt;b&gt;11.00 och varje halvtimme:&lt;/b&gt; Demo-jams med experter som visar funktioner för arbete, utbildning och hemmet.     &lt;br /&gt;&lt;b&gt;15.00-16.00:&lt;/b&gt; Studenter högre utbildning, den digitala livsstilen.     &lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Plats:&lt;/b&gt; Tekniska museet, Museivägen 7, Stockholm.     &lt;br /&gt;&lt;i&gt;Viska ”Microsoft” i receptionen, så går du in gratis (alternativt överraska med att kunna det hemliga handtecknet :-)&lt;/i&gt;     &lt;br /&gt;&lt;b&gt;Lokal:&lt;/b&gt; Södra Stallet&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.se/tekniska " target="_blank"&gt;Anmäl dig till Windows 7-lanseringen här&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9906516" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="Windows 7" scheme="http://blogs.msdn.com/robf/archive/tags/Windows+7/default.aspx" /></entry><entry><title>ASP.NET MVC 2 Preview 2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/10/05/asp-net-mvc-2-preview-2.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/10/05/asp-net-mvc-2-preview-2.aspx</id><published>2009-10-05T18:28:18Z</published><updated>2009-10-05T18:28:18Z</updated><content type="html">&lt;p&gt;Nyligen släpptes &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d3f06bb9-5f5f-4f46-91e9-813b3fce2db1&amp;amp;displaylang=en" target="_blank"&gt;ASP.NET MVC 2 Preview 2&lt;/a&gt;. Denna version lägger sig snällt och prydligt jämsides med ASP.NET MVC 1.0 vilket gör att den inte stökar med dina befintliga projekt. &lt;/p&gt;  &lt;p&gt;ASP.NET MVC Preview 2 finns idag endast i en version för Visual Studio 2008 SP1/.NET 3.5 SP1. Där får du tillgång till en helt ny mall för ASP.NET MVC 2-projekt. Den kommer också att finnas inbyggd i den kommande Beta 2-versionen av Visual Studio 2010.&lt;/p&gt;  &lt;p&gt;En av de riktigt spännande nyheterna i ASP.NET MVC 2 Preview 2 är möjligheten att ange valideringsregler i din domänmodell med hjälp av System.ComponentModel.DataAnnotations. Det bygger på att du med hjälp av en partiell klass anger valideringsregler för olika egenskaper på dina domänklasser. Reglerna valideras sedan på klienten med hjälp av jQuery Validation-biblioteket och användaren får en direkt återkoppling - utan någon postning tillbaka till servern.&lt;/p&gt;  &lt;p&gt;I följande exempel har jag angett en regel som säger att egenskapen VacationsHours på Employee-klassen måste ha ett värde mellan 0 och 80:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Linq;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.ComponentModel.DataAnnotations;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; Mvc2FirstLook.Models&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #008000"&gt;// Metadataklass för Employee&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    [MetadataTypeAttribute(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(EmployeeMetadata))]&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Employee&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; &lt;span style="color: #0000ff"&gt;sealed&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; EmployeeMetadata&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #008000"&gt;//  Privat konstruktor, metadataklasser ska inte instansieras&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; EmployeeMetadata()&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #008000"&gt;// Tillåt endast värden mellan 0 och 80&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            [Range(0, 80, ErrorMessage=&lt;span style="color: #006080"&gt;&amp;quot;VacationHours måste vara mellan 0 och 80&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;short&lt;/span&gt; VacationHours;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;På klientsidan i min vy lägger jag till en referens till Javascript-filerna jquery-1.3.2.js, jquery.validate.js och MicrosoftMvcJQueryValidation.js. Jag behöver också slå på valideringsfunktionen genom att sätta EnableClientValidation: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: Jon tipsar om att lägga Javascript-filer sist i HTML-koden för att möjliggöra parallell nedladdning av refererade bildfiler (om dessa ligger på olika hostnames eller domäner). I mitt enkla exempel hade jag inga bilder så då gör det ingen skillnad, men det är ett mycket bra tips för riktiga lösningar. Ett annat tips är att använda sig av ett s.k. Content Delivery Network för att servera filer som inkluderas i många sidor – t.ex. scriptfiler. Microsoft har nyligen lanserat &lt;a href="http://www.asp.net/ajax/cdn/" target="_blank"&gt;Microsoft Ajax CDN&lt;/a&gt; som innehåller både ASP.NET AJAX- och jQuery-scriptfiler. Dessutom borde jag naturligtvis ha pekat på den &lt;a href="http://en.wikipedia.org/wiki/Minification_(programming)" target="_blank"&gt;minifierade&lt;/a&gt; jQuery-filen (den ligger också på Microsoft Ajax CDN). Fler bra prestandatips hittar du i &lt;a href="http://developer.yahoo.com/performance/rules.html" target="_blank"&gt;Yahoos Best Practices for Speeding Up Your Web Site&lt;/a&gt;.

  &lt;br /&gt;… &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #a31515; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;script&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;script&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #a31515; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;script&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;../../Scripts/jquery.validate.js&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;script&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #a31515; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;script&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;../../Scripts/MicrosoftMvcJQueryValidation.js&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;script&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;h2&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Edit&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;h2&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.ValidationSummary(&lt;span style="color: #a31515"&gt;&amp;quot;Edit was unsuccessful. Please correct the errors and try again.&amp;quot;&lt;/span&gt;) &lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt; Html.EnableClientValidation(); &lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt; &lt;span style="color: blue"&gt;using&lt;/span&gt; (Html.BeginForm()) {&lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;fieldset&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;

      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;legend&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Fields&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;legend&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;

      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.Hidden(&lt;span style="color: #a31515"&gt;&amp;quot;EmployeeID&amp;quot;&lt;/span&gt;, Model.EmployeeID) &lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;label&lt;/span&gt; &lt;span style="color: red"&gt;for&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;NationalIDNumber&amp;quot;&amp;gt;&lt;/span&gt;NationalIDNumber:&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;label&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.TextBox(&lt;span style="color: #a31515"&gt;&amp;quot;NationalIDNumber&amp;quot;&lt;/span&gt;, Model.NationalIDNumber) &lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.ValidationMessage(&lt;span style="color: #a31515"&gt;&amp;quot;NationalIDNumber&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;) &lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;label&lt;/span&gt; &lt;span style="color: red"&gt;for&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Title&amp;quot;&amp;gt;&lt;/span&gt;Title:&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;label&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.TextBox(&lt;span style="color: #a31515"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;, Model.Title)&lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.ValidationMessage(&lt;span style="color: #a31515"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;)&lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;label&lt;/span&gt; &lt;span style="color: red"&gt;for&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;VacationHours&amp;quot;&amp;gt;&lt;/span&gt;VacationHours:&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;label&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.TextBox(&lt;span style="color: #a31515"&gt;&amp;quot;VacationHours&amp;quot;&lt;/span&gt;, Model.VacationHours) &lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.ValidationMessage(&lt;span style="color: #a31515"&gt;&amp;quot;VacationHours&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;) &lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;input&lt;/span&gt; &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;submit&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Save&amp;quot;&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 9pt; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: #a31515; font-size: 9pt; mso-no-proof: yes"&gt;p&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 9pt; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;fieldset&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 9pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow; mso-highlight: yellow"&gt;&amp;lt;%&lt;/span&gt; } &lt;span style="background: yellow; mso-highlight: yellow"&gt;%&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-size: 9pt"&gt; &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;… 
  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Om användaren nu sätter ett felaktigt värde i VacationHours visas meddelandet direkt:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/ASP.NETMVC2Preview2_E468/clientvalidationASPNETMVC_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="clientvalidationASPNETMVC" border="0" alt="clientvalidationASPNETMVC" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/ASP.NETMVC2Preview2_E468/clientvalidationASPNETMVC_thumb.png" width="605" height="242" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Det som jag tycker är riktigt coolt med DataAnnotations är att det är samma teknik för att ange valideringsregler som används i &lt;a href="http://www.asp.net/dynamicdata/" target="_blank"&gt;ASP.NET Dynamic Data&lt;/a&gt; och i &lt;a href="http://code.msdn.microsoft.com/RiaServices" target="_blank"&gt;.NET RIA Services&lt;/a&gt;. Det innebär att du kan ha en enda gemensam plats för alla dina valideringsregler och sedan få dessa regler validerade i t.ex. en Silverlight-klient eller en HTML-vy genererad av MVC-ramverket.&lt;/p&gt;

&lt;p&gt;Men – det skulle ju inte vara ASP.NET MVC om det inte också gick att skjuta in sin egen funktionalitet för validering :-)&amp;#160; MVC-ramverket har i Preview 2 fått en providermodell för där du kan stoppa in &lt;a href="http://codingndesign.com/blog/?p=76" target="_blank"&gt;din egen Model Validation Provider&lt;/a&gt;, om den inbyggda inte skulle motsvara dina krav.&lt;/p&gt;

&lt;p&gt;En annan stor nyhet i Preview 2 är något som kallas ‘Area’ som kan användas för att förenkla struktureringen av större sajter rent kodmässigt. Mikael Söderström har skrivit en utmärkt artikel om &lt;a href="http://weblogs.asp.net/mikaelsoderstrom/archive/2009/10/02/areor-i-asp-net-mvc-2.aspx" target="_blank"&gt;Area i ASP.NET MVC 2 Preview 2&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9903277" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="Webbutveckling" scheme="http://blogs.msdn.com/robf/archive/tags/Webbutveckling/default.aspx" /><category term="ASP.NET MVC" scheme="http://blogs.msdn.com/robf/archive/tags/ASP.NET+MVC/default.aspx" /></entry><entry><title>Lär dig utveckla för Windows 7 med Windows 7 Training Kit</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/10/01/l-r-dig-utveckla-f-r-windows-7-med-windows-7-training-kit.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/10/01/l-r-dig-utveckla-f-r-windows-7-med-windows-7-training-kit.aspx</id><published>2009-10-01T16:53:41Z</published><updated>2009-10-01T16:53:41Z</updated><content type="html">&lt;p&gt;Windows 7 Training Kit for Developers innehåller presentationer, hands-on labbar och demos som snabbt får dig på banan när det gäller Windows 7-utveckling. &lt;/p&gt;  &lt;p&gt;I träningspaketet kan du bland annat gå igenom följande nyheter som du kan utnyttja för att få dina applikationer att verkligen skina på Windows 7:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Aktivitetsfältet och s.k. Jumplist &lt;/li&gt;    &lt;li&gt;Bibliotek – s.k. ‘Libraries’ &lt;/li&gt;    &lt;li&gt;Multitouch &lt;/li&gt;    &lt;li&gt;Sensorer och Location &lt;/li&gt;    &lt;li&gt;Ribbon &lt;/li&gt;    &lt;li&gt;Trigger Start-tjänster &lt;/li&gt;    &lt;li&gt;Instrumentation och eventspårning &lt;/li&gt; &lt;/ul&gt; Applikationskompatibilitet är naturligtvis ett extremt viktigt område, materialet täcker in följande:   &lt;ul&gt;   &lt;li&gt;Versionskontroll &lt;/li&gt;    &lt;li&gt;UAC Data Redirect &lt;/li&gt;    &lt;li&gt;Session 0-isolering &lt;/li&gt;    &lt;li&gt;Installer-detektion &lt;/li&gt;    &lt;li&gt;User Interface Privilege-isolering &lt;/li&gt;    &lt;li&gt;Hög DPI-inställning &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;VIssa delar i träningspaketet kräver att du har &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank"&gt;Windows Code Pack&lt;/a&gt; och &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&amp;amp;displaylang=en" target="_blank"&gt;Windows 7 SDK&lt;/a&gt; installerat.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=1c333f06-fadb-4d93-9c80-402621c600e7&amp;amp;displaylang=en" target="_blank"&gt;Här laddar du hem Windows 7 Training Kit for Developers.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9901839" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="Windows 7" scheme="http://blogs.msdn.com/robf/archive/tags/Windows+7/default.aspx" /></entry><entry><title>TechDays 2010 - Örebro 23–24 mars</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/09/28/techdays-2010-rebro-23-24-mars.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/09/28/techdays-2010-rebro-23-24-mars.aspx</id><published>2009-09-28T22:45:13Z</published><updated>2009-09-28T22:45:13Z</updated><content type="html">&lt;p&gt;Vi är i full färd med förberedelser inför TechDays 2010 och håller bland annat som bäst på att säkra upp både svenska och utländska toppnamn som talare. Boka in den 23 och 24 mars, och ställ in siktet på ännu ett fullspäckat svenskt evenemang för utvecklare, tekniker och IT-chefer.&lt;/p&gt; &lt;iframe height="350" src="http://91.189.45.77/robs/techdays2010/default.html" frameborder="no" width="480"&gt;&lt;/iframe&gt;  &lt;br /&gt;&lt;i&gt;Visible Earth imagery owned by NASA&lt;/i&gt;   &lt;br /&gt;  &lt;br /&gt;  &lt;p&gt;Om du bokar senast den 31 oktober så sparar du 1500 kr.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/sverige/techdays/about.aspx" target="_blank"&gt;Läs mer på techdays.se &amp;gt;&amp;gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9900425" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="Teknik-orgie" scheme="http://blogs.msdn.com/robf/archive/tags/Teknik-orgie/default.aspx" /><category term="TechDays2010" scheme="http://blogs.msdn.com/robf/archive/tags/TechDays2010/default.aspx" /></entry><entry><title>Så skapar du en förloppsindikator för Windows 7 aktivitetsfält med .NET</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/09/28/s-skapar-du-en-f-rloppsindikator-f-r-windows-7-aktivitetsf-lt-med-net.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/09/28/s-skapar-du-en-f-rloppsindikator-f-r-windows-7-aktivitetsf-lt-med-net.aspx</id><published>2009-09-28T08:40:56Z</published><updated>2009-09-28T08:40:56Z</updated><content type="html">&lt;p&gt;En av de många små nyheterna som gör Windows 7 så mycket trevligare att arbeta med är möjligheten att ha en “progress bar”, eller förloppsindikator (i ett försök att använda en hyfsad svensk översättning), i Windows 7 aktivitetsfält.&lt;/p&gt;  &lt;p&gt;Vad det handlar om är att kunna ge användare en direkt visuell återkoppling till att ett program arbetar med något och hur långt det har kommit. Ett bra exempel är filutforskaren som i Windows 7 visar hur mycket som återstår av en filkopiering:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenfrloppsindikatorfrWindows.NET_587/TaskbarProgress.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="TaskbarProgress" border="0" alt="TaskbarProgress" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenfrloppsindikatorfrWindows.NET_587/TaskbarProgress_thumb.png" width="342" height="100" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I bilden ovan ser du hur kopieringen hunnit ungefär en tiondel vilket indikeras av den gröna stapeln. Genom en snabb blick ner på aktivitetsfältet kan du se om programmet arbetar, ungefär hur långt det kommit eller om det är klart - utan att behöva växla mellan öppna program. Klart smidigt!&lt;/p&gt;  &lt;p&gt;För att komma åt de nya API:erna i Windows 7 som .NET-utvecklare kan du använda dig av ett bibliotek med färdiga funktioner från Microsoft som heter &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank"&gt;Windows API Code Pack for Microsoft .NET Framework&lt;/a&gt;. Där hittar du bland annat ett Shell-projekt som innehåller den statiska klassen Taskbar. Taskbar har en Progressbar-egenskap som du använder för visa pågående aktivitet i ditt program.&lt;/p&gt;  &lt;p&gt;Progressbar har ett CurrentValue och ett State. CurrentValue är ett värde mellan 0 och 100 som avgör hur långt programmet har kommit i arbetet, alltså hur långt stapeln ritas ut.&amp;#160; &lt;/p&gt;  &lt;p&gt;State är en enumeration som kan vara antingen Error, Indeterminate, NoProgress, Normal eller Paused:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenfrloppsindikatorfrWindows.NET_587/TaskbarButtonProgressState_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="TaskbarButtonProgressState" border="0" alt="TaskbarButtonProgressState" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenfrloppsindikatorfrWindows.NET_587/TaskbarButtonProgressState_thumb.png" width="660" height="112" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Indeterminate används när du vill visa att det inte går att avgöra hur långt en process kommit, alltså ett obestämt tillstånd. När State är satt till Indeterminate visas en grön markering som rör sig i sidled över ikonen i en loop tills tillståndet ändras.&lt;/p&gt;  &lt;p&gt;Jag har skapat en enkel WPF-applikation som visar på olika tillstånd och hur förloppet indikeras i aktivitetsfältet:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenfrloppsindikatorfrWindows.NET_587/Taskbardemo1.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Taskbardemo1" border="0" alt="Taskbardemo1" src="http://blogs.msdn.com/blogfiles/robf/WindowsLiveWriter/SskaparduenfrloppsindikatorfrWindows.NET_587/Taskbardemo1_thumb.png" width="660" height="191" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://cid-3e8866f3bde90965.skydrive.live.com/self.aspx/WPFTaskbarDemo1/WPFTaskbarDemo1.zip" target="_blank"&gt;Här kan du ladda hem WPFTaskbarDemo1&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9900136" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="Windows 7" scheme="http://blogs.msdn.com/robf/archive/tags/Windows+7/default.aspx" /></entry><entry><title>Microsoft lanserar WebsiteSpark-programmet för nya webbutvecklande företag</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/09/24/microsoft-lanserar-websitespark-programmet-f-r-nya-webbutvecklande-f-retag.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/09/24/microsoft-lanserar-websitespark-programmet-f-r-nya-webbutvecklande-f-retag.aspx</id><published>2009-09-25T00:50:07Z</published><updated>2009-09-25T00:50:07Z</updated><content type="html">&lt;p&gt;Idag annonserade Scott Guthrie ett nytt program (program som i något man kan anmäla sig till, inte mjukvara alltså ;-) - för att hjälpa nya webbutvecklande företag att komma igång snabbt och med väldigt låg kostnad.&lt;/p&gt;  &lt;p&gt;Med WebsiteSpark kan nystartade webbutvecklings- och webbdesignföretag få tillgång till både utvecklingsmiljö, designverktyg samt våra serverprodukter under 3 år mot en anmälningsavgift på 100 dollar.&lt;/p&gt;  &lt;p&gt;Företag sin går med i WebsiteSpark får tillgång till:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;3 licenser för Visual Studio 2008 Professional Edition &lt;/li&gt;    &lt;li&gt;1 licensen för Expression Studio 3 (med Expression Blend, Sketchflow och web) &lt;/li&gt;    &lt;li&gt;2 licenser för Expression Web 3 &lt;/li&gt;    &lt;li&gt;4 processor-licenser för Windows Web Server 2008 R2 &lt;/li&gt;    &lt;li&gt;4 processor-licenser för SQL Server 2008 Web Edition &lt;/li&gt;    &lt;li&gt;DotNetPanel control panel (för enklare administration av servrar) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/web/websitespark/" target="_blank"&gt;Här kan du läsa mer om WebsiteSpark-programmet och anmäla ditt företag.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9899170" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author></entry><entry><title>Ta del av vår interna diskussionslista om WPF</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/robf/archive/2009/09/23/ta-del-av-v-r-interna-diskussionslista-om-wpf.aspx" /><id>http://blogs.msdn.com/robf/archive/2009/09/23/ta-del-av-v-r-interna-diskussionslista-om-wpf.aspx</id><published>2009-09-23T22:44:09Z</published><updated>2009-09-23T22:44:09Z</updated><content type="html">&lt;p&gt;Jamie Rodriguez på Microsoft publicerar lite då och då utdrag ur WPF Discussion – en intern teknisk diskussionslista som alla WPF-intresserade Microsoft:are är med i. &lt;/p&gt;  &lt;p&gt;Är du intresserad av att fördjupa kunskapen i WPF är det här ett bra ställe att snappa upp bra information direkt från produktgrupperna – som Jamie uttrycker det: “Raw, unedited, insightful and deep content…”. &lt;/p&gt;  &lt;p&gt;Ta del av &lt;a href="http://blogs.msdn.com/jaimer/archive/2009/09/22/wpf-discussion-090922.aspx" target="_blank"&gt;senaste WPF Discussion på Jamies blogg&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9898615" width="1" height="1"&gt;</content><author><name>rfolkes</name><uri>http://blogs.msdn.com/members/rfolkes.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/robf/archive/tags/WPF/default.aspx" /></entry></feed>