<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://chriskirby.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Chris Kirby&amp;#39;s Inner Monolog : VisualStudio</title><link>http://chriskirby.net/archive/tags/VisualStudio/default.aspx</link><description>Tags: VisualStudio</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Visual Studio 2008 is GOLD and available on MSDN!</title><link>http://chriskirby.net/archive/2007/11/19/visual-studio-2008-is-gold-and-available-on-msdn.aspx</link><pubDate>Mon, 19 Nov 2007 22:22:22 GMT</pubDate><guid isPermaLink="false">fe7bf805-78e2-48d4-8999-041f23e860c0:233</guid><dc:creator>Chris Kirby</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/rsscomments.aspx?PostID=233</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/commentapi.aspx?PostID=233</wfw:comment><comments>http://chriskirby.net/archive/2007/11/19/visual-studio-2008-is-gold-and-available-on-msdn.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/subscriptions/bb608344.aspx"&gt;The wait is over&lt;/a&gt;, and I still can't wait! The only issue I'm going have with the upgrade at this point is that &lt;a href="http://www.sourcegear.com/fortress/index.html" target="_blank"&gt;Fortress&lt;/a&gt; is not going to support 2008 integration until version 1.1/4.1, which unfortunately is still several weeks out according to their support site. At least the folks at &lt;a href="http://jetbrains.com" target="_blank"&gt;Jetbrains&lt;/a&gt; were on the ball...&lt;a href="http://www.jetbrains.com/resharper/index.html" target="_blank"&gt;resharper&lt;/a&gt; already has &lt;a href="http://www.jetbrains.net/confluence/display/ReSharper/Download" target="_blank"&gt;experimental support&lt;/a&gt; for us immediate adopters.&lt;/p&gt;&lt;img src="http://chriskirby.net/aggbug.aspx?PostID=233" width="1" height="1"&gt;</description><category domain="http://chriskirby.net/archive/tags/.Net/default.aspx">.Net</category><category domain="http://chriskirby.net/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://chriskirby.net/archive/tags/Coding/default.aspx">Coding</category><category domain="http://chriskirby.net/archive/tags/Software/default.aspx">Software</category><category domain="http://chriskirby.net/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://chriskirby.net/archive/tags/cSharp/default.aspx">cSharp</category></item><item><title>.Net 3.0 Framwork baked and now standing</title><link>http://chriskirby.net/archive/2006/11/08/.Net-3.0-Framwork-baked-and-now-standing_5F00_193.aspx</link><pubDate>Tue, 07 Nov 2006 23:20:50 GMT</pubDate><guid isPermaLink="false">fe7bf805-78e2-48d4-8999-041f23e860c0:219</guid><dc:creator>Chris Kirby</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/rsscomments.aspx?PostID=219</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/commentapi.aspx?PostID=219</wfw:comment><comments>http://chriskirby.net/archive/2006/11/08/.Net-3.0-Framwork-baked-and-now-standing_5F00_193.aspx#comments</comments><description>&lt;!-- Generated by XStandard version 1.7.0.0 on 2006-11-07T16:43:24 --&gt;&lt;p&gt;The RTM download for the .Net 3.0 Framework is now &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=10CC340B-F857-4A14-83F5-25634C3BF043&amp;amp;displaylang=en" target="wookie_new"&gt;available for download&lt;/a&gt; on MSDN! And, the VS 2005 extensions for &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5D61409E-1FA3-48CF-8023-E8F38E709BA6&amp;amp;displaylang=en" target="wookie_new"&gt;Windows Workflow Foundation&lt;/a&gt; (WWF), &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=F54F5537-CC86-4BF5-AE44-F5A1E805680D&amp;amp;displaylang=en" target="wookie_new"&gt;Windows Communication Foundation&lt;/a&gt; (WCF), and &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=F54F5537-CC86-4BF5-AE44-F5A1E805680D&amp;amp;displaylang=en" target="wookie_new"&gt;Windows Presentation Foundation&lt;/a&gt; (WPF) have also been released...Though the WCF and WPF extension are still in CTP. &lt;/p&gt;&lt;p&gt;Theres been so many &lt;a href="http://msdn2.microsoft.com/en-us/downloads/default.aspx" target="wookie_new"&gt;new drops&lt;/a&gt; lately that its been hard to keep up...not that i'm complaining ;) Its an exciting time to be a MS/.Net developer.&lt;/p&gt;&lt;img src="http://chriskirby.net/aggbug.aspx?PostID=219" width="1" height="1"&gt;</description><category domain="http://chriskirby.net/archive/tags/.Net/default.aspx">.Net</category><category domain="http://chriskirby.net/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://chriskirby.net/archive/tags/Coding/default.aspx">Coding</category><category domain="http://chriskirby.net/archive/tags/Software/default.aspx">Software</category><category domain="http://chriskirby.net/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://chriskirby.net/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Vista and Framework 3.0 go RC</title><link>http://chriskirby.net/archive/2006/09/11/Vista-and-Framework-3.0-go-RC_5F00_186.aspx</link><pubDate>Mon, 11 Sep 2006 21:30:58 GMT</pubDate><guid isPermaLink="false">fe7bf805-78e2-48d4-8999-041f23e860c0:212</guid><dc:creator>Chris Kirby</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/rsscomments.aspx?PostID=212</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/commentapi.aspx?PostID=212</wfw:comment><comments>http://chriskirby.net/archive/2006/09/11/Vista-and-Framework-3.0-go-RC_5F00_186.aspx#comments</comments><description>&lt;!-- Generated by XStandard version 1.7.0.0 on 2006-09-11T14:44:24 --&gt;&lt;p&gt;Vista has finally &lt;a href="http://www.microsoft.com/windowsvista/getready/preview.mspx" target="wookie_new"&gt;gone RC&lt;/a&gt; along with all of the developer goodies that come along with it!&lt;/p&gt;&lt;p&gt;To grab all of the RC1 bits, visit these download links in order.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=AAE7FC63-D405-4E13-909F-E85AA9E66146&amp;amp;displaylang=en" target="wookie_new"&gt;WinFX runtime uninstall tool&lt;/a&gt; (only if you have a ctp or b2 installed)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=19E21845-F5E3-4387-95FF-66788825C1AF&amp;amp;displaylang=en" target="wookie_new"&gt;.Net 3.0 Runtime&lt;/a&gt; (formerly WinFX runtime)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=117ECFD3-98AD-4D67-87D2-E95A8407FA86&amp;amp;displaylang=en" target="wookie_new"&gt;Windows Vistal SDK&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=935AABF9-D1D0-4FC9-B443-877D8EA6EAB8&amp;amp;displaylang=en" target="wookie_new"&gt;.Net 3.0 Developer Extensions&lt;/a&gt; Sept CTP for VS 2005&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=935AABF9-D1D0-4FC9-B443-877D8EA6EAB8&amp;amp;displaylang=en" target="wookie_new"&gt;Windows Workflow Foundation Extensions&lt;/a&gt; RC5 for VS 2005&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://chriskirby.net/aggbug.aspx?PostID=212" width="1" height="1"&gt;</description><category domain="http://chriskirby.net/archive/tags/.Net/default.aspx">.Net</category><category domain="http://chriskirby.net/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://chriskirby.net/archive/tags/Coding/default.aspx">Coding</category><category domain="http://chriskirby.net/archive/tags/Software/default.aspx">Software</category><category domain="http://chriskirby.net/archive/tags/Tech/default.aspx">Tech</category><category domain="http://chriskirby.net/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://chriskirby.net/archive/tags/Windows/default.aspx">Windows</category></item><item><title>New web project addon for vs 2005</title><link>http://chriskirby.net/archive/2005/12/08/New-web-project-addon-for-vs-2005_5F00_127.aspx</link><pubDate>Thu, 08 Dec 2005 20:40:15 GMT</pubDate><guid isPermaLink="false">fe7bf805-78e2-48d4-8999-041f23e860c0:153</guid><dc:creator>Chris Kirby</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/rsscomments.aspx?PostID=153</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/commentapi.aspx?PostID=153</wfw:comment><comments>http://chriskirby.net/archive/2005/12/08/New-web-project-addon-for-vs-2005_5F00_127.aspx#comments</comments><description>&lt;!-- Generated by XStandard version 1.6.0.0 on 2005-12-08T13:40:15 --&gt;&lt;table border="0" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td style="font-family:courier new;font-size:9pt;"&gt;&amp;lt;&amp;lt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/12/07/432630.aspx" style="font-family:courier new;font-size:9pt;" target="wookie_new" title="By ScottGu's Blog"&gt;New Web Project Model Option Coming for VS 2005&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;I actually prefer the new project-less model and only pre-compiling when necessary but I can see a need for this as well, especially to ease the migration of large web projects from vs 2003 to 2005. I recently tried a large project conversion and it was actually quite cumbersome, mostly due to all of my nicely organized controls, services, and code being packed in to the new app_code directory... But after about 20 minutes everything was organized and working fine in 2.0. Regardless, its nice to have options, so this should be an interesting addition.&lt;/p&gt;&lt;img src="http://chriskirby.net/aggbug.aspx?PostID=153" width="1" height="1"&gt;</description><category domain="http://chriskirby.net/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://chriskirby.net/archive/tags/Coding/default.aspx">Coding</category><category domain="http://chriskirby.net/archive/tags/Rants/default.aspx">Rants</category><category domain="http://chriskirby.net/archive/tags/Software/default.aspx">Software</category><category domain="http://chriskirby.net/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item><item><title>Web service proxies and shared types in .net 2.0</title><link>http://chriskirby.net/archive/2005/12/06/Web-service-proxies-and-shared-types-in-.net-2.0_5F00_126.aspx</link><pubDate>Tue, 06 Dec 2005 18:51:00 GMT</pubDate><guid isPermaLink="false">fe7bf805-78e2-48d4-8999-041f23e860c0:152</guid><dc:creator>Chris Kirby</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/rsscomments.aspx?PostID=152</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/commentapi.aspx?PostID=152</wfw:comment><comments>http://chriskirby.net/archive/2005/12/06/Web-service-proxies-and-shared-types-in-.net-2.0_5F00_126.aspx#comments</comments><description>Those who've done a lot of web service development in .net 1.1, like myself, will welcome the new SehcmaImporterExtension with open arms! Finally we have an easy way to customize the proxy generation on the client in a manner that is easy to share types across both service and consumer. In 1.1 this was really not possible using the auto proxy generation tools, and even if you did customize the Reference.cs file it would just be overwritten every time you refreshed the reference. Well, now, thats all over with! There is a new &lt;a href="http://www.microsoft.com/belux/nl/msdn/community/columns/jdruyts/wsproxy.mspx"&gt;article on Asp.net written by Jelle Druyts&lt;/a&gt;, which discusses this new extension and shows you how to implement both basic and advanced scenarios. After reading the article, I was very excited by the possibilities. Not to mention the amount of time and flexibility I would gain. Heres an excerpt from the article which assumes a shared type of Customer with a namespace specified in its XmlType attribute:&lt;br&gt;&lt;br&gt;&lt;pre style="overflow: scroll; background-color: #f2f2f2;"&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;class&lt;/span&gt; CustomerSchemaImporterExtension : SchemaImporterExtension
{
    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;override&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt; ImportSchemaType(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt; name, &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt; ns, XmlSchemaObject context, XmlSchemas schemas, 
        XmlSchemaImporter importer,CodeCompileUnit compileUnit, CodeNamespace mainNamespace,
        CodeGenerationOptions options, CodeDomProvider codeProvider)
    {
        &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;// Check if the namespace and type name match.&lt;/span&gt;
        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt; (ns == &lt;span style="color: #666666;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"http://schemas.samplebusiness.net/SharedTypes"&lt;/span&gt; &amp;amp;&amp;amp;  name == &lt;span style="color: #666666;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"Customer"&lt;/span&gt;)
        {   &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;// Add a 'using' directive ('Imports' in VB.NET) for the CLR namespace.&lt;/span&gt;
            mainNamespace.Imports.Add(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;new&lt;/span&gt; CodeNamespaceImport(&lt;span style="color: #666666;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"SampleBusinessTypes"&lt;/span&gt;));

            &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;// Indicate that no XML schema type should be imported but that a well-known CLR type will be used.&lt;/span&gt;
            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;return&lt;/span&gt; &lt;span style="color: #666666;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"SampleBusinessTypes.Customer"&lt;/span&gt;;
        }
        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;else&lt;/span&gt;
        {   &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;// No match, delegate to the base class.&lt;/span&gt;
           
&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;return&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;base&lt;/span&gt;.ImportSchemaType(name, ns, context, schemas, importer,
compileUnit, mainNamespace, options, codeProvider);
        }
    }
}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
So, not bad at all so far. Granted this is a simple scenario, but still something that I could use right away with some of my existing apps. Now that the extension is created on your client app, all you have to do is register it. Which can easily be done in the app config file:&lt;/p&gt;&lt;p&gt;&lt;pre style="overflow: scroll; background-color: #f2f2f2;"&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;system.xml.serialization&amp;gt;
  &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;schemaImporterExtensions&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;add&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="CustomerSchemaImporterExtension"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="JelleDruyts.SchemaImporterExtensions.CustomerSchemaImporterExtension
               JelleDruyts.SchemaImporterExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c88d0fcd698a2de7"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;add&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;schemaImporterExtensions&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;
&amp;lt;/system.xml.serialization&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
And thats it! Now everytime the proxy is generated (web reference refresh), the Customer class will be successfully mapped to the type in your shared library. Very cool stuff.&lt;br&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;img src="http://chriskirby.net/aggbug.aspx?PostID=152" width="1" height="1"&gt;</description><category domain="http://chriskirby.net/archive/tags/.Net/default.aspx">.Net</category><category domain="http://chriskirby.net/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://chriskirby.net/archive/tags/Coding/default.aspx">Coding</category><category domain="http://chriskirby.net/archive/tags/Software/default.aspx">Software</category><category domain="http://chriskirby.net/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://chriskirby.net/archive/tags/cSharp/default.aspx">cSharp</category><category domain="http://chriskirby.net/archive/tags/XML/default.aspx">XML</category></item><item><title>Visual Studio and Sql Server RTM'd</title><link>http://chriskirby.net/archive/2005/10/29/Visual-Studio-and-Sql-Server-RTM_2700_d_5F00_116.aspx</link><pubDate>Sat, 29 Oct 2005 18:02:00 GMT</pubDate><guid isPermaLink="false">fe7bf805-78e2-48d4-8999-041f23e860c0:142</guid><dc:creator>Chris Kirby</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/rsscomments.aspx?PostID=142</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/commentapi.aspx?PostID=142</wfw:comment><comments>http://chriskirby.net/archive/2005/10/29/Visual-Studio-and-Sql-Server-RTM_2700_d_5F00_116.aspx#comments</comments><description>Visual Studio 2005 and Sql Server 2005 have been released to MSDN! Those without an MSDN subscription will have to wait until the 7th...&lt;br&gt;&lt;img src="http://chriskirby.net/aggbug.aspx?PostID=142" width="1" height="1"&gt;</description><category domain="http://chriskirby.net/archive/tags/.Net/default.aspx">.Net</category><category domain="http://chriskirby.net/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://chriskirby.net/archive/tags/Software/default.aspx">Software</category><category domain="http://chriskirby.net/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item><item><title>Asp.net 2.0 Providers</title><link>http://chriskirby.net/archive/2005/10/25/Asp.net-2.0-Providers_5F00_115.aspx</link><pubDate>Tue, 25 Oct 2005 20:52:00 GMT</pubDate><guid isPermaLink="false">fe7bf805-78e2-48d4-8999-041f23e860c0:141</guid><dc:creator>Chris Kirby</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/rsscomments.aspx?PostID=141</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/commentapi.aspx?PostID=141</wfw:comment><comments>http://chriskirby.net/archive/2005/10/25/Asp.net-2.0-Providers_5F00_115.aspx#comments</comments><description>I've spent some time in the past few weeks with the release candidate of VS 2005, specifically, building a new site using asp.net and all the new goodies is has to offer. Thus far, I've concentrated my efforts working with the amazing new provider models as they relate to membership, roles, profiles. The best part of these new providers is that 2.0 already includes robust Sql providers for you to use right out of the box! Its truly as simple as running the included database setup utility and using the asp.net application configuration utility (visual web.config editor) to configure your connection string, access privileges, and the default sql providers for membership and roles. The only manual web.config changes I had to make were to setup the profile provider and properties sections, like so: &lt;br&gt;

























&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;profile&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;enabled&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style=""&gt;&amp;gt;&lt;br&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;providers&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;remove&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;"&lt;span style="color: blue;"&gt;AspNetSqlProfileProvider&lt;/span&gt;"&lt;span style=""&gt;/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;add&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;connectionStringName&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;"&lt;span style="color: blue;"&gt;MyCS&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;name&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;AspNetSqlProfileProvider&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;System.Web.Profile.SqlProfileProvider&lt;/span&gt;"&lt;span style=""&gt;/&amp;gt;&lt;br&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;providers&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;properties&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;group&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;"&lt;span style="color: blue;"&gt;Contact&lt;/span&gt;"&lt;span style=""&gt;&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;add&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;"&lt;span style="color: blue;"&gt;FirstName&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;System.String&lt;/span&gt;"&lt;span style=""&gt;/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;add&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;"&lt;span style="color: blue;"&gt;LastName&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;System.String&lt;/span&gt;"&lt;span style=""&gt;/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;add&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;"&lt;span style="color: blue;"&gt;Email&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;System.String&lt;/span&gt;"&lt;span style=""&gt;/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;group&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;properties&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;br&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;profile&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;/p&gt;Once all that is setup, you just start adding the new membership controls to you pages to begin using the new providers. Its truly amazing how much less code you need to accomplish these tasks vs 1.1 implementations. I've written many 1.1 web apps that had similar membership and role requirements and the custom code that was needed for the more complex scenarios was significant, especially when dealing with roles. With the new 2.0 implementation, its nearly codeless, with all the plumbing having already been done for you. The only code I've written so far related to membership and profiles was to save the user entered profile information to the data store: &lt;br&gt;





















&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Wizard_CreatedUser(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color: teal;"&gt;EventArgs&lt;/span&gt;
e)&lt;br&gt;&lt;span style=""&gt;&lt;/span&gt;{&lt;br&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;span style="color: teal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProfileCommon&lt;/span&gt; p = (&lt;span style="color: teal;"&gt;ProfileCommon&lt;/span&gt;)&lt;span style="color: teal;"&gt;ProfileCommon&lt;/span&gt;.Create(CreateUserWizard1.UserName, &lt;span style="color: blue;"&gt;true&lt;/span&gt;);&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;p.Contact.FirstName
= ((&lt;span style="color: teal;"&gt;TextBox&lt;/span&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;Wizard&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;.CreateUserStep.ContentTemplateContainer.FindControl(&lt;span style="color: maroon;"&gt;"FirstName"&lt;/span&gt;)).Text;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;p.Contact.LastName
= ((&lt;span style="color: teal;"&gt;TextBox&lt;/span&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;Wizard&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;.CreateUserStep.ContentTemplateContainer.FindControl(&lt;span style="color: maroon;"&gt;"LastName"&lt;/span&gt;)).Text;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;p.Contact.Email =
((&lt;span style="color: teal;"&gt;TextBox&lt;/span&gt;)&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;Wizard&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;.CreateUserStep.ContentTemplateContainer.FindControl(&lt;span style="color: maroon;"&gt;"Email"&lt;/span&gt;)).Text;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;p.Save();&lt;br&gt;&lt;span style=""&gt;&lt;/span&gt;}&lt;/span&gt;&lt;br&gt;&lt;/p&gt;I just simply handled the CreatedUser event my new profile using the user entered data. Notice too that the properties from my web.config are strongly typed, very cool! Scott Guthrie actually has a great example with downloadable code &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/10/18/427754.aspx"&gt;on his blog&lt;/a&gt; that describes a membership scenario similar to mine, I found it very useful and informative.&lt;br&gt;&lt;br&gt;And this is only the tip of the iceburg! There are several other included providers as well (Active Directory, Passort, others), and you can even roll your own. I actualy wrote my own membership provider for one of my older 1.1 apps just to check it out, and it was very easy to do, you just write a new class which implements the MembershipProvider class and start overriding the methods plugging in code specific your database schema. Once done and configured (below), all the new controls worked seamlessly with my new provider!&lt;br&gt;









&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;membership&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;defaultProvider&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;"&lt;span style="color: blue;"&gt;wookie&lt;/span&gt;"&lt;span style=""&gt;&amp;gt;&lt;br&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;providers&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;add&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;"&lt;span style="color: blue;"&gt;wookie&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;WookieMembershipProvider&lt;/span&gt;"&lt;span style=""&gt; /&amp;gt;&lt;br&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;providers&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;br&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;membership&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;/p&gt;Only 1 month to go until the final release! Between that, the new Potter flick, and the Xbox 360, November should be a damn exciting month.&lt;br&gt;&lt;img src="http://chriskirby.net/aggbug.aspx?PostID=141" width="1" height="1"&gt;</description><category domain="http://chriskirby.net/archive/tags/.Net/default.aspx">.Net</category><category domain="http://chriskirby.net/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://chriskirby.net/archive/tags/Coding/default.aspx">Coding</category><category domain="http://chriskirby.net/archive/tags/Rants/default.aspx">Rants</category><category domain="http://chriskirby.net/archive/tags/Software/default.aspx">Software</category><category domain="http://chriskirby.net/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item><item><title>Latest ReSharper build</title><link>http://chriskirby.net/archive/2005/08/19/Latest-ReSharper-build_5F00_93.aspx</link><pubDate>Fri, 19 Aug 2005 20:03:00 GMT</pubDate><guid isPermaLink="false">fe7bf805-78e2-48d4-8999-041f23e860c0:119</guid><dc:creator>Chris Kirby</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/rsscomments.aspx?PostID=119</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chriskirby.net/commentapi.aspx?PostID=119</wfw:comment><comments>http://chriskirby.net/archive/2005/08/19/Latest-ReSharper-build_5F00_93.aspx#comments</comments><description>&lt;!-- Generated by XStandard version 1.6.0.0 on 2005-08-19T13:03:24 --&gt;
&lt;P&gt;I was having problems with the early 2.0 builds of resharper with VS 2005 Beta 2, but I'm happy to say that with the latest build things finally appear to be running smoothly for me. So, if you haven't checked it out yet for 2005, now would be a good time...For now, I'm still sticking with 1.5 for VS 2003, just because I'm a little wary of going with 2.0 on some of my production apps...but, come November, I will be converting everything to 2005.&lt;/P&gt;
&lt;P&gt;Speaking of project conversion...I've been reading a few blog posts and articles lately discussing the process, which sounds like it will be relatively pain free (it has been for me thus far)...It should be very easy to still compile your apps with 1.1 for as long as needed, though, for most apps the switch to 2.0 should be seamless. The only drawback I see on converting my production desktop apps will be the lack of the 2.0 framework on the destination machines...But, in reality, I probably won't compile with 2.0 until a major revision is required. That would just make deployment a lot cleaner and avoid unnecessary upgrades. Either way, i look forward to the challenge.&lt;/P&gt;&lt;img src="http://chriskirby.net/aggbug.aspx?PostID=119" width="1" height="1"&gt;</description><category domain="http://chriskirby.net/archive/tags/Rants/default.aspx">Rants</category><category domain="http://chriskirby.net/archive/tags/Software/default.aspx">Software</category><category domain="http://chriskirby.net/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item></channel></rss>