<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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>Developer Evangelist : Udvikler</title><link>http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx</link><description>Tags: Udvikler</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Umbraco 4.0 på IIS 7</title><link>http://blogs.msdn.com/danielmf/archive/2008/07/03/umbraco-4-0-p-iis-7.aspx</link><pubDate>Thu, 03 Jul 2008 13:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8683502</guid><dc:creator>danielmf</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8683502.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8683502</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8683502</wfw:comment><description>&lt;P&gt;Jeg er i fuld gang med at afprøve den nye Umbraco 4.0 beta1, men jeg er desværre stødt på problemer. Hvis du ikke har Niels Hartvig på messenger, &lt;U&gt;ikke har manualen eller ikke har besøgt&lt;/U&gt; &lt;A href="http://forum.umbraco.org/" target=_new rel=nofollow&gt;&lt;FONT color=#006ff7&gt;http://forum.umbraco.org&lt;/FONT&gt;&lt;/A&gt;, &amp;nbsp;skal du selv finde ud af hvordan du kommer videre.&lt;/P&gt;
&lt;P&gt;Jeg har en IIS 7 på min Vista og jeg har oprettet et nyt website til Umbraco, hvis du prøver at køre Umbraco nu vil du få et par fejl:&lt;/P&gt;
&lt;P&gt;1. &lt;U&gt;HTTP Error 500.22 - Internal Server Error.&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Løsning:&lt;/STRONG&gt;&lt;/U&gt; På dit website skal du ændre "application pool" til "Classic .NET AppPool". Find "Application Settings" og ændre "Basic settings".&lt;/P&gt;
&lt;P&gt;2. &lt;U&gt;Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Løsning:&lt;/STRONG&gt;&lt;/U&gt; Hvis du ikke har ASP.NET 2.0 Ajax 1.0 installeret så skal du gøre det. Linket til download &lt;A href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&amp;amp;displayLang=en" mce_href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&amp;amp;displayLang=en"&gt;her&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Derefter skal du flytte den dll der hedder System.Web.Extensions.dll der ligger i $:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025 til bin mappen på websitet.&lt;/P&gt;
&lt;P&gt;Når du gjort disse 2 ting er din umbraco kørende på IIS 7.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8683502" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Silverlight 2.0 introduktion, del 7 - Data Binding</title><link>http://blogs.msdn.com/danielmf/archive/2008/07/02/silverlight-2-0-introduktion-del-7-data-binding.aspx</link><pubDate>Wed, 02 Jul 2008 13:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8681071</guid><dc:creator>danielmf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8681071.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8681071</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8681071</wfw:comment><description>&lt;p&gt;Hvis du er .NET udvikler så kender du garanteret udtrykket DataBinding. DataBinding i .NET handler om at binde noget data/objekt (også kaldet en kilde) fast til et mål såsom en webkontrol og få ens data til at se præsentabelt ud. Det er samme princip i Silverlight (det er også .NET), men måden du DataBinder på er lidt anderledes strukket sammen end hvad du måske er vant til. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;OneTime, OneWay, TwoWay&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Der findes disse tre Silverlight-spefikke databinding muligheder, og udover det kan du bruge databinding som du ellers er vant til fra WPF, ASP.NET, WinForms etc.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;OneTime&lt;/b&gt; betyder "bind kilden til målet" - også er den databinding process overstået (lidt kedeligt, men sandt). OneTime bør kun kaldes med en kilde der sjældent eller aldrig ændre sig - en liste med postnumre vil være et glimrende eksempel på OneTime databinding.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;OneWay&lt;/b&gt; betyder "bind kilden til målet, og ændrer målet når data ændres i kilden".&lt;/p&gt;  &lt;p&gt;&lt;b&gt;TwoWay&lt;/b&gt; betyder "bind kilden til målet, og ændrer målet når enten data ændres i kilden eller i målet"&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Eksempel&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Nu sidder du sikkert og tænker "hvad snakker manden om ... kilden, målet, one-two way...bla bla ???". Så lad os da se på et eksempel omkring OneWay og TwoWay. Koden er ren test, så hån mig ikke.&lt;/p&gt;  &lt;p&gt;&amp;lt;Canvas&amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Click="save_Click" x:Name="save" Content="Gem" Margin="190,100,0,0"&amp;nbsp; /&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBox x:Name="name" Margin="80, 130, 0, 0" Width="100" /&amp;gt;     &lt;br&gt;&amp;lt;/Canvas&amp;gt;&lt;/p&gt;  &lt;p&gt;Vi har et simpelt canvas med en knap og en textbox. Vores TextBox skal have en værdi hver gang vi trykker på knappen, og det kræver derfor en DataBinding på vores TextBox. Vi har bare ikke noget at DataBinde med lige nu...så laver vi da lige et objekt.&lt;/p&gt;  &lt;p&gt;public class Person : INotifyPropertyChanged    &lt;br&gt;{     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string _name;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Name     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _name;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _name = value;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( PropertyChanged != null ) {     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PropertyChanged( this, new PropertyChangedEventArgs( "Name" ) );     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region INotifyPropertyChanged Members &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public event PropertyChangedEventHandler PropertyChanged; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion    &lt;br&gt;}&lt;/p&gt;  &lt;p&gt;Det er et meget simpelt objekt du ser her og du undre dig sikkert over en ting: INotifyPropertyChanged. For at vores databinding vil virke efter hensigten bliver vi nødt at implementere INotifyPropertyChanged interfacet på klasse som skal bruges i databinding processen. INotifyPropertyChanged giver os besked om hvornår en property ændres i den bagvedliggende klasse.&lt;/p&gt;  &lt;p&gt;Som du kan se, så har jeg i vores setter (set) sørget for noget logik der kalder PropertyChanged eventen hvis den ikke er null.&lt;/p&gt;  &lt;p&gt;I vores code-behind til .xaml filen har jeg skrevet lidt kode der rent faktisk laver bindingen mellem kontrollen og klassen.&lt;/p&gt;  &lt;p&gt;public partial class Page : UserControl   &lt;br&gt;{    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Person person = new Person(); &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Page()   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Windows.Data.Binding binding = new System.Windows.Data.Binding( "Name" );    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; binding.Mode = System.Windows.Data.BindingMode.OneWay;    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; binding.Source = person; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name.SetBinding( TextBox.TextProperty, binding );   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void save_Click( object sender, RoutedEventArgs e )   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; person.Name = DateTime.Now.Second.ToString();    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br&gt;}&lt;/p&gt;  &lt;p&gt;Vi fortæller via SetBinding her, at der skal bindes på TextBoxens (name) TextProperty og, at den skal føre selve bindings (binding) objektet med i kaldet. Læg også mærke til at vi har valgt OneWay til at starte med. Nu bliver det spændende.&lt;/p&gt;  &lt;p&gt;Når vi binder med OneWay bliver vores bagved liggende kilde (Name egenskaben på Person objektet) ikke informeret om ændringer der sker i præsentationslaget. Det er tydeligt at se hvis du sætter et break point på Name egenskaben (linie 19 i Person.cs) og indtaster noget i name TextBoxen og flytter fokus væk fra TextBoxen. Hvis du ændrer BindingMode fra OneWay til TwoWay så vil du opdage at dit præsentationslag (xaml) faktisk opdatere din kilde (Name property på Person objektet). Det er lidt svært at forklare med ord, så derfor synes jeg &lt;a href="http://msdncommunity.dk/media/45022/databindingdemo.zip" mce_href="http://msdncommunity.dk/media/45022/databindingdemo.zip"&gt;du skal downloade kildekoden&lt;/a&gt; og selv steppe dig igennem koden med en debugger.&lt;/p&gt;  &lt;p&gt;Du kan også databinde direkte fra XAML, og det gør du ved at bruge DataBinding{} i f.eks Text attributen på vores name TextBox. &lt;/p&gt;  &lt;p&gt;&amp;lt;TextBox x:Name="name" Text="{Binding Path=Name, Mode=TwoWay}" Margin="80, 130, 0, 0" Width="100" /&amp;gt;&lt;/p&gt;  &lt;p&gt;Så skal du bare lige huske at slette alt det der står i din code-behind constructor (Page(){}) så det kommer til at se således ud:&lt;/p&gt;  &lt;p&gt;public partial class Page : UserControl   &lt;br&gt;{    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Person person = new Person(); &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Page()   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent(); &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name.DataContext = person;   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void save_Click( object sender, RoutedEventArgs e )   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; person.Name = DateTime.Now.Second.ToString();    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br&gt;}&lt;/p&gt;  &lt;p&gt;Der er et par ting som ikke er så heldige med begge løsninger. Det er weak-typing af din CLR objekter. Kig f.eks på:&lt;/p&gt;  &lt;p&gt;&amp;lt;TextBox x:Name="name" Text="{Binding Path=Name, Mode=TwoWay}" Margin="80, 130, 0, 0" Width="100" /&amp;gt;&lt;/p&gt;  &lt;p&gt;Path=Name har intet med strongly typed at gøre og det er hverken vildt heldigt eller fedt. Det samme kan man sige om selve databindings modellen i Silverlight kontra WPF. De er vidt forskellige selvom de deler samme terminologi og i bund og grund burde være bygget på samme kerne.&lt;/p&gt;  &lt;p&gt;Det er helt sikkert at databinding er kommet for at blive, men vælg dit mode med omhu og husk hvad kalder hvad og hvornår.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8681071" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Silverlight introduktion, del 5 - positionering af XAML elementer</title><link>http://blogs.msdn.com/danielmf/archive/2008/06/26/silverlight-introduktion-del-5-positionering-af-xaml-elementer.aspx</link><pubDate>Thu, 26 Jun 2008 12:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8655719</guid><dc:creator>danielmf</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8655719.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8655719</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8655719</wfw:comment><description>&lt;p&gt;Jeg tror det er på tide vi lige kigger lidt nærmere på hvordan vi kan positionere vores elementer i XAML.&lt;/p&gt;  &lt;p&gt;Som jeg nævner i en af de forrige posts omkring XAML, så har vi i Silverlight med et kordinat system at gøre og det betyder vi skal tage udgangspunkt i at ramme 2 punkter til hver akse en Y og X kordinat. Du kan se hvordan det fungere ved at tegne en &amp;lt;Rectangle&amp;gt; i Expression Blend værktøjet og holde øje med både Margin, HorizontialAlignment og VerticalAlignment attributen .&lt;/p&gt;  &lt;p&gt;Se selv her:&lt;/p&gt;  &lt;p&gt;&amp;lt;Grid x:Name="LayoutRoot" Background="White"&amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Rectangle Height="47" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="91" Fill="#FFFF0B0B" Stroke="#FF000000" Opacity="1"/&amp;gt;     &lt;br&gt;&amp;lt;/Grid&amp;gt;&lt;/p&gt;  &lt;p&gt;Her kan du se at vores Rectangle har en højde (height) og en vidde (width), og udover det fortæller vi med XAML at vores Rectangle skal tegnes på position 0,0,0,0 (kig på Margin) og placeres til venstre på skærmen (HorizontalAlignment="Left") og i toppen. &lt;/p&gt;  &lt;p&gt;Det er faktisk nemmere at vise med et par billeder:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/Silverlightintroduktiondel5XAML_D839/PositionAttributes_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/Silverlightintroduktiondel5XAML_D839/PositionAttributes_2.jpg"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/Silverlightintroduktiondel5XAML_D839/PositionAttributes_thumb.jpg" style="border-width: 0px;" alt="PositionAttributes" mce_src="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/Silverlightintroduktiondel5XAML_D839/PositionAttributes_thumb.jpg" width="644" border="0" height="419"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Her kan du se jeg har tegnet en rød &amp;lt;Rectangle&amp;gt; og sat Expression Blend til at vise grids på deisignfladen. Du sætte grid på ved at klikke på den første af de 3 knapper nedenunder (som også er på billedet ovenover):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/Silverlightintroduktiondel5XAML_D839/gridButton_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/Silverlightintroduktiondel5XAML_D839/gridButton_2.jpg"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/Silverlightintroduktiondel5XAML_D839/gridButton_thumb.jpg" style="border-width: 0px;" alt="gridButton" mce_src="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/Silverlightintroduktiondel5XAML_D839/gridButton_thumb.jpg" width="138" border="0" height="48"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Prøv så at flytte din rectangle rundt på designfladen med dine piletaster og se hvordan dine attributer ændre sig (mest din Margin der vil ændre sig). Du kan også bruge musen til at flytte rundt med elementet på, men så kan du ikke se dine attributers værdier ændre sig.&lt;/p&gt;  &lt;p&gt;En anden ting du skal være klar er hvordan elementer (canvas, rectangle, ellipse, path etc) bliver positioneret i forhold til hinanden.&lt;/p&gt;  &lt;p&gt;Se den her kode f.eks:&lt;/p&gt;  &lt;p&gt;&amp;lt;Canvas Margin="21,26,27,23" Background="#FFFF0000" &amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Canvas Height="206" Width="308" Canvas.Left="24" Canvas.Top="22" Background="#FF000000"&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Canvas Height="128" Width="230" Canvas.Left="35" Canvas.Top="34" Background="#FFB1D312"/&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Canvas&amp;gt;     &lt;br&gt;&amp;lt;/Canvas&amp;gt;&lt;/p&gt;  &lt;p&gt;Her har vi 3 gange Canvas hvor hvert Canvas har sin egen baggrundsfarve og er positioneret med Canvas.Left og Canvas.Top attributerne. De 2 positionerings attributer er sat i forhold til det element vi befinder os inde i. Det vil sige at det sidste Canvas tag er rykket 35 pixels (Canvas.Left="35") til venstre for det Canvas vi står inden i (canvas nummer 2).&lt;/p&gt;  &lt;p&gt;Med z-index egenskaben skal du se dine elementer som værende "lag" du lægger ovenpå hinanden og derefter sortere i rækkefølgen. Z-index bestemmer i hvilken rækkefølge dine elementer skal vises.&lt;/p&gt;  &lt;p&gt;&amp;lt;Canvas Margin="8,22,8,22"&amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Rectangle Canvas.ZIndex="2" Height="108" Width="158" Canvas.Left="19" Canvas.Top="20" Fill="#FFCC2F2F" Stroke="#FF000000"/&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Rectangle Canvas.ZIndex="1" Height="126" Width="99" Canvas.Left="102" Canvas.Top="51" Fill="#FF3476C4" Stroke="#FF000000"/&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Rectangle Canvas.ZIndex="0" Height="72" Width="107" Canvas.Left="142" Canvas.Top="141" Fill="#FF17A921" Stroke="#FF000000"/&amp;gt;     &lt;br&gt;&amp;lt;/Canvas&amp;gt;&lt;/p&gt;  &lt;p&gt;Prøv at ændre Canvas.ZIndex på alle tre Rectangler og se hvad der sker. Her kan du igen se at alle tre Rectangles bruger vores Canvas til at bestemme positionen på skærmen.&lt;/p&gt;  &lt;p&gt;Så lærte vi også lidt omkring postionering af elementer og hvordan vi kan ændre i rækkefølgen når de skal renderes.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8655719" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Silverlight introduktion, del 4 - fundamentale XAML elementer</title><link>http://blogs.msdn.com/danielmf/archive/2008/06/23/silverlight-introduktion-del-4-xaml.aspx</link><pubDate>Mon, 23 Jun 2008 14:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8641825</guid><dc:creator>danielmf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8641825.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8641825</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8641825</wfw:comment><description>&lt;p&gt;Sidste gang kiggede vi lidt overordnet på hvad XAML var for en fisk, hvordan du nemt kunne komme igang, vi fik endda lavet et par XAML dokumenter og snakket lidt omkring tekst og fonte.&lt;/p&gt;  &lt;p&gt;Den her gang skal det handle om forskellige former i XAML. Når jeg siger former, så mener jeg dybest set grafik og hvordan man kan lave det med XAML.&lt;/p&gt;  &lt;p&gt;Hvis du vil teste de statements af jeg bruger i denne post kan du enten downloade &lt;a href="http://kaxaml.com" mce_href="http://kaxaml.com"&gt;KAXAML&lt;/a&gt; eller åbne &lt;a href="http://msdn.microsoft.com/en-us/library/ms742398.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms742398.aspx"&gt;XAMLPad&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Line, Rectangle, Polygon, Ellipse:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Ovenstående elementer er så lette at arbejde med, at det næsten er skuffende. Den mest simple ting du kan tegne med XAML er en &amp;lt;Line&amp;gt; og resten følger ellers stille og roligt med når du skal lave lidt mere krævende grafik - uden at være for avanceret. &lt;/p&gt;  &lt;p&gt;Der er 3 fællesnævner for de sidste 3 elementer i listen; &amp;lt;Rectangle&amp;gt;, &amp;lt;Polygon&amp;gt; og &amp;lt;Ellipse&amp;gt;. De har alle sammen mulighed for at tilgå disse egenskaber: Fill, Stroke og StrokeThickness, egenskaber vi skal have et kig på lige om lidt.&lt;/p&gt;  &lt;p&gt;Silverlight bruger et kordinat system som er pixel baseret og tager udgangspunkt i øverste venstra hjørne. Så når du tegner en streg i XAML skal du med andre ord angive hvor den skal starte og hvor den skal slutte. Vær ikke nervøs, det er meget simpelt.&lt;/p&gt;  &lt;p&gt;&amp;lt;Line X1="200" Y1="50" X2="400" Y2="300" StrokeThickness="3" Stroke="Red"&amp;gt;&amp;lt;/Line&amp;gt;&lt;/p&gt;  &lt;p&gt;Det var da noget af det nemmeste og smukkeste jeg har indtil nu har lavet i XAML - en rød streg :0)&lt;/p&gt;  &lt;p&gt;Nu da vi kan tegne streger kan vi ligeså tage et skridt videre og se på hvordan vi f.eks en lukket form som f.eks en trekant. Til det formål kan vi bruge elementet &amp;lt;Polygon&amp;gt;. For at lave et polygon objekt skal du bruge Point attributen hvori du specificere hvor henne på skærmen dit objekt skal optræde, og mere end det, du kan faktisk lave et hvilket som helst kantet objekt med en polygon. Når du angiver din kordinater i Points attributen, så bliver det sidste kordinat forbundet med det første, også selvom du specifiere 10 eller 30 kordinater.&lt;/p&gt;  &lt;p&gt;Prøv selv den her:&lt;/p&gt;  &lt;p&gt;&amp;lt;Polygon Points="200,50 350,250 200,400" Fill="Black"&amp;gt;&amp;lt;/Polygon&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Hvis du ønsker en form der ikke lukkes af til sidst kan du benytte dig af &amp;lt;Polyline&amp;gt; istedet.&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Et &amp;lt;Rectangle&amp;gt; element opfører sig lidt anderledes en polygon og polyline, da man ikke angiver kordinater men en Width og en Heigth, og ydermere kan angive en RadiusX og RadiusY til dens hjørner. Lad os prøve ad.&lt;/p&gt;  &lt;p&gt;Her vil du se et hel firkantet objekt:&lt;/p&gt;  &lt;p&gt;&amp;lt;Rectangle Width="300" Height="300" Stroke="Orange" StrokeThickness="5" Fill="black" /&amp;gt;&lt;/p&gt;  &lt;p&gt;og her vil du se dette samme objekt bare med runde hjørner:&lt;/p&gt;  &lt;p&gt;&amp;lt;Rectangle Width="300" Height="300" RadiusX="20" RadiusY="20" Stroke="Orange" StrokeThickness="5" Fill="black" /&amp;gt;&lt;/p&gt;  &lt;p&gt;Den sidste af de basale elementer er Ellipse. Den opføre sig stort set som en Rectangle, bortset fra at den ikke har RadiusX eller RadiusY attributer:&lt;/p&gt;  &lt;p&gt;&amp;lt;Ellipse Width="200" Height="150" Fill="Black"&amp;gt;&amp;lt;/Ellipse&amp;gt;&lt;/p&gt;  &lt;p&gt;Nu har du stiftet bekendtskab grundelementerne for en simpel XAML fil: &amp;lt;Line&amp;gt;, &amp;lt;Polygon&amp;gt;, &amp;lt;Rectangle&amp;gt;, &amp;lt;Run&amp;gt;, &amp;lt;TextBlock&amp;gt;,&amp;lt;Ellipse&amp;gt; etc.&lt;/p&gt;  &lt;p&gt;Den sidste form er lidt mere vigtig men også mere advanceret (det er utroligt at det altid er sådan). Heldigvis er det næste element vi skal kigge på &amp;lt;Path&amp;gt; næsten for advanceret til at gide skrive det i hånden, men det er alligevel vigtigt at forstå princippet baged.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&amp;lt;Path&amp;gt;:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Uanset hvor kompleks din form skal være kan blive lavet om til en Path. Lad os se på hvordan den virker.&lt;/p&gt;  &lt;p&gt;En Path består af forskellige tegne instrukser, og det gør den ved hjælp af dens vigtigste egenskab Data. &lt;/p&gt;  &lt;p&gt;&amp;lt;Path&amp;nbsp; HorizontalAlignment="Stretch" Margin="55.5,106.5,292.5,211.5" VerticalAlignment="Stretch" Data="M114,134 C233,221 322,138 322,138" Fill="#FF000000" Stretch="Fill" Stroke="#FF000000"/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;  &lt;p&gt;Det kommer hurtigt til at se ud af meget, især hvis man ikke ved hvad det der står indenfor Data attributen betyder.&lt;/p&gt;  &lt;p&gt;Det første der sker indenfor Data er M114,134. M står for Move og de tol tal er igen kordinat punkter. Det vil sige at vi beder om at starte vores Path på &lt;i&gt;x &lt;/i&gt;kordinat på 114 og vores &lt;i&gt;y &lt;/i&gt;kordinat på 134. Der starter vores Path altså.&lt;/p&gt;  &lt;p&gt;Så kommer der en C233,221 322,138 322,138. C står for "cubic" og stammer oprindeligt fra det vi kender som Beizer kurven. Pierre Beizer opfandt en række matematiske lininger der kunne hjælpe ham med at udregne kurver til han arbejde som bildesigner.&lt;/p&gt;  &lt;p&gt;C er faktisk en af det mest advancerede kurver du kan lave i XAML, og den kræver en række parametre. Vi har lige fortalt XAML at vi gerne vil have en tegning der starter på kordinat 114,143 (den første vi snakkede om, den med M foran) og nu fortæller vi altså XAML at vi gerne vil bede om kurve der ender ved 322,138 &lt;u&gt;men&lt;/u&gt; som har 2 kontrol kordinater 233,221 og 322,138. Sejt ik' :0)&lt;/p&gt;  &lt;p&gt;Anden anden mulighed er en A beizer. A laver en buet ellipse og skal bruge følgende parametre:&lt;/p&gt;  &lt;p&gt;1. x og y radius af Ellipsen.    &lt;br&gt;2. rotation vinkelen af Ellipsen.     &lt;br&gt;3. 1 eller 0 alt efter om vinkelen skal være størrer eller mindre en 180 grader.     &lt;br&gt;4. 1 eller 0 alt efter om buen skal tegnes i en positiv eller negativ retning.     &lt;br&gt;5. buens endelig kordinat.&lt;/p&gt;  &lt;p&gt;Prøv at kør den her:&lt;/p&gt;  &lt;p&gt;&amp;lt;Path&amp;nbsp; HorizontalAlignment="Stretch" Margin="55.5,106.5,292.5,211.5" VerticalAlignment="Stretch" Data="M114,134 A50,50 90 1 0 100,50" Fill="#FF000000" Stretch="Fill" Stroke="#FF000000"/&amp;gt;&lt;/p&gt;  &lt;p&gt;Du kan også sagtens tegne linier med Path elementet:&lt;/p&gt;  &lt;p&gt;&amp;lt;Path&amp;nbsp; HorizontalAlignment="Stretch" Margin="55.5,106.5,292.5,211.5" VerticalAlignment="Stretch" Data="M114,134 L100,50" Fill="#FF000000" Stretch="Fill" Stroke="#FF000000"/&amp;gt;&lt;/p&gt;  &lt;p&gt;L står for line og det er præcis hvad vi gør brug af i ovenstående eksempel. L er den mest simple form for "tegning" du kan bruge.&lt;/p&gt;  &lt;p&gt;Udover A,M,L og C så er der også Q, V, S, T, H, Z, X. Prøv selv at leg lidt med dem i en XAML editor for at finde ud hvad der er muligt med dem.&lt;/p&gt;  &lt;p&gt;Nu synes jeg du har fået lidt basal viden omkring et par af de kontroller og XAML du kan benytte dig af i både Silverlight og WPF. Jeg forslår dig, at du leger lidt med diverse kontroller og evt. prøver at bruge dem i et Silverlight projekt.&lt;/p&gt;  &lt;p&gt;Stay tuned -&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8641825" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Silverlight links</title><link>http://blogs.msdn.com/danielmf/archive/2008/06/23/silverlight-links.aspx</link><pubDate>Mon, 23 Jun 2008 14:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8641826</guid><dc:creator>danielmf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8641826.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8641826</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8641826</wfw:comment><description>&lt;p&gt;&lt;b&gt;18/6/2008&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;1. &lt;a href="http://weblogs.asp.net/bradleyb/archive/2008/06/09/upgrading-to-silverlight-beta-2-and-visual-studio-2008-sp1-beta.aspx" mce_href="http://weblogs.asp.net/bradleyb/archive/2008/06/09/upgrading-to-silverlight-beta-2-and-visual-studio-2008-sp1-beta.aspx"&gt;Opdatering til Microsoft Silverlight 2.0 beta 2 tools til Visual Studio.&lt;/a&gt;     &lt;br&gt;2. &lt;a href="http://whitepapers.zdnet.com/abstract.aspx?docid=321351" mce_href="http://whitepapers.zdnet.com/abstract.aspx?docid=321351"&gt;XAML basics PDF.&lt;/a&gt;     &lt;br&gt;3. &lt;a href="http://download.microsoft.com/download/6/5/4/6543e67c-8cae-44ca-acf7-c12df1960ede/WinVideo-SL-GettingStarted.wmv" mce_href="http://download.microsoft.com/download/6/5/4/6543e67c-8cae-44ca-acf7-c12df1960ede/WinVideo-SL-GettingStarted.wmv"&gt;Kom igang med Silverlight udvikling (engelsk)&lt;/a&gt; (WMV video).     &lt;br&gt;4. &lt;a href="http://download.microsoft.com/download/7/2/8/72805860-c186-4be5-9851-f022cc8e5d7b/WinVideo-Silverlight-2b1-IntroBlendTutorial-Part1.wmv" mce_href="http://download.microsoft.com/download/7/2/8/72805860-c186-4be5-9851-f022cc8e5d7b/WinVideo-Silverlight-2b1-IntroBlendTutorial-Part1.wmv"&gt;Kom igang med Silverlight udvikling i Expression Blend&lt;/a&gt; (WMV video).     &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8641826" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Silverlight 2.0 introduktion, del 3 - start med XAML</title><link>http://blogs.msdn.com/danielmf/archive/2008/06/23/silverlight-2-0-introduktion-del-3-xaml.aspx</link><pubDate>Mon, 23 Jun 2008 14:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8641822</guid><dc:creator>danielmf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8641822.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8641822</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8641822</wfw:comment><description>&lt;p&gt;&lt;b&gt;HUSK:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Silverlight er nu i beta 2, og derfor kræver det at du installere &lt;a href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=50a9ec01-267b-4521-b7d7-c0dba8866434&amp;amp;displayLang=en#" mce_href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=50a9ec01-267b-4521-b7d7-c0dba8866434&amp;amp;displayLang=en#"&gt;Microsoft Silverlight Tools Beta 2 for Visual Studio 2008&lt;/a&gt;, og det nyeste preview af &lt;a href="http://expression.microsoft.com/en-us/cc507094.aspx#blendpreview" mce_href="http://expression.microsoft.com/en-us/cc507094.aspx#blendpreview"&gt;Expression Blend&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Har du ikke læst de 2 forrige posts (&lt;a href="http://blogs.msdn.com/danielmf/archive/2008/04/24/silverlight-2-0-introduktion.aspx" mce_href="http://blogs.msdn.com/danielmf/archive/2008/04/24/silverlight-2-0-introduktion.aspx"&gt;1&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/danielmf/archive/2008/05/07/silverlight-2-0-introduktion-del-2.aspx" mce_href="http://blogs.msdn.com/danielmf/archive/2008/05/07/silverlight-2-0-introduktion-del-2.aspx"&gt;2&lt;/a&gt;) omkring min indledning til Silverlight 2.0, så vil jeg opfordre dig til at gøre det inden du fortsætter.&lt;/p&gt;  &lt;p&gt;I den &lt;a href="http://blogs.msdn.com/danielmf/archive/2008/05/07/silverlight-2-0-introduktion-del-2.aspx" mce_href="http://blogs.msdn.com/danielmf/archive/2008/05/07/silverlight-2-0-introduktion-del-2.aspx"&gt;sidste post&lt;/a&gt; skrev jeg, at jeg ville lave en post omkring XAML i Silverlight og hvad det kan hjælpe os med at løse.&lt;/p&gt;  &lt;p&gt;Det første jeg kan starte med at sige er, at XAML er mere udbredt end i Silverlight, ja faktisk bliver det brugt i størrer udstrækning i WPF som står for Windows Presentation Foundation. XAML kommer fra WPF, og i Silverlight har vi kun mulighed for at skrive XAML som et mindre subset af hele det bibliotek WPF gør brug af.&lt;/p&gt;  &lt;p&gt;XAML (eXtensible Application Markup Language) er et deklaretivt sprog ligsom HTML og XAML's "mor" XML. Du bruger XAML til visuelt at udtrykke dig med. Du kan sagtens selv kode din XAML, men du kan også få værktøjer til at skrive din XAML kode for dig. Vi har allerede set hvordan bla. Expression Blend kan skrive XAML for os, og man kan ligeledes også tilgå XAML koden i ens Visual Studio. Med XAML kan du også gøre brug af code-behind filer til at tilgå dine XAML elementer programmelt, de giver endda mulighed for at hooke sig op på forskellige events, præcis som udviklerne kender det fra normal web eller windows programmering.&lt;/p&gt;  &lt;p&gt;Her ser du en UserControl som den bliver lavet i et Silverlight projekt i Visual Studio 2008.&lt;/p&gt;  &lt;p&gt;&amp;lt;UserControl x:Class="XAMLinDetail.Page"    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="&lt;a href="http://schemas.microsoft.com/client/2007" mce_href="http://schemas.microsoft.com/client/2007" ?="?"&gt;http://schemas.microsoft.com/client/2007"&lt;/a&gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x="&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml" mce_href="http://schemas.microsoft.com/winfx/2006/xaml" ?="?"&gt;http://schemas.microsoft.com/winfx/2006/xaml"&lt;/a&gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width="400" Height="300"&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid x:Name="LayoutRoot" Background="White"&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;    &lt;br&gt;&amp;lt;/UserControl&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Ligsom XML er XAML case-sensitivt når det kommer til selve elementer og deres navngivning.&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Eftersom Silverligt "kun" gør brug af et subset fra det store WPF XAML bibliotek kan alt det i WPF ikke lade sig gøre i samme udstrækning som i Silverlight. Der vil med sikkerhed blive åbnet op for XAML godteposen i Silverlight i fremtidige versioner, men lige nu må vi nøjes med de mest nødvendige dele.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Canvas / Grid:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Det første tag der skal fremstå i en XAML fil er enten Canvas &lt;i&gt;eller&lt;/i&gt; Grid.&lt;/p&gt;  &lt;p&gt;&amp;lt;Grid&amp;gt;&amp;lt;/Grid&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;Canvas&amp;gt;&amp;lt;/Canvas&amp;gt;&lt;/p&gt;  &lt;p&gt;Det passer faktisk ikke 100%, fordi du kan godt andre have elementer (f.eks &amp;lt;Rectangle&amp;gt;&amp;lt;/Rectangle&amp;gt;) som det første men så mister du hurtigt chancen for at have andre elementer med i spil. Kort sagt, Canvas og Grid kan indeholde alle andre elementer som f.eks en Rectangle, Button, Ellipse etc, og det får du ikke lov til hvis du f.eks åbner dit XAML dokument med f.eks Rectangle.&lt;/p&gt;  &lt;p&gt;Jeg bruger en blanding af værktøjer til at teste XAML af med, &lt;a href="http://msdn.microsoft.com/en-us/vstudio/default.aspx" mce_href="http://msdn.microsoft.com/en-us/vstudio/default.aspx"&gt;Visual Studio 2008&lt;/a&gt;, &lt;a href="http://www.microsoft.com/expression/products/Overview.aspx?key=blend" mce_href="http://www.microsoft.com/expression/products/Overview.aspx?key=blend"&gt;Expression Blend&lt;/a&gt; og &lt;a href="http://kaxaml.com/" mce_href="http://kaxaml.com/"&gt;KAXAML&lt;/a&gt;. Visual Studio 2008 bruger jeg når jeg ønsker at udvikle videre fra en XAML prototype som jeg har testet af i KAXAML. KAXAML er gratis og den giver dig et nemt og intelligent miljø til at udvikle i XAML. &lt;/p&gt;  &lt;p&gt;Det næste du skal huske er at få de altafgørende XAML namespaces med i åbningstaget, også selvom det er en Rectangle du vil starte med. Så hvis du ligsom mig er startet ud med at åbne vores XAML dokument med en Grid og tilføje en Rectangle, så ser din XAML fil nogenlunde således ud:&lt;/p&gt;  &lt;p&gt;&amp;lt;Grid xmlns="&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation" mce_href="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ?="?"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/a&gt; xmlns:x="&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml" mce_href="http://schemas.microsoft.com/winfx/2006/xaml" ?="?"&gt;http://schemas.microsoft.com/winfx/2006/xaml"&lt;/a&gt;&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;Rectangle Width="100" Height="100" Fill="#FF0000"&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/Rectangle&amp;gt;     &lt;br&gt;&amp;lt;/Grid&amp;gt;&lt;/p&gt;  &lt;p&gt;Gem din XAML kode som demo.xaml og prøv engang at åbne den med Internet Explorer. Nu skulle du gerne se en rød firkant ca. midt på skærmen. Tillykke, du har nu lavet dit første XAML dokument - var det svært ? :0)&lt;/p&gt;  &lt;p&gt;Det eneste problem er bare, at nu er vores Rectangle så dum at vi ikke kan bruge den til noget, men husk, at vi skal kunne kravle før vi kan går.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;TextBlock, Fonts, Run:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Hvis du kender til HTML, så tænk på &amp;lt;TextBlock&amp;gt; som værende et &amp;lt;Div&amp;gt; tag og &amp;lt;Run&amp;gt; et &amp;lt;Span&amp;gt; tag. TextBlock og Run er fra WPF verdenen hvorimod Div og Span er fra HTML. Husk det mens vi fortsætter.&lt;/p&gt;  &lt;p&gt;Hvis du vil skrive tekst i Silverligt er der 2 måder at gøre det på, ihvertfald når vi gør det med TextBlock. Du kan skrive teksten enten imellem åbningstagget og lukketaget, ligsom forneden:&lt;/p&gt;  &lt;p&gt;&amp;lt;TextBlock&amp;gt;Hej Verden!&amp;lt;/TextBlock&amp;gt;&lt;/p&gt;  &lt;p&gt;Eller du kan gøre det via Text attributen på selve elementet:&lt;/p&gt;  &lt;p&gt;&amp;lt;TextBlock Text="Hej Verden!" /&amp;gt;&lt;/p&gt;  &lt;p&gt;Jeg kan bedst lide nr. 2, men det er en smagssag og du kan gøre som det passer dig bedst.&lt;/p&gt;  &lt;p&gt;Der er selvfølgelig nogle flere muligheder med TextBlock elementet, såsom styling og positionering.&lt;/p&gt;  &lt;p&gt;&amp;lt;TextBlock FontFamily="Verdana" FontSize="18px" TextAlignment="Center" Background="Black" FontWeight="Bold" Foreground="#4E00FFFF" Text="Hej Verden!" /&amp;gt;&lt;/p&gt;  &lt;p&gt;Foreground attributen er værd lide at fremhæve, for der er flere muligheder med den. Du kan bruge 3 forskellige typer af farver; RBG trible, navn (red, green, blue, etc.), aRBG. RGB kender du måske, det er den type der ser således ud: #336699 eller #EEEEEE etc. A i aRGB står for aplhatransparency, og det detyder at du kan give attributtens 2 første karaktere en værdi mellem 0 og 255 i hex format og opnå en transparent forgrundsfarve. 4E står f.eks for tallet 79 i hex tabellen. Det giver ca. en transparens på 32%!&lt;/p&gt;  &lt;p&gt;Når du vælger en font i Silverlight skal du være opmærksom på, at selve det plugin Silverlight kræver af Browseren for at køre kommer med en række indbyggede fonte. Her er listen af de fonte du kan bruge:&lt;/p&gt;  &lt;p&gt;Arial, Arial Black, Comic Sans MS, Courier New, Georgia, Times New Roman, Trebuchet MS, Verdana, Lucida.&lt;/p&gt;  &lt;p&gt;Selvom der er installeret andre fonte på klientens maskine kan Silverlight ikke gøre brug af dem, og hvis Silverlight ikke genkender den font du har skrevet i koden, vil den automatisk bruge Lucida fonten.&lt;/p&gt;  &lt;p&gt;&amp;lt;TextBlock FontFamily="Verdana" FontSize="18px" TextAlignment="Center" Background="Black" FontWeight="Bold" Foreground="#4E00FFFF" Text="XAML historien"&amp;gt;    &lt;br&gt;&amp;nbsp; &amp;lt;LineBreak /&amp;gt;     &lt;br&gt;&amp;nbsp; &amp;lt;Run FontFamily="Trebuchet MS" FontSize="12px" FontWeight="Normal" Foreground="#9EEEEEEE"&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Der var engang en udvikler der elskede XAML, og han lignede dig :0)     &lt;br&gt;&amp;nbsp; &amp;lt;/Run&amp;gt;     &lt;br&gt;&amp;nbsp; &amp;lt;LineBreak /&amp;gt;&amp;lt;LineBreak /&amp;gt;     &lt;br&gt;&amp;nbsp; &amp;lt;Run FontFamily="Verdana" FontSize="10px" FontWeight="Normal" Foreground="#9EFFFFFF"&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Skrevet af Daniel     &lt;br&gt;&amp;nbsp; &amp;lt;/Run&amp;gt;     &lt;br&gt;&amp;lt;/TextBlock&amp;gt;&lt;/p&gt;  &lt;p&gt;Her ser du hvordan jeg har brugt Run og LineBreak elementerne i sammenspil med TextBlock elementet. Det ligner det vi kender fra HTML, de forskellige tags hedder bare noget andet.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Du kan wrappe tekst ved at gøre brug af TextWrapping attributen på netop TextBlock elementet. &amp;lt;TextBlock TextWrapping="Wrap" /&amp;gt;.&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Næste post skal handle hvordan man laver forskellige former af vector grafik direkte i XAML. Stay tuned.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8641822" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Video interview: Morten "guidmaster" Jokumsen - insitels arkitektur og platform.</title><link>http://blogs.msdn.com/danielmf/archive/2008/06/23/video-interview-morten-guidmaster-jokumsen-insitels-arkitektur-og-platform.aspx</link><pubDate>Mon, 23 Jun 2008 11:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8641686</guid><dc:creator>danielmf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8641686.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8641686</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8641686</wfw:comment><description>&lt;p&gt;Jeg har været forbi Morten fra DotNetForum.dk der til dagligt sidder som udvikler hos Insitel i København. Morten er kendt for sin kærlighed til SQL serveren og et ligeså nært forhold til alle de data der kan ligge i en database. &lt;/p&gt;  &lt;p&gt;Hør hvordan Insitel bla. har udnyttet sig af SQL Server Express i deres produktion, hvordan deres server setup er implementeret og hvordan de håndtere de store mængder data der kommer ud og ind af deres produkt.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dotnetforum.dk/media/p/95869.aspx" mce_href="http://dotnetforum.dk/media/p/95869.aspx"&gt;Se den her&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sit back and enjoy :)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8641686" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Microformats, et eksempel.</title><link>http://blogs.msdn.com/danielmf/archive/2008/06/12/microformats-et-eksempel.aspx</link><pubDate>Thu, 12 Jun 2008 16:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8593070</guid><dc:creator>danielmf</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8593070.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8593070</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8593070</wfw:comment><description>&lt;p&gt;Jeg havde jo fonøjelsen af at interviewe &lt;a href="http://blogs.msdn.com/danielmf/archive/2008/05/14/video-interview-med-mads-kristensen-og-ole-h-jriis-kristensen-det-semantiske-web.aspx" mce_href="http://blogs.msdn.com/danielmf/archive/2008/05/14/video-interview-med-mads-kristensen-og-ole-h-jriis-kristensen-det-semantiske-web.aspx"&gt;Mads og Ole&lt;/a&gt; for nogle uger siden og snakken gik en del på det hersens microformats som man med meget lidt viden omkring udvikling kan implementere i sine løsninger. Det kræver faktisk ikke rigtig noget, blot et par attributer i sine tags. &lt;/p&gt;  &lt;p&gt;Jeg har taget udgangspunkt i Mads' egen blog, og fundet noget af den kode som indikere at Mads selv gør brug af microformats. Se selv her:&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;lt;table border="0" class="vcard"&amp;gt;   &lt;br&gt; &amp;lt;tbody&amp;gt;    &lt;br&gt;&amp;nbsp; &amp;lt;tr&amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;img class="photo" src="http://blogs.msdn.com/themes/standard/madskristensen.png" alt="Mads Kristensen" title="Mads Kristensen" width="85" height="103" /&amp;gt;&amp;lt;/td&amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;td style='vertical-align: top'&amp;gt;&amp;lt;span class='fn' style='font-weight: bold'&amp;gt;Mads Kristensen&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;span class="role title"&amp;gt;Senior Developer&amp;lt;/span&amp;gt; at &amp;lt;a href="&lt;a href="http://www.zyb.com/" mce_href="http://www.zyb.com/"&gt;http://www.zyb.com/"&lt;/a&gt; class="org"&amp;gt;Zyb&amp;lt;/a&amp;gt;, founder of &amp;lt;a href="&lt;a href="http://www.dotnetblogengine.net/" mce_href="http://www.dotnetblogengine.net/"&gt;http://www.dotnetblogengine.net/"&lt;/a&gt;&amp;gt;BlogEngine.NET&amp;lt;/a&amp;gt; and long time &amp;lt;span class="nickname"&amp;gt;.NET slave&amp;lt;/span&amp;gt;. &amp;lt;a href="http://blogs.msdn.com/page/about-mads-kristensen.aspx" class="url"&amp;gt;More...&amp;lt;/a&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;div style='display: none'&amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;span class="type"&amp;gt;Home&amp;lt;/span&amp;gt; &amp;lt;span class="locality"&amp;gt;Copenhagen&amp;lt;/span&amp;gt; &amp;lt;span class="country-name"&amp;gt;Denmark&amp;lt;/span&amp;gt;     &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;br /&amp;gt;    &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;span style='float: right; clear: both'&amp;gt;Contact me&amp;amp;nbsp; &amp;lt;a style='position: relative; top: -2px' href='/contact.aspx' title='By e-mail'&amp;gt;&amp;lt;img src='/pics/mail.gif' alt='E-mail' width='14' height='9' /&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;a href='callto://dotnetslave/' title='By Skype'&amp;gt;&amp;lt;img src='&lt;a href="http://mystatus.skype.com/smallicon/dotnetslave" mce_href="http://mystatus.skype.com/smallicon/dotnetslave"&gt;http://mystatus.skype.com/smallicon/dotnetslave"&lt;/a&gt; alt="Skype Me" width="16" height="16" /&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;a href="&lt;a href="http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=fa1b4e7eaf9c0c82%40apps.messenger.live.com&amp;amp;mkt=en-US" mce_href="http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=fa1b4e7eaf9c0c82%40apps.messenger.live.com&amp;amp;mkt=en-US"&gt;http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=fa1b4e7eaf9c0c82%40apps.messenger.live.com&amp;amp;amp;mkt=en-US"&lt;/a&gt; target="_blank" title="By Live Messenger"&amp;gt;&amp;lt;img src="&lt;a href="http://messenger.services.live.com/users/fa1b4e7eaf9c0c82%40apps.messenger.live.com/presenceimage?mkt=en-US" mce_href="http://messenger.services.live.com/users/fa1b4e7eaf9c0c82%40apps.messenger.live.com/presenceimage?mkt=en-US"&gt;http://messenger.services.live.com/users/fa1b4e7eaf9c0c82%40apps.messenger.live.com/presenceimage?mkt=en-US"&lt;/a&gt; alt="Live Messenger" width="16" height="16" /&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style='margin-top: 5px; float: right; width: 184px; clear: both'&amp;gt;Online life&amp;amp;nbsp; &amp;lt;a rel='me' href='&lt;a href="http://www.linkedin.com/in/madskvistkristensen" mce_href="http://www.linkedin.com/in/madskvistkristensen"&gt;http://www.linkedin.com/in/madskvistkristensen"&lt;/a&gt; title="LinkedIn"&amp;gt;&amp;lt;img style='width: 16px; height: 16px' src='/themes/standard/linkedin.ico' alt='LinkedIn' width='16' height='16' /&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;a rel='me' href='&lt;a href="http://zyb.com/madskristensen" mce_href="http://zyb.com/madskristensen"&gt;http://zyb.com/madskristensen"&lt;/a&gt; title="ZYB"&amp;gt;&amp;lt;img style='width: 16px; height: 16px' src='/themes/standard/zyb.ico' alt='ZYB' width='16' height='16' /&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;a rel='me' href='&lt;a href="http://www.facebook.com/profile.php?id=550468008" mce_href="http://www.facebook.com/profile.php?id=550468008"&gt;http://www.facebook.com/profile.php?id=550468008"&lt;/a&gt; title="Facebook"&amp;gt;&amp;lt;img style='width: 16px; height: 16px' src='/themes/standard/facebook.ico' alt='Facebook' width='16' height='16' /&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;a rel='me' href='&lt;a href="http://www.last.fm/user/madskristensen/" mce_href="http://www.last.fm/user/madskristensen/"&gt;http://www.last.fm/user/madskristensen/"&lt;/a&gt; title="Last.fm"&amp;gt;&amp;lt;img style='width: 16px; height: 16px' src='/themes/standard/lastfm.ico' alt='Last.fm' width='16' height='16' /&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;a rel='me' href='&lt;a href="http://twitter.com/mkristensen" mce_href="http://twitter.com/mkristensen"&gt;http://twitter.com/mkristensen"&lt;/a&gt; title="Twitter"&amp;gt;&amp;lt;img style='width: 16px; height: 16px' src='/themes/standard/twitter.ico' alt='Twitter' width='16' height='16' /&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;a rel='me' href='&lt;a href="http://technorati.com/people/technorati/dotnetslave" mce_href="http://technorati.com/people/technorati/dotnetslave"&gt;http://technorati.com/people/technorati/dotnetslave"&lt;/a&gt; title="Technorati"&amp;gt;&amp;lt;img style='width: 16px; height: 16px' src='/themes/standard/technorati.ico' alt='View Mads Kristensen's profile on Technorati' width='16' height='16' /&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;    &lt;br&gt;&amp;nbsp; &amp;lt;/tr&amp;gt;    &lt;br&gt; &amp;lt;/tbody&amp;gt;    &lt;br&gt;&amp;lt;/table&amp;gt;&lt;/p&gt;  &lt;p&gt;Det er jo bare HTMl vil mange af jer sige, og ja i har fuldstændig ret. Det er bare HTML. Læg dog mærke til class attributen på diverse tags. F.eks har det begyndende table tag i toppen en class der hedder "vcard" og længere nede finder vi en der hedder "role title", "locality" osv. Det er altsammen attributer der i sidste ende udgør mads's kontakt oplysninger som kan læses af en computer. Det er da lidt smart at man bare ved at implementere et par ekstra klasser på sine tags kan få en computer til at aflevere en vCard. Prøv selv at se på: &lt;a href="http://technorati.com/contacts/" title="http://technorati.com/contacts/" mce_href="http://technorati.com/contacts/"&gt;http://technorati.com/contacts/&lt;/a&gt; og indtast &lt;a href="http://blog.madskristensen.dk/" title="http://blog.madskristensen.dk/" mce_href="http://blog.madskristensen.dk/"&gt;http://blog.madskristensen.dk/&lt;/a&gt; - nu skulle du meget gerne få vCard smidt i nakken. Jeg synes det er meget fikst set fra hvor meget det kræver.&lt;/p&gt;  &lt;p&gt;Der findes mange andre fede microformats, og jeg synes du skal tage et kig på dem på &lt;a href="http://microformats.org" mce_href="http://microformats.org"&gt;http://microformats.org&lt;/a&gt; og &lt;a href="http://kitchen.technorati.com/" title="http://kitchen.technorati.com/" mce_href="http://kitchen.technorati.com/"&gt;http://kitchen.technorati.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Det var alt for nu.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8593070" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Video fra Umbraco Code Garden 2008.</title><link>http://blogs.msdn.com/danielmf/archive/2008/06/12/video-fra-umbraco-code-garden-2008.aspx</link><pubDate>Thu, 12 Jun 2008 15:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8593037</guid><dc:creator>danielmf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8593037.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8593037</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8593037</wfw:comment><description>&lt;p&gt;Dem der synes vi er alt for alvorlige skal se det her, men synes du derimod ikke at humor er noget du bryder dig om skal du tænde for teksts-tv på dk4. &lt;/p&gt;  &lt;p&gt;Jeg var til Code Garden i sidste uge, og sikke et arrangement &lt;a href="http://objects.dk/"&gt;Per&lt;/a&gt; og &lt;a href="http://hartvig.com/"&gt;Niels&lt;/a&gt; havde fået sat på benene. Det var fantastisk inspirende og ikke mindst - mega sjovt og hyggeligt.&lt;/p&gt;  &lt;p&gt;Der var i alt 100 mennesker som på en eller anden måde har med Umbraco communitiet at gøre. The most friendly CMS and community!&lt;/p&gt;  &lt;p&gt;Dag 1 bød på keynote af Niels selv, og han fortalte lidt omkring roadmappet og hvordan det hele gik i forhold til året før. Meget spændende. Senere på dag 1 var der små sessions, hvor den 1 session hele tiden henvendte sig til nybegynderen af Umbraco CMS (er i 4.0 beta mener jeg)&lt;/p&gt;  &lt;p&gt;Dag 2 begyndte med en stor rundkreds, en mikrofon i midten også kunne alle der havde lyst tage mikrofonen og sige "jeg vil gerne fortælle om....". Det gjorde 24 mennesker så i løbet af en halv time, og derefter kunne de forskellige slutte sig til de små grupper rundt omkring for at høre om de mange emner. Det var en blanding af "Open Space" og "Brown Bag" møde format.&lt;/p&gt;  &lt;p&gt;I det store hele var det her virklig et godt arrangement og fortjener at blive at blive promoveret i langt højere grad end blot et par blog indlæg.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;embed src="http://techtalks.codezone.dk/movie_0001.wmv" style="left: 0px; width: 480px; top: 112px; height: 405px;" type="video/x-ms-wmv" mce_src="http://techtalks.codezone.dk/movie_0001.wmv" autostart="false" width="480" height="405"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8593037" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category><category domain="http://blogs.msdn.com/danielmf/archive/tags/Arrangementer/default.aspx">Arrangementer</category></item><item><title>Video interview: Jesper Lund Stocholm - ODF og OOXML</title><link>http://blogs.msdn.com/danielmf/archive/2008/06/12/video-interview-jesper-lund-stocholm-odf-og-ooxml.aspx</link><pubDate>Thu, 12 Jun 2008 14:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8593021</guid><dc:creator>danielmf</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8593021.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8593021</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8593021</wfw:comment><description>&lt;p&gt;Jeg ved der har været rigtig meget debat omkring OOXML de sidste par måneder. I ved ISO har godkendt den bla bla bla...og mange har set sig meget sure på Microsoft pga. dette.&lt;/p&gt;  &lt;p&gt;Jeg teamede op med Jesper, som til dagligt et .NET konsulent i Ciber (også Ciber søger folk), en morgen i Hellerup, gav ham lidt kaffe og et rundstykke også kan i ellers tro manden var klar. Jeg har sjældent mødt en person der er så godt inde i noget som Jesper er det. Han har virklig styr på både OOXML og ODF. Vi får ikke at vide hvad Jesper selv hælder til, men han forklare for alle os derude hvad OOXML og ODF er for en fisk, hvor den bliver brugt og hvordan man har mulighed for at udnytte standarderne.&lt;/p&gt;  &lt;p&gt;Håber i kan lide klippe der for alvor har været igennem movie makeren for ikke at træde nogle over tæerne. Sæt dig tilbage med kagen, tag en tår kaffe og tryk på play.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;embed src="http://techtalks.codezone.dk/movie.wmv" style="left: 0px; width: 480px; top: 112px; height: 405px;" type="video/x-ms-wmv" mce_src="http://techtalks.codezone.dk/Movie.wmv" autostart="false" width="480" height="405"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8593021" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>KNUG er en realitet, men det har den været længe.</title><link>http://blogs.msdn.com/danielmf/archive/2008/06/03/knug-er-en-realitet-men-det-har-den-v-ret-l-nge.aspx</link><pubDate>Tue, 03 Jun 2008 22:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8572005</guid><dc:creator>danielmf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8572005.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8572005</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8572005</wfw:comment><description>&lt;p&gt;Som nogle af jer har lagt mærke til, så fik jeg lidt fortjente hug igår, noget som jeg også har undskyldt i en post tidligere idag. &lt;/p&gt;  &lt;p&gt;Jeg ved godt jeg skrev at der kom 2 nye .NET brugergrupper i hovedstaden igår, men som nogle af jer måske har lagt mærke til, så har jeg også modtaget lidt hug fra communitiet for at tage æren for noget som sagtens kunne være løst uden mig. I har også modtaget en fortjent undskyldning.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/KNUGerenrealitetmendethardenvretlnge_12BB3/madsjakob_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/KNUGerenrealitetmendethardenvretlnge_12BB3/madsjakob_2.jpg"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/KNUGerenrealitetmendethardenvretlnge_12BB3/madsjakob_thumb.jpg" style="border: 0px none ;" alt="madsjakob" mce_src="http://blogs.msdn.com/blogfiles/danielmf/WindowsLiveWriter/KNUGerenrealitetmendethardenvretlnge_12BB3/madsjakob_thumb.jpg" width="404" border="0" height="304"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Her til aften var jeg ude at spise med &lt;a href="http://intellect.dk" mce_href="http://intellect.dk"&gt;Jakob&lt;/a&gt; og &lt;a href="http://blog.madskristensen.dk" mce_href="http://blog.madskristensen.dk"&gt;Mads&lt;/a&gt;, og vi fik alle 3 en burger som ihvertfald for Jakob og mit tilfælde var vældig skuffende. Min cocio var meget god, men isen var for kold...nå, nok om det. Vi var samlet for at snakke ideerne til brugergruppenerne igennem, og jeg var der faktisk kun for at sikre, at de to nydelige herrer ikke skar hinanden i stykker. Der blev snakket vidt og bredt omkring intiativet og jeg tilføjede en kommentar hist og her. Til sidst endte det med de blev enige om at køre en fælles gruppe ved navn KNUG eller CNUG (hvis den skal internationaliseres...sikke et langt ord).&lt;/p&gt;  &lt;p&gt;2 mestre indenfor hver sit område, behøves der siges mere. Jaaa...fordi du skal huske at det første brugergruppe møde i KNUG løber af stablen d. 19 juni i Ballerup hvor Jakob selv skal snakke om...øjeblik...læs det dog selv på deres rigtig fede hjemmeside &lt;a href="http://www.knug.dk" mce_href="http://www.knug.dk"&gt;www.knug.dk&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Nu er der ANUG, ONUG og KNUG...så mangler vi vist bare at hente en kold øl i køleskabet og udråbe en skål og længe leve. Det engagement som er udvist i forbindelse med disse brugergrupper er fantastisk, og det viser at communitiet arbejder rigtig godt sammen, faktisk langt bedre end jeg selv havde forventet. Jeg ved KNUG også bliver en success, ikke mindst fordi den er drevet af 2 meget kyndige individer men bestemt også fordi det er lidenskab og passion der driver værket. &lt;/p&gt;  &lt;p&gt;Jeg er så glad for at Jakob, Søren, Jesper, Kasper, Brian, Mads, Joachim har haft tid og overskud til at kunne planlægge og kordinere disse grupper, for det er ikke nemt at finde tid til det hele, det kender jeg også alt til. Jeg synes det er gået drenge.&lt;/p&gt;  &lt;p&gt;Har i tænkt på at lave en fælles plan for grupperne måske ?&lt;/p&gt;  &lt;p&gt;Fælles events ?&lt;/p&gt;  &lt;p&gt;Jeg er så nysgerrig, men nu skal jeg vist spille lidt på 'boxen :0)&lt;/p&gt;  &lt;p&gt;Vi ses NUG'er&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8572005" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>MIX Essentials essentials</title><link>http://blogs.msdn.com/danielmf/archive/2008/05/22/mix-essentials-essentials.aspx</link><pubDate>Thu, 22 May 2008 13:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8531577</guid><dc:creator>danielmf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8531577.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8531577</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8531577</wfw:comment><description>&lt;p&gt;Jeg havde fornøjelsen af, at være til MIX Essentials i Cinemaxx i København igår. Selve arrangementet gik godt fra start og August de los Reyes fik afholdt en glimrende keynote. Desværre blev talerne mødt af en række uheldige begivenheder, f.eks da Dr. Neil skulle præsentere Windows Live, var der pludselig intet internet - det gør det hele lidt svært når tingene ikke spiller. Erik Westermann, vores egen tekniske specialist fik præsenteret noget Silverlight 2.0 snask og Tor Kristensen gik lidt mere i dybden med det.&lt;/p&gt;
&lt;p&gt;Jeg sad sammen med Henrik Lykke fra &lt;a href="http://captator.dk/" mce_href="http://captator.dk/"&gt;Captator&lt;/a&gt; i Århus, og vi fandt ud af, at ingen af talerne havde formået at give en klar og nøjagtigt defination af, hvad Silverlight egentlig er for noget - så derfor skiftede jeg spor. Jeg gik simpelthen ind til designerne, og det skulle vise sig, at være det klogeste move jeg lavede den dag.&lt;/p&gt;
&lt;p&gt;Det var ligsom en åbenbaring for mig, da jeg så hvordan Microsoft teknologi også kan tage stilling til design områderne i en applikation og ikke kun stille lange, kedelige og endeløse SDK'er til rådighed.&lt;/p&gt;
&lt;p&gt;Præsentationen som jeg så hed "Beauty and the geeks" og blev præsenteret af to engelske gutter som i det daglige arbejder for &lt;a href="http://conchango.com/" mce_href="http://conchango.com/"&gt;Conchango&lt;/a&gt; i London. De var virklig seje, og det var jeg ikke den eneste jeg syntes. Flere af designerne gav udtryk for at være ret begejsret for både præsentationen og Expression Blend værktøjet. Jeg er overbevist om, at vi kan lave fede løsninger i Silverlight, men det kræver vi får designerne med på ideén, for uden dem er vi ingenting. Kan vi få et sammenspil og størrer forståelse mellem designer og udvikler op ad stå, så vi ikke kun lære hinanden at kende igennem vores værktøjer, men også gennem vores teknologi, så er vi kommet meget langt. Det kræver en masse tålmodighed og interesse for at lære hinandens teknologi at kende, men det er det hele værd, for tænk på hvad du får igen og hvad du kan lære af det.&lt;/p&gt;
&lt;p&gt;Jeg filmede Conchango heltenes præsentation og snakkede kort med dem efterfølgende. De beskriver her hvordan man får et godt samarbejde op at stå mellem udvikler og designer - det er da værd at vide!&lt;/p&gt;&lt;embed src="http://techtalks.codezone.dk/MixEssentials.wmv" style="left: 0px; width: 480px; top: 112px; height: 405px;" type="video/x-ms-wmv" mce_src="http://techtalks.codezone.dk/MixEssentials.wmv" autostart="false" width="480" height="405"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8531577" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Convert.ChangeType - hvis du ikke kan lide typen!</title><link>http://blogs.msdn.com/danielmf/archive/2008/05/18/convert-changetype-hvis-du-ikke-kan-lide-typen.aspx</link><pubDate>Sun, 18 May 2008 10:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8518051</guid><dc:creator>danielmf</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8518051.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8518051</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8518051</wfw:comment><description>&lt;p&gt;Mine weekender plejer at være lukket land for arbejde, computer og teknologi bøger. Med andre ord - der skal slappes af når jeg har fri! Det er dog svært når at lade være med at kode, da jeg ikke får lov til det på arbejdet (der er ikke tid!). Jeg sniger mig simpelthen ind i Visual Studio, enten tidligt om morgenen eller sent om aftenen, får et lille smil på læben og danser så lægger det så fra mig igen efter et par timer. Sådan er det - lige nu ihvertfald.&lt;/p&gt;  &lt;p&gt;Når jeg så endelig har lidt tid til at kode, så er det ActiveDeveloper der står for tur, og vi er jo ved at lave den om til .NET, og det er et hyggeligt projekt - du ved, data ind, data ud..bla bla bla! &lt;/p&gt;  &lt;p&gt;Jeg skulle lave en generisk QueryString hjælpe metode (Helper/Util klasse...hehe). Den skulle være sat op sådan, at man meget simpelt, giver metoden det nøgle navn (profile.aspx?name=daniel) til den querysting man er på udgik efter og returnere værdien af nøglen (daniel). &lt;/p&gt;  &lt;p&gt;Jeg kendte imidlertidigt ikke pågældende funktion, men den har vist sit værd og nu synes jeg den skal bruges overalt :0)&lt;/p&gt;  &lt;p&gt;I får lige &lt;b&gt;VB.NET&lt;/b&gt; udgaven først, så ved jeg en vist hr. Jokumsen bliver glad for mig.&lt;/p&gt;  &lt;p&gt;Public Class QueryStrings(Of T) &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared Function GetQueryStringValue(ByVal key As String) As T   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim value As T = Nothing    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If HttpContext.Current.Request.QueryString(key) IsNot Nothing Then    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = DirectCast(Convert.ChangeType(HttpContext.Current.Request.QueryString(key), GetType(T)), T)    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return value   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function    &lt;br&gt;End Class&lt;/p&gt;  &lt;p&gt;---&lt;/p&gt;  &lt;p&gt;Og &lt;b&gt;C#&lt;/b&gt; udgaven.&lt;/p&gt;  &lt;p&gt;public static class QueryStrings&amp;lt;T&amp;gt;   &lt;br&gt;{    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static T GetQueryStringValue(string key)    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T value = default(T);    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( HttpContext.Current.Request.QueryString[ key ] != null ) {    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = (T)Convert.ChangeType(HttpContext.Current.Request.QueryString[ key ], typeof(T));    &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return value;   &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br&gt;}&lt;/p&gt;  &lt;p&gt;---&lt;/p&gt;  &lt;p&gt;Keep codin'&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8518051" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>Video interview med Mads Kristensen og Ole Højriis Kristensen - Det semantiske web.</title><link>http://blogs.msdn.com/danielmf/archive/2008/05/14/video-interview-med-mads-kristensen-og-ole-h-jriis-kristensen-det-semantiske-web.aspx</link><pubDate>Wed, 14 May 2008 16:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8503162</guid><dc:creator>danielmf</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8503162.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8503162</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8503162</wfw:comment><description>&lt;p&gt;Jeg havde æren af at møde de to unge og flotte udviklere fra ZYB.com, og det var ikke kun for at gense der dejlige kontor, men simpelt fordi jeg havde nogle spørgsmål til ang. al den hype der lige netop nu er omkring "The semantic web". Nogle kalder det Web 3.0, andre kalder det en pinsel, men faktum er, at vi har muligheden for at skabe noget med meget få midler og derfor synes ikke at du skal snydes. &lt;/p&gt;  &lt;p&gt;Hvis du vil vide om det semantiske web så følg lidt med på &lt;a href="http://blog.madskristensen.dk/post/Guide-to-the-semantic-web.aspx" mce_href="http://blog.madskristensen.dk/post/Guide-to-the-semantic-web.aspx"&gt;Mads K's blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Jeg synes selv det virker super interessant at kunne udvide vores web med en så enkel fremgangsmåde og det tegner virklig lyst for udviklingen af internettet...hvis bare udviklerne kunne tage det i brug :0).&lt;/p&gt;  &lt;p&gt;Husk på, at det er dig der er med til at forme fremtiden for webudviklingen, og hvis du ikke tager aktion, så får du nok ikke som du vil have.&lt;/p&gt;  &lt;p&gt;Lean back and enjoy.&lt;/p&gt; &lt;embed src="http://techtalks.codezone.dk/OleMads.wmv" style="left: 0px; width: 480px; top: 112px; height: 405px;" mce_src="http://techtalks.codezone.dk/OleMads.wmv" type="video/x-ms-wmv" autostart="false" width="480" height="405"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8503162" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item><item><title>RSS feed adresse</title><link>http://blogs.msdn.com/danielmf/archive/2008/05/11/rss-feed-adresse.aspx</link><pubDate>Sun, 11 May 2008 20:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8487999</guid><dc:creator>danielmf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielmf/comments/8487999.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielmf/commentrss.aspx?PostID=8487999</wfw:commentRss><wfw:comment>http://blogs.msdn.com/danielmf/rsscomments.aspx?PostID=8487999</wfw:comment><description>&lt;p&gt;Jeg bruger hermed Feedburner, fordi det rocker!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/DKDeveloperEvangelist" mce_href="http://feeds.feedburner.com/DKDeveloperEvangelist"&gt;http://feeds.feedburner.com/DKDeveloperEvangelist&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8487999" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielmf/archive/tags/Udvikler/default.aspx">Udvikler</category></item></channel></rss>