<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.iis.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/" xmlns:cs="http://blogs.iis.net/"><channel><title>Search results matching tag 'ASP.NET'</title><link>http://blogs.iis.net/search/SearchResults.aspx?o=DateDescending&amp;tag=ASP.NET&amp;orTags=0</link><description>Search results matching tag 'ASP.NET'</description><dc:language>en-US</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Lot’s of new software for IIS, ASP.NET, AJAX and PHP this week</title><link>http://blogs.iis.net/bills/archive/2009/11/20/lot-s-of-new-software-for-iis-asp-net-ajax-and-php-this-week.aspx</link><pubDate>Fri, 20 Nov 2009 18:13:44 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3524529</guid><dc:creator>bills</dc:creator><cs:applicationKey>bills</cs:applicationKey><description>&lt;p&gt;Wow, what a week of innovation for the Microsoft Web Platform.&amp;#160; This week we released a ton of new software which, if you haven’t already, you’ve got to check out.&amp;#160; Here is a quick overview:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;IIS Search Engine Optimization v1 final release!&lt;/h3&gt;  &lt;p&gt;The IIS team shipped the final release of &lt;a href="http://www.iis.net/expand/SEOToolkit"&gt;IIS SEO toolkit&lt;/a&gt; which makes it easier to &lt;a href="http://www.microsoft.com/web/page.aspx?templang=en-us&amp;amp;chunkfile=seo.html"&gt;optimize your Website for search engines&lt;/a&gt;.&amp;#160; It acts like a mini-search engine on your computer, scans your site and then provides useful tips for how to improve the relevance of your site to search engines.&amp;#160; This tool is now out of beta and available for &lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=seotoolkit"&gt;download through Web PI&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;ASP.NET MVC 2 beta!&lt;/h3&gt;  &lt;p&gt;The ASP.NET team has been hard at work on the second release of MVC, which is now available to beta test.&amp;#160; Phil has a &lt;a href="http://haacked.com/archive/2009/11/17/asp.net-mvc-2-beta-released.aspx"&gt;great blog post&lt;/a&gt; on the release with links to the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=157068"&gt;download&lt;/a&gt; page, &lt;a href="http://go.microsoft.com/fwlink/?LinkID=157069"&gt;readme notes&lt;/a&gt; and the &lt;a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=36054"&gt;source code&lt;/a&gt;.&amp;#160; There are a bunch of new features in MVC 2 including AsyncController, expression based helpers, improvements with client validation, all new areas support, and more.&amp;#160; Read more on &lt;a href="http://haacked.com/archive/2009/11/17/asp.net-mvc-2-beta-released.aspx"&gt;Phil’s blog&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;ASP.NET AJAX Library beta!&lt;/h3&gt;  &lt;p&gt;The ASP.NET AJAX team also has some exciting news with the release of the ASP.NET AJAX Library beta.&amp;#160; James has a &lt;a href="http://jamessenior.com/post/News-on-the-ASPNET-Ajax-Library.aspx"&gt;terrific blog post&lt;/a&gt; with the news&amp;#160; This is the first project accepted into the new CodePlex Foundation! (more on that later)&amp;#160; The ASP.NET AJAX Library has a new portal at &lt;a href="http://www.asp.net/ajaxlibrary"&gt;www.asp.net/ajaxlibrary&lt;/a&gt; with tutorials, samples, and more.&amp;#160; Read &lt;a href="http://jamessenior.com/post/News-on-the-ASPNET-Ajax-Library.aspx"&gt;James’ post about the news&lt;/a&gt; and check it out! &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;IIS Application Request Router 2 final release!&lt;/h3&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The IIS team also released the final version of the IIS Application Request Router v2.&amp;#160; This is a super powerful module that provides routing and load balancing capabilities for Windows and IIS.&amp;#160; It makes it easy to create and manage an entire cluster of Web servers.&amp;#160; &lt;a href="http://blogs.iis.net/mailant/default.aspx"&gt;Mai-lan&lt;/a&gt; has a lot of info on the release in &lt;a href="http://blogs.iis.net/mailant/archive/2009/11/09/download-a-powerful-load-balancer-and-caching-solution-free-on-windows-server-2008-or-later-with-the-application-request-routing-arr-2-0.aspx"&gt;her blog post&lt;/a&gt; and you can download ARR v2 using &lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=ARRv2"&gt;Web PI today&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;PHP WinCache module final release - faster PHP on Windows!&lt;/h3&gt;  &lt;p&gt;The &lt;a href="http://blogs.iis.net/ruslany/archive/2009/11/19/wincache-extension-1-0-for-php-release-to-web.aspx"&gt;PHP team announced today&lt;/a&gt; the final release of the Windows Cache Extension for PHP, or WinCache for short, which makes PHP run much, much faster on Windows.&amp;#160; The &lt;a href="http://techportal.ibuildings.com/2009/11/19/php-on-windows-the-wincache-1-0-benchmark"&gt;iBuildings guys&lt;/a&gt; released a benchmark showing how the WinCache extension speeds up PHP by as much as 2x over standard PHP.&amp;#160; The other exciting part of this announcement is that the sources for the extension are now available under an open source BSD license and the source code is maintained and host on &lt;a title="http://pecl.php.net/packages/wincache/" href="http://pecl.php.net/packages/wincache/"&gt;http://pecl.php.net/packages/wincache/&lt;/a&gt;&amp;#160; If you install PHP &lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=WinCache52"&gt;using Web PI&lt;/a&gt;, you automatically get &lt;a href="http://www.iis.net/expand/wincacheforphp"&gt;WinCache&lt;/a&gt;.&amp;#160; &lt;/p&gt;</description></item><item><title>IIS 7.5 Launched with Windows 7 and Windows 2008 R2</title><link>http://blogs.iis.net/bills/archive/2009/10/22/iis-7-5-launched-with-windows-7-and-windows-2008-r2.aspx</link><pubDate>Thu, 22 Oct 2009 16:02:17 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3472098</guid><dc:creator>bills</dc:creator><cs:applicationKey>bills</cs:applicationKey><description>&lt;p&gt;Since the Windows 2008 Server launch last March, the IIS team has shipped a &lt;a href="http://iis.net/extensions/"&gt;bunch of new features&lt;/a&gt; that plug-in to IIS7 and in parallel worked on IIS 7.5, launching today in the Windows 7 and Windows 2008 R2 release.&amp;#160; &lt;/p&gt;  &lt;p&gt;IIS 7.5 includes many bug fixes, improvements and new features, and is definitely worth grabbing.&amp;#160; If you haven’t tried IIS7 yet, &lt;a href="http://www.iis.net/getstarted"&gt;check out&lt;/a&gt; the many reasons to try it.&amp;#160; If you’re already using IIS7 and want to know what’s new in IIS 7.5, Mai-lan just posted an &lt;a href="http://blogs.iis.net/mailant/archive/2009/10/22/general-availability-of-windows-7-amp-windows-server-2008-r2-with-iis-7-5.aspx"&gt;update to her blog&lt;/a&gt; with a nice summary.&amp;#160; Note: the &lt;a href="http://iis.net/extensions/"&gt;IIS Extensions&lt;/a&gt; which are not already included in IIS 7.5 will install and work on Windows 7 and Windows 2008 R2!&lt;/p&gt;</description></item><item><title>ASP.NET 4 and Visual Studio 2010 beta 2 are here!</title><link>http://blogs.iis.net/bills/archive/2009/10/19/asp-net-4-and-visual-studio-2010-beta-2-are-here.aspx</link><pubDate>Mon, 19 Oct 2009 19:56:07 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3465889</guid><dc:creator>bills</dc:creator><cs:applicationKey>bills</cs:applicationKey><description>&lt;p&gt;The ASP.NET and Web tools for Visual Studio teams have been cranking away on this release all year long and we’re excited to launch Beta 2 today!&amp;#160; MSDN subscribers can &lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;download it today&lt;/a&gt;…it will be available for everyone on Wednesday.&amp;#160; &lt;/p&gt;  &lt;p&gt;There are a ton of new features in this release, &lt;a href="http://msdn.microsoft.com/en-us/library/s57a598e(VS.100,lightweight).aspx"&gt;this MSDN page&lt;/a&gt; gives a good overview.&amp;#160; Here are some highlights for Web developers:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Numerous improvements to &lt;strong&gt;Web Forms&lt;/strong&gt; including more control over viewstate, meta tag control, new browser support, &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/10/13/url-routing-with-asp-net-4-web-forms-vs-2010-and-net-4-0-series.aspx"&gt;routing support for clean URLs&lt;/a&gt;, more control over HTML with FormView and ListView controls, filtering support in data source controls, better Web standards support and accessibility&lt;/li&gt;    &lt;li&gt;New &lt;strong&gt;Dynamic Data&lt;/strong&gt; features including a RAD experience for quickly building a data-driven site, automatic validation, field template support for GridView and DetailsView controls.&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Visual Studio&lt;/strong&gt; has undergone a face lift and now supports simpler, &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/09/02/code-optimized-web-development-profile-vs-2010-and-net-4-0-series.aspx"&gt;code optimized view&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/08/31/multi-monitor-support-vs-2010-and-net-4-series.aspx"&gt;multi-mon support&lt;/a&gt;, enhanced &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/08/27/multi-targeting-support-vs-2010-and-net-4-series.aspx"&gt;multi-targeting&lt;/a&gt; and more..&lt;/li&gt;    &lt;li&gt;Visual Web Developer has better support for HTML, CSS and JavaScript including auto-completion for tag names, IntelliSense for &lt;a href="http://msdn.microsoft.com/en-us/library/dd985242(VS.100,lightweight).aspx"&gt;HTML and Jscript snippets&lt;/a&gt;, and more…&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Visual Studio&lt;/strong&gt; also natively supports the &lt;a href="http://www.iis.net/extensions/WebDeploymentTool"&gt;Web Deployment Tool&lt;/a&gt;, a powerful new &lt;a href="http://msdn.microsoft.com/en-us/library/dd394698(VS.100).aspx"&gt;packaging and deployment model for Web applications.&lt;/a&gt;&amp;#160; Check out &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;Vishal’s blog&lt;/a&gt; (PM for these features) for a bunch more info on this as well.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx"&gt;Auto-start&lt;/a&gt; Web Applications&lt;/li&gt;    &lt;li&gt;And much more…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;All said this is an impressive release and now is a great time to try it out and provide your feedback!&amp;#160; &lt;/p&gt;</description></item><item><title>Microsoft Ajax Library Preview 6</title><link>http://blogs.iis.net/bills/archive/2009/10/16/microsoft-ajax-library-preview-6.aspx</link><pubDate>Fri, 16 Oct 2009 16:13:28 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3462175</guid><dc:creator>bills</dc:creator><cs:applicationKey>bills</cs:applicationKey><description>&lt;p&gt;The ASP.NET team has been cranking away on more AJAX goodness…this time with a significant update to the Microsoft Ajax Library – Preview 6.&amp;#160; This update includes updates to our client-side AJAX library that can be used with &lt;strong&gt;&lt;u&gt;any&lt;/u&gt;&lt;/strong&gt; type of Web application as well as deep support within ASP.NET for AJAX across ASP.NET 2.0, 3.5 and 4.0…for both Web Forms and MVC style projects.&amp;#160; &lt;/p&gt;  &lt;p&gt;In addition to the updated AJAX support, the team is shipping a cool new AJAX minifier tool which reduces the size of your JavaScript files to improve performance.&amp;#160; &lt;/p&gt;  &lt;p&gt;You can download the release from the &lt;a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34488"&gt;CodePlex project&lt;/a&gt; and read more information on the team blogs below:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scott – &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/10/15/announcing-microsoft-ajax-library-preview-6-and-the-microsoft-ajax-minifier.aspx"&gt;Announcing Microsoft Ajax Library…&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Bertrand – &lt;a href="http://weblogs.asp.net/bleroy/archive/2009/10/15/entirely-unobtrusive-and-imperative-templates-with-microsoft-ajax-4-preview-6.aspx"&gt;Entirely unobtrusive and imperative templates…&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;James – &lt;a href="http://www.jamessenior.com/post/How-the-Script-Loader-in-the-Microsoft-Ajax-Library-will-make-your-life-wonderful.aspx"&gt;How the Script Loader…will make your life wonderful&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Also check out the &lt;a href="http://channel9.msdn.com/posts/jsenior/Announcing-Microsoft-Ajax-Library-Preview-6/"&gt;Channel9 interview with Stephen Walther&lt;/a&gt; on the new release!&amp;#160; Enjoy ~&lt;/p&gt;</description></item><item><title>IIS Media Services 3.0 Released!</title><link>http://blogs.iis.net/bills/archive/2009/10/14/iis-media-services-3-0-released.aspx</link><pubDate>Wed, 14 Oct 2009 17:26:58 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3458373</guid><dc:creator>bills</dc:creator><cs:applicationKey>bills</cs:applicationKey><description>&lt;p&gt;IIS Media Services 3.0 has been released and is now available as a free download for Windows 2008 and Windows 2008 R2!&amp;#160; &lt;a href="http://blogs.iis.net/chriskno/archive/2009/10/12/iis-media-services-3-0-including-iis-live-smooth-streaming-has-been-released.aspx"&gt;Chris Knowlton&lt;/a&gt; has a comprehensive post on the release and all the details, here is a quick summary:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;IIS Media Services, an integrated HTTP-based media delivery platform, delivers true HD (720p+) streaming and provides real-time logging to measure media investments. By offering a complete media delivery platform together with a traditional Web server, rich dynamic Web sites can now be managed and administered from a single Web platform.&amp;#160; IIS Media Services offers the highest quality streaming media experience available on the Web.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Server Features:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;With this release, the key elements of the IIS media server platform now include:&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.iis.net/smoothstreaming"&gt;Smooth Streaming&lt;/a&gt;, adaptive streaming of media over HTTP&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.iis.net/LiveSmoothStreaming"&gt;Live Smooth Streaming&lt;/a&gt;, for live adaptive streaming of broadcast events&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.iis.net/bitratethrottling"&gt;Bit Rate Throttling&lt;/a&gt;, meters the speed that media is delivered to a player&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.iis.net/bitratethrottling"&gt;Web Playlists&lt;/a&gt;, secure sequencing of media content &lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.iis.net/advancedlogging"&gt;Advanced Logging&lt;/a&gt;, with real-time client- and server-side logging &lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.iis.net/applicationrequestrouting"&gt;Application Request Routing&lt;/a&gt; (ARR), providing HTTP proxying and caching&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Client / SDK Features:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;We have also released a &lt;a href="http://blogs.iis.net/vsood/archive/2009/10/09/iis-smooth-streaming-player-development-kit-1-0-beta-1-released.aspx"&gt;Smooth Streaming Player Development Kit&lt;/a&gt;, which allows developers to easily create Smooth Streaming experiences using Silverlight. Supported features include PlayReady, DVR controls, instant replay, slow motion, multiple camera angles, alternate audio tracks, content protection, ad integration, in-stream data feeds, and more.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/web/gallery/install.aspx/MediaServices3"&gt;Download IIS Media Services&lt;/a&gt; today, and let us know what you think in our &lt;a href="http://forums.iis.net/1145.aspx"&gt;Forum&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Error connecting to SQL Server from Windows 7 / Windows 2008 R2 with ASP.NET</title><link>http://blogs.iis.net/bills/archive/2009/10/07/error-connecting-to-sql-server-from-windows-7-windows-2008-r2-with-asp-net.aspx</link><pubDate>Wed, 07 Oct 2009 20:41:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3446387</guid><dc:creator>bills</dc:creator><cs:applicationKey>bills</cs:applicationKey><description>&lt;p&gt;Just ran into this and thought I’d share.&amp;#160; If you are trying to connect to a "user instance" of SQL Server from your Web application running on Windows 7 or Windows 2008 R2 and you’re getting a message that looks like this:&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Failed to generate a user instance of SQL Server due to failure in retrieving the user's local application data path. Please make sure the user has a local user profile on the computer. The connection will be closed.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/bills/image_091E996A.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/bills/image_thumb_4369E97E.png" width="640" height="430" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I can probably help you out.&amp;#160; &lt;/p&gt;  &lt;p&gt;Note: this error only happens if you have User Instance=true in your connection string.  The IIS team made a change to the default identity of the worker process.&amp;#160;&amp;#160; Starting with IIS 7.5, Application Pools run with a unique identity based on the Application Pool name, rather than NetworkService – the default identity for IIS6 and IIS7.&amp;#160; The primary reason for this change is to increase the security of IIS and Application Pools by default, providing a much better sandbox between Applications and other Windows services by default.&amp;#160; &lt;/p&gt;  &lt;p&gt;Unfortunately, the new identity does not have a user profile, and as you can see from the error, this causes the SqlClient data stack to fail.&amp;#160; There are a few things you can do to "fix" this error:&amp;#160; 1) switch back to NetworkService 2) switch to a user account that has a local profile (like a real user / domain user account).&amp;#160; To do that, fire open IIS Manager and browse to Application Pools node for your computer.&amp;#160; Click on the AppPool for the application you are trying to run and select the “Advanced Settings” task (in yellow on right).&amp;#160; Select identity and choose NetworkService as a built-in account, or select “Custom account” and type in the user/password.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/bills/image_2131DDF8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/bills/image_thumb_1F516264.png" width="631" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you’re a command-line person, you can do it this way (all on one line):&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre&gt;%windir%\system32\inetsrv\appcmd.exe set config  
-section:system.applicationHost/applicationPools /[name='YOUR_APPPPOOL_NAME_HERE'].processModel.identityType:&amp;quot;NetworkService&amp;quot;  
/commit:apphost&lt;/pre&gt;</description></item><item><title>A Tale of Two Developers and Visual Studio Sites and Apps</title><link>http://blogs.iis.net/webtopics/archive/2009/09/30/a-tale-of-two-developers-and-visual-studio-sites-and-apps.aspx</link><pubDate>Wed, 30 Sep 2009 13:40:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3436102</guid><dc:creator>Anonymous</dc:creator><cs:applicationKey>webtopics</cs:applicationKey><description>&lt;P&gt;We've encountered several scenarios in which customers have multiple developers working on a single web application in Visual Studio. In such cases, it's not uncommon for each developer to be working on a portion of the application. There isn't any problem in working with this way, but you may encounter some very real problems when you deploy your application unless you plan in advance.&lt;/P&gt;
&lt;H2&gt;The Scenario&lt;/H2&gt;
&lt;P&gt;Suppose you have two developers working on your web application. Developer A (we'll call him John) is working on a forum for the application and developer B (who we'll call Jill) is working on a photo gallery for the site. In order to keep files and folders organized, the forum and the photo gallery will both be contained in their own folders on the final site. In other words, by browsing to www.site.com/forum, users will be able to hit the forum, and by browsing to www.site.com/photogallery, users will hit the photo gallery.&lt;/P&gt;
&lt;P&gt;Jill has created a new web site in Visual Studio called PhotoGallery, and this is where she's going to create her pages for her portion of the application. John has created a new web site called Forum for his portion of the site. Both John and Jill frequently test their code against the ASP.NET Development Server and, after a long period of development, are both ready to deploy to the test web server.&lt;/P&gt;
&lt;P class=ImageCaption&gt;&lt;IMG alt="Jill's part of the web site as shown in Solution Explorer." src="http://www.jimcobooks.com/blog/sitesapps/se.png" width=253 height=361 mce_src="http://www.jimcobooks.com/blog/sitesapps/se.png"&gt;&lt;BR&gt;Jill's PhotoGallery in Solution Explorer&lt;/P&gt;
&lt;P&gt;Jill copies the PhotoGallery folder she created for her portion of the site to the c:\inetpub\wwwroot folder on the server and John copies the Forum folder he created to the wwwroot folder. The resulting directory structure in IIS is shown below.&lt;/P&gt;
&lt;P class=ImageCaption&gt;&lt;IMG alt="Folder structure of deployed site in IIS." src="http://www.jimcobooks.com/blog/sitesapps/iisfolders.png" width=256 height=241 mce_src="http://www.jimcobooks.com/blog/sitesapps/iisfolders.png"&gt;&lt;BR&gt;Folder Structure in IIS&lt;/P&gt;
&lt;P&gt;Everything looks fine with this scenario so far, but as soon as either John or Jill attempts to access his or her portion of the site, something bad happens as shown below.&lt;/P&gt;
&lt;P class=ImageCaption&gt;&lt;IMG alt="An error occurs when the photogallery folder is browsed." src="http://www.jimcobooks.com/blog/sitesapps/error.png" width=704 height=614 mce_src="http://www.jimcobooks.com/blog/sitesapps/error.png"&gt;&lt;BR&gt;An error occurs when John or Jill browse the site.&lt;/P&gt;
&lt;H2&gt;The Problem&lt;/H2&gt;
&lt;P&gt;The problem here is that Visual Studio expects that the web sites that John and Jill created are &lt;EM&gt;application roots&lt;/EM&gt; in IIS. An application root in IIS is a folder that is marked as an application. When a folder is marked as an application, the folder's icon appears as a globe with a page on it as shown below.&lt;/P&gt;
&lt;P class=ImageCaption&gt;&lt;IMG alt="An application in IIS." src="http://www.jimcobooks.com/blog/sitesapps/app.png" width=352 height=375 mce_src="http://www.jimcobooks.com/blog/sitesapps/app.png"&gt;&lt;BR&gt;An Application in IIS.&lt;/P&gt;
&lt;P class=note&gt;&lt;SPAN style="FONT-SIZE: large"&gt;&lt;STRONG&gt;Important&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR&gt;I converted the "forum" folder into an application for the figure above simply so that I could show you what the icon looks like. The act of copying a folder to IIS will &lt;EM&gt;not &lt;/EM&gt;make a folder an application in IIS.&lt;/P&gt;
&lt;P&gt;Since John and Jill simply copied folders into IIS, the applications they each created in Visual Studio are simply folders in IIS (like the photogallery folder in the figure above) and are not recognized as applications. Because ASP.NET does not allow for certain settings to be configured in a subdirectory of an application, both John and Jill see an error when browsing their portion of the site.&lt;/P&gt;
&lt;P&gt;Keep in mind that this is only one example of the kind of problem you can encounter in this scenario. For example, if the root of your site was created in Visual Studio as a web application instead of a web site and developers copy web sites from Visual Studio into that directory structure, you can end up with more problems that are tough to solve. &lt;/P&gt;
&lt;P class=note&gt;&lt;SPAN style="FONT-SIZE: large"&gt;&lt;STRONG&gt;More Info&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR&gt;See &lt;A href="http://msdn.microsoft.com/en-us/library/aa983474.aspx" mce_href="http://msdn.microsoft.com/en-us/library/aa983474.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa983474.aspx&lt;/A&gt; on MSDN for an explanation of web sites vs. web applications in Visual Studio.&lt;/P&gt;
&lt;H2&gt;The Solution&lt;/H2&gt;
&lt;P&gt;How can John and Jill solve the error message they are seeing? They could simply convert the folders that they copied to IIS into application roots, but while doing so would get rid of the error, it would likely introduce other problems. For example, there Application and Session variables are specific to an application, so if both the photogallery and forum folders were marked as application roots, Application and Session variables couldn't be shared between them. Also, as we saw in the error that Jill saw in the browser, authentication modes are specific to an application. Therefore, if the site as a whole relies on ASP.NET Forms authentication, mucking around with application roots can break authentication.&lt;/P&gt;
&lt;P&gt;A good approach to the problem that John and Jill are encountering is to change the way that they both develop the site in Visual Studio. Each should develop against a web site in Visual Studio called &lt;EM&gt;site.com &lt;/EM&gt;and create a folder within that site for the part of the application they are developing. The resulting project structure in Visual Studio's Solution Explorer is shown below.&lt;/P&gt;
&lt;P class=ImageCaption&gt;&lt;IMG alt="The right way to create the site in Visual Studio." src="http://www.jimcobooks.com/blog/sitesapps/rightway.png" width=253 height=305 mce_src="http://www.jimcobooks.com/blog/sitesapps/rightway.png"&gt;&lt;BR&gt;The right way to create the site in Visual Studio.&lt;/P&gt;
&lt;P&gt;If your team consists of multiple developers and you want to ensure that you control who is working on particular parts of the project, it's wise to have your developers work off of a common site.com folder and use a source control system like TFS to check out the content that he or she needs to develop. If you don't have a source control system, you'll want to make sure that the web.config file in the site.com folder is the same for each developer and it's a good idea for each developer to change only files in his or her particular subfolder for the app.&lt;/P&gt;
&lt;H2&gt;The Terminology Can Cause Confusion&lt;/H2&gt;
&lt;P&gt;It's important that you understand the terminology involved in this kind of scenario. For example, Visual Studio can create an ASP.NET web site or an ASP.NET web application. An ASP.NET web site is not the same thing as a web site in IIS, and an ASP.NET web application is not the same as an application in IIS. I realize that's a bit confusing, so here's some information that might help to clear things up.&lt;/P&gt;
&lt;H3&gt;Web Site in Visual Studio&lt;/H3&gt;
&lt;P&gt;Web sites in Visual Studio were introduced with Visual Studio 2005. There is no project files in a web site (no .csproj or .vbproj) and the location for the web site can be anywhere on a disk. There is not a &lt;EM&gt;References&lt;/EM&gt; folder in Solution Explorer when working with web sites. Instead, you set refereces in the Property Pages for the site. You are also not required to build (compile) a web site prior to running it. All of that takes place dynamically.&lt;/P&gt;
&lt;P&gt;You create an ASP.NET web site in Visual Studio by selecting &lt;STRONG&gt;File&lt;/STRONG&gt;, &lt;STRONG&gt;New Web Site&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H3&gt;Web Site in IIS&lt;/H3&gt;
&lt;P&gt;A web site in IIS is a node that is identified by its bindings. By default, there is one web site called Default Web Site with an HTTP binding all IPs to port 80. If you want to create a new web site, you would have to create a new binding to either a different port, a different IP, etc. &lt;/P&gt;
&lt;P&gt;As you can see &lt;EM&gt;web site&lt;/EM&gt; in Visual Studio is completely unrelated to &lt;EM&gt;web site&lt;/EM&gt; in IIS.&lt;/P&gt;
&lt;H3&gt;Web Application in Visual Studio&lt;/H3&gt;
&lt;P&gt;A web application in Visual Studio uses the same model that was used for ASP.NET projects in Visual Studio .NET 2003. It was then reintroduced for Visual Studio 2005 as an add-on called Web Application Projects. That add-on became a full-fledged component of Visual Studio 2005 in SP1 and remains a component of Visual Studio 2008.&lt;/P&gt;
&lt;P&gt;When the application is created, a project file is created along with the other files for the project. A gray-colored &lt;EM&gt;References&lt;/EM&gt; folder appears in Solution Explorer so that you can review project references and/or add your own. There is also a special folder called &lt;EM&gt;Properties &lt;/EM&gt;that contains the AssemblyInfo.cs or AssemblyInfo.vb file for the project. When you're ready to run the application, you must first compile it from the Build menu.&lt;/P&gt;
&lt;P&gt;You create an ASP.NET web site in Visual Studio by selecting &lt;STRONG&gt;File&lt;/STRONG&gt;, &lt;STRONG&gt;New Project&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H3&gt;Web Application in IIS&lt;/H3&gt;
&lt;P&gt;A web application in IIS is a node that has been marked as an application. An application in IIS is the level at which you would place your global.asax file. ASP.NET authentication methods (i.e. Windows, Forms, etc.) can be specificed at this level, but not lower in the hierarchy. Session variables and Forms authentication tickets are isolated to a web application in IIS.&lt;/P&gt;
&lt;P&gt;As you can see a &lt;EM&gt;web application&lt;/EM&gt; in Visual Studio is completely unrelated to a &lt;EM&gt;web application&lt;/EM&gt; in IIS.&lt;/P&gt;
&lt;H2&gt;Final Thoughts&lt;/H2&gt;
&lt;P&gt;We worked with a customer at one point who had created a web application in Visual Studio that would eventually be deployed to the Default Web Site in IIS. During development, some of the developers who were creating portions of this site determined that they'd better create web sites in Visual Studio for their portion of the site because they new that this was eventually going to be deployed to a web site. &lt;/P&gt;
&lt;P&gt;On the day of deployment, someone realized that the main project for the site was a web application, so they began the process of trying to convert the Visual Studio web application to a Visual Studio web site. In fact, we have &lt;A href="http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx" mce_href="http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx"&gt;thorough documentation&lt;/A&gt; about how to convert a web site to a web application, but going the other way is another matter altogether. The customers projects was huge, made up of thousands of pages and folders. After they had spent a considerable amount of time trying this on their own, they called us.&lt;/P&gt;
&lt;P&gt;Getting everything back to working order took days of work, much of which was spent with the customer frustrated over a seemingly endless number of exceptions. Fix one exception and 200 others spring up to take its place. It's grueling work, and it was all the result of misunderstanding the terms and drawing correlations where none exists.&lt;/P&gt;
&lt;P&gt;Hopefully the information I've provided here can help you to avoid a similar pitfall. Plan your projects carefully with deployment in mind, and make sure that you understand the fact that even though IIS and Visual Studio use some of the same terms, those terms mean something entirely different in each context.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9901301" width="1" height="1"&gt;</description></item><item><title>A big day for Web pros: WebsiteSpark, Web PI and more!</title><link>http://blogs.iis.net/bills/archive/2009/09/24/a-big-day-for-web-pros-websitespark-web-pi-and-more.aspx</link><pubDate>Thu, 24 Sep 2009 17:11:43 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3423703</guid><dc:creator>bills</dc:creator><cs:applicationKey>bills</cs:applicationKey><description>&lt;p&gt;Today we’re launching a number of really cool things for Web developers.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;WebsiteSpark&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/web/websitespark"&gt;WebsiteSpark&lt;/a&gt; is a program designed to jumpstart Web development for individuals or small companies who make a living on the Web.&amp;#160; The program is free to join and runs for three years with no cost obligations other than a $100 program fee, payable on exit.&amp;#160; What is in it for you?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Web Server 2008 R2 – 4 processor licenses for production use!&lt;/li&gt;    &lt;li&gt;SQL Server 2008 – 4 processor licenses for production use!&lt;/li&gt;    &lt;li&gt;Expression Studio 3 – 1 license including Expression Web, Blend and Sketchflow&lt;/li&gt;    &lt;li&gt;Expression Web – 2 licenses&lt;/li&gt;    &lt;li&gt;Visual Studio 2008 Professional Edition – 3 licenses&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.dotnetpanel.com"&gt;DotNetPanel&lt;/a&gt; control panel (to manage your servers, and allow your customers to manage their site!)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Beyond just software you also get free support, training and Microsoft will even help drive business your way.&amp;#160; Anyone can join as long as 1) you build web sites or applications for other people and 2) your company has less than 10 employees.&amp;#160; If you meet these requirements, sign-up today!&amp;#160; As part of the sign-up process you will need a referral code.&amp;#160; &lt;a href="http://blogs.iis.net/bills/contact.aspx"&gt;Contact me&lt;/a&gt; if you need a code, I’d be happy to sponsor you into the program!&amp;#160; Read more about the program on the &lt;a href="http://www.microsoft.com/web/websitespark"&gt;WebsiteSpark portal&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Web Platform Installer 2&lt;/h3&gt;  &lt;p&gt;I’m also happy to announce that the &lt;a href="http://www.iis.net/webpi"&gt;Web Platform Installer 2.0&lt;/a&gt; is available in final release form!&amp;#160; The Web Platform Installer (sometimes called Web PI) makes it easy to install the latest components of the Microsoft Web Platform including IIS, ASP.NET, Visual Web Developer, SQL Express and more!&amp;#160; New for the final release, we’ve fixed many bugs, improved usability, added new products including Expression Web, Azure Tools and the latest releases also being announced today.&amp;#160; We’re also launching WebPI in 9 different languages and allow users around the world to access the Web Platform in their regional language.&amp;#160; Look for more components of the Microsoft Web Platform to be added to Web PI v2 over time.&amp;#160; Web PI also makes it super easy to install any of the Web applications in the &lt;a href="http://microsoft.com/web/gallery"&gt;Windows Web App Gallery&lt;/a&gt;.&amp;#160; Web PI can also now install both PHP and MySQL for applications that require it.&amp;#160; &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;Install&lt;/a&gt; Web PI today!&lt;/p&gt;  &lt;p&gt;Trivia: since launching the Windows Web Application Gallery at MIX in March 2009 – just 5 months ago – Web PI has installed more than &lt;strong&gt;&lt;font size="4"&gt;840,000&lt;/font&gt;&lt;/strong&gt; applications!&amp;#160; Do you have a killer Web application just waiting to be discovered by the masses?&amp;#160; Want Microsoft to drive users to your community?&amp;#160; &lt;a href="http://www.microsoft.com/web/gallery/developer.aspx"&gt;Submit your Web app&lt;/a&gt; to the gallery today!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Web Deployment Tool&lt;/h3&gt;  &lt;p&gt;The IIS team just released the final 1.0 version of the &lt;a href="http://www.iis.net/extensions/WebDeploymentTool"&gt;Web Deployment Tool&lt;/a&gt;, a super powerful deployment technology that you are going to see a lot of going forward.&amp;#160; It is like a swiss army knife for Web masters.&amp;#160; It can migrate sites or entire servers from IIS6 to IIS7.&amp;#160; It can synchronize Web sites or applications between multiple servers.&amp;#160; You can package a Web site or application and then push it out to your entire server farm.&amp;#160; It knows how to not only replicate content, but also configuration, databases, COM dll, GAC assemblies, certificates, ACLs, and a whole lot more.&amp;#160; After about three years of development I’m super excited to see this thing in final release form.&amp;#160; It is already being integrated into Visual Studio 2010 and from there you’ll be able to not only build but also &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;package and deploy your applications&lt;/a&gt; with just a few clicks of the mouse.&amp;#160; Other teams around Microsoft are picking this thing up and integrating it as well, so you definitely want to get up to speed with this tool.&amp;#160; &lt;a href="http://www.iis.net/extensions/WebDeploymentTool"&gt;Download&lt;/a&gt; it today!!&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Database Manager 1.0&lt;/h3&gt;  &lt;p&gt;The IIS team just released the 1.0 version of Database Manager, and IIS Manager extension that makes it super easy to manage your database, local or remote, from within the IIS Manager tool.&amp;#160; This thing rocks!&amp;#160; It supports SQL Server and MySQL and is one powerful tool, and completely free.&amp;#160; &lt;a href="http://www.iis.net/extensions/DatabaseManager"&gt;Check it out&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Search Engine Optimization Toolkit – Beta 2&lt;/h3&gt;  &lt;p&gt;The IIS team also announced the released the beta 2 of the Search Engine Optimization Toolkit, another IIS Manager extension that makes it possible to learn things about your site you can’t find anywhere else.&amp;#160; It crawls your Web site, local or remote, and reports on dozens of well known but hard to discover issues that cause your site to be less relevant to search engines.&amp;#160; This version includes many bugs fixes and new features over the previous release, definitely &lt;a href="http://www.iis.net/extensions/SEOToolkit"&gt;check it out&lt;/a&gt; and send feedback to the team on the &lt;a href="http://forums.iis.net/1162.aspx"&gt;forums&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Application Request Routing 2 – Release Candidate&lt;/h3&gt;  &lt;p&gt;The IIS team is also releasing a Release Candidate of the 2.0 version of the Application Request Routing extension for IIS7/IIS7.5, which provides built-in routing, load balancing, proxying and caching support on the IIS platform.&amp;#160; This release includes an all-new disk cache option, bug fixes and performance improvements.&amp;#160; &lt;a href="http://learn.iis.net/page.aspx/570/application-request-routing-version-2/"&gt;Read&lt;/a&gt; more about the release in the &lt;a href="http://learn.iis.net/page.aspx/570/application-request-routing-version-2/"&gt;learn portal&lt;/a&gt;.&amp;#160;&amp;#160; This powerful extension is available for free, &lt;a href="http://go.microsoft.com/?linkid=9684521"&gt;download it&lt;/a&gt; today!&lt;/p&gt;</description></item><item><title>Microsoft Launches New Open Source CodePlex Foundation</title><link>http://blogs.iis.net/bills/archive/2009/09/10/microsoft-launches-new-open-source-codeplex-foundation.aspx</link><pubDate>Thu, 10 Sep 2009 19:54:25 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3398414</guid><dc:creator>bills</dc:creator><cs:applicationKey>bills</cs:applicationKey><description>&lt;p&gt;Microsoft’s strategy with open source has evolved over the past several years as we strive to make Windows the platform of choice for customers.&amp;#160; My team has participated in that process first hand, we’ve worked hard with the PHP community to ensure &lt;a href="http://blogs.iis.net/bills/archive/2006/09/19/How-to-install-PHP-on-IIS7-_2800_RC1_2900_.aspx"&gt;PHP runs great on Windows&lt;/a&gt;, integrated PHP installation into the Microsoft &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;Web Platform Installer&lt;/a&gt;, and engaged some of the most popular PHP applications like &lt;a href="http://www.microsoft.com/web/gallery/WordPress.aspx"&gt;WordPress&lt;/a&gt;, &lt;a href="http://www.microsoft.com/web/gallery/AcquiaDrupal.aspx"&gt;Drupal&lt;/a&gt;, and &lt;a href="http://www.microsoft.com/web/gallery/SugarCRM.aspx"&gt;SugarCRM&lt;/a&gt; to ensure customers have a great experience running these applications on Windows and IIS.&amp;#160; We’ve also worked closely with the &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx"&gt;jQuery project&lt;/a&gt; to make it a natural part of building applications with ASP.NET.&amp;#160; &lt;/p&gt;  &lt;p&gt;Today I am happy to be a part of the announcement that Microsoft is &lt;a href="http://port25.technet.com/archive/2009/09/10/the-codeplex-foundation-debuts.aspx"&gt;sponsoring an open source foundation&lt;/a&gt; aptly named &lt;a href="http://codeplex.org/"&gt;CodePlex Foundation&lt;/a&gt;, whose mission is to “enable the exchange of code and understanding among software companies and open source communities”.&amp;#160; I believe the foundation will make it easier for Microsoft and other commercial software companies to participate in open source.&amp;#160; You can read more about the announcement in my interview with &lt;a href="http://port25.technet.com/archive/2009/09/10/the-codeplex-foundation-debuts.aspx"&gt;Peter Galli on Port25&lt;/a&gt; and learn more about the foundation at &lt;a href="http://codeplex.org"&gt;http://codeplex.org&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;The CodePlex Foundation is a completely separate organization from Microsoft.&amp;#160; To help form the foundation, we have formed an interim board of directors comprised of three Microsoft employees and three non-Microsoft employees, and elected Sam Ramji as the President of the Board.&amp;#160; Microsoft has also donated $1 million US dollars to help the foundation get started and is transferring the use rights to the “CodePlex” term, along with the codeplex.org domain name to the CodePlex Foundation.&amp;#160; &lt;/p&gt;  &lt;p&gt;I feel lucky to be a part of the &lt;a href="http://codeplex.org/board-of-directors.aspx"&gt;interim board of directors&lt;/a&gt; as we spend the next 100 days working together with the board of advisors, partners and you to structure how the foundation will work.&amp;#160; We don’t have all of the answers and need your help to make it a success.&amp;#160; You can read more about how to participate here: &lt;a title="http://codeplex.org/participate.aspx" href="http://codeplex.org/participate.aspx"&gt;http://codeplex.org/participate.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As always, I look forward to hearing your comments and suggestions about the new foundation.&lt;/p&gt;</description></item><item><title>ASP.NET MVC: What is it and should I use it?</title><link>http://blogs.iis.net/webtopics/archive/2009/09/01/asp-net-mvc-what-is-it-and-should-i-use-it.aspx</link><pubDate>Tue, 01 Sep 2009 19:49:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3384179</guid><dc:creator>Anonymous</dc:creator><cs:applicationKey>webtopics</cs:applicationKey><description>&lt;P&gt;In March of this year, we released ASP.NET MVC. Since then, many ASP.NET developers have been perplexed about MVC. Many developers aren't quite sure what MVC is and what it means for ASP.NET developers. Many more developers have some level of understanding when it comes to MVC but are not sure when it should be used and why. This post will hopefully shed some light on some of the confusion surrounding MVC.&lt;/P&gt;
&lt;P class=note&gt;&lt;SPAN style="FONT-SIZE: large"&gt;&lt;STRONG&gt;More Info&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR&gt;You can download ASP.NET MVC from the &lt;A href="http://www.asp.net/mvc" target=_blank mce_href="http://www.asp.net/mvc"&gt;ASP.NET MVC site&lt;/A&gt;. A more convenient means of downloading MVC and other Microsoft Web technologies is the Web Platform Installer available &lt;A href="http://www.microsoft.com/web/downloads/platform.aspx" target=_blank mce_href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;A Brief Overview of ASP.NET MVC&lt;/H2&gt;
&lt;P&gt;ASP.NET MVC is a framework that adds support for the MVC design pattern to ASP.NET. Therefore, in order to really understand what ASP.NET MVC is, you need to first understand what MVC is.&lt;/P&gt;
&lt;P&gt;MVC is an acronym that stands for Model / View / Controller. MVC is a programming architecture that aids developers with separating different components of an application. Let's review each component of MVC individually as they relate to ASP.NET MVC.&lt;/P&gt;
&lt;H3&gt;The Model&lt;/H3&gt;
&lt;P&gt;The model in an MVC application stores the application data or state of the application. The model is often a database, an XML file, etc. However, because the model is designed to encapsulate the data layer in the application, you will typically not see the data source correlated with the model with regards to MVC. &lt;/P&gt;
&lt;P&gt;In an ASP.NET MVC application, the model typically uses LINQ to SQL or LINQ to Entities.&lt;/P&gt;
&lt;H3&gt;The View&lt;/H3&gt;
&lt;P&gt;The view is the user interface that your site visitors to see data from your model. In an ASP.NET MVC application, web forms (ASPX pages) are typically used to display the view, but there's a significant difference between an MVC view's page and a typical ASP.NET web form. Most specifically, an MVC view doesn't use the typical postback model and the page lifecycle that you are used to when using web forms doesn't exist with MVC views.&lt;/P&gt;
&lt;P class=note&gt;&lt;SPAN style="FONT-SIZE: large"&gt;&lt;STRONG&gt;More Info&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;You don't have to use ASP.NET web forms as the view engine for MVC. Check out &lt;A href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=MVCContrib" target=_blank mce_href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=MVCContrib"&gt;MVC Contrib on CodePlex&lt;/A&gt; for more information.&lt;/P&gt;
&lt;P&gt;It's easy to make the mistake of thinking of the view as the component in MVC that handles user input and controls the interaction with the user. In fact, it's the controller that takes on this role. The view is strictly limited to displaying data from the model.&lt;/P&gt;
&lt;H3&gt;The Controller&lt;/H3&gt;
&lt;P&gt;The controller is responsible for handling the interaction with the user, for communicating with the model, and for determining which view to display to the user. The controller is derived from System.Web.Mvc.Controller.&lt;/P&gt;
&lt;P&gt;The controller defines one or more &lt;EM&gt;actions&lt;/EM&gt; that can be invoked using a URL entered into a web browser. For example, consider the following URL:&lt;/P&gt;
&lt;P&gt;http://www.mysite.com/products/display/43&lt;/P&gt;
&lt;P&gt;A request such as this one would be handed off to the ProductsController where the &lt;EM&gt;display&lt;/EM&gt; action would be invoked. In this particular case, that action might then display a view of product number 43. The routing of the URL to a particular controller is configured using &lt;EM&gt;routes&lt;/EM&gt; that are defined in the global.asax of the MVC application.&lt;/P&gt;
&lt;P class=note&gt;&lt;SPAN style="FONT-SIZE: large"&gt;&lt;STRONG&gt;More Info&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR&gt;For more detailed information on controllers and actions, see &lt;A href="http://msdn.microsoft.com/en-us/library/dd410269.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd410269.aspx"&gt;the MSDN documentation&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;What exactly is an action? An action is simply a method of the controller class that meets a few specific requirements.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;An action method must be public&lt;/LI&gt;
&lt;LI&gt;An action method cannot be overloaded&lt;/LI&gt;
&lt;LI&gt;An action method cannot be static&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=note&gt;&lt;SPAN style="COLOR: #ff0000; FONT-SIZE: large"&gt;&lt;STRONG&gt;Warning&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;BR&gt;It's important to keep security in mind when developing your action methods. For example, based on the above URL, one could conclude that browsing to http://www.mysite.com/products/delete/43 would delete product number 43! The Authorize attribute can be used to restrict access to a controller's actions. See &lt;A href="http://msdn.microsoft.com/en-us/library/dd381413.aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd381413.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd381413.aspx&lt;/A&gt; for more information.&lt;/P&gt;
&lt;H2&gt;Benefits of MVC&lt;/H2&gt;
&lt;P&gt;In order to maintain state in an ASP.NET web forms application, ASP.NET uses encoded data in a hidden form field via a feature called &lt;EM&gt;viewstate&lt;/EM&gt;. Viewstate does pretty well at providing the illusion of a stateful application, but there are times when problems are encountered. For example, in large applications, viewstate can become very large. Large viewstate not only increases your payload across the network, but it can also impact your search engine ranking by pushing readable page content far down in the rendered code. &lt;/P&gt;
&lt;P class=note&gt;&lt;SPAN style="FONT-SIZE: large"&gt;&lt;STRONG&gt;More Info&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR&gt;The problem of large viewstate was greatly improved in ASP.NET 2.0, and you can expect even more improvements in ASP.NET 4.0.&lt;/P&gt;
&lt;P&gt;ASP.NET web forms developers also have to take the page lifecycle into account, and dealing with &lt;EM&gt;when&lt;/EM&gt; to do certain things can be as much or more frustrating than figuring out &lt;EM&gt;how&lt;/EM&gt; to do something. MVC does away with this kind of frustration because it is truly stateless. Postbacks and the web forms page lifecycle no longer exist. &lt;/P&gt;
&lt;P&gt;Another advantage when using MVC is that it allows for full control over the rendered HTML. In a web forms application, HTML code is rendered in large part by server controls, and developers have relatively little control over the code that is generated. The HTML code in an MVC view, on the other hand, is entirely controlled by the developer of the view. &lt;/P&gt;
&lt;P&gt;MVC also lends itself well to a separated approach to development. One developer can work on the controller class while another developer works on the view. This design methodology also aids in testing. It's extremely difficult to test one particular piece of a web forms application because of the reliance of all of the other controls on the page and the managed runtime. An MVC application can be tested much more easily and efficiently because the model, the view, and the controller are all separate components.&lt;/P&gt;
&lt;P class=note&gt;&lt;SPAN style="FONT-SIZE: large"&gt;&lt;STRONG&gt;More Info&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR&gt;You can find a great overview of the benefits and drawbacks of both MVC and web forms in &lt;A href="http://msdn.microsoft.com/en-us/magazine/dd942833.aspx#id0080017" target=_blank mce_href="http://msdn.microsoft.com/en-us/magazine/dd942833.aspx#id0080017"&gt;Dino Esposito's Cutting Edge article&lt;/A&gt;. More great information is available on Shiju Varghese's &lt;A href="http://weblogs.asp.net/shijuvarghese/archive/2008/07/09/asp-net-mvc-vs-asp-net-web-form.aspx" target=_blank mce_href="http://weblogs.asp.net/shijuvarghese/archive/2008/07/09/asp-net-mvc-vs-asp-net-web-form.aspx"&gt;blog post&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;MVC or Web Forms?&lt;/H2&gt;
&lt;P&gt;Now that you've got a basic understanding of what ASP.NET MVC is and what it offers, you may be wondering if MVC is the way to go with your future ASP.NET applications. Let's look at a few scenarios that might help you decide if MVC is right for your next ASP.NET project.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Choose MVC if . . . &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You are well-versed in the architecture of MVC. If you aren't comfortable with how to design a controller, MVC probably isn't a good choice.&lt;/LI&gt;
&lt;LI&gt;You want full control over the HTML that is rendered in the browser and you can afford the development time and overhead to do all of your own markup.&lt;/LI&gt;
&lt;LI&gt;You need to create efficient unit tests for your user interface without the overhead of the entire managed runtime, etc.&lt;/LI&gt;
&lt;LI&gt;You want full control over how your URLs are formed.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Choose web forms if . . .&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You are not familiar with designing MVC applications.&lt;/LI&gt;
&lt;LI&gt;You need to minimize development time.&lt;/LI&gt;
&lt;LI&gt;You want a feature-rich user-interface (such as GridViews, etc.) to display data with rich interaction without substantial development investment.&lt;/LI&gt;
&lt;LI&gt;You are already invested in server controls, either from your own development or from 3rd parties.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;These are just a few of the reasons why you might choose one framework over another. Obviously, no one can tell you what decision to make for your application. Ultimately, the decision is up to you, but hopefully the information I've provided here (along with some good links) will help you to decide as you approach your next project.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9890048" width="1" height="1"&gt;</description></item></channel></rss>