<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-38764963</atom:id><lastBuildDate>Fri, 09 Oct 2009 09:15:57 +0000</lastBuildDate><title>Microsoft .NET 3.5 Training and Consulting</title><description>Arnaud Weil's technical blog (.NET Framework 3.5, WPF, Silverlight 2, ASP.NET, WCF, Windows Forms, Web Service, WF, Volta)</description><link>http://dreamdotnet.blogspot.com/</link><managingEditor>noreply@blogger.com (Arnaud)</managingEditor><generator>Blogger</generator><openSearch:totalResults>123</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/dreamdotnet" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">dreamdotnet</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-1625997580716539590</guid><pubDate>Thu, 30 Apr 2009 19:51:00 +0000</pubDate><atom:updated>2009-04-30T14:51:41.379-05:00</atom:updated><title>Standard deviation in Silverlight using LINQ</title><description>&lt;p&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" src="http://upload.wikimedia.org/wikipedia/en/7/7e/Standard_deviation_illustration.gif" align="right" /&gt;For a security feature in a Silverlight project I needed to compute the &lt;a href="http://en.wikipedia.org/wiki/Standard_deviation"&gt;standard deviation&lt;/a&gt; of a series. Googling for it I quickly found a &lt;a href="http://www.eggheadcafe.com/articles/standard_deviation_dotnet.asp"&gt;code sample&lt;/a&gt;, but it dates from the days before LINQ, which makes it 70 lines-long. &lt;/p&gt;  &lt;p&gt;Thanks to LINQ, you can write a method that computes a standard deviation with only 3 lines. It works with Silverlight 2 (and 3) and with whatever .NET 3.5 application (WPF, ASP.NET, ...). Here’s my code:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;using System;      &lt;br /&gt;using System.Data.Linq;&lt;/p&gt;    &lt;p&gt;public static class SecurityMaths      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static double StandardDeviation(this IEnumerable&amp;lt;double&amp;gt; data)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; double average = data.Average();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var individualDeviations = data.Select(num =&amp;gt; Math.Pow(num - average, 2.0));       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return Math.Sqrt(individualDeviations.Average());       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Note that I defined my method as an extension method, so that it can be used just like the Average LINQ method. Which means you can use it that way:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;double[] numbers = new double[] { 2,4,4,4,5,5,7,9 };      &lt;br /&gt;double average = numbers.Average();       &lt;br /&gt;double standardDev = numbers.StandardDeviation();&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;What a clean code: it’s almost as obvious as the mathematical definition of the standard deviation. Thanks a ton, LINQ!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-1625997580716539590?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2009/04/standard-deviation-in-silverlight-using.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-5417333816212007176</guid><pubDate>Tue, 24 Feb 2009 07:59:00 +0000</pubDate><atom:updated>2009-02-24T01:59:34.620-06:00</atom:updated><title>MCPD Windows Developer 3.5</title><description>&lt;p&gt;Here are another two in my passed certifications series: MCDP Windows Developer 3.5 and MCTS Windows Forms 3.5. My &lt;a href="http://arnaud.weil.free.fr/MS_Learning_Transcript.pdf"&gt;full list of certifications is there&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;6 certifications .NET 3.5 passed in a year right from their first day out, so now I can show off my expertise.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_5pjb5f5mXMg/SaOo2ZElMkI/AAAAAAAAAPw/JJgohIHCLCw/s1600-h/MCTS4%5B4%5D.png"&gt;&lt;img title="MCTS4" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="71" alt="MCTS4" src="http://lh3.ggpht.com/_5pjb5f5mXMg/SaOo20FIhJI/AAAAAAAAAP0/ErGyQ1QJx8M/MCTS4_thumb%5B2%5D.png?imgmax=800" width="375" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lh5.ggpht.com/_5pjb5f5mXMg/SaOo3prH_UI/AAAAAAAAAP4/h0tyzxn1Kq8/s1600-h/MCPD2%5B7%5D.png"&gt;&lt;img title="MCPD2" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="67" alt="MCPD2" src="http://lh3.ggpht.com/_5pjb5f5mXMg/SaOo4THy5sI/AAAAAAAAAP8/6zIcWOOW1_0/MCPD2_thumb%5B3%5D.png?imgmax=800" width="210" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lh6.ggpht.com/_5pjb5f5mXMg/SaOo4-Fb2iI/AAAAAAAAAQA/WuwNyUmwqfY/s1600-h/MCT2%5B4%5D.png"&gt;&lt;img title="MCT2" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="57" alt="MCT2" src="http://lh3.ggpht.com/_5pjb5f5mXMg/SaOo5qzh1II/AAAAAAAAAQE/u-uxFUbuDcM/MCT2_thumb%5B2%5D.png?imgmax=800" width="281" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-5417333816212007176?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2009/02/mcpd-windows-developer-35.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-969225606820955949</guid><pubDate>Thu, 29 Jan 2009 10:29:00 +0000</pubDate><atom:updated>2009-01-29T14:51:29.256-06:00</atom:updated><title>MCPD ASP.NET 3.5</title><description>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_5pjb5f5mXMg/SYGFEliFkKI/AAAAAAAAAKk/CG0OmMu4M88/s1600-h/MCPD%28rgb%29%5B3%5D.png"&gt;&lt;img title="MCPD(rgb)" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="84" alt="MCPD(rgb)" src="http://lh5.ggpht.com/_5pjb5f5mXMg/SYGFFP6XjMI/AAAAAAAAAKo/wifJtACIqo8/MCPD%28rgb%29_thumb%5B1%5D.png?imgmax=800" width="118" align="left" border="0" /&gt;&lt;/a&gt;I’m now a Microsoft Certified Professional Developer, ASP.NET 3.5 Applications. Together with my previous certifications, that makes it up to prove my proficiency in ASP.NET 3.5, AJAX, WPF, Silverlight 2, ADO.NET and Windows Forms.&lt;/p&gt;  &lt;p&gt;What makes me especially proud is that I had to answer the questions for this certification in half the time allowed since I did it during &lt;a href="http://dreamdotnet.blogspot.com/2008/11/teched-sessions-from-barcelona.html"&gt;TechEd Barcelona&lt;/a&gt; and had to &lt;a href="http://dreamdotnet.blogspot.com/2008/11/live-from-teched-2008-barcelona.html"&gt;go back and take my shift&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Want to see which certifications I have? It’s &lt;a href="http://dreamdotnet.com/Apropos.aspx"&gt;on my site&lt;/a&gt; – or just go and grab &lt;a href="http://arnaud.weil.free.fr/MS_Learning_Transcript.pdf"&gt;my Microsoft official transcript&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-969225606820955949?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2009/01/mcpd-aspnet-35.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-2411096976526902417</guid><pubDate>Mon, 19 Jan 2009 20:20:00 +0000</pubDate><atom:updated>2009-01-19T14:20:58.522-06:00</atom:updated><title>Framework 3.5 and .NET Configuration Tool</title><description>&lt;p&gt;&lt;img src="http://www.codeproject.com/KB/security/UB_CAS_NET/ConfigTool_1.gif" align="right" /&gt; When you install Visual Studio 2008 on your machine, you don't get the .NET Framework Configuration tool. You can still use caspol.exe and other command-line configuration tools, but in order to visualize Code Access Security trees I believe a GUI tool is better...&lt;/p&gt;  &lt;p&gt;Well,&amp;#160; it's easy to get it back: just install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&amp;amp;displaylang=en"&gt;Microsoft .NET Framework 2.0 SDK&lt;/a&gt;. Yep, 2.0. Want more info about that? &lt;a href="http://msdn.microsoft.com/en-us/library/2bc0cxhc.aspx"&gt;It's here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-2411096976526902417?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2009/01/framework-35-and-net-configuration-tool.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-7503877149325070368</guid><pubDate>Sun, 18 Jan 2009 16:05:00 +0000</pubDate><atom:updated>2009-01-18T10:05:40.349-06:00</atom:updated><title>Microsoft helps us break their own limitations</title><description>&lt;p&gt;&lt;img height="223" src="http://blogs.msdn.com/blogfiles/briankel/WindowsLiveWriter/VisualStudio2010CTPActivationMessages_BE23/image_thumb_5.png" width="312" align="right" /&gt;If you're &lt;a href="http://arnaudweil.blogspot.com/2008/10/premier-apercu-de-visual-studio-2010-et.html"&gt;evaluating Visual Studio 2010 as I am,&lt;/a&gt; you may have noticed that Visual Studio 2010 won't run beginning January 1st. That's a time limit built into the software.&lt;/p&gt;  &lt;p&gt;Instead of providing us with a fixed VHD, Microsoft simply explains &lt;a href="http://blogs.msdn.com/briankel/archive/2008/10/27/visual-studio-2010-ctp-vpc-dealing-with-activation-messages.aspx"&gt;how we may go around the software's time limits&lt;/a&gt; - sort of like a neighbor teaching me how to break through his house.&lt;/p&gt;  &lt;p&gt;In any case, even if those steps lengthen the already long VHD installation process, thanks to Microsoft for letting us have a look at this CTP so early in their development lifecycle.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-7503877149325070368?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2009/01/microsoft-helps-us-break-their-own.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-210523998259828617</guid><pubDate>Wed, 26 Nov 2008 22:32:00 +0000</pubDate><atom:updated>2008-11-26T16:32:55.920-06:00</atom:updated><title>TechEd sessions from Barcelona</title><description>&lt;p&gt;I was at TechEd Europe developers edition, and I wrote down summaries of the sessions I went to. They're in French, but you can still have them automatically translated...&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://arnaudweil.blogspot.com/2008/11/en-direct-du-teched-2008-barcelone.html"&gt;Keynote&lt;/a&gt;  &lt;li&gt;&lt;a href="http://arnaudweil.blogspot.com/2008/11/developpeur-et-designer-travailler.html"&gt;Developer and Designer: working together using WPF or Silverlight&lt;/a&gt;  &lt;li&gt;&lt;a href="http://arnaudweil.blogspot.com/2008/11/net-my-services.html"&gt;.NET My Services&lt;/a&gt;  &lt;li&gt;&lt;a href="http://arnaudweil.blogspot.com/2008/11/silverlight-2-pour-mobile-devices.html"&gt;Silverlight 2 for Mobile Devices&lt;/a&gt;  &lt;li&gt;&lt;a href="http://arnaudweil.blogspot.com/2008/11/creation-d-wpf-et-silverlight.html"&gt;Creating composite WPF and Silverlight applications&lt;/a&gt;  &lt;li&gt;&lt;a href="http://arnaudweil.blogspot.com/2008/11/sql-server-compact-edition.html"&gt;SQL Server Compact Edition&lt;/a&gt;  &lt;li&gt;&lt;a href="http://arnaudweil.blogspot.com/2008/11/visual-studio-2010-ou-la-joie-d-du-code.html"&gt;Visual Studio 2010: the joy of writing code&lt;/a&gt;  &lt;li&gt;&lt;a href="http://arnaudweil.blogspot.com/2008/11/utiliser-wpf-pour-le-meilleur-et-pour.html"&gt;Using WPF for better and worse&lt;/a&gt;  &lt;li&gt;&lt;a href="http://arnaudweil.blogspot.com/2008/11/astuces-pour-de-chouettes-applications.html"&gt;Tips n' tricks for cool Silverlight applications&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Note: those are my notes for what was said. They don't reflect my personal point of view about the technologies mentioned.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-210523998259828617?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/11/teched-sessions-from-barcelona.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-5166656098659872225</guid><pubDate>Wed, 26 Nov 2008 22:14:00 +0000</pubDate><atom:updated>2008-11-26T16:14:03.738-06:00</atom:updated><title>Charts using ASP.NET 3.5</title><description>&lt;p&gt;&lt;img height="294" src="http://www.scottgu.com/blogposts/chart/step2.png" width="370" align="right"&gt; One of the most interesting features of ASP.NET 4.0 (Visual Studio 2010) is the Chart control, enabling us to create useful and stunning... charts. What's more, Microsoft just released this control for ASP.NET 3.5. For free.&lt;/p&gt; &lt;p&gt;For a quickstart, Microsoft provides us with a &lt;a href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591"&gt;sample Web site&lt;/a&gt; you just have to open and run using Visual Studio 2008, exactly like you would with the Ajax Control Toolkit.&lt;/p&gt; &lt;p&gt;More information about this on &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx"&gt;Scott Guthrie's post&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-5166656098659872225?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/11/charts-using-aspnet-35.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-6154913224249385751</guid><pubDate>Mon, 10 Nov 2008 23:35:00 +0000</pubDate><atom:updated>2008-11-10T17:35:22.022-06:00</atom:updated><title>Live from TechEd 2008 Barcelona</title><description>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_5pjb5f5mXMg/SRjFLmO6CDI/AAAAAAAAAFA/T0sYdoO5Ey4/s1600-h/PIC_0028%5B3%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="PIC_0028" src="http://lh5.ggpht.com/_5pjb5f5mXMg/SRjFOHcIARI/AAAAAAAAAFE/LFwgS_WuDrQ/PIC_0028_thumb%5B1%5D.jpg?imgmax=800" width="244" align="right" border="0"&gt; Just as last year&lt;/a&gt;, I'm at the 2008 edition of the &lt;a href="http://www.microsoft.com/emea/teched2008/"&gt;TechEd Europe&lt;/a&gt;. You can meet me at the Microsoft Learning booth - or at the best sessions. ;-)&lt;/p&gt; &lt;p&gt;I'll be posting to this blog my summaries from sessions I attend, but this year I'll post summaries only in French. &lt;a href="http://arnaudweil.blogspot.com/"&gt;So just read the French version here&lt;/a&gt;...&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-6154913224249385751?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/11/live-from-teched-2008-barcelona.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-1616169495524923657</guid><pubDate>Mon, 18 Aug 2008 18:32:00 +0000</pubDate><atom:updated>2008-08-18T13:34:13.349-05:00</atom:updated><title>Silverlight 2 explained using Silverlight 2</title><description>&lt;p&gt;Should you try to use Silverlight 2, you know that you're on a moving ground. Something that's not over yet. Which makes it difficult to know what's available.&lt;/p&gt; &lt;p&gt;Hopefully, &lt;a href="http://blogs.msdn.com/jstegman/default.aspx"&gt;Joe Stegman&lt;/a&gt; provides us with a Silverlight 2 poster. Not the traditional poster that will take up space on your crowded desktop's walls, but a &lt;a href="http://labs.live.com/Silverlight+2+Deep+Zoom.aspx"&gt;Deep Zoom&lt;/a&gt; one (it's a part of Silverlight) so that you can move in and out of the poster with ease and speed.&lt;/p&gt; &lt;p&gt;Here's the poster (the original one is &lt;a href="http://joestegman.members.winisp.net/DeepZoom/"&gt;here&lt;/a&gt;). Click to zoom. Click while holding Shift in order to zoom in out. Drag and drop the picture in order to move it.&lt;/p&gt; &lt;div id="silverlightControlHost"&gt; 		&lt;object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" width="600" height="400"&gt; 			&lt;param name="source" value="http://joestegman.members.winisp.net/DeepZoom/ClientBin/DeepZoom.xap" /&gt; 			&lt;param name="onerror" value="onSilverlightError" /&gt; 			&lt;param name="background" value="white" /&gt; 			 			&lt;a href="http://go.microsoft.com/fwlink/?LinkID=115261" style="text-decoration: none;"&gt;       			&lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; 			&lt;/a&gt; 		&lt;/object&gt; 		&lt;iframe style='visibility:hidden;height:0;width:0;border:0px'&gt;&lt;/iframe&gt;     &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-1616169495524923657?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/08/silverlight-2-explained-using.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-328207666920213996</guid><pubDate>Thu, 14 Aug 2008 09:45:00 +0000</pubDate><atom:updated>2008-08-14T04:45:54.642-05:00</atom:updated><title>ADO.NET 3.5 certification - one more</title><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Following my &lt;a href="http://dreamdotnet.blogspot.com/2008/04/windows-presentation-foundation.html"&gt;WPF&lt;/a&gt; and &lt;a href="http://dreamdotnet.blogspot.com/2008/07/aspnet-35-certification-one-more.html"&gt;ASP.NET 3.5&lt;/a&gt; certifications, I'm now certified on ADO.NET 3.5. &lt;p&gt;It took some time to get the results, as it does for every beta exam, but I passed 70-561 so &lt;strong&gt;I am &lt;a href="http://www.microsoft.com/learning/en/us/exams/70-561.mspx"&gt;MCTS .NET Framework 3.5, ADO.NET Applications&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-328207666920213996?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/08/adonet-35-certification-one-more.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-7700274125856948498</guid><pubDate>Tue, 12 Aug 2008 09:14:00 +0000</pubDate><atom:updated>2008-08-12T04:14:30.207-05:00</atom:updated><title>Visual Studio 2008 SP1 is out</title><description>&lt;p&gt;It was due "by the end of summer 2008", and it's out. I didn't see much announcements about it being released, so that's why I'm just posting a quick note about it.&lt;/p&gt; &lt;p&gt;I made &lt;a href="http://dreamdotnet.blogspot.com/2008/05/visual-studio-2008-feature-packed-sp1.html"&gt;a quick list of interesting features here&lt;/a&gt;. Of which is the much awaited Entites Framework.&lt;/p&gt; &lt;p&gt;Get the SP1 &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-7700274125856948498?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/08/visual-studio-2008-sp1-is-out.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-3081080154078445932</guid><pubDate>Wed, 30 Jul 2008 07:16:00 +0000</pubDate><atom:updated>2008-07-30T02:16:43.420-05:00</atom:updated><title>Web performance using Java</title><description>&lt;p&gt;Have a look at the &lt;a href="http://www.hertz.fr"&gt;Hertz home page&lt;/a&gt;. I received an exception when accessing it this morning, and I'm really surprised by the call stack from a performance point of view:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Arial"&gt;&lt;b&gt;Error Message: &lt;/b&gt;Filter [SystemFilter]: com.hertz.ecom.framework.presentation.servlets.SystemFilter was found, but is missing another required class. &lt;br&gt;&lt;b&gt;Error Code: &lt;/b&gt;500&lt;br&gt;&lt;b&gt;Target Servlet: &lt;/b&gt;/index.jsp&lt;br&gt;&lt;b&gt;Error Stack: &lt;/b&gt;&lt;br&gt;java.lang.NoClassDefFoundError: com.hertz.ecom.framework.presentation.servlets.SystemFilter (initialization failure) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.J9VMInternals.initialize(J9VMInternals.java:123) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Class.newInstanceImpl(Native Method) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Class.newInstance(Class.java:1263) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.beans.Beans.instantiate(Beans.java:219) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.beans.Beans.instantiate(Beans.java:63) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager._loadFilter(WebAppFilterManager.java:421) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.loadFilter(WebAppFilterManager.java:379) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterInstanceWrapper(WebAppFilterManager.java:238) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterChain(WebAppFilterManager.java:296) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:721) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:673) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:498) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:464) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:205) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3252) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:264) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:112) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:263) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Caused by: java.lang.Throwable: java.lang.RuntimeException &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.hertz.irac.framework.presentation.FrameworkBroker.getDirectoryPaths(FrameworkBroker.java:740) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.hertz.ecom.framework.presentation.servlets.SystemFilter.&amp;lt;clinit&amp;gt;(SystemFilter.java:104) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.J9VMInternals.initializeImpl(Native Method) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.J9VMInternals.initialize(J9VMInternals.java:177) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Class.newInstanceImpl(Native Method) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Class.newInstance(Class.java:1263) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.beans.Beans.instantiate(Beans.java:219) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.beans.Beans.instantiate(Beans.java:63) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager._loadFilter(WebAppFilterManager.java:421) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.loadFilter(WebAppFilterManager.java:379) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterInstanceWrapper(WebAppFilterManager.java:238) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterChain(WebAppFilterManager.java:296) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:721) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:673) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:498) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:464) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:205) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.handleRequest(AbstractJSPExtensionProcessor.java:277) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3252) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:264) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:112) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:263) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... 1 more&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Using ASP.NET, we would simply have put all of the page or part of it in the output cache (it takes a line on the ASPX page) since that page is often requested but rarely changes. This would have provided performances similar to a simple HTML page. On the contrary, here we see a call to almost 70 methods just to handle a simple query.&lt;/p&gt; &lt;p&gt;The application may well be simply badly coded, so it has nothing to see with Java, but using 70 methods instead of one or two for a simple request may well pose performance problems.&lt;/p&gt; &lt;p&gt;It reminds me of a client who had to handle a large amount of requests on a Web service, and was using ASP.NET and Java at the same time to handle the requests. He told me that with one ASP.NET machine he was handling more requests than with three Java machines. Of course, this is not an objective performance test, but it looks like Java may globally offer lesser performance than ASP.NET for Web applications.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-3081080154078445932?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/07/web-performance-using-java.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-4262673097493282164</guid><pubDate>Thu, 17 Jul 2008 12:46:00 +0000</pubDate><atom:updated>2008-07-17T07:46:59.036-05:00</atom:updated><title>ASP.NET 3.5 certification - one more</title><description>&lt;p&gt;Following &lt;a href="http://dreamdotnet.blogspot.com/2008/04/windows-presentation-foundation.html"&gt;my WPF certification&lt;/a&gt;, I'm now certified on ASP.NET 3.5.&lt;/p&gt; &lt;p&gt;To be honest, I wasn't sure I would get it. When I took the exam (in march 2008 when it was in beta), I had some difficult moments with the AJAX questions since I didn't master that technology enough at that time.&lt;/p&gt; &lt;p&gt;But it's now official: I passed 70-562, so &lt;strong&gt;I am &lt;a href="http://www.microsoft.com/learning/en/us/exams/70-562.mspx"&gt;MCTS .NET Framework 3.5, ASP.NET Applications&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-4262673097493282164?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/07/aspnet-35-certification-one-more.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-4949824317671458333</guid><pubDate>Thu, 17 Jul 2008 09:00:00 +0000</pubDate><atom:updated>2008-07-17T04:55:33.193-05:00</atom:updated><title>Protocol buffers from Google</title><description>&lt;p&gt;&lt;img src="http://www.google.com/intl/en_ALL/images/logo.gif" align="right"&gt; Google just published a competitor for XML. According to them, it would be "smaller, faster, and simpler". How about that?&lt;/p&gt; &lt;p&gt;With XML as a de facto universal standard, do we really need a competitor? We have XPath for queries (even LINQ 2 XML on the Microsoft side), XSL/T for transformations and conversions to various formats, XSD for structure, so don't we already have everything we need?&lt;/p&gt; &lt;p&gt;Well no. In the .NET world, we can use XML serialization and the xsd.exe tool that enable us to work with class instances when manipulating XML. But other languages don't have such a nice thing. They need to parse XML documents using DOM or SAX. Which makes it tricky for them (just compare the two lines needed for XML serialization with the twenty lines needed to achieve the same result using DOM).&lt;/p&gt; &lt;p&gt;This is hence an interesting try from Google at solving the problem of XML manipulation outside of the .NET world.&lt;/p&gt; &lt;p&gt;Roughly put, as &lt;a href="http://code.google.com/apis/protocolbuffers/docs/overview.html"&gt;Google writes&lt;/a&gt;, protocols buffers are defined in a .proto file:&lt;/p&gt; &lt;blockquote&gt;&lt;pre&gt;message Person {&lt;br /&gt;  required string name = 1;&lt;br /&gt;  required int32 id = 2;&lt;br /&gt;  optional string email = 3;&lt;br /&gt;&lt;br /&gt;  enum PhoneType {&lt;br /&gt;    MOBILE = 0;&lt;br /&gt;    HOME = 1;&lt;br /&gt;    WORK = 2;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  message PhoneNumber {&lt;br /&gt;    required string number = 1;&lt;br /&gt;    optional PhoneType type = 2 [default = HOME];&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  repeated PhoneNumber phone = 4;&lt;br /&gt;}&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Then we can manipulate the XML using instances of objets, just like in this example:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;Person person;&lt;br&gt;person.set_name("John Doe");&lt;br&gt;person.set_id(1234);&lt;br&gt;person.set_email("jdoe@example.com");&lt;br&gt;fstream output("myfile", ios::out | ios::binary);&lt;br&gt;person.SerializeToOstream(&amp;amp;output);&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;You can immediatly see the advantage for Java programmers: no more DOM, and the use of language classes, which provides them with compile-time error checks.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;That will be useless in .NET. Indeed, &lt;strong&gt;we can already do just that&lt;/strong&gt;. Since 2001. Let's take the same example as above. I can just create a class (or have it generated from the XML using xsd.exe):&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;font face="Courier New" size="3"&gt;public class Person&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string name;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int id;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string email; &lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font face="Courier New" size="3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public enum PhoneType&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; MOBILE = 0,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HOME = 1,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WORK = 2,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font face="Courier New" size="3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class PhoneNumber&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; public string number;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public PhoneType type = PhoneType.HOME;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font face="Courier New" size="3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;PhoneNumber&amp;gt; phone;&lt;br&gt;}&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Then I can use the following code, strictly equivalent to the above Java code:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;font face="Courier New" size="3"&gt;Person person = new Person();&lt;br&gt;person.name = "John Doe";&lt;br&gt;person.id = 1234;&lt;br&gt;person.email = "jdoe@example.com";&lt;br&gt;XmlSerializer xs = new XmlSerializer(typeof(Person));&lt;br&gt;xs.Serialize(Console.Out, person);&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;We can do just as simple and concise as protocol buffers, but with one big advantage: we don't need to create .proto files or learn a new language: &lt;strong&gt;our .NET types are already equivalent to the .proto files&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Did Google just reinvent the wheel? Yes, but they provide this wonderful XML serialization tool to non-.NET technologies like Java or C++. As far as I'm concerned, I regret that .proto files don't enable a program to read XML.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now there's one thing left in favor of protocol handlers: speed. Google states that protocol buffers allow for a faster processing than XML, which I can easily believe since XML is quite verbose. Indeed, Microsoft had used a binary BAML format to store XAML inside the assemblies of WPF applications.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So what's left for us .NET developpers? It's easy to imagine &lt;strong&gt;a tool that would produce .NET assemblies from .proto files and conversely&lt;/strong&gt;. It shouldn't be long until we see such a tool should protocol handlers become widely used. Which means we can continue and use our .NET types since they would be compatible with protocol buffers.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-4949824317671458333?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/07/protocol-buffers-from-google.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-7090017964900978753</guid><pubDate>Thu, 10 Jul 2008 09:14:00 +0000</pubDate><atom:updated>2008-07-10T04:14:11.530-05:00</atom:updated><title>Microsoft Certified Master</title><description>&lt;p&gt;&lt;img src="http://img.microsoft.com/learning/images/cert-master.jpg" align="right"&gt; Microsoft created a new certification for those of you who have a deep expertise. So what if I want to become a Microsoft Certified Master?&lt;/p&gt; &lt;p&gt;Well, for now this certification is only aimed at IT pros. Nothing for developers. Master certifications are only &lt;a href="http://www.microsoft.com/learning/mcp/master/default.mspx"&gt;about Windows Server 2008, SQL Server 2008 and Exchange Server 2007&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Will there be a Master certification for developers? For instance one about Visual Studio 2008 and the .NET Framework 3.5? No. There may be one on a long-term basis, but it's not planned at the moment since Microsoft Learning already has a lot of work having the Master certification rolled-out all over the world. &lt;em&gt;Source for that: &lt;/em&gt;&lt;a href="http://blogs.msdn.com/trika/archive/2008/06/26/more-on-the-certified-master-programs-from-me-per-the-program-owner.aspx"&gt;&lt;em&gt;Per&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, who wrote "Right now, we don’t have any plans for a developer based Master program, but once we get this first set out the door, we’ll look at other appropriate tracks. Perhaps a developer one is needed?".&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-7090017964900978753?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/07/microsoft-certified-master.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-5967877364272584351</guid><pubDate>Wed, 09 Jul 2008 08:08:00 +0000</pubDate><atom:updated>2008-07-09T03:08:35.043-05:00</atom:updated><title>Automatic columns in a DataGridView</title><description>&lt;p&gt;The DataGridView control in Windows Forms 3.5 and 2.0 displays by default all of the columns from its data-bound source. You may configure the displayed columns using the Design view under Visual Studio 2008, but you can't go back. Just follow this tutorial to know how to have your generated columns back.&lt;/p&gt; &lt;p&gt;Just like its fellow ASP.NET GridView control, Windows Forms' DataGridView can detect the columns from the DataSource you provide it with. But should you configure (or have Visual Studio do it for you) the columns of a DataGridView, how do you go back? There's an AutoGenerateColumns property on the DataGridView which you should just set to "True" (its default value), but unfortunately it doesn't appeart in the Properties window of Visual Studio 2008. No problem, just follow these steps.&lt;/p&gt; &lt;p&gt;Remove any configured columns using the Design view. To do this, just click the smart tag located at the top right of your DataGridView: &lt;a href="http://www12.asphost4free.com/aweil/imgs/ColonnesautomatiquessurunDataGridView_8ABA/image.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="33" alt="image" src="http://www12.asphost4free.com/aweil/imgs/ColonnesautomatiquessurunDataGridView_8ABA/image_thumb.png" width="37" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;In the smart tag menu, click "Edit columns". In the dialog box that opens remove all of the columns. Close the dialog box using the "OK" button.&lt;/p&gt; &lt;p&gt;Write down the name of your DataGridView. In my case it's categoriesDataGridView. In the Solution Explorer window, open the Visual Studio generated file for your form. If your form is named MasterDet, the generated file will be named MasterDet.Designer.cs:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www12.asphost4free.com/aweil/imgs/ColonnesautomatiquessurunDataGridView_8ABA/image_3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="74" alt="image" src="http://www12.asphost4free.com/aweil/imgs/ColonnesautomatiquessurunDataGridView_8ABA/image_thumb_3.png" width="225" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Look for the lines defining the DataGridView and remove the one that states "AutoGenerateColumns=false" (the one outlined in blue in the my screenshot):&lt;/p&gt; &lt;p&gt;&lt;a href="http://www12.asphost4free.com/aweil/imgs/ColonnesautomatiquessurunDataGridView_8ABA/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="54" alt="image" src="http://www12.asphost4free.com/aweil/imgs/ColonnesautomatiquessurunDataGridView_8ABA/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Et voilà!&lt;/p&gt; &lt;p&gt;Note: I usually tell developpers not to manually edit the Visual Studio generated files (xxx.Designer.cs), since you have nothing to do there and you may confuse Visual Studio doing so. But it looks like it's the only way to have the AutoGenerateColumns back to its default value (which is astonishing, but this is yet another point).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-5967877364272584351?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/07/automatic-columns-in-datagridview.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-6118691361877621838</guid><pubDate>Tue, 24 Jun 2008 21:35:00 +0000</pubDate><atom:updated>2008-06-24T16:35:12.814-05:00</atom:updated><title>Visual Studio 2008 training from Microsoft</title><description>&lt;p&gt;&lt;img style="margin: 0px 0px 0px 5px" src="http://img.microsoft.com/downloads/img/products/C0037913-9E11-4A2D-8FD1-0BA441296CBC.gif" align="right"&gt; Microsoft Learning just released two Visual Studio 2008&amp;nbsp; classes:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;6460: &lt;a href="http://dreamdotnet.com/FormationDetails.aspx?cc=MS6460"&gt;Visual Studio 2008 Connected Systems: Windows Presentation Foundation&lt;/a&gt;  &lt;li&gt;6462: &lt;a href="http://dreamdotnet.com/FormationDetails.aspx?cc=MS6462"&gt;Visual Studio 2008 Connected Systems: Windows Workflow Foundation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;And when you feel ready to, you can go for the corresponding &lt;a href="http://dreamdotnet.blogspot.com/2008/04/windows-presentation-foundation.html"&gt;certifications which are already available&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;You may wonder what's the difference between 6460 and &lt;a href="http://dreamdotnet.blogspot.com/2008/04/silverlight-2-and-wpf-training.html"&gt;my own WPF training&lt;/a&gt; released two months ago. Mine doesn't require you to know .NET at all. It takes you from whatever technology to WPF and Silverlight 2 in 4 days. Microsoft's 6460 takes you from .NET 2.0 to WPF in 3 days.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-6118691361877621838?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/06/visual-studio-2008-training-from.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-2636756750962840595</guid><pubDate>Wed, 21 May 2008 07:20:00 +0000</pubDate><atom:updated>2008-05-21T02:20:21.449-05:00</atom:updated><title>Microsoft Certified Trainer 2008</title><description>&lt;p&gt;&lt;a href="http://aweil.fr/Images/mct2008.jpg"&gt;&lt;img src="http://aweil.fr/Images/mct2008thumb.jpg" align="right"&gt;&lt;/a&gt; Once again, I obtained the MCT certification for year 2008. And a pretty diploma.&lt;/p&gt; &lt;p&gt;It was just great receiving my "MCT kit" for year 2008. Not a new thing since I've been certified since 2001, but becoming and remaining and MCT is not an easy task: you need to prove and maintain technical and pedagogical competencies.&lt;/p&gt; &lt;p&gt;This also means I'm still able to teach &lt;a href="http://www.dreamdotnet.com/fcatalogue.aspx"&gt;Microsoft Official Curriculum courses&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-2636756750962840595?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/05/microsoft-certified-trainer-2008.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-742952162286903713</guid><pubDate>Mon, 12 May 2008 19:13:00 +0000</pubDate><atom:updated>2008-05-12T14:13:09.509-05:00</atom:updated><title>Visual Studio 2008: a feature-packed SP1</title><description>&lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" src="http://img.microsoft.com/downloads/img/products/C0037913-9E11-4A2D-8FD1-0BA441296CBC.gif" align="right"&gt;A few months after &lt;a href="http://dreamdotnet.blogspot.com/2007/11/visual-studio-2008-is-out.html"&gt;Visual Studio 2008&lt;/a&gt; has been released, it will get its Service Pack 1. Hosting so many functionality that I'm tempted to call it .NET Framework 3.6.&lt;/p&gt; &lt;p&gt;You'll find all the information about it in &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx"&gt;Scott Guthrie's post&lt;/a&gt;, which I won't copy. SP1 is in beta and should go out "this summer".&lt;/p&gt; &lt;p&gt;What's cool is that it doesn't contain plain bug fixes. It's packed with nice improvements, among which my heart beats for:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;a framework that's lighter to download and install for client applications (WPF, Windows Forms and WCF): it should weight "only" 26 MB;  &lt;li&gt;a more clever bootstrapper for installing and updating the Framework .NET when installing your application;  &lt;li&gt;ClickOnce improvement (better later than never), among which support for installation via Firefox;  &lt;li&gt;a PrintForm control for Windows Forms, which enables for... er... forms to be printed as they appear on the screen (I know it sounds dumb and should have been there from the start);  &lt;li&gt;&lt;a href="http://dreamdotnet.blogspot.com/2008/02/wpf-soon-to-be-faster-and-fatter.html"&gt;WPF improvements I already announced&lt;/a&gt; on this blog, and in fact a bunch more; &lt;li&gt;ADO.NET Entites Framework, at last; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;That makes a bunch of cool things, doesn't it?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-742952162286903713?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/05/visual-studio-2008-feature-packed-sp1.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-3692305933836289749</guid><pubDate>Sat, 19 Apr 2008 17:33:00 +0000</pubDate><atom:updated>2008-04-19T12:33:49.424-05:00</atom:updated><title>Silverlight 2 and WPF training available now</title><description>&lt;p&gt;&lt;a href="http://dreamdotnet.blogspot.com/2008/03/silverlight-2-training.html"&gt;As I wrote&lt;/a&gt; a short while ago, I now offer &lt;a href="http://www.dreamdotnet.com/FormationDetails.aspx?cc=AW2402"&gt;&lt;strong&gt;Silverlight 2 and Windows Presentation Foundation training&lt;/strong&gt;&lt;/a&gt; for developers.&lt;/p&gt; &lt;p&gt;It's one of the first one available in French, and is bundled with my more than 7 years practice of .NET, and my working on WPF and Silverlight from their debuts.&lt;/p&gt; &lt;p&gt;In only four days, you learn .NET, WPF, Silverlight 2 and create yourself a data-driven application (ordering). Some screenshots of this applications you create during the training (I'll video-record it because there are animations too):&lt;/p&gt; &lt;p&gt;&lt;a href="http://www12.asphost4free.com/aweil/imgs/FormationSilverlight2etWPFdisponible_110F1/image.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="164" alt="image" src="http://www12.asphost4free.com/aweil/imgs/FormationSilverlight2etWPFdisponible_110F1/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www12.asphost4free.com/aweil/imgs/FormationSilverlight2etWPFdisponible_110F1/image_3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://www12.asphost4free.com/aweil/imgs/FormationSilverlight2etWPFdisponible_110F1/image_thumb_3.png" width="242" border="0"&gt;&lt;/a&gt; &lt;a href="http://www12.asphost4free.com/aweil/imgs/FormationSilverlight2etWPFdisponible_110F1/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="191" alt="image" src="http://www12.asphost4free.com/aweil/imgs/FormationSilverlight2etWPFdisponible_110F1/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;a href="http://www12.asphost4free.com/aweil/imgs/FormationSilverlight2etWPFdisponible_110F1/image_5.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="238" alt="image" src="http://www12.asphost4free.com/aweil/imgs/FormationSilverlight2etWPFdisponible_110F1/image_thumb_5.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Don't wait more: you can now take advantage of the unique power of WPF and Silverlight 2 in order to create the next generation of applications. Just choose a date and &lt;a href="http://www.dreamdotnet.com/FormationDetails.aspx?cc=AW2402"&gt;register here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Note: the training is now in French, but I'll gladly translate it to English or Spanish at your request.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-3692305933836289749?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/04/silverlight-2-and-wpf-training.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-8322650166904304461</guid><pubDate>Wed, 16 Apr 2008 20:58:00 +0000</pubDate><atom:updated>2008-04-16T15:58:34.511-05:00</atom:updated><title>Windows Presentation Foundation Certification - Yiheeee!</title><description>&lt;p&gt;&lt;img style="margin: 0px 0px 0px 5px" height="114" src="http://www.chrisrue.com/funcave/graphics/mcts.gif" width="150" align="right"&gt;As of two days ago, the first .NET Framework 3.5 certifications are live. And I'm certified!&lt;/p&gt; &lt;p&gt;As &lt;a href="http://blogs.msdn.com/gerryo/archive/2008/04/14/exams-live-today.aspx"&gt;Gerry wrote&lt;/a&gt;, the three Framework 3.5 TS exams are available since past yesterday:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-502.mspx"&gt;70-502: Windows Presentation Foundation&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-503.mspx"&gt;70-503: Windows Communication Foundation&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.microsoft.com/learning/exams/70-504.mspx"&gt;70-504: Windows Workflow Foundation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;I presented and passed 70-502, which means &lt;strong&gt;I'm now &lt;a href="http://www.microsoft.com/learning/mcp/mcts/vstudio/2008/default.mspx"&gt;MCTS .NET Framework 3.5, Windows Presentation Foundation&lt;/a&gt;&lt;/strong&gt;.  &lt;p&gt;Now I gotta go for the other two. I'll probably try them by the end of this month.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-8322650166904304461?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/04/windows-presentation-foundation.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-9140752518468247851</guid><pubDate>Tue, 15 Apr 2008 12:01:00 +0000</pubDate><atom:updated>2008-04-16T02:17:02.305-05:00</atom:updated><title>Microsoft France's technical support got me mad</title><description>&lt;p&gt;Today I'll rant, so please bear with me.&lt;/p&gt; &lt;p&gt;&lt;img src="http://images.jupiterimages.com/common/detail/77/49/23474977.jpg" align="right"&gt;I contacted Microsoft France's technical support for a basic problem: Office 2007 installation. No answer to my question, and half a day lost on the phone.&lt;/p&gt; &lt;p&gt;My problem is incredibly simple: Office 2007 won't install on a machine. A simple matter of contacting Microsoft support, I thought, since I'm entilted to support incidents through my MSDN license. Boy, I was wrong.&lt;/p&gt; &lt;p&gt;Microsoft France's technical support merely refuses to handle my problem. Supposedly, my MSDN Premium license allows me to use various products for test and development purposes (what I do) and Office for whatever use. Which means I can install Office 2007 and at least run it, be it only for a warranty matter. But I just can't get any support.&lt;/p&gt; &lt;p&gt;I spent half a day on the phone, yielding no result. The people from the "technical support" gladly explain me that they don't have to solve my problem. I also asked my question in the "managed newsgroups" where the MSDN subscribers are supposed to get answers to their questions. Nothing. I sent an e-mail to Microsoft France; no answer either.&lt;/p&gt; &lt;p&gt;Understandably, I'm upset: though I usually deal with the French Administration, I don't remember having seen before such a closed and careless system as the Microsoft France technical support.&lt;/p&gt; &lt;p&gt;As a matter of fact, I lost more than half a day. I reinstalled Windows XP at least ten times with different configurations in order to try and solve that problem. With no luck.&lt;/p&gt; &lt;p&gt;Ironically enough, my MSDN subscription ends by the end of this month. Will I renew it if the contractually promised service isn't there?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-9140752518468247851?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/04/microsoft-france-technical-support-got.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-7601521524101751616</guid><pubDate>Sat, 12 Apr 2008 21:34:00 +0000</pubDate><atom:updated>2008-04-12T16:36:12.756-05:00</atom:updated><title>Silverlight already made some addicts</title><description>&lt;p&gt;Here's a funny video from Microsoft, starring a group of - how should I call them? - Anonymous Silverlighters.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.microsoft.fr/clauer/"&gt;&lt;iframe src="http://on10.net/blogs/tina/21760/player/" frameborder="0" width="320" scrolling="no" height="325"&gt;&lt;/iframe&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/clauer/"&gt;Christophe&lt;/a&gt;, you take care, since you may already be addicted. Anyway, I think I'll soon join that group because from the day &lt;a href="http://dreamdotnet.blogspot.com/2008/03/silverlight-2-training.html"&gt;Silverlight 2&lt;/a&gt; came out, I'm living in a dream. Indeed, it sports: DataGrid, styles, controls, WCF, .NET languages... and it will soon go mobile...&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-7601521524101751616?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/04/silverlight-already-made-some-addicts.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-6633082988833132024</guid><pubDate>Tue, 01 Apr 2008 22:36:00 +0000</pubDate><atom:updated>2008-04-01T16:36:36.428-06:00</atom:updated><title>SilverLatte and Expresso Blend</title><description>&lt;p&gt;&lt;img style="margin: 0px 0px 0px 5px" height="240" src="http://platea.pntic.mec.es/cvera/ressources/poisson_avril02_clr.JPG" width="218" align="right"&gt; The .NET world needed its April Fool, and Tess did it... &lt;a href="http://blogs.msdn.com/tess/archive/2008/04/01/new-version-of-silverlatte-and-espresso-blend-available-for-download.aspx"&gt;just right&lt;/a&gt;!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-6633082988833132024?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/04/silverlatte-and-expresso-blend.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-38764963.post-6465376411385551647</guid><pubDate>Fri, 28 Mar 2008 09:43:00 +0000</pubDate><atom:updated>2008-03-28T03:43:47.198-06:00</atom:updated><title>Silverlight 2 Training</title><description>&lt;p&gt;&lt;img style="margin: 0px 0px 0px 5px" src="http://silverlight.net/Themes/silverlight/images/logo.jpg" align="right"&gt; I'm creating a training for the brand new Silverlight 2 using Expression Blend 2.5 and Visual Studio 2008. It will find its way to &lt;a href="http://www.dreamdotnet.com/fcatalogue.aspx"&gt;my training catalog&lt;/a&gt; by the end of April (within a month).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38764963-6465376411385551647?l=dreamdotnet.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://dreamdotnet.blogspot.com/2008/03/silverlight-2-training.html</link><author>noreply@blogger.com (Arnaud)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>
