<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Mikael Söderström : General Software Development</title><link>http://weblogs.asp.net/mikaelsoderstrom/archive/tags/General+Software+Development/default.aspx</link><description>Tags: General Software Development</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Windows Mobile 6.5 Widget för Aspsidan</title><link>http://weblogs.asp.net/mikaelsoderstrom/archive/2009/07/28/windows-mobile-6-5-widget-f-246-r-aspsidan.aspx</link><pubDate>Tue, 28 Jul 2009 13:09:58 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7155868</guid><dc:creator>Vimpyboy</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/rsscomments.aspx?PostID=7155868</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/commentapi.aspx?PostID=7155868</wfw:comment><comments>http://weblogs.asp.net/mikaelsoderstrom/archive/2009/07/28/windows-mobile-6-5-widget-f-246-r-aspsidan.aspx#comments</comments><description>&lt;p&gt;Jag har just skapat en widget för Windows Mobile 6.5 som listar upp senaste svaren i Aspsidans forum.&lt;/p&gt;  &lt;p&gt;För den som inte vet vad widgets är så är det en nyhet i Windows Mobile 6.5, som gör det möjligt att skapa applikationer med hjälp av HTML och Javascript, för att sedan köra dem som vilken applikation som helst.&lt;/p&gt;  &lt;p&gt;Vill du testa widgeten så kan den laddas ned här:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://cid-4aa13e17331c7398.skydrive.live.com/self.aspx/Public/Windows%20Mobile/Aspsidan.widget" href="http://cid-4aa13e17331c7398.skydrive.live.com/self.aspx/Public/Windows%20Mobile/Aspsidan.widget"&gt;http://cid-4aa13e17331c7398.skydrive.live.com/self.aspx/Public/Windows%20Mobile/Aspsidan.widget&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Om du inte har Windows Mobile 6.5 på telefonen så går det att ladda ned emulatorer med det här:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;För att se hur den är uppbyggd så räcker det med att ändra filändelsen till zip och packa upp den. Det fungerar alltså precis som gadgets, vilket introducerades i Windows Vista.&lt;/p&gt;  &lt;p&gt;Bilder på “mästerverket”.. ;-)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img title="2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="2" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/2_thumb_155B3F97.jpg" width="148" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Widget-filen startas första gången.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/mikaelsoderstrom/3_006C4DD5.jpg"&gt;&lt;img title="3" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="3" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/3_thumb_42068A21.jpg" width="148" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Installationen påbörjad.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/mikaelsoderstrom/4_1FB18559.jpg"&gt;&lt;img title="4" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="4" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/4_thumb_5622375B.jpg" width="148" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Då programmet behöver åtkomst till internet så måste det godkännas av användaren.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://weblogs.asp.net/blogs/mikaelsoderstrom/5_70EE5D67.jpg"&gt;&lt;img title="5" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="5" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/5_thumb_74FB3BEA.jpg" width="148" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Alla trådar hämtas in asynkront med ett vanligt Ajax-anrop mot RSS-feeden. Det går att anpassa menyerna där nere med Javascript.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://weblogs.asp.net/blogs/mikaelsoderstrom/6_12701DA8.jpg"&gt;&lt;img title="6" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="6" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/6_thumb_641928AB.jpg" width="148" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;En ikon dyker upp i startmenyn.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Om du har några frågor så hojta till!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7155868" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/Wndows+Mobile/default.aspx">Wndows Mobile</category></item><item><title>jQuery Ribbon – Themes</title><link>http://weblogs.asp.net/mikaelsoderstrom/archive/2009/05/23/jquery-ribbon-themes.aspx</link><pubDate>Sat, 23 May 2009 15:27:06 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7095363</guid><dc:creator>Vimpyboy</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/rsscomments.aspx?PostID=7095363</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/commentapi.aspx?PostID=7095363</wfw:comment><comments>http://weblogs.asp.net/mikaelsoderstrom/archive/2009/05/23/jquery-ribbon-themes.aspx#comments</comments><description>&lt;p&gt;I have just added support for themes on the jQuery Ribbon since not everyone liked the one I used before. I have added a very simple grey theme, which you can use to create your custom one. You can switch themes in the ribbon without reloading the page.&lt;/p&gt;  &lt;p&gt;Please let me know if you have created one!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/mikaelsoderstrom/ribbontheme_7D5DACCC.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ribbontheme" border="0" alt="ribbontheme" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/ribbontheme_thumb_07CE5B20.png" width="304" height="101" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Demo and link to download:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://vinkr.net/ribbon"&gt;http://vinkr.net/ribbon&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7095363" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/K_E400_llkod/default.aspx">Källkod</category></item><item><title>Skydda er mot XSS!</title><link>http://weblogs.asp.net/mikaelsoderstrom/archive/2009/03/12/skydda-er-mot-xss.aspx</link><pubDate>Thu, 12 Mar 2009 08:40:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6956308</guid><dc:creator>Vimpyboy</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/rsscomments.aspx?PostID=6956308</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/commentapi.aspx?PostID=6956308</wfw:comment><comments>http://weblogs.asp.net/mikaelsoderstrom/archive/2009/03/12/skydda-er-mot-xss.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Robert Folkessons blog" href="http://blogs.msdn.com/robf/" target="_blank"&gt;Robert Folkesson&lt;/a&gt; har &lt;a title="Skydda mot XSS" href="http://blogs.msdn.com/robf/archive/2009/03/10/lita-inte-p-data-fr-n-anv-ndare.aspx" target="_blank"&gt;nämnt hur viktigt det är att skydda sig mot XSS&lt;/a&gt;, vilket är ett väldigt viktigt ämne.&lt;/p&gt;  &lt;p&gt;Jag försökte posta en kommentar till hans inlägg, men på grund av något strul med MSDN-bloggarna så verkar det inte ha kommit fram, så jag tänkte att jag skapar ett eget inlägg om det.&lt;/p&gt;  &lt;p&gt;Det är skrämmande att så många företag inte skyddar sig mot XSS. Det var för inte allt för länge sedan ett stort antivirusföretag som släppte igenom ett javascript på detta sätt.&lt;/p&gt;  &lt;p&gt;Vi som kör ASP.NET är dock lyckligt lottade! Först och främst så har vi fr.o.m. ASP.NET 1.1 ValidateRequest som skyddar från input via Querystrings och forms (om man inte har inaktiverat det).&lt;/p&gt;  &lt;p&gt;Sen så finns även Microsoft Anti-Cross Site Scripting Library (lagom långt namn ;-)) som gör det möjligt att ge ett ännu starkare skydd än att bara köra Server.HtmlEncode().&lt;/p&gt;  &lt;p&gt;ValidateRequest och annat:   &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998274.aspx"&gt;&lt;u&gt;http://msdn.microsoft.com/en-us/library/ms998274.aspx&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Microsoft Anti-Cross Site Scripting Library v1.5:   &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&amp;amp;displaylang=en"&gt;&lt;u&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&amp;amp;displaylang=en&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Eller betan av v3.0 (vad hände med 2.0?):   &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=051EE83C-5CCF-48ED-8463-02F56A6BFC09&amp;amp;displaylang=en"&gt;&lt;u&gt;http://www.microsoft.com/downloads/details.aspx?familyid=051EE83C-5CCF-48ED-8463-02F56A6BFC09&amp;amp;displaylang=en&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Dessutom så kan vi sitta ännu säkrare iom Internet Explorer 8, då det har inbyggt skydd mott XSS typ 1:   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/ie/archive/2008/07/01/ie8-security-part-iv-the-xss-filter.aspx"&gt;&lt;u&gt;http://blogs.msdn.com/ie/archive/2008/07/01/ie8-security-part-iv-the-xss-filter.aspx&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Det som dock ingen webbläsare kan skydda sig mot är XSS typ 2, och där är det verkligen viktigt att vi som är utvecklare ser till att alltid skydda oss mot det så gott det går. Med tanke på hur vanligt det är med olika typer av CMS så är det inte alltid lätt att skydda exakt allt, men ofta så räcker det med att blockera script-taggar för att slippa de värsta problemen.&lt;/p&gt;  &lt;p&gt;När du skriver en sida så lita &lt;strong&gt;aldrig&lt;/strong&gt; på att information som kommer från användarna är bra information. Det är otroligt viktigt att skydda sig mot detta!&lt;/p&gt;  &lt;p&gt;Kudos till Robert som tog upp detta!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6956308" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/S_E400_kerhet/default.aspx">Säkerhet</category></item><item><title>Artikelserie om ASP.NET 2.0 providers</title><link>http://weblogs.asp.net/mikaelsoderstrom/archive/2009/02/06/artikelserie-om-asp-net-2-0-providers.aspx</link><pubDate>Fri, 06 Feb 2009 12:54:52 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6888663</guid><dc:creator>Vimpyboy</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/rsscomments.aspx?PostID=6888663</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/commentapi.aspx?PostID=6888663</wfw:comment><comments>http://weblogs.asp.net/mikaelsoderstrom/archive/2009/02/06/artikelserie-om-asp-net-2-0-providers.aspx#comments</comments><description>&lt;p&gt;I ASP.NET 2.0 introducerades ett par olika providers som kan användas för att enkelt få funktionalitet som kan användas på webbplatserna. Det finns ett antal inbyggda, och det är riktigt enkelt att skriva egna. Jag har tänkt att gå igenom de olika typer av providers som ingår i ASP.NET 2.0 (och som självklart finns med i senare versioner).&lt;/p&gt;  &lt;p&gt;Ordningen på artiklarna kommer att bli som följande:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Health monitoring&lt;/li&gt;    &lt;li&gt;Membership &amp;amp; Roles&lt;/li&gt;    &lt;li&gt;Profile&lt;/li&gt;    &lt;li&gt;Personalization&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Kortfattat så är detta dess syften:&lt;/p&gt;  &lt;h2&gt;Health monitoring&lt;/h2&gt;  &lt;p&gt;Oavsett hur bra man skriver kod och hur pass mycket av koden som är enhetstestad osv så kan man aldrig vara säker på att inget ändå går fel. Användaren kan skriva in felaktig input, en exception kan uppstå av någon anledning eller så kanske en server går ner vilket leder till att ett fel uppstår.&lt;/p&gt;  &lt;p&gt;Jag ska gå igenom hur man kan använda några av de inbyggda sätten att logga dessa fel på, samt gå igenom hur vi skriver en egen klass baserad på WebEventProvider, där vi ska lagra olika typer av undantag i en egen datakälla.&lt;/p&gt;  &lt;h2&gt;Membership &amp;amp; roles&lt;/h2&gt;  &lt;p&gt;Tidigare har vi varit tvungna att skriva egna funktioner som sköter inloggning, skapande av medlemmar, hantering av grupper och annat som har med användarhantering att göra. Med de Membership- samt Role-providers som finns för ASP.NET 2.0 kan vi enkelt sköta allt detta med antingen färdiga funktioner, eller de webbkontroller som finns.&lt;/p&gt;  &lt;h2&gt;Profile&lt;/h2&gt;  &lt;p&gt;När vi vill kunna lagra undan information för en viss användare så vill vi gärna slippa behovet av att skapa nya fält i databasen. Med Profile så kan vi enkelt i web.config ange vilka fält vi vill ha med och få hanteringen på köpet.&lt;/p&gt;  &lt;h2&gt;Personalization&lt;/h2&gt;  &lt;p&gt;Ett hett område är personalisering av sidor, det vill säga att ge användaren möjligheten att anpassa innehållet själv. Med Personalization så kan vi enkelt göra detta och samtidigt ge användaren möjlighet att dra och släppa kontroller, samt ange vissa parametrar för dessa.&lt;/p&gt;  &lt;p&gt;Fördelen med att använda providers i ASP.NET är att vi enkelt kan skriva en egen klass som ärver basklassen för den aktuella providern, och sedan genom en ändring i web.config växla till en annan provider.&lt;/p&gt;  &lt;p&gt;Jag kommer i artiklarna att ha två delar, en där jag går igenom hur man kommer igång med de inbyggda providers som finns, och en där jag visar hur vi kan bygga en egen provider och enkelt byta ut den inbyggda.&lt;/p&gt;  &lt;p&gt;Som standard används SQL Server för att hantera all data, och vi kan enkelt anpassa en befintlig SQL Server-databas för detta genom att köra aspnet_regsql och som finns i C:\Windows\Microsoft.NET\Framework\v2.0.50727 (enhet och namn på windows-mappen kan variera). För att installera alla tabeller, scheman och lagrade procedurer som vi kommer att behöva så skriv det här i kommandoprompten efter att ha bläddrat fram till mappen:&lt;/p&gt;  &lt;p&gt;aspnet_regsql –A all –C “connection string till SQL Server-databasen”&lt;/p&gt;  &lt;p&gt;Genom att välja “-A all” så installeras stöd för alla providers.&lt;/p&gt;  &lt;p&gt;Har ni några önskemål som ni vill få med i artiklarna så lämna gärna en kommentar!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6888663" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>C# 4.0 – Dynamiska objekt</title><link>http://weblogs.asp.net/mikaelsoderstrom/archive/2008/10/28/c-4-0-dynamiska-objekt.aspx</link><pubDate>Tue, 28 Oct 2008 11:37:24 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6708133</guid><dc:creator>Vimpyboy</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/rsscomments.aspx?PostID=6708133</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/commentapi.aspx?PostID=6708133</wfw:comment><comments>http://weblogs.asp.net/mikaelsoderstrom/archive/2008/10/28/c-4-0-dynamiska-objekt.aspx#comments</comments><description>&lt;p&gt;I C# 3.0 kunde vi se en ny typ av objekt som kallas för “var”. Det som händer vid kompilering är att det här:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;var a = “Hello, World!”;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;kompileras till:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; a = &lt;span class="str"&gt;&amp;quot;Hello, World!&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;En nyhet i C# 4.0 är stöd för dynamiska objekt. Skillnaden mellan dessa är att de inte kompileras till “rätt” typ direkt vid kompilering, utan allt sker vid runtime. Det gör att vi på ett lättare sätt kan ta t.ex. javascript och skriva om det till C#.&lt;/p&gt;

&lt;p&gt;För att visa att ett objekt skall vara dynamiskt använder vi det nya nyckelordet “dynamic”.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;dynamic a = &lt;span class="str"&gt;&amp;quot;Hello, World!&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Det kompileras inte till en string, utan det blir en vid runtime.&lt;/p&gt;

&lt;p&gt;Jag kommer med fler exempel senare när jag har hunnit testa runt lite. :-)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6708133" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/C_2300_+4.0/default.aspx">C# 4.0</category></item><item><title>Generate TOC with Javascript</title><link>http://weblogs.asp.net/mikaelsoderstrom/archive/2008/04/13/generate-toc-with-javascript.aspx</link><pubDate>Sun, 13 Apr 2008 19:36:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6094401</guid><dc:creator>Vimpyboy</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/rsscomments.aspx?PostID=6094401</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/commentapi.aspx?PostID=6094401</wfw:comment><comments>http://weblogs.asp.net/mikaelsoderstrom/archive/2008/04/13/generate-toc-with-javascript.aspx#comments</comments><description>&lt;P&gt;I had to generate a table of contents based on the contents of an article. So what´s the smiplest way?&lt;/P&gt;
&lt;P&gt;I had two ways to go:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Parse the HTML (should be XHTML, which allows me to use an XMLDocument for example), but it could also be ugly HTML.&lt;/LI&gt;
&lt;LI&gt;Read the DOM with javascript and generate links for each header in the article.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Since I don´t know if it is valid XHTML I choosed alternative #2 which is with Javascript.&lt;/P&gt;
&lt;P&gt;The article contains headers which are h2, the text between can contain different html tags, but the headers are always h2.&lt;/P&gt;
&lt;P&gt;First I created a div tag with the id set to "contents" which will contain the table of contents, and after that I created a div with the id set to "article" and which contains the article.&lt;/P&gt;
&lt;P&gt;Now when I have the containers I could easily use javascript to get the titles and generate a list with the anchors to the headers.&lt;/P&gt;
&lt;P&gt;I created a function CreateTOC(headerText) that can be use to generate the TOC. The parameter headerText is the value of the header that´s created (you should always have a h2 or higher just before a list for higher usability).&lt;/P&gt;
&lt;P&gt;You can see the result here:&lt;/P&gt;
&lt;P&gt;&lt;A title=http://dev.mikaelsoderstrom.se/scripts/javascript/generatetoc.html href="http://dev.mikaelsoderstrom.se/scripts/javascript/generatetoc.html" mce_href="http://dev.mikaelsoderstrom.se/scripts/javascript/generatetoc.html"&gt;http://dev.mikaelsoderstrom.se/scripts/javascript/generatetoc.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;If you want to use it, just take it, but please leave the copyright. &lt;IMG alt=smile_regular src="http://spaces.live.com/rte/emoticons/smile_regular.gif" mce_src="http://spaces.live.com/rte/emoticons/smile_regular.gif"&gt;&lt;/P&gt;
&lt;P&gt;If you modify it or have tips on how to make it better, please let me know!&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6094401" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/HTML/default.aspx">HTML</category></item><item><title>Download IE 8 VPC</title><link>http://weblogs.asp.net/mikaelsoderstrom/archive/2008/03/07/donwload-ie-8-vpc.aspx</link><pubDate>Fri, 07 Mar 2008 07:49:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5931696</guid><dc:creator>Vimpyboy</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/rsscomments.aspx?PostID=5931696</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/commentapi.aspx?PostID=5931696</wfw:comment><comments>http://weblogs.asp.net/mikaelsoderstrom/archive/2008/03/07/donwload-ie-8-vpc.aspx#comments</comments><description>&lt;P&gt;There is a VPC with IE 8 available now. You can use it if you don´t want to install it on your pc. &lt;/P&gt;
&lt;P&gt;&lt;A title="Download Internet Explorer 8 VPC" href="http://download.microsoft.com/download/b/7/2/b72085ae-0f04-4c6f-9182-bf1ee90f5273/IE8_VPC.EXE" mce_href="http://download.microsoft.com/download/b/7/2/b72085ae-0f04-4c6f-9182-bf1ee90f5273/IE8_VPC.EXE"&gt;Download Internet Explorer 8 VPC&lt;/A&gt;&lt;/P&gt;
&lt;DIV style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; DISPLAY: inline" id=scid:B3E14793-948F-49af-A347-D19C374A7C4F:3e5bd243-1470-42cd-97fb-e357730584cb class=wlWriterSmartContent&gt;
&lt;SCRIPT type=text/javascript src="http://digg.com/tools/diggthis.js" mce_src="http://digg.com/tools/diggthis.js"&gt;&lt;/SCRIPT&gt;
&lt;/DIV&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5931696" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/Internet+Explorer+8/default.aspx">Internet Explorer 8</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/Virtual+PC/default.aspx">Virtual PC</category></item><item><title>IE 8: X-UA-Compatible works!</title><link>http://weblogs.asp.net/mikaelsoderstrom/archive/2008/03/07/ie-8-x-ua-compatible-works.aspx</link><pubDate>Fri, 07 Mar 2008 07:20:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5931567</guid><dc:creator>Vimpyboy</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/rsscomments.aspx?PostID=5931567</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/mikaelsoderstrom/commentapi.aspx?PostID=5931567</wfw:comment><comments>http://weblogs.asp.net/mikaelsoderstrom/archive/2008/03/07/ie-8-x-ua-compatible-works.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;In &lt;A href="http://weblogs.asp.net/mikaelsoderstrom/archive/2008/03/06/ie-8-x-ua-compatible-doesn-180-t-work.aspx" mce_href="http://weblogs.asp.net/mikaelsoderstrom/archive/2008/03/06/ie-8-x-ua-compatible-doesn-180-t-work.aspx"&gt;my last&lt;/A&gt; post, I said that the X-UA-Compatible tag didn´t work as expected, but thanks to Joe Chung I got it to work. :-)&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;All you have to do is to place the tag as the &lt;STRONG&gt;first&lt;/STRONG&gt; element in the head tag.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;I hope this is just temporary though.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5931567" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/Internet+Explorer+8/default.aspx">Internet Explorer 8</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/Compatibility/default.aspx">Compatibility</category><category domain="http://weblogs.asp.net/mikaelsoderstrom/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item></channel></rss>