<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Thomas Conté - Microsoft France</title><link>http://blogs.msdn.com/tconte/default.aspx</link><description>Azure vu du ciel</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Mise à jour des Outils Windows Azure pour Visual Studio &amp; du SDK Windows Azure (Novembre 2009)</title><link>http://blogs.msdn.com/tconte/archive/2009/11/14/mise-jour-des-outils-windows-azure-pour-visual-studio-du-sdk-windows-azure-novembre-2009.aspx</link><pubDate>Sat, 14 Nov 2009 22:53:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9922542</guid><dc:creator>tconte</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/tconte/comments/9922542.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=9922542</wfw:commentRss><description>&lt;p&gt;Juste à temps pour la PDC! Voici une version mise à jour du SDK Windows Azure ainsi que des Outils Windows Azure pour Visual Studio (2008 et 2010 Beta2). Vous les trouverez en téléchargement à ces emplacements:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=772990da-8926-4db0-958f-95c1da572c84&amp;amp;displaylang=en"&gt;Windows Azure Software Development Kit (November 2009)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6967ff37-813e-47c7-b987-889124b43abd&amp;amp;displaylang=en"&gt;Windows Azure Tools for Microsoft Visual Studio (November 2009)&lt;/a&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Ce paquet inclut également le SDK&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Nous aurons le temps de revenir sur ces nouvelles versions dans le courant de la semaine prochaine.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922542" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/PDC09/default.aspx">PDC09</category></item><item><title>Derniers préparatifs avant la PDC09</title><link>http://blogs.msdn.com/tconte/archive/2009/11/14/derniers-pr-paratifs-avant-la-pdc09.aspx</link><pubDate>Sat, 14 Nov 2009 14:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9922457</guid><dc:creator>tconte</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/tconte/comments/9922457.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=9922457</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/DerniersprparatifsavantlaPDC09_5CF8/PDC09Bling_BeforeAfter_136_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/DerniersprparatifsavantlaPDC09_5CF8/PDC09Bling_BeforeAfter_136_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; MARGIN-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 0px; BORDER-RIGHT: 0px" title=PDC09Bling_BeforeAfter_136 border=0 alt=PDC09Bling_BeforeAfter_136 align=right src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/DerniersprparatifsavantlaPDC09_5CF8/PDC09Bling_BeforeAfter_136_thumb.jpg" width=136 height=186 mce_src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/DerniersprparatifsavantlaPDC09_5CF8/PDC09Bling_BeforeAfter_136_thumb.jpg"&gt;&lt;/A&gt; Et oui, fraîchement arrivé dans mon rôle d’architecte, j’ai le plaisir et le privilège de partir pour Los Angeles assister à la Microsoft Professional Developers Conference 2009, alias la &lt;A href="http://microsoftpdc.com/" mce_href="http://microsoftpdc.com/"&gt;PDC09&lt;/A&gt;! Je ferai donc de mon mieux pour participer à la couverture de cet évènement en partageant avec vous les annonces de cette édition.&lt;/P&gt;
&lt;P&gt;Voyons tout d’abord l’ensemble des moyens à votre disposition pour suivre en quasi-direct cet évènement:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Le blog officiel: &lt;A href="http://microsoftpdc.com/BehindTheScenes" mce_href="http://microsoftpdc.com/BehindTheScenes"&gt;PDC09 Behind the Scenes&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://twitter.com/pdc09" mce_href="http://twitter.com/pdc09"&gt;pdc09&lt;/A&gt; sur Twitter&lt;/LI&gt;
&lt;LI&gt;Lancez également une recherche sur le tag &lt;A href="http://twitter.com/#search?q=%23pdc09" mce_href="http://twitter.com/#search?q=%23pdc09"&gt;#pdc09&lt;/A&gt; sur Twitter&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;En français&lt;/STRONG&gt;, &lt;A href="http://msdn.microsoft.com/fr-fr/azure/msdn.pdc09.aspx" mce_href="http://msdn.microsoft.com/fr-fr/azure/msdn.pdc09.aspx"&gt;la page PDC09 sur msdn.fr&lt;/A&gt; vous permettra de suivre toutes les informations postées par les envoyés spéciaux sur place ;-)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Ensuite, si vous souhaitez suivre mes pérégrinations, ce blog est bien entendu une bonne source, ainsi que mes autres avatars sur la toile:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://twitter.com/tomconte" mce_href="http://twitter.com/tomconte"&gt;Twitter&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.facebook.com/thomas.conte" mce_href="http://www.facebook.com/thomas.conte"&gt;Facebook&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.flickr.com/photos/tomconte" mce_href="http://www.flickr.com/photos/tomconte"&gt;Flickr&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;J’essaierai de poster ici un résumé de mes tweets, étant donné que Twitter est tout de même le meilleur moyen pour couvrir un évènement en “temps réel”!&lt;/P&gt;
&lt;P&gt;Enfin, si vous aviez un doute sur le contenu exact d’une PDC, examinez le nuage de tags généré à l’aide de l’excellent &lt;A href="http://www.wordle.net/" mce_href="http://www.wordle.net/"&gt;Wordle&lt;/A&gt;, à partir d’une concaténation des titres des sessions (obtenus via &lt;A href="http://ecn.channel9.msdn.com/o9/pdc09/xls/PDC09SessionSchedule_for_attendees_SUBJECT_TO_CHANGE.xls" mce_href="http://ecn.channel9.msdn.com/o9/pdc09/xls/PDC09SessionSchedule_for_attendees_SUBJECT_TO_CHANGE.xls"&gt;la version Excel&lt;/A&gt;, disponible dans la section “Schedule”)… Mais oui, on est bien sur un évènement &lt;STRONG&gt;Microsoft&lt;/STRONG&gt;, on va parler de &lt;STRONG&gt;construire&lt;/STRONG&gt; des &lt;STRONG&gt;applications&lt;/STRONG&gt; &lt;STRONG&gt;Windows&lt;/STRONG&gt;, en .&lt;STRONG&gt;NET&lt;/STRONG&gt;, et notamment dans &lt;STRONG&gt;Azure&lt;/STRONG&gt; :-)&lt;/P&gt;
&lt;P&gt;A très bientôt!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.wordle.net/show/wrdl/1336044/Microsoft_PDC09_Tag_Cloud" mce_href="http://www.wordle.net/show/wrdl/1336044/Microsoft_PDC09_Tag_Cloud"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Wordle: Microsoft PDC09 Tag Cloud" border=0 alt="Wordle: Microsoft PDC09 Tag Cloud" src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/DerniersprparatifsavantlaPDC09_5CF8/image_3.png" width=834 height=561 mce_src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/DerniersprparatifsavantlaPDC09_5CF8/image_3.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;N.B.: un volontaire pour porter Wordle en Silverlight?!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922457" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/PDC09/default.aspx">PDC09</category></item><item><title>La CTP Novembre de SQL Server 2008 R2 Management Studio pour gérer SQL Azure</title><link>http://blogs.msdn.com/tconte/archive/2009/11/12/la-ctp-novembre-de-sql-server-2008-r2-management-studio-pour-g-rer-sql-azure.aspx</link><pubDate>Thu, 12 Nov 2009 18:36:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921506</guid><dc:creator>tconte</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/tconte/comments/9921506.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=9921506</wfw:commentRss><description>&lt;p&gt;Comme indiqué dans un &lt;a href="http://blogs.msdn.com/ssds/archive/2009/11/10/9920168.aspx"&gt;court billet sur le blog de l’équipe SQL Azure&lt;/a&gt;, la CTP Novembre de SQL Server 2008 R2 inclut une version de SQL Server Management Studio &lt;a href="http://msdn.microsoft.com/en-us/library/ee621784.aspx"&gt;supportée pour gérer SQL Azure&lt;/a&gt;. Vous le trouverez dans le &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/R2.aspx"&gt;package complet de 2008 R2 disponible en téléchargement&lt;/a&gt;, ou vous pouvez télécharger directement une version &lt;a href="http://go.microsoft.com/fwlink/?LinkID=168734&amp;amp;clcid=0x409"&gt;32bit&lt;/a&gt; ou &lt;a href="http://go.microsoft.com/fwlink/?LinkID=168735&amp;amp;clcid=0x409"&gt;64bit&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Cette version est complètement supportée pour SQL Azure, donc fini les désagréments du type passer par “New Query” pour se connecter…&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/LaCTPNovembredeSQLServer2008R2Management_11193/image_5.png" width="437" height="255" /&gt; &lt;/p&gt;  &lt;p&gt;Encore un sujet qui sera amplement présenté à la &lt;a href="http://microsoftpdc.com/"&gt;PDC09&lt;/a&gt;!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921506" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/PDC09/default.aspx">PDC09</category></item><item><title>Résumé des annonces Windows Azure du 5 novembre</title><link>http://blogs.msdn.com/tconte/archive/2009/11/10/r-sum-des-annonces-windows-azure-du-5-novembre.aspx</link><pubDate>Tue, 10 Nov 2009 14:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9920150</guid><dc:creator>tconte</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/tconte/comments/9920150.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=9920150</wfw:commentRss><description>&lt;P&gt;L’heure de la &lt;A href="http://microsoftpdc.com/" mce_href="http://microsoftpdc.com/"&gt;PDC 2009&lt;/A&gt; approchant à grand pas, les annonces se multiplient autour de la plateforme Windows Azure; voici donc un petit résumé des actualités de ces dernières semaines, qui furent riche en annonces. L’ensemble de ces points sera détaillé lors de la PDC, donc restez à l’écoute!&lt;/P&gt;
&lt;H2&gt;&lt;A href="http://blogs.msdn.com/windowsazure/archive/2009/11/05/accessing-windows-azure-blobs-using-custom-storage-domain-names.aspx" mce_href="http://blogs.msdn.com/windowsazure/archive/2009/11/05/accessing-windows-azure-blobs-using-custom-storage-domain-names.aspx"&gt;Accès aux Blobs Windows Azure via des noms de domaines personnalisés&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;Jusqu’à aujourd’hui, l’accès aux Blobs se faisait via des noms de domaines du type:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;http://&amp;lt;account&amp;gt;.blob.core.windows.net/&amp;lt;container&amp;gt;/&amp;lt;blobname&amp;gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Ce qui signifie que ces URL apparaissaient par exemple dans votre code source HTML si vous stockiez des images ou autres contenus dans des conteneurs de Blobs Windows Azure. Grâce aux noms de domaines personnalisés, vous obtiendrez des URL du type:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;http://images.mondomaineamoi.com/&amp;lt;container&amp;gt;/&amp;lt;blobname&amp;gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Ce qui est, vous l’avouerez, nettement plus discret et esthétique! Vous pourrez configurer votre nom de domaine personnalisé directement dans le portail Windows Azure, au niveau de votre Storage Account, après être passé par l’inévitable étape de vérification (vous aurez à créer un CNAME dans le domaine déclaré, afin de vérifier que vous êtes bien propriétaire de ce domaine).&lt;/P&gt;
&lt;H2&gt;&lt;A href="http://blogs.msdn.com/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx" mce_href="http://blogs.msdn.com/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx"&gt;Lancement du Content Delivery Network (CDN) Windows Azure&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;Le but d’un CDN est d’optimiser le temps de chargement de vos contenus statiques (images par exemple) en les rapprochant au maximum de l’internaute en termes de “distance réseau”. Le CDN Windows Azure vous permet de répliquer et de mettre en cache automatiquement vos contenus, stockés sous forme de Blobs, dans les 18 emplacements activés aujourd’hui dans le monde. Pour bénéficier du CDN, il vous suffit d’activer la nouvelle option disponible au niveau de votre Storage Account. Bien entendu, il est là aussi possible de choisir un nom de domaine personnalisé pour “masquer” les URL Windows Azure.&lt;/P&gt;
&lt;H2&gt;&lt;A href="http://blogs.msdn.com/netservices/archive/2009/11/05/microsoft-net-services-november-ctp-release.aspx" mce_href="http://blogs.msdn.com/netservices/archive/2009/11/05/microsoft-net-services-november-ctp-release.aspx"&gt;Disponibilité de la CTP Novembre 2009 des .NET Services&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;Cette nouvelle CTP des .NET Services (Access Control Service et Service Bus) met à dispositions des évolutions majeures en vue du lancement à la PDC09; notamment, le recentrage d’Access Control Service sur des interfaces de style REST, ainsi que des réaménagements significatifs de l’API du Service Bus.&lt;/P&gt;
&lt;H2&gt;&lt;A href="http://blogs.msdn.com/interoperability/archive/2009/10/28/tasktop-soyatec-microsoft-to-foster-eclipse-and-microsoft-platform-interoperability.aspx" mce_href="http://blogs.msdn.com/interoperability/archive/2009/10/28/tasktop-soyatec-microsoft-to-foster-eclipse-and-microsoft-platform-interoperability.aspx"&gt;Développement PHP et Java pour Windows Azure, intégration avec Eclipse&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;Microsoft a annoncé à la dernière édition de l’&lt;A href="http://www.eclipsecon.org/summiteurope2009/" mce_href="http://www.eclipsecon.org/summiteurope2009/"&gt;Eclipse Summit Europe 2009&lt;/A&gt;, qui s’est tenu en Allemagne du 27 au 29 octobre, le lancement en partenariat avec la société française Soyatec de deux extensions Eclipse spécialement dédiées au développement en environnement Windows Azure:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Windows Azure Tools for Eclipse for PHP developers: &lt;A href="http://www.windowsazure4e.org/" mce_href="http://www.windowsazure4e.org"&gt;www.windowsazure4e.org&lt;/A&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Ces extensions permettent aux développeurs utilisant Eclipse de développer des projets Web PHP directement déployables dans Windows Azure, via le &lt;A href="http://blogs.msdn.com/windowsazure/archive/2009/03/18/using-3rd-party-programming-languages-via-fastcgi.aspx" mce_href="http://blogs.msdn.com/windowsazure/archive/2009/03/18/using-3rd-party-programming-languages-via-fastcgi.aspx"&gt;support de FastCGI et de PHP annoncés en mars dernier&lt;/A&gt;.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Windows Azure Software Developer Kit (SDK) for Java: &lt;A href="http://www.windowsazure4j.org/" mce_href="http://www.windowsazure4j.org"&gt;www.windowsazure4j.org&lt;/A&gt; &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Un SDK Java permettant à des appplications client ou serveur développées en Java d’accéder aux services de la plateforme Windows Azure, et notamment la partie Storage (Tables, Blobs et Queues).&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;H2&gt;&lt;A href="http://blogs.msdn.com/windowsazure/archive/2009/08/04/migrating-from-usa-northwest.aspx" mce_href="http://blogs.msdn.com/windowsazure/archive/2009/08/04/migrating-from-usa-northwest.aspx"&gt;Fermeture du centre d’hébergement “USA – Northwest”&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;Enfin, pour les personnes qui testaient Windows Azure depuis déjà plusieurs mois, l’annonce suivanta datant d’Août dernier a pu être un peu “oubliée”: &lt;A href="http://blogs.msdn.com/windowsazure/archive/2009/08/04/migrating-from-usa-northwest.aspx" mce_href="http://blogs.msdn.com/windowsazure/archive/2009/08/04/migrating-from-usa-northwest.aspx"&gt;le centre d’hébergement “USA – Northwest” a été fermé&lt;/A&gt;, et il faut donc redéployer vos applications, si elles tournaient dans ce centre. Vous pouvez re-créer un service d’hébergement avec le même URL que vous utilisiez au départ; vous pouvez vous reporter à &lt;A href="http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/1737ced4-0799-47dc-ad1c-d5c567df8816" mce_href="http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/1737ced4-0799-47dc-ad1c-d5c567df8816"&gt;cette discussion dans les forums Windows Azure&lt;/A&gt; si vous avez des questions additionnelles sur la réutilisation de votre URL d’origine.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9920150" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/PDC09/default.aspx">PDC09</category></item><item><title>Microsoft acquiert Teamprise pour intégrer TFS en environnement Java</title><link>http://blogs.msdn.com/tconte/archive/2009/11/09/microsoft-acquiert-teamprise-pour-int-grer-tfs-en-environnement-java.aspx</link><pubDate>Mon, 09 Nov 2009 21:24:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919792</guid><dc:creator>tconte</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/tconte/comments/9919792.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=9919792</wfw:commentRss><description>&lt;p&gt;Pour démarrer sur le thème Interopérabilité, Microsoft a annoncé aujourd’hui l’acquisition des technologies Teamprise auprès de SourceGear, propriétaire de ces composants.&lt;/p&gt;  &lt;p&gt;Les composants Teamprise permettent aux développeurs en environnement Java, qu’ils utilisent Windows, Linux ou Mac OS, d’utiliser un serveur TFS (Team Foundation Server) pour gérer le cycle de développement de leurs applications, comme par exemple le contrôle de code source, la gestion de versions, l’intégration continue, le suivi des tâches, etc.&lt;/p&gt;  &lt;p&gt;Concrètement, les solutions TeamPrise prennent les formes suivantes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Teamprise Plugin pour Eclipse permet d’accéder à TFS depuis Eclipse et autres environnements basés sur Eclipse (Rational Application Developer, BEA Workshop, JBoss Tools, …)&lt;/li&gt;    &lt;li&gt;Teamprise Explorer, une application indépendante, permet d’accéder à TFS pour les populations non-développeurs, comme les graphistes, chefs de projets, etc.&lt;/li&gt;    &lt;li&gt;Teamprise Ligne de Commande, un environnement multiplateforme, permet de construire des scripts pour l’automatisation de tâches ou simplement pour les développeurs préférant la ligne de commande!&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;C’est évidemment une excellente nouvelle pour toutes les organisations qui cherchaient à centraliser l’ensemble de leurs développements dans un environnement unique de type ALM (Application Lifecycle Management) quel que soit l’environnement de développement, .NET ou Java.&lt;/p&gt;  &lt;p&gt;Les technologies Teamprise seront incluses dans la prochaine version de Visual Studio, &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;Visual Studio 2010&lt;/a&gt;, en Beta 2 à l’heure où j’écris ce billet, et qui sera disponible en mars 2010.&lt;/p&gt;  &lt;p&gt;Pour plus de détails (en anglais), voir le &lt;a href="http://www.microsoft.com/presspass/press/2009/nov09/11-09TeamprisePR.mspx"&gt;communiqué de presse&lt;/a&gt; et le &lt;a href="http://www.woodwardweb.com/teamprise/a_new_chapter_f.html"&gt;billet sur le blog de Martin Woodward&lt;/a&gt;, ex-Teamprise et maintenant Program Manager chez Microsoft!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919792" width="1" height="1"&gt;</description></item><item><title>Nouveau job, nouveau blog!</title><link>http://blogs.msdn.com/tconte/archive/2009/11/09/nouveau-job-nouveau-blog.aspx</link><pubDate>Mon, 09 Nov 2009 20:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919745</guid><dc:creator>tconte</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/tconte/comments/9919745.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=9919745</wfw:commentRss><description>&lt;P&gt;Etant sur le point de rejoindre les équipes de DPE France en tant qu'Architecte, il est temps pour moi de remettre mon blog au goût du jour! Je vais en effet m'éloigner quelque peu de l'univers SharePoint (sans pour autant l'abandonner complètement!)&amp;nbsp;pour me consacrer à la plateforme applicative Microsoft, notamment sur les sujets &lt;A href="http://www.microsoft.com/windowsazure/" mce_href="http://www.microsoft.com/windowsazure/"&gt;Windows Azure&lt;/A&gt; et &lt;A href="http://www.microsoft.com/interop/" mce_href="http://www.microsoft.com/interop/"&gt;Interopérabilité&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Je suis pour l'instant un pied dans les deux mondes, mais mon univers va basculer sérieusement dans l'Azure dès la semaine prochaine, étant donné que j'aurai le privilège d'assister à la &lt;A href="http://microsoftpdc.com/" mce_href="http://microsoftpdc.com/"&gt;PDC 2009&lt;/A&gt; à Los Angeles, qui va être riche en annonces autour de Windows Azure.&lt;/P&gt;
&lt;P&gt;Je vous donne donc rendez-vous sur ce blog dès le 17 novembre pour les premiers retours sur la Keynote, qui verra se succéder &lt;A href="http://www.microsoft.com/presspass/exec/ozzie/" mce_href="http://www.microsoft.com/presspass/exec/ozzie/"&gt;Ray Ozzie&lt;/A&gt;, &lt;A href="http://www.microsoft.com/presspass/exec/bobmuglia/" mce_href="http://www.microsoft.com/presspass/exec/bobmuglia/"&gt;Bob Muglia&lt;/A&gt;, &lt;A href="http://www.microsoft.com/presspass/exec/kurtd/" mce_href="http://www.microsoft.com/presspass/exec/kurtd/"&gt;Kurt DelBene&lt;/A&gt; et bien entendu &lt;A href="http://www.microsoft.com/presspass/exec/guthrie/" mce_href="http://www.microsoft.com/presspass/exec/guthrie/"&gt;Scott Guthrie&lt;/A&gt; pour les principales annonces autour du futur de la plateforme Microsoft!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919745" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/PDC09/default.aspx">PDC09</category></item><item><title>AJAX SharePoint picture gallery using Highslide</title><link>http://blogs.msdn.com/tconte/archive/2009/04/01/ajax-sharepoint-picture-gallery-using-highslide.aspx</link><pubDate>Wed, 01 Apr 2009 16:46:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9526674</guid><dc:creator>tconte</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/tconte/comments/9526674.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=9526674</wfw:commentRss><description>&lt;p&gt;Do you like &lt;a href="http://highslide.com/"&gt;Highslide&lt;/a&gt;? It’s a pretty neat JavaScript library that allows you to create AJAX thumbnail viewers and pop-up image galleries. It’s a really easy way to add some Web 2.0 flair to your site instead of displaying boring thumbnails.&lt;/p&gt;  &lt;p&gt;Now, SharePoint has an embedded “This week in pictures” Web Part but it’s pretty boring. There are a lot of Silverlight options out there, but I think &lt;a href="http://highslide.com/"&gt;Highslide&lt;/a&gt; is much simpler to implement… You don’t need to install any code on the server, you can do everything using SharePoint Designer!&lt;/p&gt;  &lt;p&gt;The trick is of course to use the Swiss Army knife of SharePoint Web Parts: the Data View! The idea is to point a Data View to a standard SharePoint picture library, and then tweak the XSLT in order to display the markup for Highslide.&lt;/p&gt;  &lt;p&gt;First, you need to &lt;a href="http://highslide.com/download.php"&gt;download Highslide&lt;/a&gt; and install it on your SharePoint. Just use SharePoint Designer to drop the “highslide” directory in any document library. In this example, I used my My Site as a sandbox, so I copied Highslide to the “My Pages” library.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/AJAXSharePointpicturegalleryusingHighsli_D6EF/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/AJAXSharePointpicturegalleryusingHighsli_D6EF/image_thumb.png" width="661" height="363" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Then, you need to reference the library in your Master Page or your custom ASPX page. If you are working in a custom ASPX page, insert the code below into the “PlaceHolderAdditionalPageHead” placeholder. If you are working in a Master Page, just insert the code in the page header.&lt;/p&gt;  &lt;pre class="brush: xml;"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/sites/tconte/My%20Pages/highslide/highslide-with-gallery.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;/sites/tconte/My%20Pages/highslide/highslide.css&amp;quot; /&amp;gt;&lt;/pre&gt;

&lt;p&gt;Then, you will add some JavaScript configuration code. You can find &lt;a href="http://highslide.com/index.htm"&gt;many examples&lt;/a&gt; on the Highslide site, but here is what I use. Of course, make sure to change graphicsDir to point to the location where you installed Highslide!&lt;/p&gt;

&lt;pre class="brush: js;"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
    hs.graphicsDir = '/sites/tconte/My%20Pages/highslide/graphics/';
    hs.align = 'center';
    hs.transitions = ['expand', 'crossfade'];
    hs.outlineType = 'rounded-white';
    hs.fadeInOut = true;
    hs.numberPosition = 'caption';
    hs.dimmingOpacity = 0.75;
 
    // Add the controlbar
    if (hs.addSlideshow) hs.addSlideshow({
        //slideshowGroup: 'group1',
        interval: 5000,
        repeat: false,
        useControls: true,
        fixedControls: 'fit',
        overlayOptions: {
            opacity: .75,
            position: 'bottom center',
            hideOnMouseOut: true
        }
    });
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;Next, you need to create the Data View Web Part. You will create it in SharePoint Designer: create an empty ASPX page, go to Data View –&amp;gt; Insert Data View, and a new Task Pane will open on the right hand side. It should show all the libraries in your SharePoint site. Select an image library, and select Show Data.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/AJAXSharePointpicturegalleryusingHighsli_D6EF/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/AJAXSharePointpicturegalleryusingHighsli_D6EF/image_thumb_1.png" width="281" height="458" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;In the Data Source Details pane that opens, you don’t need to do much because we will write most of the XSLT by hand anyway! Just select one field, like ID, and then do Insert Select Fields as… Multiple Item View. This will insert the basic control and parameters we need to then tweak the Data View by hand.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/AJAXSharePointpicturegalleryusingHighsli_D6EF/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/AJAXSharePointpicturegalleryusingHighsli_D6EF/image_thumb_2.png" width="262" height="256" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Now, switch directly to Code view! You can have a look at the generated XSLT, it’s pretty simple. All we need to do is generate some really simple HTML that references the magic Highslide classes. Here’s an example:&lt;/p&gt;

&lt;pre class="brush: xml;"&gt;&amp;lt;xsl:stylesheet xmlns:x=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:d=&amp;quot;http://schemas.microsoft.com/sharepoint/dsp&amp;quot; version=&amp;quot;1.0&amp;quot; exclude-result-prefixes=&amp;quot;xsl msxsl ddwrt&amp;quot; xmlns:ddwrt=&amp;quot;http://schemas.microsoft.com/WebParts/v2/DataView/runtime&amp;quot; xmlns:asp=&amp;quot;http://schemas.microsoft.com/ASPNET/20&amp;quot; xmlns:__designer=&amp;quot;http://schemas.microsoft.com/WebParts/v2/DataView/designer&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; xmlns:SharePoint=&amp;quot;Microsoft.SharePoint.WebControls&amp;quot; xmlns:ddwrt2=&amp;quot;urn:frontpage:internal&amp;quot;&amp;gt;
&amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;no&amp;quot;/&amp;gt;
&amp;lt;xsl:decimal-format NaN=&amp;quot;&amp;quot;/&amp;gt;
    &amp;lt;xsl:param name=&amp;quot;dvt_apos&amp;quot;&amp;gt;&amp;amp;apos;&amp;lt;/xsl:param&amp;gt;
    &amp;lt;xsl:variable name=&amp;quot;dvt_1_automode&amp;quot;&amp;gt;0&amp;lt;/xsl:variable&amp;gt;
    &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;dvt_1&amp;quot;/&amp;gt;
    &amp;lt;/xsl:template&amp;gt;
    &amp;lt;xsl:template name=&amp;quot;dvt_1&amp;quot;&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;dvt_1.body&amp;quot;&amp;gt;
            &amp;lt;xsl:with-param name=&amp;quot;Rows&amp;quot; select=&amp;quot;/dsQueryResponse/Rows/Row[1]&amp;quot; /&amp;gt;
        &amp;lt;/xsl:call-template&amp;gt;
        &amp;lt;div class=&amp;quot;hidden-container&amp;quot;&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;dvt_1.body&amp;quot;&amp;gt;
            &amp;lt;xsl:with-param name=&amp;quot;Rows&amp;quot; select=&amp;quot;/dsQueryResponse/Rows/Row[position()&amp;amp;gt;1]&amp;quot; /&amp;gt;
        &amp;lt;/xsl:call-template&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/xsl:template&amp;gt;
    &amp;lt;xsl:template name=&amp;quot;dvt_1.body&amp;quot;&amp;gt;
        &amp;lt;xsl:param name=&amp;quot;Rows&amp;quot; /&amp;gt;
        &amp;lt;xsl:for-each select=&amp;quot;$Rows&amp;quot;&amp;gt;
            &amp;lt;xsl:call-template name=&amp;quot;dvt_1.rowview&amp;quot; /&amp;gt;
        &amp;lt;/xsl:for-each&amp;gt;
    &amp;lt;/xsl:template&amp;gt;
    &amp;lt;xsl:template name=&amp;quot;dvt_1.rowview&amp;quot;&amp;gt;
        &amp;lt;a href=&amp;quot;{@FileRef}&amp;quot; class=&amp;quot;highslide&amp;quot; onclick=&amp;quot;return hs.expand(this)&amp;quot;&amp;gt;&amp;lt;img border=&amp;quot;0&amp;quot; src=&amp;quot;{concat('/',@FileDirRef,'/_t/',substring(@LinkFilenameNoMenu,1,string-length(@LinkFilenameNoMenu)-4),'_',@FileType,'.jpg')}&amp;quot; alt=&amp;quot;{@NameOrTitle}&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;
        &amp;lt;div class=&amp;quot;highslide-caption&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@NameOrTitle&amp;quot;/&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;/xsl:template&amp;gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/pre&gt;

&lt;p&gt;Here are a few clues as to what this XSLT does:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It just displays thumbnails of all the images in the image library&lt;/li&gt;

  &lt;li&gt;The thumbnails are taken from the SharePoint image gallery, using the magic formula:&lt;/li&gt;

  &lt;ul&gt;
    &lt;li&gt;concat('/',@FileDirRef,'/_t/',substring(@LinkFilenameNoMenu,1,string-length(@LinkFilenameNoMenu)-4),'_',@FileType,'.jpg')&lt;/li&gt;

    &lt;li&gt;(XSLT is so obfuscated, it reminds me of Perl regular expressions!)&lt;/li&gt;
  &lt;/ul&gt;

  &lt;li&gt;The first picture is treated separately and becomes the thumbnail for the gallery; the following pictures are enclosed in a specific div that is handled by Highslide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This should get your mostly started! You may need to perform additional configuration on the Data View, such as filterting or sorting stuff so that you get exactly the pictures you want.&lt;/p&gt;

&lt;p&gt;And of course the final result:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/AJAXSharePointpicturegalleryusingHighsli_D6EF/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/AJAXSharePointpicturegalleryusingHighsli_D6EF/image_thumb_3.png" width="607" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9526674" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Import your WordPress data into Oxite</title><link>http://blogs.msdn.com/tconte/archive/2008/12/12/import-your-wordpress-data-into-oxite.aspx</link><pubDate>Fri, 12 Dec 2008 17:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9202380</guid><dc:creator>tconte</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tconte/comments/9202380.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=9202380</wfw:commentRss><description>&lt;P&gt;Have you tried &lt;A href="http://visitmix.com/Lab/Oxite" mce_href="http://visitmix.com/Lab/Oxite"&gt;Oxite&lt;/A&gt; yet? Like what you see? Maybe you have a WordPress blog you would like to migrate to Oxite? I have written a very bare-bones import process that will allow you to import your WordPress data into Oxite. Right now I only handle Posts, but I don’t import categories yet; I’ll try to improve the process in the future.&lt;/P&gt;
&lt;P&gt;Before using the tool, you must export your data from WordPress. In the Admin interface, go to Manage and then Export. This will let you generate an XML file containing all your posts and their categories.&lt;/P&gt;
&lt;P&gt;You will then use this file to import the data into Oxite.&lt;/P&gt;
&lt;P&gt;To install the WordPress import page: download the ZIP file below, and add the files into the OxiteSite project. This will add an ImportWP.aspx page. Run Oxite and load this page. It will present you with an Upload control you can use to send your WordPress XML export.&lt;/P&gt;
&lt;P&gt;If you look at the code you will see it is very simple! The main method to create a Post in Oxite is as follows:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: gray 1px solid; WIDTH: 97.5%; CURSOR: text; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: gray 1px solid; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4"&gt;
&lt;DIV style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   1:&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; Create_Post(&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; title, &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; bodyShort, &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; body, &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; slug)&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   2:&lt;/SPAN&gt; {&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   3:&lt;/SPAN&gt;     IPost post = PostRepository.CreatePost();&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   4:&lt;/SPAN&gt;     &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   5:&lt;/SPAN&gt;     post.Title = title;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   6:&lt;/SPAN&gt;     post.BodyShort = bodyShort;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   7:&lt;/SPAN&gt;     post.Body = body;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   8:&lt;/SPAN&gt;     post.Slug = slug;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   9:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  10:&lt;/SPAN&gt;     post.CreatorUserID = importUser.ID;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  11:&lt;/SPAN&gt;     post.State = (&lt;SPAN style="COLOR: #0000ff"&gt;byte&lt;/SPAN&gt;)EntityState.Normal;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  12:&lt;/SPAN&gt;     &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  13:&lt;/SPAN&gt;     post.Published = DateTime.Now.ToUniversalTime();&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  14:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  15:&lt;/SPAN&gt;     PostRepository.AddPost(post, &lt;SPAN style="COLOR: #0000ff"&gt;null&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  16:&lt;/SPAN&gt;     PostRepository.SubmitChanges();&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  17:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  18:&lt;/SPAN&gt;     AreaRepository.AddPostToArea(post.ID, blogArea.ID);&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  19:&lt;/SPAN&gt;     AreaRepository.SubmitChanges();&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;  20:&lt;/SPAN&gt; }&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;One thing you should probably change is the IUser to use to import; by default I will use “Admin”.&lt;/P&gt;
&lt;P&gt;Have fun!&lt;/P&gt;
&lt;P&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-dbcccc3de233069a.skydrive.live.com/embedrowdetail.aspx/Public/ImportWP.zip" frameBorder=0 scrolling=no mce_src="http://cid-dbcccc3de233069a.skydrive.live.com/embedrowdetail.aspx/Public/ImportWP.zip"&gt;&lt;/IFRAME&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;[update]&lt;/STRONG&gt; After discussing with the Oxite team, I realized I didn't handle properly the Body and BodyShort fields. I will post an update later on with details and a new version of the migration tool!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9202380" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Porting the Silverlight Blueprints for SharePoint to Silverlight 2 Beta2</title><link>http://blogs.msdn.com/tconte/archive/2008/06/16/porting-the-silverlight-blueprints-for-sharepoint-to-silverlight-2-beta2.aspx</link><pubDate>Mon, 16 Jun 2008 19:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8605922</guid><dc:creator>tconte</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tconte/comments/8605922.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=8605922</wfw:commentRss><description>&lt;P&gt;The &lt;A href="http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx"&gt;recently released Beta2 of Silverlight 2&lt;/A&gt; has unfortunately broken the &lt;A href="http://www.ssblueprints.net/sharepoint/" mce_href="http://www.ssblueprints.net/sharepoint/"&gt;Silverlight Blueprints for SharePoint&lt;/A&gt;. The team has announced on their CodePlex site that they will release a new version for Beta2, but in the meantime, here's a summary of what I changed to make the Blueprints run on Beta2.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/PortingtheSilverlightBlueprintsforShareP_1024D/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/PortingtheSilverlightBlueprintsforShareP_1024D/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=484 alt="Yup, running on Beta2" src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/PortingtheSilverlightBlueprintsforShareP_1024D/image_thumb.png" width=405 border=0 mce_src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/PortingtheSilverlightBlueprintsforShareP_1024D/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;First, a caveat: I only ported the MediaViewer control, a.k.a. the "Picture Viewer Sample" because that's what I needed. Other samples may require more work!&lt;/P&gt;
&lt;P&gt;The main problem I had when I upgraded to Beta2 is the change to HttpWebRequest behavior: its delegates are now called on a background thread, which means you have to change the way it is used in the current Blueprints code (which was written for Beta1, where HttpWebRequest delegates were called on the main UI thread).&lt;/P&gt;
&lt;P&gt;Thanks to scorb's &lt;A href="http://scorbs.com/2008/04/05/silverlight-http-networking-stack-part-1-site-of-origin-communication/" mce_href="http://scorbs.com/2008/04/05/silverlight-http-networking-stack-part-1-site-of-origin-communication/"&gt;great post on Silverlight HTTP networking&lt;/A&gt;, here's what I changed:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Moved the call to request.BeginGetResponse()&amp;nbsp;from BuildPreviewBar() to the end of RequestCallback(), so that it is called on the background thread&lt;/LI&gt;
&lt;LI&gt;Hacked the ResponseCallback() method so that it calls back to the main UI thread to set up the thumbnails etc. (using System.Threading.SynchronizationContext)&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;And that's about it!&lt;/P&gt;
&lt;P&gt;Attached to this post: the modified source code for Page.xaml.cs in SL.XAML.MediaViewer.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8605922" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/tconte/attachment/8605922.ashx" length="13906" type="text/plain" /><category domain="http://blogs.msdn.com/tconte/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Customizing Data Views using ASP.NET controls</title><link>http://blogs.msdn.com/tconte/archive/2008/04/29/customizing-data-views-using-asp-net-controls.aspx</link><pubDate>Tue, 29 Apr 2008 22:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8438916</guid><dc:creator>tconte</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tconte/comments/8438916.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=8438916</wfw:commentRss><description>&lt;P&gt;I recently realized that the SharePoint Data View Web Part framework provided a means to expose standard ASP.NET data sources. This means that anything that can be exposed using a Data View Web Part can also be utilized in an ASP.NET data bound control: Lists, Document Libraries, Databases, RSS feeds, Web Services, etc. This is pretty powerful! In the following screencast, I will show you how you can create a filtered view of a Document Library; the filter is applied using a standard ASP.NET drop-down list, which is bound to a SharePoint Data Source (in this case, exposing a List).&lt;/P&gt;
&lt;P&gt;There is no particular trick involved. All you need to do is go to one of your Data View Data Sources, and select the "Insert Data Source" option. You can then insert any ASP.NET control and bind it to this data source. You can use all of the usual properties, typically in this example, I will set the drop-down list's AutoPostBack property to true, so that the page is automatically refreshed when I select one of the items.&lt;/P&gt;
&lt;P&gt;Another key point is of course how to pass the selected value on to a Data View: you cannot use Web Part connections, since the source control is not a Web Part. But the Data View allows you to define custom input parameters, and the source of such a parameter can be a Control, which is how we connect our drop-down list to the Data View filter.&lt;/P&gt;
&lt;P&gt;This technique allows you to build seriously complex interfaces without a single line of code!&lt;/P&gt;
&lt;P&gt;Here's the embedded Flash version of the screencast. You can also &lt;A href="http://www.screencast.com/t/QB0KJt79X" mce_href="http://www.screencast.com/t/QB0KJt79X"&gt;download the full WMV version&lt;/A&gt; (27 MB).&lt;/P&gt;
&lt;OBJECT height=318 width=400 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&gt;&lt;PARAM NAME="_cx" VALUE="10583"&gt;&lt;PARAM NAME="_cy" VALUE="8414"&gt;&lt;PARAM NAME="FlashVars" VALUE=""&gt;&lt;PARAM NAME="Movie" VALUE="http://content.screencast.com/bootstrap.swf"&gt;&lt;PARAM NAME="Src" VALUE="http://content.screencast.com/bootstrap.swf"&gt;&lt;PARAM NAME="WMode" VALUE="Window"&gt;&lt;PARAM NAME="Play" VALUE="-1"&gt;&lt;PARAM NAME="Loop" VALUE="-1"&gt;&lt;PARAM NAME="Quality" VALUE="High"&gt;&lt;PARAM NAME="SAlign" VALUE=""&gt;&lt;PARAM NAME="Menu" VALUE="-1"&gt;&lt;PARAM NAME="Base" VALUE=""&gt;&lt;PARAM NAME="AllowScriptAccess" VALUE="always"&gt;&lt;PARAM NAME="Scale" VALUE="ShowAll"&gt;&lt;PARAM NAME="DeviceFont" VALUE="0"&gt;&lt;PARAM NAME="EmbedMovie" VALUE="0"&gt;&lt;PARAM NAME="BGColor" VALUE="FFFFFF"&gt;&lt;PARAM NAME="SWRemote" VALUE=""&gt;&lt;PARAM NAME="MovieData" VALUE=""&gt;&lt;PARAM NAME="SeamlessTabbing" VALUE="1"&gt;&lt;PARAM NAME="Profile" VALUE="0"&gt;&lt;PARAM NAME="ProfileAddress" VALUE=""&gt;&lt;PARAM NAME="ProfilePort" VALUE="0"&gt;&lt;PARAM NAME="AllowNetworking" VALUE="all"&gt;&lt;PARAM NAME="AllowFullScreen" VALUE="true"&gt;
         &lt;embed src="http://content.screencast.com/bootstrap.swf" quality="high" bgcolor="#FFFFFF" width="400" height="318" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/media/914c65ee-1a2e-4548-be87-583f1b30adc4_8b6c175d-1d05-47fb-a59e-48c5d7625a6f_static_0_0_Thumbnail.gif&amp;content=http://content.screencast.com/media/3a7b5d74-bc00-4385-81d1-4e114aded7dc_8b6c175d-1d05-47fb-a59e-48c5d7625a6f_static_0_0_DataBound.swf&amp;width=400&amp;height=318" allowFullScreen="true" scale="showall"&gt;&lt;/embed&gt; &lt;/OBJECT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8438916" width="1" height="1"&gt;</description></item><item><title>ASP.NET MVC Framework</title><link>http://blogs.msdn.com/tconte/archive/2007/12/03/asp-net-mvc-framework.aspx</link><pubDate>Mon, 03 Dec 2007 17:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6645930</guid><dc:creator>tconte</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/tconte/comments/6645930.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=6645930</wfw:commentRss><description>&lt;P&gt;I am fond of &lt;A href="http://en.wikipedia.org/wiki/Model-view-controller" mce_href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC&lt;/A&gt;. I have done my fair share of Java programming for the Web, and this pattern is nearly ubiquitous in Java-based Web frameworks; I have used &lt;A href="http://struts.apache.org/" mce_href="http://struts.apache.org/"&gt;Struts&lt;/A&gt; quite a bit, and I used it as the basis for the &lt;A href="http://www.pas.net/archives/000129.html" mce_href="http://www.pas.net/archives/000129.html"&gt;2004 Olympic Games&lt;/A&gt; Web site. &lt;A href="http://www.springframework.org/" mce_href="http://www.springframework.org/"&gt;Spring&lt;/A&gt;, &lt;A href="http://www.opensymphony.com/webwork/" mce_href="http://www.opensymphony.com/webwork/"&gt;WebWork&lt;/A&gt;, are other Java MVC frameworks. I find it fascinating that such an old pattern, dating back to the Xerox Smalltalk era (1979, says WikiPedia), is so well suited to developing applications for the Web.&lt;/P&gt;
&lt;P&gt;Microsoft has followed a very different path with its &lt;A href="http://www.asp.net/" mce_href="http://www.asp.net/"&gt;ASP.NET&lt;/A&gt; Web Forms framework. Their goal was not to select and utilize a pattern that would match the actual implementation of the Web, with its HTTP/HTML duality that closely matches the Controller and View layers... The goal was to abstract this implementation completely, and reproduce a programming model that would match their most popular programming environment, Visual Basic.&lt;/P&gt;
&lt;P&gt;In this sense, ASP.NET Web Forms are simply amazing. You can forget completely about HTML forms and HTTP query parameters, hiding input fields to maintain state, etc. Everything is taken care of for you. You can start programming for the Web exactly as you did in VB for Windows applications. It's very clever.&lt;/P&gt;
&lt;P&gt;However, I have always been a little bit uneasy around ASP.NET Web Forms compared to an MVC environment, probably because I don't have a VB background, but rather a pure Web past, i.e. I started writing CGI scripts for NCSA Server way before Apache even existed, and I think my first CGI scripts were written in Unix shell scripts, before I discovered Perl.&lt;/P&gt;
&lt;P&gt;It seems I'm not the only one to find some shortcomings to ASP.NET Web Forms, and MVP Rick Strahl describes his view in detail in this blog entry: &lt;A href="http://www.west-wind.com/weblog/posts/198731.aspx" mce_href="http://www.west-wind.com/weblog/posts/198731.aspx"&gt;What's Ailing ASP.NET Web Forms - Rick Strahl's Web Log&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;This is why I am very interested by the new &lt;A href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx"&gt;ASP.NET MVC Framework&lt;/A&gt; that Scott Guthrie announced in October. I think it looks like a fantastic tool to build complex Web sites, and it will allow ASP.NET developers to use a very mature and well-known architectural pattern for their Web developments. I will try to get my hands on the public preview as soon as it's available, hopefully before the end of the year.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx"&gt;ScottGu's ASP.NET MVC Framework overview Part 1&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx"&gt;ScottGu's ASP.NET MVC Framework overview Part 2&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;(cross-posted to my &lt;A class="" href="http://www.pas.net/archives/000173.html" mce_href="http://www.pas.net/archives/000173.html"&gt;personal blog&lt;/A&gt;)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6645930" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>.Net Adventures : 10 awesome Windows Live Writer plugins for developers and bloggers</title><link>http://blogs.msdn.com/tconte/archive/2007/10/06/net-adventures-10-awesome-windows-live-writer-plugins-for-developers-and-bloggers.aspx</link><pubDate>Sat, 06 Oct 2007 16:40:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5315296</guid><dc:creator>tconte</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tconte/comments/5315296.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=5315296</wfw:commentRss><description>&lt;p&gt;More cool plug-ins for Windows Live Writer! Blog &amp;amp; prettify your code!&lt;/p&gt; &lt;p&gt;&lt;a href="http://devintelligence.com/blogs/netadventures/archive/2007/10/05/10-plugins-for-windows-live-writer.aspx"&gt;.Net Adventures : 10 awesome Windows Live Writer plugins for developers and bloggers&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5315296" width="1" height="1"&gt;</description></item><item><title>Live Search Web Part, Part 2</title><link>http://blogs.msdn.com/tconte/archive/2007/10/02/live-search-web-part-part-2.aspx</link><pubDate>Tue, 02 Oct 2007 14:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5241529</guid><dc:creator>tconte</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tconte/comments/5241529.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=5241529</wfw:commentRss><description>&lt;P&gt;I realized that it may not be immediately obvious to everybody how you can customize the MOSS Search Center to add the Live Search Web Part I blogged about. It is really very simple.&lt;/P&gt;
&lt;P&gt;The Theory: all you need to do is to create new "Live" tabs on the Search Center (one for Search and one for Results), plus the corresponding "Search" and "Results" pages (all from the Web interface). Don't forget to modify the Search Boxes to point to the corresponding new pages. Then, you just import the attached Web Part on to your Results pages, and it will automatically use the current query and display the results in the Search Center.&lt;/P&gt;
&lt;P&gt;The Practice: here's a quick screencast that shows how to do it: &lt;A href="http://screencast.com/t/CYzcXjXULng" mce_href="http://screencast.com/t/CYzcXjXULng"&gt;configuring the Live Search Web Part&lt;/A&gt; on screencast.com!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5241529" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Live Search Web Part</title><link>http://blogs.msdn.com/tconte/archive/2007/10/02/live-search-web-part.aspx</link><pubDate>Tue, 02 Oct 2007 14:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5241281</guid><dc:creator>tconte</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/tconte/comments/5241281.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=5241281</wfw:commentRss><description>&lt;p&gt;I have pre-configured a Web Part for MOSS that you can just drop on to a Search Center results page. It will run the current query on Live Search and display the results. It is built using SharePoint Designer, the Data Form Web Part, and the &lt;a href="http://msdn2.microsoft.com/en-us/library/bb251794.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb251794.aspx"&gt;Live Search SOAP API&lt;/a&gt;. It automatically retrieves the current search keywords from the Query String, and you can also edit a couple of static parameters in the .webpart file.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/LiveSearchWebPart_AA42/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/LiveSearchWebPart_AA42/image_2.png"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/LiveSearchWebPart_AA42/image_thumb.png" style="border-width: 0px;" alt="image" mce_src="http://blogs.msdn.com/blogfiles/tconte/WindowsLiveWriter/LiveSearchWebPart_AA42/image_thumb.png" border="0" height="484" width="573"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Nota bene: the Web Part is contained in the MSN_Search_Service.webpart file attached to this post: 8 KB only, and no code required!&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5241281" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/tconte/attachment/5241281.ashx" length="8542" type="application/octet-stream" /><category domain="http://blogs.msdn.com/tconte/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Blogging tools</title><link>http://blogs.msdn.com/tconte/archive/2007/09/14/blogging-tools.aspx</link><pubDate>Fri, 14 Sep 2007 15:50:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4910322</guid><dc:creator>tconte</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tconte/comments/4910322.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tconte/commentrss.aspx?PostID=4910322</wfw:commentRss><description>&lt;p&gt;In order to write the previous post, I used two tools that make the work much easier:&lt;/p&gt; &lt;p&gt;&lt;a href="http://get.live.com/betas/writer_betas"&gt;Windows Live Writer&lt;/a&gt; is a cool tool from the Live team to help you write blog posts. It automatically detects your Blog APIs (like MetaWeblog) as well as your style sheets, and allows you to write your posts in a real WYSIWYG environment. Much better than all the Web-based blog posting interfaces! Download it via the brand new &lt;a href="http://get.live.com/wl/all"&gt;Windows Live&lt;/a&gt; unified installer!&lt;/p&gt; &lt;p&gt;&lt;a href="http://manoli.net/csharpformat/"&gt;c# code format&lt;/a&gt; is a nice online tool that will format and color-code your C# / VB / *ML source code for posting on the Web. This is how I formatted the code snippets in my previous post. Nice!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4910322" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tconte/archive/tags/Blog/default.aspx">Blog</category></item></channel></rss>