<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="en-US"><title>Wim De Cleen</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/default.aspx" /><tagline type="text/html">Absorbed in software thoughts
</tagline><id>http://dotnetjunkies.com/WebLog/wimdc/default.aspx</id><author><url>http://dotnetjunkies.com/WebLog/wimdc/default.aspx</url></author><generator url="http://communityserver.org" version="1.0.1.50214">Community Server</generator><modified>2006-09-02T19:03:00Z</modified><entry><title>Using IEnumerable to read a file</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/11/12/155720.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:155720</id><created>2006-11-12T10:44:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;I'm a very big fan of readable code, that is why I use a lot of foreach statements, and I would like to iterate through all the buffers of a specific file and then do something on them. So why not use the IEnumerable interface for this. The following simple example is just that.&lt;/p&gt;
&lt;p&gt;The first thing we need to do is make a method that returns an IEnumerable&amp;lt;byte[]&amp;gt;. This way we can use an foreach statement on the method. Then we need to open our file, very convenient with a using statement so we can be sure that whatever happens the filestream will be closed and we don't hold resources to long.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; Program {
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IEnumerable&amp;lt;&lt;span class="kwrd"&gt;byte&lt;/span&gt;[]&amp;gt; GetBuffers(&lt;span class="kwrd"&gt;string&lt;/span&gt; filename) {
        &lt;span class="kwrd"&gt;int&lt;/span&gt; numBytes = 0;
        &lt;span class="kwrd"&gt;using&lt;/span&gt; (FileStream fs = &lt;span class="kwrd"&gt;new&lt;/span&gt; FileStream(filename, FileMode.Open)) {
            &lt;span class="kwrd"&gt;do&lt;/span&gt; {
                &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[1024 * 8];
                numBytes = fs.Read(buffer, 0, 1024 * 8);
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (numBytes &amp;gt; 0) {
                    &lt;span class="kwrd"&gt;yield&lt;/span&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; buffer;
                }
            } &lt;span class="kwrd"&gt;while&lt;/span&gt; (numBytes &amp;gt; 0);
        }
    }
    
    &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args) {
        &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer &lt;span class="kwrd"&gt;in&lt;/span&gt; Program.GetBuffers
               (&lt;span class="str"&gt;@"testfile.dat"&lt;/span&gt;)) {
            Console.WriteLine(buffer.Length);
        }
        Console.ReadLine();
    }
}&lt;/pre&gt;
&lt;p&gt;At this moment it is really easy to access the buffers in the stream and take action on the buffers. Off course there should be some exceptionhandling, but that is easy enough.&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=155720" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=155720</wfw:commentRss></entry><entry><title>TechEd Developers : Coding for Fun and more</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/11/11/155324.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:155324</id><created>2006-11-11T11:50:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;After seven days of Barcelona, I'm all loaded up for the next step in development. I was updated on the technologies of tomorrow in a 5 days during training on a few km of the sea and in temperature of about 20 degrees while the sun was shining. &lt;/p&gt; &lt;p&gt;Of course there are a lot of post on the web about the top sessions in Barcelona, but there were two others that need some special attention because development doesn't always need to be about keeping your boss happy, but also keep yourself happy with "Coding for Fun". I was pleasantly surprised to see these sessions on TechEd Developers.&lt;/p&gt; &lt;p&gt;First of all there was the session about &lt;a href="http://msdn.microsoft.com/robotics/"&gt;Microsoft Robotics Studio&lt;/a&gt; given by &lt;a href="http://robotsoftware.blogspot.com/"&gt;Martin Calsyn&lt;/a&gt; that was a really good introduction about the studio in general. I was pleased to see the the room was full. I was amazed about how many people like Robotics, it seems we need to see our code move things.&lt;/p&gt; &lt;p&gt;Then there was the session about &lt;a href="http://msdn.microsoft.com/directx/xna/"&gt;XNA Game Studio&lt;/a&gt; given by &lt;a href="http://www.robmiles.com/"&gt;Rob Miles,&lt;/a&gt; (this guy really rocks) he talked about writing games not only for fun but also professional. He gave a good impression on XNA and how easy it is to write games. I loved his cheese game and so did the all the others off the fully loaded room. &lt;/p&gt; &lt;p&gt;Conclusion, TechEd is about professional coding, but also about FUN. So check out the links and get started.&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=155324" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=155324</wfw:commentRss></entry><entry><title>Robotics Studio : November CTP released</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/11/09/154537.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:154537</id><created>2006-11-08T23:36:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;
The new CTP of Robotics studio has been released since 7 november. Here are the links.
&lt;/p&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=AC151C9E-0576-47A9-9B4B-449B909DCAE7&amp;displaylang=en"&gt;Download November CTP &lt;/a&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/robotics/getstarted/ctp5/default.aspx"&gt;What's new&lt;/a&gt;
&lt;li&gt;&lt;a href="http://channel9.msdn.com/wiki/default.aspx/Channel9.TechnologyPreviewFive"&gt;Latest changes on wiki
&lt;/a&gt;

&lt;/ul&gt;
&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=154537" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=154537</wfw:commentRss></entry><entry><title>Concurrency And Coordination Runtime : A Really Simple Sample</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/11/03/153450.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:153450</id><created>2006-11-03T12:40:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;Long ago I wrote an Example on threading with the WinApi using Delphi, now we have AsyncCallBacks and managed threading. But since a few months we also have the CCR and take my word for it, this baby rocks. I will supply you guys with another run of the "Really Simple Sample" series and now it will be on the CCR. Here goes the first sample.&lt;p&gt;
&lt;p&gt;
First off all I tried to build a winforms application running in the CCR way, I used the Ccr.Adaptors.WinForms namespace to accomplish this in a simple way. Just create a new WinForms application and change the Program class like follows.
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Program {
        
        &lt;span class="rem"&gt;//Expose the dispatcher queue for use in all your forms&lt;/span&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; DispatcherQueue DQueue {
            get {
                &lt;span class="kwrd"&gt;return&lt;/span&gt; _DispatcherQueue;
            }
        }
        
        &lt;span class="rem"&gt;//Expose the WinFormsService Port for use in all your forms&lt;/span&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; WinFormsServicePort WFServicePort {
            get {
                &lt;span class="kwrd"&gt;return&lt;/span&gt; _WFServicePort;
            }
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; DispatcherQueue _DispatcherQueue;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; WinFormsServicePort _WFServicePort;
        
        [STAThread]
        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main() {
            System.Threading.ManualResetEvent MainThreadEvent = &lt;span class="kwrd"&gt;new&lt;/span&gt; System.Threading.ManualResetEvent(&lt;span class="kwrd"&gt;false&lt;/span&gt;);
            &lt;span class="rem"&gt;// Create the Dispatcher that will execute our delegates that we add to the &lt;/span&gt;
            &lt;span class="rem"&gt;// DispatcherQueue&lt;/span&gt;
            &lt;span class="kwrd"&gt;using&lt;/span&gt; (Dispatcher dispatcher = &lt;span class="kwrd"&gt;new&lt;/span&gt; Dispatcher(0, &lt;span class="str"&gt;"BlogExample Dispatcher"&lt;/span&gt;)) {
                _DispatcherQueue = &lt;span class="kwrd"&gt;new&lt;/span&gt; DispatcherQueue(&lt;span class="str"&gt;"BlogExample DispatcherQueue"&lt;/span&gt;, dispatcher);

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(&lt;span class="kwrd"&gt;false&lt;/span&gt;);
                
                &lt;span class="rem"&gt;// Bind the DispatcherQueue to the WinformsAdaptor and&lt;/span&gt;
                &lt;span class="rem"&gt;// create the WinFormServicePort.&lt;/span&gt;
                _WFServicePort = WinFormsAdaptor.Create(_DispatcherQueue);
                
                &lt;span class="rem"&gt;// Use the WinFormsServicePort to create a MainForm.&lt;/span&gt;
                &lt;span class="rem"&gt;// We use a delegate to create the form on the right thread and &lt;/span&gt;
                &lt;span class="rem"&gt;// bind a delegate to the HandleDestroy event of the form to let the &lt;/span&gt;
                &lt;span class="rem"&gt;// application stop when the MainForm closes.&lt;/span&gt;
                _WFServicePort.Post(&lt;span class="kwrd"&gt;new&lt;/span&gt; RunForm(
                    &lt;span class="kwrd"&gt;delegate&lt;/span&gt; { Form1 form = &lt;span class="kwrd"&gt;new&lt;/span&gt; Form1();
                    form.HandleDestroyed += &lt;span class="kwrd"&gt;delegate&lt;/span&gt;(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) { MainThreadEvent.Set(); };
                    &lt;span class="kwrd"&gt;return&lt;/span&gt; form;
                    }
                   ));
                
                &lt;span class="rem"&gt;// Wait for the form to be closed, the WinFormsAdaptor is taking &lt;/span&gt;
                &lt;span class="rem"&gt;// care of the Application.Run in its own thread, we just need&lt;/span&gt;
                &lt;span class="rem"&gt;// to make sure the application keeps on running by blocking the&lt;/span&gt;
                &lt;span class="rem"&gt;// current thread.&lt;/span&gt;
                MainThreadEvent.WaitOne();
                
                &lt;span class="rem"&gt;// We need to inform the WinFormsAdaptor that it is oke to quit.&lt;/span&gt;
                _WFServicePort.Post(&lt;span class="kwrd"&gt;new&lt;/span&gt; Shutdown());
            }
        } 
    }&lt;/pre&gt;
&lt;p&gt;
Now that we have a running form, let's build a sample that queries a webservice several times with different parameters and show the result in a listbox, off course async. Add a listbox and a button to the MainForm and write the following code.
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Form1 : Form {        
        &lt;span class="kwrd"&gt;public&lt;/span&gt; Form1() {
            InitializeComponent();
        }

        &lt;span class="rem"&gt;//The port that receives the responses of the webservices.&lt;/span&gt;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; Port _ResponsePort;
        &lt;span class="rem"&gt;//The port that receives any exceptions of the requests to the webservices.&lt;/span&gt;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; Port _FailurePort;


        &lt;span class="rem"&gt;// A simple method to call a webservice async and fill our ServiceResponse instance with&lt;/span&gt;
        &lt;span class="rem"&gt;// the city.&lt;/span&gt;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CallTemperatureServiceAsync(localhost.TemperatureService service, &lt;span class="kwrd"&gt;string&lt;/span&gt; city) {
            ServiceResponse response = &lt;span class="kwrd"&gt;new&lt;/span&gt; ServiceResponse();
            response.city = city;
            service.GetTemperatureAsync(city, response);   
        }
        
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; button1_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) {
            localhost.TemperatureService temperatureService = &lt;span class="kwrd"&gt;new&lt;/span&gt; localhost.TemperatureService();

            &lt;span class="rem"&gt;//Create the ports&lt;/span&gt;
            _ResponsePort = &lt;span class="kwrd"&gt;new&lt;/span&gt; Port();
            _FailurePort = &lt;span class="kwrd"&gt;new&lt;/span&gt; Port();

            &lt;span class="rem"&gt;// Define the GetTemperatureCompleted event. We use this delegate to post to the correct port.&lt;/span&gt;
            temperatureService.GetTemperatureCompleted += &lt;span class="kwrd"&gt;new&lt;/span&gt; CCRBlogExample.localhost.GetTemperatureCompletedEventHandler(temperatureService_GetTemperatureCompleted);
            
            &lt;span class="rem"&gt;// Make the calls to the webservice.&lt;/span&gt;
            CallTemperatureServiceAsync(temperatureService,&lt;span class="str"&gt;"Brussels"&lt;/span&gt;);
            CallTemperatureServiceAsync(temperatureService,&lt;span class="str"&gt;"Antwerp"&lt;/span&gt;);
            CallTemperatureServiceAsync(temperatureService,&lt;span class="str"&gt;"Ghent"&lt;/span&gt;);

            &lt;span class="rem"&gt;// And here it happens, this is the cool stuff here.&lt;/span&gt;
            &lt;span class="rem"&gt;// We use an Interleave Arbiter to coordinate the results of &lt;/span&gt;
            &lt;span class="rem"&gt;// the webservicerequest. We define here that we should stop all processing&lt;/span&gt;
            &lt;span class="rem"&gt;// when there is one exception on the requests, so even if you call the webservice&lt;/span&gt;
            &lt;span class="rem"&gt;// 100 times, any excpetion will stop the processing.&lt;/span&gt;
            &lt;span class="rem"&gt;// Furthermore we define here we can handle all request concurrently, if we would access&lt;/span&gt;
            &lt;span class="rem"&gt;// non-threadsafe resources we could put them in the ExclusiveReceiverGroup and the CCR&lt;/span&gt;
            &lt;span class="rem"&gt;// will make sure there is only one thread handling them.&lt;/span&gt;
            Arbiter.Activate(Program.DQueue, Arbiter.Interleave(
                &lt;span class="kwrd"&gt;new&lt;/span&gt; TeardownReceiverGroup(
                    Arbiter.Receive(&lt;span class="kwrd"&gt;false&lt;/span&gt;, _FailurePort,
                    &lt;span class="kwrd"&gt;delegate&lt;/span&gt;(Exception ex) { })),
                &lt;span class="kwrd"&gt;new&lt;/span&gt; ExclusiveReceiverGroup(),
                &lt;span class="kwrd"&gt;new&lt;/span&gt; ConcurrentReceiverGroup(
                    Arbiter.Receive(&lt;span class="kwrd"&gt;true&lt;/span&gt;, _ResponsePort,
                        &lt;span class="kwrd"&gt;delegate&lt;/span&gt;(ServiceResponse response) {
                            Program.WFServicePort.FormInvoke(&lt;span class="kwrd"&gt;delegate&lt;/span&gt; {
                                ResultListBox.Items.Add(response.city + &lt;span class="str"&gt;":"&lt;/span&gt; + response.Temperature.ToString());
                            });    
                        }))));
        }

        &lt;span class="rem"&gt;//Here we handle all posting to the correct ports depending on the output of the async request of the &lt;/span&gt;
        &lt;span class="rem"&gt;//webservice. &lt;/span&gt;
        &lt;span class="kwrd"&gt;void&lt;/span&gt; temperatureService_GetTemperatureCompleted(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, CCRBlogExample.localhost.GetTemperatureCompletedEventArgs e) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Cancelled) {
                &lt;span class="rem"&gt;//Post exception;&lt;/span&gt;
                _FailurePort.Post(&lt;span class="kwrd"&gt;new&lt;/span&gt; Exception(&lt;span class="str"&gt;"cancelled"&lt;/span&gt;));
                &lt;span class="kwrd"&gt;return&lt;/span&gt;;
            }
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Error != &lt;span class="kwrd"&gt;null&lt;/span&gt;) {
                &lt;span class="rem"&gt;//Post exception;&lt;/span&gt;
                _FailurePort.Post(e.Error);
                &lt;span class="kwrd"&gt;return&lt;/span&gt;;
            }
            &lt;span class="rem"&gt;//Post ServiceResponse&lt;/span&gt;
            ServiceResponse response = e.UserState &lt;span class="kwrd"&gt;as&lt;/span&gt; ServiceResponse;
            response.Temperature = e.Result;
            _ResponsePort.Post(response);
        }
    }

    &lt;span class="rem"&gt;// A simple class to transport data and to use &lt;/span&gt;
    &lt;span class="rem"&gt;// in the Ports.&lt;/span&gt;
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ServiceResponse {
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Temperature;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; city;
    }&lt;/pre&gt;
&lt;p&gt;
What I like most is the possibility to use local variables in other threads. Like you see in the RunForms delegate. You don't need to declare them somewhere global, they are defined local and your code stays really clean and readable.
&lt;/p&gt;
&lt;p&gt;This is cool stuff, easy to use and easy to follow. Think of all projects you did with threading and look at this. The next sample will be a sample on how to program async in a sequential way. A feature of the CCR, that will change the way we program async.&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=153450" width="1" height="1"&gt;</content><slash:comments>2389</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=153450</wfw:commentRss></entry><entry><title>Microsoft Robotics Studio : Bluetooth header</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/10/31/152822.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:152822</id><created>2006-10-31T11:39:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;if you see the message "Garbled data received from LEGO NXT.  Bluetooth header (31) does not match 
expected packet length (0) for command: GetDeviceInfo: 155." in your VS2005 output window or in the logging in the dsshost webpage do not panic, this is only a warning. If you want to remove this just add the following code to the switch statement in the ReturnPacketDataSize method of the LegoHelper class 
&lt;/p&gt;
&lt;p&gt;
case 0x9B:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;return 31;
&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=152822" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=152822</wfw:commentRss></entry><entry><title>Under the Hood of Microsoft Robotics Studio : Concurrency and Coordination Runtime (CCR)</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/10/28/152314.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:152314</id><created>2006-10-28T12:26:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;When working with the tutorials of Microsoft Robotics Studio I found some really unfamiliar code like "Arbiter.Activate(Arbiter.Receive&amp;lt;bumper.Update&amp;gt;(true, bumperNotificationPort, BumperHandler))". If I find code like this I want to know what it is, the kid in me will never die I suppose... So this piece of code is using the Concurrency and Coordination Runtime (in short CCR), a very nice and easy&amp;nbsp;library to use threading in your applications, it is really amazing how easy it is to create workerthreads and a responsive application. There is a great article on MSDN magazine&amp;nbsp;in the column&amp;nbsp;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/06/09/ConcurrentAffairs/default.aspx"&gt;Concurrent Affairs&lt;/A&gt;&amp;nbsp;of &lt;A title="More articles by this author" href="http://www.wintellect.com/Weblogs/CategoryView,category,Jeffrey%20Richter.aspx"&gt;Jeffrey Richter&lt;/A&gt;&amp;nbsp;on the CCR, but in short it goes like this. There are 4 main classes in the CCR.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Dispatcher : A thread pool ready to use, you can create more than one. &lt;/LI&gt;
&lt;LI&gt;DispatcherQueue : A Queue that contains&amp;nbsp;delegates for&amp;nbsp;a Dispatcher.&lt;/LI&gt;
&lt;LI&gt;Port : A workitem data, by posting data to the Port the DispatcherQueue gets filled with delegates&lt;/LI&gt;
&lt;LI&gt;Arbiter : A binding between a Port and a DispatcherQueue, in effect it combines a delegate with&amp;nbsp;data posted&amp;nbsp;on a Port and posts it in a DispatcherQueue.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;There are more possibilities in the CCR but read the article and view the &lt;A href="http://channel9.msdn.com/Showpost.aspx?postid=219308"&gt;video on channel9&lt;/A&gt;&amp;nbsp;with Jeffrey Richter and George Chrysanthakopoulos. Definitly some really cool stuff you should check out, and not only for Robotics Studio.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=152314" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=152314</wfw:commentRss></entry><entry><title>Robotics Studio Connected to NXT</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/10/23/151535.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:151535</id><created>2006-10-23T10:13:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;Okay, after one week of connecting bluetooth to the NXT,&amp;nbsp;which included one new Bluetooth dongle, about 200 cigarets and a lot of my hair, it finally happend, I have connected Robotics Studio and the NXT. Time to get programming and do some nice things with this NXT. In order to make everyone's live easier who want to try this out, there is one solution to make this work within 5 minutes. Rebuild the LegoNxt Service and change the baudrate to 115200 in the legoNxt.cs file like this "if (_legoBlock.Open(_state.Comport, 115200))". After rebuilding this it works all fine and you should see something like this in your command line screen.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/WebLog/photos/wimdc/images/151534/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;The main program should start on your NXT and if all goes well the hourglass should disappear. At that time your NXT is connected and ready to serve you, how humble.&lt;/P&gt;
&lt;P&gt;Another tip set the sleep option in the settings on the NXT&amp;nbsp;to "never", it will avoid several minutes of search why your NXT is not connectable if you know what I mean.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=151535" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=151535</wfw:commentRss></entry><entry><title>Will the NXT bot code my projects ?</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/10/19/151173.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:151173</id><created>2006-10-19T10:15:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;Finally some time to blog. Let's see what I did the last few days, on saturday I did some calls to get my LEGO mindstorms NXT. It took me about 16 phonecalls to find a local store that had it in stock, yes in stock because I don't like waiting for things that I want to have now. After a road trip of 63 km I finally got home with it and started playing. When I was done building I had to install the software and most off all I had to pair it with the Microsoft Robotics Studio. Installing the software was not really difficult but getting the NXT to connect through bluetooth was hell, I had to install the driver several times and today I&amp;nbsp;finally managed to get a connection. Now it is&amp;nbsp;time to&amp;nbsp;get it connected with Robotics Studio,&amp;nbsp;when I manage to get&amp;nbsp;it working I&amp;nbsp;will surely blog about that one, it is already exciting to get connected to my personal robot. &lt;/P&gt;
&lt;P&gt;On the other hand I was in Portugal,&amp;nbsp;Lisbon for a business meeting&amp;nbsp;on a really nice project&amp;nbsp;which&amp;nbsp;will get me really started with the DotNet framework 3.0, so expect some nice examples in the next months (if I have time and otherwise later, because it is a really hard shedule). It was rather rainy but they have great restaurants and even better food,&amp;nbsp;I should plan more meetings overthere.&lt;/P&gt;
&lt;P&gt;And the best news of the last month arrived today with email, I finally got registered for &lt;A href="http://www.mseventseurope.com/Teched/06/Pre/defaultDev.aspx"&gt;TechEd : Developers&lt;/A&gt;. Yep, yep, I will attend the event from 7-10 november in Barcelona.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=151173" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=151173</wfw:commentRss></entry><entry><title>Robotics Studio October 2006 CTP</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/10/09/149762.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:149762</id><created>2006-10-09T09:00:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;Ever wanted to build a robot that finishes your&amp;nbsp;project on time for you while you are drinking a good glass of red wine in the sun ? Well than you should install immediately the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=C22EA21B-011C-4B63-BD13-C6F43F512F4D&amp;amp;displaylang=en"&gt;Robotics Studio October 2006 CTP&lt;/A&gt;. I'm not really an expert on robotics but I did some embedded development in my early programming years, if it would have been like it is now in Robotics Studio than I would probably never have become a DotNet developer, but would be surrounded by robots doing my work. &lt;/P&gt;
&lt;P&gt;It includes a VPL (visual programming language) that has no learning curve at all, imagine what you would have to do to let the PC say some text. It took me 3 minutes including learning the basics of VPL. Here it is.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/WebLog/photos/wimdc/images/149748/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;This tool is the best example I have seen of SOA since long, everything here is a service, sensors, lights, cameras, batteries, engines and so on. All interacting through soap messages, at a speed of 90.000 soap messages in a second, pretty performant I think. You can link it with external robots or you can simulate it, this simulation is rendered in managed DirectX, and&amp;nbsp;excuse me,&amp;nbsp;it looks&amp;nbsp;amazing, for more information on simulation read the &lt;A href="http://msdn.microsoft.com/robotics/getstarted/simulation/default.aspx"&gt;Microsoft Robotics Studio Simulation Overview&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Want to play ?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/robotics/"&gt;Robotics Studio Developer Center&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/MSRoboticsStudio/"&gt;Robotics Studio Blog&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=206574"&gt;A video on Channel 9&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=149762" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=149762</wfw:commentRss></entry><entry><title>Sandcastle : The new NDoc</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/10/08/149614.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:149614</id><created>2006-10-08T09:18:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;&lt;A href="https://blogs.msdn.com/sandcastle/"&gt;Sandcastle&lt;/A&gt; is the new help file generator for developers, like &lt;A href="http://sourceforge.net/projects/ndoc/"&gt;NDoc&lt;/A&gt; it generates library documentation from your source and managed assemblies. &lt;/P&gt;
&lt;P&gt;It has three major components&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;MRefBuilder: produces XML-formatted reflection information files 
&lt;LI&gt;BuildAssembler: binds your xml comments and the generated MRefBuilder files into HTML files 
&lt;LI&gt;XslTransform: Generates and manipulates auxiliary data files.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Of what I could read in a small amount of time, this&amp;nbsp;tool is highly customizable, not only by configuration files but also by coding. You can download the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e82ea71d-da89-42ee-a715-696e3a4873b2&amp;amp;DisplayLang=en"&gt;September CTP here&amp;nbsp;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Resources:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://blogs.msdn.com/sandcastle/"&gt;Sandcastle Blog&lt;/A&gt;. 
&lt;LI&gt;&lt;A href="http://www.sandcastledocs.com/"&gt;Sandcastle Docs&lt;/A&gt;. 
&lt;LI&gt;&lt;A href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=SandcastleAddIn"&gt;VS2005 Add-In &lt;/A&gt;at &lt;A href="http://www.codeplex.com/"&gt;CodePlex&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=149614" width="1" height="1"&gt;</content><slash:comments>1991</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=149614</wfw:commentRss></entry><entry><title>MSDN Evenings And Visug Sessions</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/10/04/149227.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:149227</id><created>2006-10-04T08:27:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I think we Belgian developers are probably the most spoiled developers of them all, after an MSDN event on Framework 3.0 and a MSDN evening on Internet Explorer again two evenings on planned. Be fast because seats are probably limited and I can testify that these evenings are well worth the time so register as fast as lightning.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/belux/msdn/nl/events/2006/20061018_wssv3.mspx"&gt;October 18th, Developing solutions with Windows&amp;nbsp;SharePoint&amp;nbsp;Services&amp;nbsp;v3 and Office&amp;nbsp;SharePoint&amp;nbsp;Servers&amp;nbsp;2007&lt;/A&gt;&lt;BR&gt;From the website:&lt;BR&gt;&lt;BR&gt;&lt;EM&gt;Windows&amp;nbsp;SharePoint&amp;nbsp;Services&amp;nbsp;v3 and Office&amp;nbsp;SharePoint&amp;nbsp;Server&amp;nbsp;2007 is a huge platform for developing custom web portal, content management, business process management and Business Intelligence (BI) solutions. This session shows the overall architecture of Windows SharePoint Services v3 and how Office SharePoint Servers 2007 are built on top of Windows SharePoint Services. Learn how to develop custom solutions based on SharePoint by leveraging key enhancements like content types, the new feature framework and new possibilities for extending the user interface (UI) and how-to deploy and enable these custom solutions.&lt;BR&gt;&lt;BR&gt;&lt;/EM&gt;This session will be given by &lt;A href="http://jopx.blogspot.com/"&gt;Joris Poelmans &lt;/A&gt;from Dolmen he delivers Information Worker solutions using Windows SharePoint services and SharePoint Portal Server.&lt;BR&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/belux/msdn/nl/events/2006/20061115_vstsdb.mspx"&gt;November 15th, Introducing Visual Studio Team Edition for Database Professionals&lt;BR&gt;&lt;/A&gt;From the website:&lt;BR&gt;&lt;EM&gt;&lt;BR&gt;Visual Studio Team Edition for Database Professionals is a database development product designed to manage database change and improve software quality through database testing. Additionally this product brings the benefits of Visual Studio Team System and life cycle development to the database professional. During this session you'll get an overview of this product, including the integration with source code control, the schema and data compare functionalities, rename refactoring, the new T-SQL editor and database testing&lt;/EM&gt;.&lt;BR&gt;&lt;BR&gt;This session will be given by &lt;A href="http://blogs.msdn.com/guntherb/"&gt;Gunther Beersarts&lt;/A&gt;, a Senior Technical Specialist at Microsoft&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I would have liked to&amp;nbsp;attended both events but unfortunate me, I need to go on a business trip to Portugal on October 18th. Always work and no pleasure, some have all the luck !!!.&lt;/P&gt;
&lt;P&gt;On the other hand &lt;A href="http://www.visug.be/"&gt;Visug &lt;/A&gt;(Visual Studio User Group Belgium)&amp;nbsp;will have two sessions.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.visug.be/NewsItemDetails.aspx?Id=0be96169-6a16-4034-af6b-1fa95c42b06d"&gt;Windows Workflow Foundation on October 5th&lt;/A&gt;.&lt;BR&gt;This session will be given by &lt;A href="http://geekswithblogs.net/claeyskurt/"&gt;Kurt Claeys&lt;/A&gt;, he already &lt;A href="http://www.microsoft.com/belux/msdn/nl/community/columns/kurtclaeys/wf.mspx"&gt;published and article &lt;/A&gt;on the subject at the &lt;A href="http://www.microsoft.com/belux/msdn/nl/default.mspx"&gt;local MSDN &lt;/A&gt;site. And his blog contains some really nice posts about WF, and in particular &lt;A href="http://geekswithblogs.net/claeyskurt/archive/2006/08/16/88160.aspx"&gt;this "linky" post of resources&lt;/A&gt; on WF. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href="http://www.visug.be/NewsItemDetails.aspx?Id=6b4d6f60-4f4b-11db-b0de-0800200c9a66"&gt;Security Development Lifecycle October 25th&lt;/A&gt;&lt;BR&gt;This session will be given by &lt;A href="http://www.wiver.com/blog/"&gt;Wim Verhaeghen&lt;/A&gt;, he will talk about the &lt;A href="http://msdn.microsoft.com/security/default.aspx?pull=/library/en-us/dnsecure/html/sdl.asp"&gt;Security Development Lifecycle&lt;/A&gt;, a methodology to help reduce the number of security defects in code. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=149227" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=149227</wfw:commentRss></entry><entry><title>MSN Search Service : A Simple Sample</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/10/01/148986.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:148986</id><created>2006-10-01T09:54:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;After a really busy week of events and work I managed to do some programming this weekend. I'm trying to get familiar with XAML so I'm building UI's with it and do something usefull meanwhile. I attended the &lt;A href="http://www.microsoft.com/belux/msdn/nl/events/2006/ie7.mspx"&gt;MSDN evening of IE7&lt;/A&gt; friday and &lt;A href="http://www.mscyra.com/"&gt;Cyra Richardson&lt;/A&gt; was talking about the integration of &lt;A href="http://opensearch.a9.com/"&gt;OpenSearch&lt;/A&gt; in IE7, &lt;A href="http://blogs.msdn.com/davbosch/archive/2006/09/30/778087.aspx"&gt;David Boschmans has some great links on this&lt;/A&gt;, while browsing these I remembered something like the &lt;A href="http://msdn.microsoft.com/live/gettingstarted/searchstart/default.aspx"&gt;MSN Search Service&lt;/A&gt;. Why wouldn't I consume it in a XAML application ? So here it is, it is ofcourse simple.&lt;/P&gt;
&lt;P&gt;First some requirements.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Download the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C271309B-02DE-42A7-B23E-E19F68667197&amp;displaylang=en"&gt;MSN Search SDK&lt;/A&gt; 
&lt;LI&gt;Get your application ID at &lt;A href="http://search.msn.com/developer"&gt;Search Developer site&lt;/A&gt; 
&lt;LI&gt;Add the &lt;A href="http://soap.search.msn.com/webservices.asmx?wsdl"&gt;webservice&lt;/A&gt; to your Web References of your project.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Once you did this all you have to do is consume the service as follows&lt;BR&gt;&lt;BR&gt;public void Search() {&lt;BR&gt;   MSNSearchService service = new MSNSearchService();&lt;BR&gt;&lt;BR&gt;   SearchRequest request = new SearchRequest();&lt;BR&gt;   request.AppID = this.AppID;&lt;BR&gt;   request.Query = SearchTextBox.Text;&lt;BR&gt;   &lt;BR&gt;   // Always specify, no default&lt;BR&gt;   request.CultureInfo = "nl-BE";&lt;BR&gt;   request.SafeSearch = SafeSearchOptions.Off;&lt;BR&gt;   request.Flags = SearchFlags.None;&lt;BR&gt;&lt;BR&gt;   SourceRequest[] sourceRequests = new SourceRequest[1];&lt;BR&gt;&lt;BR&gt;   sourceRequests[0] = new SourceRequest();&lt;BR&gt;   sourceRequests[0].Source = SourceType.Web;&lt;BR&gt;   sourceRequests[0].Count = 10;&lt;BR&gt;   request.Requests = sourceRequests;&lt;BR&gt;   LastResponse = service.Search(request);&lt;BR&gt;   &lt;BR&gt;   Result[] results = LastResponse.Responses[0].Results;&lt;BR&gt;   SearchResults.ItemsSource = results;&lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;It is pretty simple like I promised, there are 4 different classes that you need to use. First of all there is the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/MSN_Search_Web_Service_SDK/HTML/En_Namespace_SourceType.asp"&gt;SearchRequest&lt;/A&gt; class, this class contains the general settings for the search, every search must be further detailed with one ore more  &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/MSN_Search_Web_Service_SDK/HTML/En_Namespace_SourceType.asp"&gt;SourceRequest&lt;/A&gt; classes, these are used to specify where you are searching for, you can search the web, spelling suggestions and a phonebook at this time, more will be implemented. With this class you can also specify the offset and the number of results to return.&lt;BR&gt;The service responds with a &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/MSN_Search_Web_Service_SDK/HTML/En_Namespace_SourceType.asp"&gt;SearchResponse&lt;/A&gt; class, for every &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/MSN_Search_Web_Service_SDK/HTML/En_Namespace_SourceType.asp"&gt;SourceRequest&lt;/A&gt; there is a &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/MSN_Search_Web_Service_SDK/HTML/En_Namespace_SourceType.asp"&gt;SourceResponse&lt;/A&gt; class which contains a results array with the actual &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/MSN_Search_Web_Service_SDK/HTML/En_Namespace_SourceType.asp"&gt;Result&lt;/A&gt; instances, these contain the url and other properties of the results you were looking for. &lt;/P&gt;
&lt;P&gt;The resulting application looks like this.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/WebLog/photos/wimdc/images/148985/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;I can conclude that this is really simple to consume and I see some possible nice implementations, like rss feeds in IE7 with your favourite searches. Maybe a next sample ? Who knows ? &lt;/P&gt;
&lt;P&gt;If you want to implement other features of Windows Live then check out the &lt;A href="http://msdn.microsoft.com/live/"&gt;Windows Live Developer Center&lt;/A&gt; and the &lt;A href="http://blogs.msdn.com/livesearch/"&gt;Live Seach's WebLog&lt;/A&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=148986" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=148986</wfw:commentRss></entry><entry><title>Dynamic User Interface using XAML</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/09/28/148683.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:148683</id><created>2006-09-28T08:42:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;Dynamic user interface out of the box in a Windows application, the dream of every developer. Well it is available a this moment with XAML&amp;nbsp;in the Dotnet Framework 3.0.&lt;/P&gt;
&lt;P&gt;The following simple sample shows&amp;nbsp;how you can load&amp;nbsp;custom userinterface components from an external file&amp;nbsp;at runtime. &lt;/P&gt;
&lt;P&gt;First off all we need a xaml file for our user interface that hosts the custom user interface, it contains just a button and DockPanel where the custom user interface will be showed. &lt;/P&gt;
&lt;P&gt;&lt;IMG src="/WebLog/photos/wimdc/images/148681/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;This creates the following window.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/WebLog/photos/wimdc/images/148680/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;The Click event of the button contains the following code.&lt;/P&gt;
&lt;P&gt;public void Button1Click(object Sender, RoutedEventArgs e) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream fs = new FileStream(@"screen1.xml",FileMode.Open,FileAccess.Read);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;object xamlRoot = XamlReader.Load(fs);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CustomDockPanel.Children.Clear();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CustomDockPanel.Children.Add((UIElement)xamlRoot); &lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;The screen1.xml file contains our custom user interface. Important here is to include the correct namespaces otherwise the Parsing of the XAML will fail.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/WebLog/photos/wimdc/images/148682/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;If we push the button our custom UI will be shown like this.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/WebLog/photos/wimdc/images/148679/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;Amazing, dynamic user interface in just 4 lines of code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=148683" width="1" height="1"&gt;</content><slash:comments>2</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=148683</wfw:commentRss></entry><entry><title>Busy week for Belgian Community</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/09/11/146846.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:146846</id><created>2006-09-11T07:18:00Z</created><content type="text/html" mode="escaped">&lt;A href="http://www.microsoft.com/belux/msdn/nl/events/2006/ie7.mspx"&gt;&lt;IMG src="http://www.microsoft.com/belux/msdn/images/msdn_header_evening.jpg"&gt;&lt;/A&gt; 
&lt;P&gt;Events are being served to the belgian community. First of all we have the &lt;A href="http://www.microsoft.com/belux/msdn/nl/events/2006/net30.mspx"&gt;Msdn Event on Dotnet Framework 3.0&lt;/A&gt;, and like &lt;A href="http://www.vsdotnet.be/blogs/tommer/Trackback.aspx?guid=f58978a1-c969-40f9-946e-b9ce72a26809"&gt;Tom says &lt;/A&gt;be quick to get the last seats. And should you want more, there is more like &lt;A href="http://www.wiver.com/blog/Trackback,guid,9ecd24f3-01fe-42fe-9ac3-35fa966fb619.aspx"&gt;Wim says&lt;/A&gt; in his blog, a msdn evening session on &lt;A href="http://www.microsoft.com/windows/ie/default.mspx"&gt;IE7&lt;/A&gt; for developers, &lt;A href="http://www.mscyra.com/"&gt;Cyra Richardson&lt;/A&gt; the lead program manager for Layout and Rendering for the IE team will be talking about the new features of &lt;A href="http://www.microsoft.com/windows/ie/default.mspx"&gt;IE7&lt;/A&gt;, &lt;A href="http://www.microsoft.com/belux/msdn/nl/events/2006/ie7.mspx"&gt;register here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;And for the Framework 3.0 freaks, there is a &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=19E21845-F5E3-4387-95FF-66788825C1AF&amp;amp;displaylang=en"&gt;Microsoft Pre-Release Software Microsoft .NET Framework 3.0 - Release Candidate&lt;/A&gt;&amp;nbsp;released on 01/09/2006 and it works with &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=935AABF9-D1D0-4FC9-B443-877D8EA6EAB8&amp;amp;displaylang=en"&gt;Orcas&lt;/A&gt;. Should you have any problems, suggestions or errors&amp;nbsp;give feedback on the &lt;A href="https://connect.microsoft.com/default.aspx"&gt;Microsoft Feedback site&lt;/A&gt;,&amp;nbsp;on the following&amp;nbsp;urls &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Visual Studio : &lt;A href="http://connect.microsoft.com/VisualStudio"&gt;http://connect.microsoft.com/VisualStudio&lt;/A&gt; 
&lt;LI&gt;Windows Communication Foundation : &lt;A href="http://connect.microsoft.com/wcf"&gt;http://connect.microsoft.com/wcf&lt;/A&gt; 
&lt;LI&gt;Windows Presentation Foundation : &lt;A href="http://connect.microsoft.com/site/sitehome.aspx?SiteID=212"&gt;http://connect.microsoft.com/site/sitehome.aspx?SiteID=212&lt;/A&gt; 
&lt;LI&gt;Windows Workflow Foundation : &lt;A href="http://connect.microsoft.com/wf"&gt;http://connect.microsoft.com/wf&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=146846" width="1" height="1"&gt;</content><slash:comments>1168</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=146846</wfw:commentRss></entry><entry><title>Windows Live Custom Domains</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/wimdc/archive/2006/09/02/145971.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:145971</id><created>2006-09-02T10:03:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;If you have your own domain then your in for a treat, a 2GB inbox and unlimited amount of email adresses for free. &lt;A href="http://www.wiver.com/blog/"&gt;Wim Verhaeghen&lt;/A&gt; wrote a complete howto in &lt;A href="http://www.wiver.com/blog/Trackback,guid,687df96a-0eb1-48e2-8fdc-4a0263fbfead.aspx"&gt;his latest post&lt;/A&gt;, check it out and start using it. We had to wait some time for a post of &lt;A href="http://www.wiver.com/blog/"&gt;Wim&lt;/A&gt; but hey this is a great &lt;A href="http://www.wiver.com/blog/Trackback,guid,57711db3-8349-4dc5-89f7-c2d1aebad5a5.aspx"&gt;respawn&lt;/A&gt;, and if there was any doubt about his &lt;A href="http://www.live.com"&gt;Windows Live&lt;/A&gt; addiction check out the new design on the &lt;A href="http://www.microsoft.com/belux/msdn/nl/default.mspx"&gt;local MSDN&lt;/A&gt; site where he did a great job on making it more readable. After&amp;nbsp;&lt;A href="http://blogs.msdn.com/davbosch/archive/2006/08/30/731522.aspx"&gt;David&lt;/A&gt; hereby my congratulations on a&amp;nbsp;great job.&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=145971" width="1" height="1"&gt;</content><slash:comments>739</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/wimdc/commentrss.aspx?PostID=145971</wfw:commentRss></entry></feed>