<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5704450</id><updated>2012-01-25T13:52:35.672-08:00</updated><category term='ASP.NET 4.0'/><category term='Team'/><category term='visual'/><category term='Visual Studio'/><category term='Microsoft'/><category term='MVC'/><category term='VS 2005'/><category term='Program Manager'/><category term='SQL Server'/><category term='Web Packages'/><category term='Thoughts'/><category term='Hobbiest'/><category term='CTP'/><category term='vs 2010'/><category term='IIS 5.1'/><category term='Visual Studio 2010'/><category term='Dec 2007'/><category term='Packaging'/><category term='Web'/><category term='Testing'/><category term='Web Development'/><category term='XDT'/><category term='Visual Studio 2008'/><category term='Visual Studio Development Server'/><category term='Split View'/><category term='TDD'/><category term='msdeploy'/><category term='Vishal R. Joshi'/><category term='VS 2010 SP1'/><category term='Web Deployment Projects'/><category term='Debugging'/><category term='Windows Azure'/><category term='Master Pages'/><category term='IIS6'/><category term='Web Site'/><category term='ASP.NET Development Server'/><category term='MIX 2008'/><category term='HTML5'/><category term='web.config'/><category term='WDP'/><category term='web.config transformation'/><category term='VS 2008'/><category term='WAP'/><category term='Team Build'/><category term='Web Dev Tools'/><category term='WebMatrix'/><category term='CSS'/><category term='Javascript'/><category term='type inferencing'/><category term='SharePoint'/><category term='Jobs'/><category term='Web PI 3'/><category term='&quot;microsoft&quot;'/><category term='Projec System'/><category term='VS 10'/><category term='&quot;number of bloggers&quot;'/><category term='IIS'/><category term='Web Deployment'/><category term='ASP.NET MVC 3'/><category term='1-Click Publish'/><category term='Orcas'/><category term='PHP'/><category term='Orchard'/><category term='Cassini'/><category term='Web Application Projects'/><category term='List View Control'/><category term='Publish'/><category term='NuGet'/><category term='CSS3'/><category term='TechEdME'/><category term='Database'/><category term='SQL Compact 4'/><category term='MVC Preview 2'/><category term='DB'/><category term='IE8'/><category term='ASP.NET MVC Framework'/><category term='Razor'/><category term='HTML'/><category term='Microsoft Tag'/><category term='Web Deploy'/><category term='Intellisense'/><category term='Web Standards'/><category term='DB Deployment'/><category term='Multitargeting'/><category term='VS'/><category term='IIS7'/><category term='ASP.Net'/><category term='IIS Manager'/><category term='SQL Scripting'/><category term='IIS Express'/><category term='Entity Framework'/><category term='Silverlight'/><category term='Feature Delegation'/><title type='text'>Vishal Joshi's Tangent</title><subtitle type='html'>var www != war;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default?start-index=101&amp;max-results=100'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>278</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5704450.post-6813871222110597437</id><published>2011-11-03T21:51:00.001-07:00</published><updated>2011-11-03T21:51:00.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebMatrix'/><title type='text'>WebMatrix 2 Beta</title><content type='html'>&lt;p&gt;Soon after starting work on &lt;a href="http:// http://webmatrix.com/next"&gt;WebMatrix&lt;/a&gt; engineering, I got an opportunity to launch WebMatrix 2 Beta at &lt;a href="http://buildwindows.com"&gt;//build&lt;/a&gt;.&amp;#160; For those who are not familiar with WebMatrix it is all in one web development tool which is inspirational as well as functional at the same time.&amp;#160; It is lightweight enough that you get a web development tool, framework, db, web server and more under 50MB and based on our testing it installs in around 2 mins on a 2GB RAM, Windows 7 machine with .NET Framework pre-installed.&amp;#160; Typically such tools cost $50-100 but WebMatrix is yours for free &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh5.ggpht.com/-BZMOGAierh4/TrNvMTuABsI/AAAAAAAABPI/W6EtQe2JNE0/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;p&gt;I was involved with &lt;a href="http://www.microsoft.com/web/webmatrix/"&gt;WebMatrix 1&lt;/a&gt; project which we launched on Jan 13th 2011 and it has only been few months since release of WebMatrix 1 that we have WebMatrix 2 Beta out.&lt;/p&gt;  &lt;p&gt;If you have not installed WebMatrix 2, you should install it now:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=webmatrix&amp;amp;prerelease=true"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-VH4blE3C-Ow/TrNvMl2z9kI/AAAAAAAABPQ/nADoPsVgtfk/image%25255B19%25255D.png?imgmax=800" width="171" height="54" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-DXvfWOt3_yg/TrNvMkBTKTI/AAAAAAAABPY/5tpbw01c7gw/s1600-h/image%25255B5%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-84Loi6AKi_g/TrNvM8k8QgI/AAAAAAAABPg/4s-D9CpY6so/image_thumb%25255B3%25255D.png?imgmax=800" width="293" height="293" /&gt;&lt;/a&gt;There are bunch of NEW features in WebMatrix 2 Beta on top of &lt;a href="http://www.microsoft.com/web/webmatrix/"&gt;WebMatrix 1&lt;/a&gt;, but I wanted to just call out few top items:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Even more seamless and awesome integration with &lt;a href="http://www.microsoft.com/web/gallery/categories.aspx"&gt;Application Gallery&lt;/a&gt; where now you will not have to fill in the standard application installation parameters&lt;/li&gt;    &lt;li&gt;OSS Application specific code completion which means users of popular apps like WordPress can get help customized to their applications&lt;/li&gt;    &lt;li&gt;Custom look and feel for each Web Application which means if you are editing Umbraco you will feel like WebMatrix is designed for Umbraco with specific contextual actions called out by application authors.&lt;/li&gt;    &lt;li&gt;Intlellisense for HTML, CSS, JS, C#, VB, ASP.NET Razor as well as PHP.&lt;/li&gt;    &lt;li&gt;Support for HTML5, CSS3 as well as jQuery constructs.&lt;/li&gt;    &lt;li&gt;New awesome tools like color picker.&lt;/li&gt;    &lt;li&gt;Completely revamped Database workspace where you can now execute multiple queries.&lt;/li&gt;    &lt;li&gt;Extensibility support by which you can write your own extension for WebMatrix.&amp;#160; And trust me it is so easy that you can whip out a ribbon button to do something cool just within minutes.&lt;/li&gt;    &lt;li&gt;NuGet integration to allow you to build your app with community by your side.&lt;/li&gt;    &lt;li&gt;Remote tools which will allow you to see the server files and even edit them within seconds.&lt;/li&gt;    &lt;li&gt;Integrated learning experience with learnable, pluralsight and appendto&lt;/li&gt;    &lt;li&gt;And more and more…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can read all about it at &lt;a href="http://webmatrix.com/next"&gt;http://webmatrix.com/next&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" border="0" alt="BUILD" align="left" src="http://www.buildwindows.com/themes/buildtheme/content/build_logo.png" /&gt;&lt;/p&gt;        &lt;p&gt;&amp;#160; As I mentioned earlier I gave the WebMatrix 2 launch talk at //build/ in September 2011.&amp;#160; This talk was recorded and is now available for you to view below.&amp;#160; Hope you will enjoy it.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;iframe style="width: 942px; height: 540px" src="http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-825T/player?w=960&amp;amp;h=544" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-6813871222110597437?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/6813871222110597437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2011/11/webmatrix-2-beta.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6813871222110597437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6813871222110597437'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2011/11/webmatrix-2-beta.html' title='WebMatrix 2 Beta'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-BZMOGAierh4/TrNvMTuABsI/AAAAAAAABPI/W6EtQe2JNE0/s72-c/wlEmoticon-smile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-7137567014700429198</id><published>2011-11-03T20:59:00.001-07:00</published><updated>2011-11-03T20:59:07.514-07:00</updated><title type='text'>More web stuff at Microsoft</title><content type='html'>&lt;p&gt;It has been pretty busy lately and I never really got an opportunity to come out and post a fresh update on the blog but better late then never.&lt;/p&gt;  &lt;p&gt;I wanted to share that after working on &lt;a href="http://www.microsoft.com/visualstudio/en-us"&gt;Visual Studio&lt;/a&gt;, &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-web-developer-express"&gt;Visual Web Developer&lt;/a&gt;,&amp;#160; and &lt;a href="http://www.asp.net/"&gt;ASP.NET&lt;/a&gt; for couple of&amp;#160; major releases like VS 2010, VS 11, ASP.NET 4.0, ASP.NET 4.5,&amp;#160; MVC etc, I am now starting to work on &lt;a href="http://www.microsoft.com/windowsazure/"&gt;Windows Azure&lt;/a&gt;, &lt;a href="http://www.microsoft.com/web/webmatrix/next/"&gt;WebMatrix&lt;/a&gt;,&amp;#160; &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;Web Platform Installer&lt;/a&gt;, &lt;a href="http://www.microsoft.com/web/"&gt;Microsoft.com/web&lt;/a&gt;, &lt;a href="http://www.microsoft.com/web/hosting/home"&gt;Web Hosting Gallery&lt;/a&gt;, &lt;a href="http://www.microsoft.com/web/gallery/categories.aspx"&gt;Web Application Gallery&lt;/a&gt; and several related projects.&amp;#160; It is all big happy family so it is going to be fun as everything is web after all.&amp;#160; As you can imagine it is a blast working on this team and I have ever thankful for having such a great and talented team around me.&lt;/p&gt;  &lt;p&gt;Some time I can share how it feels like working on all these different projects but for now I at least wanted to come here, say hello and let you all know I am alive and kicking.&amp;#160; Thanks!!&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-7137567014700429198?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/7137567014700429198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2011/11/more-web-stuff-at-microsoft.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7137567014700429198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7137567014700429198'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2011/11/more-web-stuff-at-microsoft.html' title='More web stuff at Microsoft'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-5949778866055007990</id><published>2011-07-13T00:54:00.001-07:00</published><updated>2011-07-13T00:54:56.708-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deploy'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='vs 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2010 SP1'/><title type='text'>Documenting Key End-to-End Deployment Scenarios</title><content type='html'>&lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;p&gt;The &lt;a href="http://technet.microsoft.com/en-us/library/dd568996(WS.10).aspx"&gt;IIS Web Deployment Tool (Web Deploy)&lt;/a&gt; and the &lt;a href="http://msdn.microsoft.com/en-us/library/dd394698.aspx"&gt;deployment features introduced in Visual Studio 2010&lt;/a&gt; enable you to automate many deployment tasks, but we have heard you all that many common scenarios not yet documented fully. We are addressing this need by creating step-by-step walkthroughs that will guide you from beginning to end through scenarios that address common real-world needs. &lt;strong&gt;Interestingly, this blog post is not the documentation of the solution but actual documentation of problem statements. &lt;/strong&gt;This post presents the first set of scenarios that we have identified and solicit your feedback to help us determine they are representative enough or not.&amp;#160; If you have any feedback as usual you can post them here as comments or feel free to send me an email at &lt;a href="mailto:Vishal.Joshi@Microsoft.com"&gt;Vishal.Joshi@Microsoft.com&lt;/a&gt;.&amp;#160; So let’s&lt;/p&gt;  &lt;h4&gt;Scenario 1: Enterprise Deployment with Continuous Integration&lt;/h4&gt;  &lt;p&gt;In this scenario, a solution that includes multiple web application projects is deployed to test, staging, and production environments, using a continuous integration process for staging and production.&lt;/p&gt;  &lt;h5&gt;Target Environments&lt;/h5&gt;  &lt;p&gt;The &lt;strong&gt;TESTING &lt;/strong&gt;environment consists of a server that runs IIS 7.5 and a server that runs SQL Server 2008 R2. The developer machine has a network connection to the test servers, and the developer uses one-click publish to deploy to testing environment.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;STAGING&lt;/strong&gt; consists of a web farm (2 servers running IIS 7.5) and a database server that runs SQL Server 2008 R2. The developer machine has network access to a TFS server that acts as a source code repository, and the TFS server has network access to the staging servers. (The developer machine does not have direct access to the staging environment, and the developer does not have administrative rights on the staging servers.) Team Build builds the Visual Studio solution, runs unit tests, and publishes to staging. Each time that Team Build performs build and deployment, it simultaneously creates a deployment package (web deploy .zip file) for use in deploying to production.&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;PRODUCTION &lt;/strong&gt;environment mirrors staging except that a firewall (or perhaps even different domains) prevents direct access for publishing from the TFS server to production. When a build is approved for production, the IT department uses the package created when TFS publishes to staging to deploy to the production servers.&lt;/p&gt;  &lt;p&gt;The diagram below illustrates this scenario:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-MTTBsd-5Qd4/Th1PSxwraqI/AAAAAAAABOM/qa1lxe6JEHs/s1600-h/Enterprise_Scenario_Diagram%25255B12%25255D.png"&gt;&lt;img style="display: inline" title="Enterprise_Scenario_Diagram" alt="Enterprise_Scenario_Diagram" src="http://lh4.ggpht.com/-ZXbSs7A1lxA/Th1PTuyUHMI/AAAAAAAABOQ/BG9S15YmMgE/Enterprise_Scenario_Diagram_thumb%25255B10%25255D.png?imgmax=800" width="636" height="652" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enterprise scenarios may have a QA environment set up in a manner similar to staging; however, for the purposes of demonstrating how to set up deployment it's not necessary to include that here, because the process would be similar to the process for setting up staging.&lt;/p&gt;  &lt;h5&gt;Visual Studio Solution&lt;/h5&gt;  &lt;p&gt;The Visual Studio solution to be deployed consists of multiple web application projects, a class library project, and a unit test project. Deployment must take into account the following considerations:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;One of the projects uses ASP.NET membership functionality, and the membership database must be deployed. Account information can be deployed to test but not to staging or production. &lt;/li&gt;    &lt;li&gt;One of the projects uses a SQL Server database that is accessed using the Entity Framework (Database First, using an .edmx file). On initial deployment to any environment, only the structure (schema) should be deployed. For any database deployment after the initial deployment, data already entered online in that environment must be preserved. &lt;/li&gt;    &lt;li&gt;The class library project creates an assembly for a custom control that is used in one of the projects. This assembly needs to be installed in the GAC as part of the deployment process. &lt;/li&gt;    &lt;li&gt;The custom control gets a default value from the registry. The registry value needs to be different in each environment and needs to be updated when the solution is deployed. (This particular use of registry settings is not common, but updating the registry is a common need, and this provides a simple way of integrating a registry update into the scenario.) &lt;/li&gt;    &lt;li&gt;The Web.config file contains settings that must be different for debug vs. release builds, and settings that must be different for different target environments. &lt;/li&gt;    &lt;li&gt;One of the web projects includes a folder for log files. The deployment process must not copy files in this folder from source to destination and must not delete files from the folder on the target server. &lt;/li&gt;    &lt;li&gt;IIS settings for error handling and authentication must be set up on the target server during deployment. For the test environment these can be the same as the settings on the developer machine, but for staging and production the settings are different. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Some additional deployment considerations apply only to the automated deployment from TFS for staging and production:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Deployment should occur only if the unit tests are successful. &lt;/li&gt;    &lt;li&gt;The web projects need to be precompiled before deployment. &lt;/li&gt;    &lt;li&gt;The IIS settings for staging and production are taken from IIS on the TFS server. (This is a limitation of the current release of Visual Studio and Web Deploy; when the walkthroughs are updated for the next release of the software, hopefully IIS will not be required on the TFS server (keeping fingers crossed &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh3.ggpht.com/-LcsAU8E59RM/Th1PTxVevxI/AAAAAAAABOU/zUoGjKX-9Hs/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" /&gt;) &lt;/li&gt;    &lt;li&gt;App_offline.htm must be set up at the start of deployment and removed at the end. &lt;/li&gt;    &lt;li&gt;Deployment activities should be logged. When deployment completes or fails, email notifications should be sent to designated recipients. &lt;/li&gt;    &lt;li&gt;If deployment fails, the previous deployment's package should be redeployed, or the current deployment should be retried. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Tasks Illustrated&lt;/h5&gt;  &lt;p&gt;The walkthroughs for this scenario would guide you through the following tasks&amp;quot;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Downloading the Visual Studio solution to be deployed. &lt;/li&gt;    &lt;li&gt;Setting up the test server. &lt;/li&gt;    &lt;li&gt;Using one-click publish to deploy to testing servers:      &lt;ul&gt;       &lt;li&gt;Initial deployment. &lt;/li&gt;        &lt;li&gt;Redeployment without a database change (for example, an update to code in a web page). &lt;/li&gt;        &lt;li&gt;Redeployment after making a database schema change. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Setting up staging and production servers. &lt;/li&gt;    &lt;li&gt;Setting up the build server. &lt;/li&gt;    &lt;li&gt;Three deployments to staging (initial, web page change, database change). &lt;/li&gt;    &lt;li&gt;Three deployments to production (initial, web page change, database change). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For the Visual Studio 2010 version of the walkthrough, database updates will involve running custom SQL scripts as part of the deployment. The scripts will be created manually; tools such as TSData and Red Gate can be used to generate such scripts, but those tools will not be covered in these walkthroughs. Eventually we will look at smoothing this flow as well.&lt;/p&gt;  &lt;h4&gt;Scenario 2: Enterprise Deployment for MVC and Entity Framework Code First&lt;/h4&gt;  &lt;p&gt;This is a variant of the first scenario that differs from it in the following ways:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The web projects are MVC instead of Web Forms. &lt;/li&gt;    &lt;li&gt;Entity Framework Code First is used instead of Database First (no .edmx file). &lt;/li&gt;    &lt;li&gt;TeamCity is used instead of TFS. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Scenario 3: Enterprise Deployment for Web Site Projects&lt;/h4&gt;  &lt;p&gt;This is another variant of the first scenario that differs from it in the following ways:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The web projects are web site projects instead of web application projects or MVC. &lt;/li&gt;    &lt;li&gt;Web Deployment Projects (WDP 2010) are used. &lt;/li&gt;    &lt;li&gt;One-click publish is not available for web site projects, so a web deployment package is used for deploying to test. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For those of you who work in enterprise environments, do these scenarios adequately represent the kinds of challenges you face in deploying ASP.NET web applications? Are any key pieces missing? We cannot answer every question in these walkthroughs, but if there are other issues commonly faced by your team, we can add solutions for them to the walkthroughs as well.&lt;/p&gt;  &lt;p&gt;Your thoughts and feedback are welcome.&amp;#160; Also I want to thank Tom Dykstra, Bilal Aslam &amp;amp; Sayed Hashimi on our team who will be helping on putting together a lot of this content for you.&lt;/p&gt;  &lt;p&gt;Thanks for reading!!&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-5949778866055007990?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/5949778866055007990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2011/07/documenting-key-end-to-end-deployment.html#comment-form' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/5949778866055007990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/5949778866055007990'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2011/07/documenting-key-end-to-end-deployment.html' title='Documenting Key End-to-End Deployment Scenarios'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-ZXbSs7A1lxA/Th1PTuyUHMI/AAAAAAAABOQ/BG9S15YmMgE/s72-c/Enterprise_Scenario_Diagram_thumb%25255B10%25255D.png?imgmax=800' height='72' width='72'/><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-6291154067894840521</id><published>2011-06-15T17:09:00.001-07:00</published><updated>2011-06-16T18:30:03.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS3'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Standards'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2010 SP1'/><title type='text'>Announcing HTML5 &amp; CSS3 support for Visual Studio 2010 SP1</title><content type='html'>&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="882"&gt;         &lt;p&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-USMzyH7-uk0/TflJtMKRxyI/AAAAAAAABNk/cGLXoaUuQpc/image%25255B6%25255D.png?imgmax=800" width="200" height="169" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&gt;Since the last few months it feels like web standards are moving at pace that we would really like them to move. Every browser is pushing the envelope ahead including our very own IE9. For the first time it feels like web is getting the extra freedom of expression that it deserves and we want to contribute to that.&lt;/p&gt;          &lt;p&gt;ASP.NET developers have been asking for HTML5 &amp;amp; CSS3 support all the time and today we are super excited to announce the public availability of &lt;b&gt;Visual Studio Web Standards Update&lt;/b&gt; which brings a ton of &lt;b&gt;HTML5 &amp;amp; CSS3 support to Visual Studio 2010 SP1&lt;/b&gt;. VS Web Standards Update is a free extension available for anyone who is using Visual Studio 2010 SP1 and it provides HTML5 &amp;amp; CSS3 support based on current W3C specifications.&lt;/p&gt;          &lt;p&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh5.ggpht.com/-7BGmwZPzfz8/TflJtoRxg9I/AAAAAAAABNg/D7qRqH227cA/clip_image001%25255B7%25255D.png?imgmax=800" width="274" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td width="288"&gt;         &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="1170"&gt;         &lt;p&gt;&lt;b&gt;HTML5&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/-jLxNGvoJm3w/TflJt5cexjI/AAAAAAAABNQ/d6OSuR-Hznk/s1600-h/clip_image004%25255B4%25255D.png"&gt;&lt;img style="display: inline" title="clip_image004" alt="clip_image004" src="http://lh5.ggpht.com/-Sw9fTFAswZA/TflJuPMvUQI/AAAAAAAABNU/DKa4ASQCTrA/clip_image004_thumb%25255B1%25255D.png?imgmax=800" width="324" height="35" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;VS Web Standards Update provides you intellisense and validation for most common HTML 5 features like:            &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td valign="top" width="358"&gt;                   &lt;p&gt;· &lt;a href="http://www.w3.org/TR/html5/video.html#video"&gt;Video &amp;amp; related tags&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/html5/video.html#audio"&gt;Audio &amp;amp; related tag&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3schools.com/html5/tag_input.asp"&gt;New input types like email, url, date etc&lt;/a&gt;&lt;/p&gt;                 &lt;/td&gt;                  &lt;td valign="top" width="402"&gt;                   &lt;p&gt;· &lt;a href="http://dev.w3.org/html5/spec/dnd.html"&gt;Drag &amp;amp; Drop support&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/WAI/intro/aria"&gt;Accessibility standard WAI-ARIA&lt;/a&gt;&lt;/p&gt;                 &lt;/td&gt;                  &lt;td valign="top" width="378"&gt;                   &lt;p&gt;· &lt;a href="http://www.w3.org/TR/microdata/"&gt;Microdata&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://schema.org/docs/gs.html"&gt;Schema.org &amp;amp; more SEO friendly goodness&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;·&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Browser APIs&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;· &lt;u&gt;&lt;a href="http://dev.w3.org/geo/api/spec-source.html"&gt;Geo-Location&lt;/a&gt;&lt;/u&gt; - Having location aware websites is growing trend and now you will have full intellisense and validation within Visual Studio for creating websites which are location aware. For sample view the source for the &lt;a href="http://ie.microsoft.com/testdrive/HTML5/Geolocation/Default.html"&gt;IE9 test drive demo&lt;/a&gt;.&lt;/p&gt;          &lt;p&gt;· &lt;u&gt;&lt;a href="http://www.w3.org/TR/webstorage/"&gt;Local Storage&lt;/a&gt; &lt;/u&gt;– IE has been supporting &lt;a href="http://msdn.microsoft.com/en-us/library/cc197062%28VS.85%29.aspx"&gt;local storage from IE8 onwards&lt;/a&gt;, now Visual Studio will provide you with full fidelity intellisense to create sites which can save state within browser. For sample of try view source on &lt;a href="http://html5demos.com/storage"&gt;HTML5 Demo Site&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;CSS3 &lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-AWW_RjGDR6k/TflJvaGyEmI/AAAAAAAABNY/rCiU99evUzg/s1600-h/clip_image005%25255B4%25255D.png"&gt;&lt;img style="display: inline" title="clip_image005" alt="clip_image005" src="http://lh6.ggpht.com/-0-aOcod2-Gs/TflJvqSG6iI/AAAAAAAABNc/An4p8uVphtY/clip_image005_thumb%25255B1%25255D.png?imgmax=800" width="307" height="35" /&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;This update supports intellisense and validation for most of the CSS3 modules including:            &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td valign="top" width="358"&gt;                   &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-2d-transforms/"&gt;2D Transforms&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-3d-transforms/"&gt;3D Transforms&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-animations/"&gt;Animations&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-background/"&gt;Background &amp;amp; Borders&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-box/"&gt;Basic Box Model&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-ui/"&gt;Basic UI&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/Talks/2004/0519-CSS-WWW2004/all.htm"&gt;Behavior&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-color/"&gt;Color&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-flexbox/"&gt;Flexible Box Layout&lt;/a&gt;&lt;/p&gt;                 &lt;/td&gt;                  &lt;td valign="top" width="402"&gt;                   &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-fonts/"&gt;Fonts&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-gcpm/"&gt;Generated Content for Paged Media&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-hyperlinks/"&gt;Hyperlink Presentation&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-linebox/"&gt;Line&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-lists/"&gt;Lists&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-marquee/"&gt;Marquee&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-mediaqueries/"&gt;Media Queries&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-multicol/"&gt;Multi Column&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-namespace/"&gt;Namespaces&lt;/a&gt;&lt;/p&gt;                 &lt;/td&gt;                  &lt;td valign="top" width="378"&gt;                   &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-page/"&gt;Paged Media&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-preslev/"&gt;Presentations Levels&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-ruby/"&gt;Ruby&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-selectors/"&gt;Selectors&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-speech/"&gt;Speech&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-syntax/"&gt;Syntax&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-layout/"&gt;Template Layout&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-text/"&gt;Text&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;· &lt;a href="http://www.w3.org/TR/css3-transitions/"&gt;Transitions&lt;/a&gt;&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/p&gt;          &lt;p&gt;Additionally, if you are trying to make websites which work on a variety of platforms and browsers you will love the fact that Web Standards Update not only supports IE specific prefixes like &lt;b&gt;–ms&lt;/b&gt;; but also other vendor prefixes like &lt;b&gt;–webkit&lt;/b&gt; and &lt;b&gt;–moz.&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;With all of the above goodness we hope you all will enjoy this update as much as we did creating it and hope you will share the good news with our larger developer community.&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Sharable Links&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;· Download URL - &lt;a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83"&gt;http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;· VWD Team Announcement post by Mads - &lt;a title="http://blogs.msdn.com/b/webdevtools/archive/2011/06/15/web-standards-update-for-visual-studio-2010-sp1.aspx" href="http://blogs.msdn.com/b/webdevtools/archive/2011/06/15/web-standards-update-for-visual-studio-2010-sp1.aspx"&gt;http://blogs.msdn.com/b/webdevtools/archive/2011/06/15/web-standards-update-for-visual-studio-2010-sp1.aspx&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;· Walkthrough post by Hanselman - &lt;a title="http://www.hanselman.com/blog/AnnouncingTheWebStandardsUpdateHTML5SupportForTheVisualStudio2010Editor.aspx" href="http://www.hanselman.com/blog/AnnouncingTheWebStandardsUpdateHTML5SupportForTheVisualStudio2010Editor.aspx"&gt;http://www.hanselman.com/blog/AnnouncingTheWebStandardsUpdateHTML5SupportForTheVisualStudio2010Editor.aspx&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;Finally, I want to call out that this update is made feasible due to heroic efforts by a lot our team members working on their personal spare time, so please give a huge shout out to our team including &lt;b&gt;Mads Kristensen, Peter Spada, Van Kichline, Aliaksei Baturytski, Damian Edwards, Barry Tang, Bala Chirtsabesan, Alex Gavrilov, Xinyang Qiu, Jon Jung, Scott Hanselman, Teri Schroeppel &amp;amp; Yong Lee.&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;Thanks again!!&lt;/p&gt;          &lt;p&gt;&lt;a name="_MailAutoSig"&gt;Vishal R. Joshi | &lt;/a&gt;&lt;a href="http://vishalrjoshi.com"&gt;http://vishalrjoshi.com&lt;/a&gt; | &lt;a href="http://twitter.com/vishalrjoshi"&gt;@vishalrjoshi&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;PS: &lt;/b&gt;The Web Standards Update works on both VS 2010 SP1 and VWD Express 2010 SP1. Being a VS Extension, it does not support certain CSS3 selector syntax &amp;amp; Browser API intellisense which would require servicing the shipping bits. &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-6291154067894840521?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/6291154067894840521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2011/06/announcing-html5-css3-support-for.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6291154067894840521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6291154067894840521'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2011/06/announcing-html5-css3-support-for.html' title='Announcing HTML5 &amp;amp; CSS3 support for Visual Studio 2010 SP1'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-USMzyH7-uk0/TflJtMKRxyI/AAAAAAAABNk/cGLXoaUuQpc/s72-c/image%25255B6%25255D.png?imgmax=800' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-3673990630548155553</id><published>2011-03-07T00:38:00.001-08:00</published><updated>2011-03-07T00:38:42.956-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET MVC 3'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='TechEdME'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;microsoft&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>ASP.NET Team Sessions at TechEd Dubai</title><content type='html'>&lt;p&gt;The TechEd, Middle East web site does not have deep-linking for the sessions so I thought I would quickly blog it out so that it can be shared easily.&amp;#160; Here are the sessions Scott &amp;amp; I are doing at TechEd Dubai (sorted by date &amp;amp; time)if you are around please stop by:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;-----------------------------------------------------------------------------------------------&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;09 March 2011 10:30 AM - 11:30 AM&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Deep Dive into Razor &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Track: Web Platforms (WEB303) &lt;/p&gt;  &lt;p&gt;Speakers: Scott Hunter &lt;/p&gt;  &lt;p&gt;Razor is the new syntax for building web applications in both ASP.NET Web Pages and ASP.NET MVC. It has a very concise syntax that blurs the transition between code and markup. We will start with a deep dive showing how to program the web using Razor which will include building reusable components called helpers that can share both markup and code in a very natural way. Next we will demonstrate how Razor’s extensibility can be used to use it outside of typical web scenario’s by writing some code using the Razor syntax to send rich emails that contain both text, markup and code. You should walk away knowing how to program that web with Razor and how Razor can be used outside the web to increase your productivity as a rich templating engine. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;-----------------------------------------------------------------------------------------------&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The New Cool Kid on the Block: ASP.NET MVC 3&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;09 March 2011 11:45 AM - 12:45 PM&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Track: Web Platforms (WEB304)&amp;#160; &lt;/p&gt;  &lt;p&gt;Speaker: Vishal Joshi&lt;/p&gt;  &lt;p&gt;ASP.NET MVC 3 with its friends Razor and NuGet are here to make your web development much easier and jazzier. If you are a web developer intending to build standards based, maintainable and extensible apps in a productive fashion, you are not allowed to leave Tech·Ed without learning about ASP.NET MVC 3. It doesn’t matter even if you haven’t played with ASP.NET MVC before, come join us and we will introduce you to it. If you have been working with ASP.NET MVC already, join us and you can hear about all the new toys you now have.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;-----------------------------------------------------------------------------------------------&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;10 March 2011 09:00 AM - 10:00 AM&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What’s New in ASP.NET &amp;amp; Visual Studio for Web Developers &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Track: Web Platforms (&lt;a href=""&gt;WEB305&lt;/a&gt;) &lt;/p&gt;  &lt;p&gt;Speaker: Scott Hunter &lt;/p&gt;  &lt;p&gt;ASP.NET 4 gives you more control than ever over markup as well as adding exciting new features making both client and server side data based applications easier and faster to develop than ever before. With Visual Studio 2010 adding improved support for JavaScript, HTML markup and CSS editing and powerful new web application deployment technology, together, ASP.NET 4 and Visual Studio 2010 make it easier and quicker than ever to develop standards based, CSS styled web applications. We will also cover some of the latest improvements in Visual Studio such as support for Razor Syntax, NuGet and IIS Express.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;-----------------------------------------------------------------------------------------------&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;10 March 2011 10:30 AM - 11:30 AM&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction to Microsoft ASP.NET MVC&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Track: Web Platforms (WEB05L)&amp;#160; &lt;/p&gt;  &lt;p&gt;Speakers: Scott Hunter, Vishal Joshi&lt;/p&gt;  &lt;p&gt;This lab introduces you to developing Web applications with ASP.NET MVC, and teaches you the basic conventions and features contained within it. It also shows you how to unit test your custom controllers and your application's route definitions.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;-----------------------------------------------------------------------------------------------&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;10 March 2011 01:45 PM - 02:45 PM&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Meet the Visual Studio Team&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Track: Developer Tools, Languages, and Frameworks (IAT209) &lt;/p&gt;  &lt;p&gt;Speakers: Lisa Feigenbaum, Shy Cohen, Brian Keller, Vishal Joshi, Scott Hunter &lt;/p&gt;  &lt;p&gt;Session Type: Interactive Discussion &lt;/p&gt;  &lt;p&gt;Audience: Developer &lt;/p&gt;  &lt;p&gt;This is an opportunity to interact with key members of the Visual Studio team. They discuss their areas of expertise and answer any questions you might have.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;-----------------------------------------------------------------------------------------------&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;10 March 2011 03:00 PM - 04:00 PM&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Web Deployment That Can Impress your Boss&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Track: Web Platforms (WEB306) &lt;/p&gt;  &lt;p&gt;Speaker: Vishal Joshi &lt;/p&gt;  &lt;p&gt;If you typically deploy your web applications using Windows Explorer or have a deployment document longer than your resume, please stop. Come see a practical session on how the new deployment goodness in Visual Studio 2010 can help. We dig into Web Deploy (a.k.a. MSDeploy) and deployment from within Visual Studio 2010. Learn how to package up web apps in .zip files, deploy them using UI, or command file, move their settings and databases easily and much more. We start with the basics and ramp it up quickly, exploring team build deployment and advanced techniques. &lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-3673990630548155553?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/3673990630548155553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2011/03/aspnet-team-sessions-at-teched-dubai.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3673990630548155553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3673990630548155553'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2011/03/aspnet-team-sessions-at-teched-dubai.html' title='ASP.NET Team Sessions at TechEd Dubai'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-4315867068750333260</id><published>2011-01-16T15:30:00.001-08:00</published><updated>2011-01-19T14:46:00.446-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebMatrix'/><category scheme='http://www.blogger.com/atom/ns#' term='Orchard'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS Express'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET MVC 3'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deploy'/><category scheme='http://www.blogger.com/atom/ns#' term='NuGet'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Compact 4'/><category scheme='http://www.blogger.com/atom/ns#' term='Razor'/><category scheme='http://www.blogger.com/atom/ns#' term='Web PI 3'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2010 SP1'/><title type='text'>Web Developers can feel like Kids in a Candy Store</title><content type='html'>&lt;p&gt;On Jan 13&lt;sup&gt;th&lt;/sup&gt; 2011, our team released a bunch of goodness for web developers. So much so that I as a web developer feel like a kid in Web Development Candy Store. As a web developer using Microsoft web stack, you might be wondering what technologies are applicable to you and when. This post is intended to give you a view of the Web Development Candy Store in a Q&amp;amp;A format, so let’s begin.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q1. I just heard that there were tons of new goodies released, what is all the noise about?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Microsoft’s web team released a bunch of related technologies for web developers as a new year present. The key releases included ASP.NET MVC 3, IIS Express 7.5, SQL Compact 4, Web Deploy v2, Web Farm Framework, Orchard, Web PI 3 and WebMatrix. Depending on what your focus is many or all of these might be applicable to you.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q2. I use ASP.NET Web Forms what is in for me?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. We love WebForms and there are many things which are directly applicable to you. As an ASP.NET Web Forms developers &lt;b&gt;IIS Express 7.5&lt;/b&gt;, SQL Compact 4, Web Deploy v2, Web PI 3 as well as Web Farm Framework might be very relevant.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q3. What is IIS Express 7.5?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. IIS Express 7.5 is a lightweight standalone web server built from the same code base of full IIS 7.5 (ships in Windows Server 2008 R2) but specifically tailored for local development purposes.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q4. Did we not have Visual Studio Development Server (aka “Cassini”)? Yes. Then, why IIS Express 7.5?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. We always use to get feature requests to support things like SSL, URL Rewrite, new mime types, IIS server configuration and other IIS 7 modules. Cassini’s code base is completely different and it cannot realistically mimic web server IIS. Web developers needed something which is more similar to real IIS during local web development within VS. Lot of the differences between development and production web server causes grief during actual deployments, hence IIS Express 7.5.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q5. But wait, why could web devs not simply use full IIS instead of asking all these features for Cassini?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. On flip side, we use to get request to have full IIS Web Sites run without admin privileges, people having different versions of IIS due to their local dev operating systems being different than web server operating system etc. IIS on web server needs to run as Admin, any IT guy will ascertain that and other hand some firms are against allowing full IIS on developer machines (which I hope changes over a period of time as the security issues which led people to take these steps in pre IIS 6 time frame are long gone). Anyways, IIS Express helps solves all these things plus works on all OS starting Windows XP and above. It is free and will have full integration with Visual Studio 2010 SP1. I anticipate it becoming best practice way of doing local web development pretty soon.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q6. OK cool, is IIS Express 7.5 just for Web Forms?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. No, we always try to invest in things which help Web Forms as well as MVC. This is one such investment which will help all Web projects within Visual Studio 2010 SP1 and above.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q7. Why do you need Visual Studio 2010 “SP1” to support IIS Express 7.5?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Although IIS Express 7.5 is a standalone download, there was a lot of code written to integrate it within Visual Studio 2010 so that you can use it as seamlessly as you use “Cassini” today. As this work was done after Visual Studio 2010 was already released we had to put it as part of “Visual Studio 2010 SP1”.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q8. I am using VS 2010 today; tell me how do I get IIS Express 7.5 working on my box.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Visual Studio 2010 SP1 is available as BETA release on &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=11ea69cb-cf12-4842-a3d7-b32a1e5642e2&amp;amp;displaylang=en"&gt;MS Download Center&lt;/a&gt;. It is a relatively long install (will take around 30-40 mins) but once you have it IIS Express 7.5 integration bits will be installed with it. After you have VS 2010 SP1 then you can download standalone IIS Express 7.5 available in &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;Web PI 3&lt;/a&gt; (Web PI now supports a Search box so just search for IIS 7.5 Express) and you should be all set.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q9. IIS Express 7.5 indeed sounds interesting, where do I learn more about it?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. There is overwhelming amount of content on IIS Express 7.5 on web already but I can certainly simplify your search.&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://weblogs.asp.net/scottgu/archive/2011/01/03/vs-2010-sp1-beta-and-iis-developer-express.aspx"&gt;IIS Express Article by ScottGu&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://blogs.msdn.com/b/webdevtools/archive/2010/12/11/visual-studio-2010-sp1-beta-iis-express-integration.aspx"&gt;IIS Express Article by Sayed&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://learn.iis.net/page.aspx/901/iis-express-faq/"&gt;IIS Express FAQ&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q10. Is there a good comparison between full IIS and IIS Express?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Sure, you can find it on &lt;a href="http://learn.iis.net/page.aspx/901/iis-express-faq/"&gt;IIS.NET site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q11. What if I want the direct IIS Express MSI/EXE to auto install on all of web developer’s boxes across the organization?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Ideally you should use &lt;b&gt;Web PI 3&lt;/b&gt; pointing to the local feed but if you are automating the process then here is the link directly to &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=abc59783-89de-4adc-b770-0a720bb21deb"&gt;MS Download Center&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q12. I do not know much about Web PI 3 that you are referring to, what is it?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Web Platform Installer (Web PI) is a simple unified way to install everything you need related to Microsoft’s Web Platform. As a web developer this is a simple 2-3MB small tool which looks like below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/TTN_izym-0I/AAAAAAAABKk/INu0N2X4YjM/s1600-h/clip_image001%5B3%5D.png"&gt;&lt;img style="margin: 0px; display: inline" title="clip_image001" alt="clip_image001" src="http://lh3.ggpht.com/_E8t3edIzcC8/TTN_jQiOXtI/AAAAAAAABKo/MwrJ2CnFZHE/clip_image001_thumb.png?imgmax=800" width="780" height="540" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This can help you install framework, tools, servers, DBs, web applications etc etc without running around everywhere searching for links to download stuff. Trust me it is goodness.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q13. Won’t it be a good idea to just have Web PI available within VS so that I don’t need to hunt around for it!&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. We thought so too, with VS 2010 SP1 you will have Web PI toolbar within VS. It is enabled when you are within any Web project or you can enable it by going to Views à Toolbars à Web Platfomr Installer. When enabled it looks like &lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TTN_jqwGB7I/AAAAAAAABKs/fzvY403DXBs/s1600-h/clip_image002%5B3%5D.png"&gt;&lt;img style="margin: 0px; display: inline" title="clip_image002" alt="clip_image002" src="http://lh4.ggpht.com/_E8t3edIzcC8/TTN_j8CpF2I/AAAAAAAABKw/8_K-bWRB1N8/clip_image002_thumb.png?imgmax=800" width="229" height="31" /&gt;&lt;/a&gt;. You can use Web PI toolbar to get other goodness that just released, like &lt;b&gt;SQL Compact 4&lt;/b&gt;, Web Deploy v2, Orchard, MVC 3 etc.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q14. Tell me more about SQL Compact 4?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. SQL Compact or SQL CE is a embedded, free and light weight DB from Microsoft. It always use to ship but was never designed to work with Web. SQL Compact 4 is the first release where this DB was engineered to work with Web as well (along with other embedded scenarios).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q15. What does it mean it was engineered to work with Web, what’s so different about Web?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Well, as you know in case of Web multiple requests can hit the server, there are multi-threaded environments and many shared web servers run in partial trust on hosted environments etc. This is quite different from early SQL Compact scenarios which had much more contrainst environment.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q16. Did we not have SQL Express, why do I need SQL Compact?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. If you are using SQL Express perhaps you do not need SQL Compact. For that matter if you are using SQL Server Developer edition or any other full edition you may not need SQL Compact 4 either. Both of SQL Express as well as SQL Server Developer edition and above have *almost* superset functionality of SQL Compact. SQL Compact is more meant for light weight usage, even lighter than SQL Express.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q17. Can you elaborate what light weight scenarios SQL Compact 4 helps me with?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. SQL Compact 4 requires no database installation, literally you do not need to install SQL Compact on your web servers, in case of SQL Express or full SQL Server you do. SQL Compact’s entire &lt;b&gt;DB engine&lt;/b&gt; can simply go inside your web site’s &lt;b&gt;“/bin”&lt;/b&gt; folder and the &lt;b&gt;Database&lt;/b&gt; itself is a .SDF file which can go inside your &lt;b&gt;“App_Data”&lt;/b&gt; folder. At runtime the SQL Compact will run in memory with your ASP.NET Application instead of a separate service which SQL Express &amp;amp; full SQL Server do. This means that you do not need to even purchase a database plan on your web hosting provider if you do not want to J&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q18. You said, I can deploy both SQL Compact 4 DB engine &amp;amp; DB with my web site. How exactly do I do this?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Deploying DB with your site is easy. Your App_Data folder can contain the .SDF file. Your web.config file contains the connectionString to that SDF file and when you copy your web site to the server your SDF file simply goes with it. The interesting part is the SQL Compact 4 DB Engine which has to go to your Bin Folder. VS 2010 &lt;b&gt;SP1&lt;/b&gt; has a feature which makes deploying DB engine with your site only a click away. Simply right click on your project and click “Add Deployable Dependencies”. This will bring up the below dialog:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/TTN_kFQ5aXI/AAAAAAAABK0/SozxDD5RRCA/s1600-h/clip_image003%5B3%5D.png"&gt;&lt;img style="margin: 0px; display: inline" title="clip_image003" alt="clip_image003" src="http://lh6.ggpht.com/_E8t3edIzcC8/TTN_kWU1urI/AAAAAAAABK4/lX80dVxOAt8/clip_image003_thumb.png?imgmax=800" width="571" height="278" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click “OK” and the right binaries, managed as well as native (x86 &amp;amp; x64) will go in your /bin folder. If you know whether your web server is going to be x86 or x64 then you can delete the redundant folder from your /bin saving you probably 1-2MB J&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q19. Do I need to learn new APIs to talk to SQL Compact 4?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. No. SQL Compact 4 is “SQL Server” afterall, it uses the same ADO.Net and you can also use same ORMs like Entity Framework, EF Code First, NHiberate etc with SQL Compact 4. Just the connectionString in your web.config file changes and you are all set to use SQL Compact 4.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q20. Free DB on client as well as server, easy to deploy, super light weight, same APIs as full SQL Server etc etc is all too good to be true, what is the catch with SQL Compact 4?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. There are no catches as such, or maybe I want to rather call it as “a ceiling” up to which SQL Compact can stretch. For most small sites all of the advantages are good enough so they can use SQL Compact easily. Infact for few of my projects I have already started using SQL Compact 4 but I do not use SQL Compact for sites which actively cause DB size to increase. SQL Compact 4 does not support Stored procedures and the file limit for SQL Compact is 4GB. I personally use ORMs so the stored procedures don’t bother me much but the size limit to 4GB is what I use to choose between full SQL Server vs SQL Compact.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q21. Once I deploy my DB on the server as SDF file, then ofcourse my app will modify it then how do I update it for my app’s V2?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Currently you have to update the Database manually, i.e. download it from the server and then edit it using Visual Studio 2010 Database tools or SQL Server Management Studio then re-deploy it to the server. This will mean that you will need to have some downtime on the server when you are making this update. Unfortunately, I do not have a better answer for you now L&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q22. Do all of the Visual Studio Database tools work with SQL Compact 4?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. In Visual Studio 2010 SP1 we did all the work to enable Visual Studio tools like creating new SQL Compact SDF files, editing DBs, creating tables, editing table data, keys/index management, Entity Framework designer, Server/Database Explorer etc for all of Web Projects and Visual Studio SKUs (i.e. &lt;a href="http://asp.net/vwd"&gt;VWD Express&lt;/a&gt; also contains support for SQL Compact 4). This means you will need Visual Studio 2010 SP1 to take advantage of this all.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q23. How do I get SQL Compact 4 working on my machine if I have VS 2010?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. First get VS 2010 SP1 BETA from &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=11ea69cb-cf12-4842-a3d7-b32a1e5642e2&amp;amp;displaylang=en"&gt;MS Download Center&lt;/a&gt;. As I mentioned earlier, it is a long install (will take around 30-40 mins) but once you have it SQL Compact integration bits with Web Projects be installed with it. After you have VS 2010 SP1 then you can download Microsoft Visual Studio Tools for SQL Server Compact 4 from &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;Web PI 3&lt;/a&gt; (click on Databases on the left).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TTdpoKksFDI/AAAAAAAABLc/i2fTvs_fC1E/s1600-h/image%5B8%5D.png"&gt;&lt;img style="border-bottom: ; border-left: ; display: inline; border-top: ; border-right: " title="image" alt="image" src="http://lh5.ggpht.com/_E8t3edIzcC8/TTdponHvKHI/AAAAAAAABLg/OSGOWLLB88c/image_thumb%5B4%5D.png?imgmax=800" width="788" height="547" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q24. Is it possible for me to start with SQL Compact and then decide to go to full SQL Server if I hit the ceiling?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Yes very much so. As the programming model is the same you can use SQL Compact 4 to begin with, and when your site grows in traffic/DB Size then you can move to full SQL Server. In fact that is the very feature which Visual Studio 2010 SP1 and &lt;b&gt;Web Deploy v2&lt;/b&gt; have. They help you to migrate from SQL Compact to SQL Express/full SQL Server.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q25. Where do I learn more about SQL Compact 4?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. There are several places to learn about SQL Compact 4. Start with: &lt;/p&gt;  &lt;p&gt;· &lt;a href="http://blogs.msdn.com/b/sqlservercompact/archive/2010/07/07/introducing-sql-server-compact-4-0-the-next-gen-embedded-database-from-microsoft.aspx"&gt;SQL Compact Team Blog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://robtiffany.com/sql-server-compact/here-comes-sql-server-compact-4-0"&gt;Rob Tiffany’s post on SQL Compact 4&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://weblogs.asp.net/scottgu/archive/2011/01/11/vs-2010-sp1-and-sql-ce.aspx"&gt;ScottGu’s walkthrough on how to use SQL Compact 4 with ASP.NET Web Forms &amp;amp; MVC&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q26. What is Web Deploy? &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Web Deploy is Microsoft’s web deployment backbone. If you are looking for Web Deployment solutions for your ASP.NET Webs and not thinking about Web Deploy then you are missing out the action. You can learn a lot more about Web Deployment with Web deploy at:&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;Overview Post of Web Deployment&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.iis.net/download/WebDeploy"&gt;IIS.NET&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://blogs.msdn.com/b/webdevtools/archive/tags/web+deployment/"&gt;Visual Studio Web Team blog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q27. What’s new in Web Deploy v2 as opposed to v1? &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. From a existing VS user standpoint the big things that v2 of Web Deploy contains is:&lt;/p&gt;  &lt;p&gt;· The ability to move SQL Compact 4 databases to full SQL Server. &lt;/p&gt;  &lt;p&gt;· Tons of bug fixes around reliability and stability.&lt;/p&gt;  &lt;p&gt;· Integration with IIS Express making it possible to deploy (package, publish etc) IIS Express based web sites seamlessly.&lt;/p&gt;  &lt;p&gt;· Side by Side setup with Web Deploy v1.&lt;/p&gt;  &lt;p&gt;· Backward compatibility of Web Deploy v2 to deploy to web servers which still are running on Web Deploy v1.&lt;/p&gt;  &lt;p&gt;· Updated gacAssemly provider which allows deploying an assembly to GAC even if it is not in GAC on the source&lt;/p&gt;  &lt;p&gt;Apart from this, there are bunch of enhancements which makes seamless deployments with hosting partners even easier. It also contains capabilities to deploy a SQL Lite Database. v2 also contains new features which will allow you to not only publish sites to remote locations but also bring them back to local box from hosting environments. In the process of bringing back the site from remote hosting location Web Deploy has to make sure that connectionStrings are modified, physical paths are modified and then when you publish again then they all that is restored on the server. We refer to this as Continuous Publishing and first visible use of the new APIs is in WebMatrix. Web Deploy v2 has bunch of other &lt;b&gt;WebMatrix&lt;/b&gt; related integration work too. Bilal, PM for Web Deploy on our team is working on putting up formal documentation around all of the above plus more over next week or so.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q28. You mentioned WebMatrix, what is it? Do I need it?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. WebMatrix is a free web development tool which is elegantly designed and very inspiring to create website rapidly. It enables you to start with existing popular web sites like &lt;a href="http://www.iis.net/download/WebFarmFramework"&gt;DotNetNuke&lt;/a&gt;, &lt;a href="http://gallery.menalto.com/"&gt;Gallery&lt;/a&gt;, &lt;a href="http://umbraco.org/"&gt;Umbraco&lt;/a&gt;, &lt;b&gt;&lt;a href="http://www.orchardproject.net/"&gt;Orchard&lt;/a&gt;&lt;/b&gt; in addition to PHP based sites like &lt;a href="http://wordpress.org/"&gt;Wordpress&lt;/a&gt;, &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;, &lt;a href="http://www.joomla.org/"&gt;Joomla&lt;/a&gt; and others. It is based on website development workflow of acquiring ready made apps (as mentioned above) to tweaking them, modifying their databases, search engine optimizing them and then seamlessly deploying them to a &lt;b&gt;hosting provider&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;If you are already a Visual Studio user then you perhaps don’t need WebMatrix. If you have not tried Web Development before then WebMatrix is really a great way to start web development. You can try out WebMatrix and learn a tons about it at &lt;a href="http://microsoft.com/web"&gt;http://microsoft.com/web&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q29. How do I find great web hosting providers?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. I worked on a web site over past few months which recently released for this very purpose, it is called Web Hosting Gallery. On this site we display all of our hosting partners and the best hosting offers available on Microsoft Web platform. If you are looking for shared, virual or dedicated hosting offers then for sure check out &lt;a href="http://microsoft.com/web/hosting"&gt;Microsoft Web Hosting Gallery&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q30. I deploy my Web Applications to my local web servers and have web farms of servers. Is there anything for me?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Yes, with this release we also released Web Farm Framework. Web Farm Framework also uses Web Deploy behind the scenes. Learn more about it at:&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx"&gt;Web Farm Framework post by ScottGu&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.iis.net/download/WebFarmFramework"&gt;IIS.NET site&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q31. You also mentioned Orchard earlier. What is Orchard?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Orchard is a free open source CMS web site which also released as v1 on Jan 13&lt;sup&gt;th&lt;/sup&gt; 2011. You can use it as a starting point to create your web site. It essentially has a ton of prewritten code for many standard things that you might want on your web site. You can learn more about Orchard at the &lt;a href="http://www.orchardproject.net/"&gt;Orchard Project website&lt;/a&gt;. There are great walkthroughs on using it in the &lt;a href="http://orchardproject.net/docs"&gt;documentation section&lt;/a&gt; too. &lt;/p&gt;  &lt;p&gt;What is cool about Orchard is that it’s development happens completely in open on codeplex and you easily influence where you want it to go. You can start using Orchard or even contributing to it at &lt;a href="http://orchard.codeplex.com/"&gt;http://orchard.codeplex.com/&lt;/a&gt;. Orchard has a gallery of community contributed extensions that you can add to your Orchard site to further enhance it for your personal needs. Check out the &lt;a href="http://orchardproject.net/gallery/Packages/Modules"&gt;Orchard Gallery&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Finally Orchard is also written using &lt;b&gt;ASP.NET MVC 3&lt;/b&gt; which was also released along with all of the above we talked about.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q32. What is new about ASP.NET MVC 3?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. As you might be aware ASP.NET MVC is a programming model which focuses on clear seperation of concerns, helping you write web sites with full control over your HTML markup and using industry leading pattern of Model View Controller. You can learn about ASP.NET MVC at &lt;a href="http://asp.net/mvc"&gt;http://asp.net/mvc&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;ASP.NET MVC 3 builds on top of the earlier two releases and is purely additive, which means that everything that you might have learnt about previous releases of ASP.NET MVC still applies and you can now take advantages of several new features of MVC 3. The top features of ASP.NET MVC 3 are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;&lt;a href="http://www.asp.net/mvc/mvc3#BM_TheRazorViewEngine"&gt;The Razor View Engine&lt;/a&gt; &lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.asp.net/mvc/mvc3#BM_Support_for_Multiple_View_Engines"&gt;Support for Multiple View Engines&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.asp.net/mvc/mvc3#BM_Controller_Improvements"&gt;Controller Improvements&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.asp.net/mvc/mvc3#BM_JavaScript_and_Ajax_Improvements"&gt;JavaScript and Ajax&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.asp.net/mvc/mvc3#BM_Model_Validation_Improvements"&gt;Model Validation Improvements&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.asp.net/mvc/mvc3#BM_Dependency_Injection_Improvements"&gt;Dependency Injection Improvements&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.asp.net/mvc/mvc3#BM_Other_New_Features"&gt;Other New Features&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The complete MSDN content map for ASP.NET MVC 3 is available at &lt;a href="http://msdn.microsoft.com/en-us/library/gg416514(VS.98).aspx"&gt;MVC Content map&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q33. What is the best way to get started with ASP.NET MVC 3?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. I would say the best place would be:&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-cs"&gt;Getting Started with ASP.NET MVC3 section on ASP.NET site&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.asp.net/mvc/tutorials/mvc-music-store-part-1"&gt;ASP.NET Music Store Site Tutorial by Jon Galloway&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q34. What is important to know about Razor View Engine?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Razor View Engine is focused around the new Razor syntax whose goal is to make it very natural for programmers to write server side code within HTML markup. Razor pages come with extension .CSHTML (C#) or .VBHTML (VB). The design aspiration for Razor syntax was to minimize the number of keystrokes required to express yourself and I feel it stands very true to that aspiration. It is difficult to explain this in a small Q&amp;amp;A format but here is a sample with traditional ASP.NET nuggets:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TTN_lckLAVI/AAAAAAAABLE/gqdTIYVVeao/s1600-h/clip_image005%5B3%5D.png"&gt;&lt;img style="margin: 0px; display: inline" title="clip_image005" alt="clip_image005" src="http://lh5.ggpht.com/_E8t3edIzcC8/TTN_l6sa2BI/AAAAAAAABLI/BR_saCTPqTM/clip_image005_thumb.png?imgmax=800" width="438" height="118" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When you write the same in razor it becomes:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TTdppnSw3tI/AAAAAAAABLo/pOXwb4d2suw/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: ; border-left: ; display: inline; border-top: ; border-right: " title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/TTdpp6AoAGI/AAAAAAAABLs/_UbqpfuBIk4/image_thumb%5B1%5D.png?imgmax=800" width="438" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For lot of cases Razor syntax accomplishes this by automatically detecting the transition between markup and code for most part and for explicit transitioning all you have to do is simply start your C#/VB code with “@” character.&lt;/p&gt;  &lt;p&gt;You should most certainly try to learn about Razor syntax at:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://download.microsoft.com/download/C/E/A/CEA20EA5-5AEA-494D-B9D1-B082366FCA38/ASPNETWebPagesWithRazorSyntax-Book.pdf"&gt;Book of Razor&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;OR read ScottGu’s blog series at:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx"&gt;Introducing Razor&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx"&gt;New @model keyword in Razor&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx"&gt;Layouts with Razor&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/11/12/asp-net-mvc-3-server-side-comments-with-razor.aspx"&gt;Server-Side Comments with Razor&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx"&gt;Razor’s @: and &amp;lt;text&amp;gt; syntax&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/16/asp-net-mvc-3-implicit-and-explicit-code-nuggets-with-razor.aspx"&gt;Implicit and Explicit code nuggets with Razor&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx"&gt;Layouts and Sections with Razor&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Finally, Razor comes with a reasonable number of helpers to automate common web tasks like image manipulation, videos, email etc etc. Community is creating a bunch of helpers to. Checkout some of the out of the box &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.helpers(v=VS.99).aspx"&gt;Web Helpers here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q34. Is Razor syntax supported in Visual Studio 2010?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Yes you should get full colorization, formatting and intellisense on Razor syntax on Visual Studio 2010. All the required bits to make this happen are included as part of ASP.NET MVC 3 installer.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q35. Can I use Resharper with Razor syntax?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Yes you can. Many thanks to Resharper team for releasing Resharper 5.1.2 to make sure that you can continue to use Resharper goodness without letting go of colorization, formatting and intellisense within Razor pages.&lt;/p&gt;  &lt;p&gt;If you have Resharper versions prior to 5.1.2 then you might have to choose between inbuilt Razor editor features or Resharper which obviously is not ideal, so please upgrade to Resharper 5.1.2 at &lt;a href="http://www.jetbrains.com/resharper/download/"&gt;JetBrians Download Center&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Resharper team is currently working on version 6 which will provide enhanced Resharper intellisense features for Razor syntax as well. If you want to try out early builds of Resharper v6 then check out JetBrian’s &lt;a href="http://confluence.jetbrains.net/display/ReSharper/ReSharper+6.0+Nightly+Builds"&gt;Early Access Program&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q35. Can I use Razor syntax outside of ASP.NET MVC 3?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Yes, you can directly create ASP.NET Web Pages with Razor syntax without having to using the MVC 3. Simply create a Web Site and Add CSHTML or VBHTML files to it and it should work. There should also be able to create a new Web Site which is based on Razor syntax as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TTN_mvddCHI/AAAAAAAABLU/aM3exEupDzM/s1600-h/clip_image008%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image008" alt="clip_image008" src="http://lh4.ggpht.com/_E8t3edIzcC8/TTN_m-TBNqI/AAAAAAAABLY/Czv1xF3-IZk/clip_image008_thumb.jpg?imgmax=800" width="780" height="439" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q36. Tell me how to get ASP.NET MVC 3 with Razor Syntax?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. As anthing else mentioned above Web PI 3 is an easy way to do so. But alternatively you can get ASP.NET MVC 3 from &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d2928bc1-f48c-4e95-a064-2a455a22c8f6&amp;amp;displaylang=en"&gt;here&lt;/a&gt;. If you would like to get ASP.NET Web Pages with Razor Sytax they can be downloaded from &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=300314da-dedd-4540-a236-a0de0a5a534d"&gt;here&lt;/a&gt;. Btw the second link also contains a book of Razor sytax which I highly recommend.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q37. Where can I continue learning about ASP.NET MVC?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Good places to keep checking out in the future are:&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://asp.net/mvc"&gt;ASP.NET MVC Site&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.aspx"&gt;ScottGu’s Blog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://hanselman.com"&gt;Scott Hanselman’s Blog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://haacked.com"&gt;Phil Haack’s Blog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q38. I also heard about NuGet, what is it?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. NuGet, awared as #5 OSS project of 2010 by Black Duck Software, is a Visual Studio Package Manager solution to easily get free open source extensions for your projects. It not only works in VS Web projects but actually work in most of the projects within VS. The idea is that if you are creating something which is reusable then why not share it with the broader community. There are many open source libraries which have created NuGet packages which can be installed and used in your projects today. These NuGet packages do a bunch of things for you e.g. add files to your /bin folder, add project references, add web pages to your project, add to your web.config, etc; in-nutshell they make a new feature e.g. error logging with Elmah completely set up within your project by running a single command.&lt;/p&gt;  &lt;p&gt;NuGet v1 also released with the rest of the things mentioned here and already has several hundreds of reusable packages in its gallery. Check out NuGet at &lt;a href="http://nuget.org/"&gt;http://nuget.org/&lt;/a&gt;, which NuGet install links as well as the package gallery. If you want to contribute to NugGet then check out Phil’s post on &lt;a href="http://haacked.com/archive/2011/01/12/uploading-packages-to-the-nuget-gallery.aspx"&gt;how to Upload to the NuGet gallery&lt;/a&gt;. If you want to check out NuGet source then go to it’s &lt;a href="http://nuget.codeplex.com/"&gt;Codeplex page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q39. Is there anything for JavaScript developers?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Yes. We recently released JavaScript Editor extensions for VS 2010.&amp;#160; These are few highly demanded features by developers and we couldn’t wait for long to have them out there.&amp;#160; The Key features that these extensions contain are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Brace Matching – &lt;/strong&gt;Matches {}, (), [] in your code to easily navigate through files&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Outlining/Code-Folding &lt;/strong&gt;- Adds support for automatically creating outlining regions for JavaScript blocks.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Current Word Highlighting&lt;/strong&gt; – Like C#/VB editors now JavaScript Editor now will also highlights usage of the current word (based on cursor position) throughout the document for improved readability&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;IntelliSense Doc-Comment &amp;lt;para&amp;gt; support &lt;/strong&gt;– In earlier versions you might have seen&amp;#160; tremendously long never breaking lines of comments pop up as tool tips when you typed.&amp;#160; This was because we did not have any way to determine line breaks for xml comments.&amp;#160; With support of &amp;lt;para&amp;gt; elements in XML doc comments this becomes immensely more usable. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can get all these extensions &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/872d27ee-38c7-4a97-98dc-0d8a431cc2ed" target="_blank"&gt;from VS Extensions Gallery&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After you have installed the extensions you can also get the updated vsdoc files for jQuery with &amp;lt;para&amp;gt; tags which are available at jQuery &lt;a href="http://files.damianedwards.com/jquery/jquery-1.4.3-vsdoc.js"&gt;1.4.3&lt;/a&gt; and &lt;a href="http://files.damianedwards.com/jquery/jquery-1.4.4-vsdoc.js"&gt;1.4.4&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q40. Is there a place where I can just go to learn about everything here at greater depth?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. Yes. Our man Scott Hanselman has put together the best collection of all the official documentation for all of Microsoft Web Platform &amp;amp; Tools releases. Check out his &lt;a href="http://www.hanselman.com/blog/LinkRollupNewDocumentationAndTutorialsFromWebPlatformAndTools.aspx"&gt;Rollup Documentation&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q401 I still have more questions about this release, where do I ask?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A. You can leave comments here, send me an email at &lt;a href="mailto:Vishal.Joshi@Microsoft.com"&gt;Vishal.Joshi@Microsoft.com&lt;/a&gt; but if you would like to have tons of people look and chime in on your questions then &lt;a href="http://forums.asp.net/"&gt;ASP.NET Forums&lt;/a&gt; is a great place, so is &lt;a href="http://stackoverflow.com/questions/tagged/asp.net"&gt;Stackoverflow&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-4315867068750333260?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/4315867068750333260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2011/01/web-developers-can-feel-like-kids-in.html#comment-form' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4315867068750333260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4315867068750333260'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2011/01/web-developers-can-feel-like-kids-in.html' title='Web Developers can feel like Kids in a Candy Store'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_E8t3edIzcC8/TTN_jQiOXtI/AAAAAAAABKo/MwrJ2CnFZHE/s72-c/clip_image001_thumb.png?imgmax=800' height='72' width='72'/><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-6565444535412908576</id><published>2010-12-02T00:21:00.001-08:00</published><updated>2010-12-02T00:22:05.919-08:00</updated><title type='text'>Web Server Startup Vs. Starting a project for debugging</title><content type='html'>&lt;p&gt;We recently had an interesting thread within our Web Platform &amp;amp; Tools team on a blog comment which I thought I would share verbatim so that it would resolve similar confusion that might exist in the community… :&lt;/p&gt;  &lt;p&gt;To gain more context please read the following tiny blog post otherwise it is quite likely that you will not follow anything discussed on the email thread here J&lt;/p&gt;  &lt;p&gt;&lt;a href="http://vishaljoshi.blogspot.com/2007/12/tips-tricks-start-up-options-and.html"&gt;Tips &amp;amp; Tricks: Startup Options &amp;amp; Instances of ASP.NET Development Server&amp;#160; in a Multi-project solution.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The below email thread is to shed light on behind the scene activities that happen within MSFT on many comments that are posted on many blogs. It is demonstrate that many of the responses on my blog are only feasible due to team effort across the board… J.&lt;/p&gt;  &lt;p&gt;The thread is displayed in FIFO model (unlike standard outlook view) to help easy blog readability…&lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Anonymous [mailto:noreply-comment@blogger.com]     &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Monday, October 25, 2010 2:54 PM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; Vishal Joshi    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;Anonymous has left a new comment on your post &amp;quot;&lt;a href="http://vishaljoshi.blogspot.com/2007/12/tips-tricks-start-up-options-and.html"&gt;Tips &amp;amp; Tricks: Start-Up Options and Instances of A...&lt;/a&gt;&amp;quot;:     &lt;br /&gt;I really wish this default were &amp;quot;false&amp;quot;. I have never had a case where I want all 10 web projects in our solution to start at once ... and every time I have to do a new checkout I have to go turn all of these settings off. Sadly, VS2010 did not fix this ... we are still saddled with this unfortunate behavior. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Vishal Joshi     &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Monday, October 25, 2010 2:55 PM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; ASP.NET Web Projects Team&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Subject:&lt;/b&gt; FW: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;Fyi… &lt;/p&gt;  &lt;p&gt;Vishal R. Joshi | &lt;a href="http://vishalrjoshi.com"&gt;http://vishalrjoshi.com&lt;/a&gt; | &lt;a href="http://twitter.com/vishalrjoshi"&gt;@vishalrjoshi&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; MSFT Web Guy 1&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Sent:&lt;/b&gt; Monday, October 25, 2010 3:14 PM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; Vishal Joshi; ASP.NET Web Projects Team    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; RE: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;I don’t think that we are using those settings. For instance I just created a solution with 2 WAP, when I F5 both startup, which I think is good because many times people have a services that are consumed by other projects, and that UI is little known. &lt;/p&gt;  &lt;p&gt;The issue that I’m seeing here is that if I explicitly go in and configure the startup projects in the UI the settings are not used. I would say this is a bug. &lt;/p&gt;  &lt;p&gt;Thanks, &lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; MSFT Web Guy 2    &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Monday, October 25, 2010 3:51 PM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; MSFT Web Guy 1; Vishal Joshi; ASP.NET Web Projects Team    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; RE: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;Huh? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; MSFT Web Guy 1    &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Monday, October 25, 2010 4:46 PM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; MSFT Web Guy 2; Vishal Joshi; ASP.NET Web Projects Team    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; RE: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;The settings in this dialog are not respected, both WAPs are started. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TPdW4NYeZkI/AAAAAAAABJ8/Q_TUCLouwUk/s1600-h/clip_image008%5B3%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh6.ggpht.com/_E8t3edIzcC8/TPdW4hq8HwI/AAAAAAAABKA/wB4_vDngJms/clip_image001%5B3%5D.gif?imgmax=800" width="782" height="491" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; MSFT Web Guy 2    &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Wednesday, October 27, 2010 8:27 AM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; Vishal Joshi; ASP.NET Web Projects Team    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; RE: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;No. This is by design. This dialog indicates which projects are going to be debugged. The web property in WAP governs whether to start the web server on F5 for projects which are NOT being debugged, is independent of the settings on this dialog. So with this configuration, WebApplication5 will attach a debugger to cassini, WebApplication6 will start its cassini but a debugger will not be attached to it. &lt;/p&gt;  &lt;p&gt;The customer is complaining that the web property should be initialized to false so that only the startup project will launch its web server. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; MSFT Web Guy 1     &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Wednesday, October 27, 2010 9:22 AM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; MSFT Web Guy 2; Vishal Joshi; ASP.NET Web Projects Team    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; RE: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;So can you explain the meanings of the three settings for action: &lt;/p&gt;  &lt;p&gt;· None &lt;/p&gt;  &lt;p&gt;· Start &lt;/p&gt;  &lt;p&gt;· Start without debugging &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TPdW5IqikwI/AAAAAAAABKE/7LdQX7UQGpA/s1600-h/clip_image006%5B3%5D.jpg"&gt;&lt;img style="border-bottom: ; border-left: ; display: inline; border-top: ; border-right: " title="clip_image002[4]" alt="clip_image002[4]" src="http://lh6.ggpht.com/_E8t3edIzcC8/TPdW5w8jnMI/AAAAAAAABKI/1Z7FW0zUV7Y/clip_image002%5B4%5D%5B2%5D.jpg?imgmax=800" width="765" height="445" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; MSFT Web Guy 2     &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Wednesday, October 27, 2010 9:29 AM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; MSFT Web Guy 1; Vishal Joshi; ASP.NET Web Projects Team    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; RE: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;When user presses F5 do: &lt;/p&gt;  &lt;p&gt;None&amp;#160; - don’t start this project &lt;/p&gt;  &lt;p&gt;Start – debug this project &lt;/p&gt;  &lt;p&gt;Start w/o debugging – do the equivalent of Ctrl-F5 for this project &lt;/p&gt;  &lt;p&gt;Note that start w/o debugging is NOT equivalent to the web project flag of starting the web server. Do a ctrl-F5 and you will see why… &lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Vishal Joshi     &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Wednesday, October 27, 2010 10:24 AM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; MSFT Web Guy 2; MSFT Web Guy 1; ASP.NET Web Projects Team    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; RE: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;I see thanks for the clarification…&amp;#160; Based on the discussion it seems the customer is expecting the below property &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TPdW6ZBVodI/AAAAAAAABKM/GgA1ZFCHlfo/s1600-h/clip_image004%5B3%5D.jpg"&gt;&lt;img style="border-bottom: ; border-left: ; display: inline; border-top: ; border-right: " title="clip_image003" alt="clip_image003" src="http://lh6.ggpht.com/_E8t3edIzcC8/TPdW6juk3SI/AAAAAAAABKQ/qe9pwYl7kj8/clip_image003%5B3%5D.jpg?imgmax=800" width="299" height="192" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;to be false for all projects but Startup project… Would you agree? &lt;/p&gt;  &lt;p&gt;Vishal R. Joshi | &lt;a href="http://vishalrjoshi.com"&gt;http://vishalrjoshi.com&lt;/a&gt; | &lt;a href="http://twitter.com/vishalrjoshi"&gt;@vishalrjoshi&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; MSFT Web Guy 2     &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Wednesday, October 27, 2010 10:30 AM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; Vishal Joshi; MSFT Web Guy 1; ASP.NET Web Projects Team    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; RE: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;That is what he is asking for, but I don’t necessarily agree. Assuming a typical solution only has a couple of webs in it, it probably makes sense that all the web servers are started on Debug\Ctrl-F5. Sounds like your blog post is misleading. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;From:&lt;/b&gt; MSFT Web Guy 2     &lt;br /&gt;&lt;b&gt;Sent:&lt;/b&gt; Wednesday, October 27, 2010 10:46 AM    &lt;br /&gt;&lt;b&gt;To:&lt;/b&gt; Vishal Joshi; MSFT Web Guy 1; ASP.NET Web Projects Team    &lt;br /&gt;&lt;b&gt;Subject:&lt;/b&gt; RE: [Vishal Joshi's Tangent] New comment on Tips &amp;amp; Tricks: Start-Up Options and Instances of A.... &lt;/p&gt;  &lt;p&gt;As a side note, you can multi-select all the waps (or web sites) in the solution, and change the property for all them in one go: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TPdW7EGTraI/AAAAAAAABKU/5ppj82Kc9A4/s1600-h/clip_image002%5B3%5D.jpg"&gt;&lt;img style="border-bottom: ; border-left: ; display: inline; border-top: ; border-right: " title="clip_image004[4]" alt="clip_image004[4]" src="http://lh3.ggpht.com/_E8t3edIzcC8/TPdW7ih1WmI/AAAAAAAABKY/DQlb9IyUzYs/clip_image004%5B4%5D%5B2%5D.jpg?imgmax=800" width="226" height="421" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;---------------------------&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;END OF THREAD…:-)&lt;/p&gt;  &lt;p&gt;Hope this was useful&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-6565444535412908576?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/6565444535412908576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/12/web-server-startup-vs-starting-project.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6565444535412908576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6565444535412908576'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/12/web-server-startup-vs-starting-project.html' title='Web Server Startup Vs. Starting a project for debugging'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/TPdW4hq8HwI/AAAAAAAABKA/wB4_vDngJms/s72-c/clip_image001%5B3%5D.gif?imgmax=800' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-4480985185384751140</id><published>2010-11-05T00:00:00.001-07:00</published><updated>2011-01-19T15:45:25.891-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Deploy'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='vs 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Team Build'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Team Build + Web Deployment + Web Deploy + VS 2010 = Goodness</title><content type='html'>&lt;p&gt;I have to confess this is one of the most requested blog post in Web Deployment via either &lt;a href="mailto:Vishal.Joshi@Microsoft.com?subject=Team%20Build%20Blog%20Post"&gt;direct emails&lt;/a&gt;, comments on the &lt;a href="http://www.vishalrjoshi.com/"&gt;blogs&lt;/a&gt;, &lt;a href="http://www.twitter.com/vishalrjoshi"&gt;twitter&lt;/a&gt;, in conferences etc and it has been completely my bad to have prolonged this as long as I have. As it is said - better late than never, so without any delay let us get started.&lt;/p&gt;  &lt;p&gt;In this blog post I am hoping to cover the topics of setting up your web deployment using Web Deploy (MsDeploy) and Team Build. When we talk about automated web deployment with Web Deploy (I love our naming J) there are multiple aspects that come into mind, let us clear few of the concepts before we proceed with the walkthrough:&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Web Packaging &lt;/b&gt;– Web Packaging is the process of creating a .zip file which can contain your web content (pages, images, CSS, JavaScript files etc), databases, IIS Settings, Application creation, ACLs etc. From your Team Build you can easily create Web Packages which you can ask your server admin or Test team to pick up and install on you web servers for testing. With Web Packages (.zip files) you will also get a .cmd file created by VS 2010 which can be run to install the package. There is not a direct automation to run this command file from team build but you can easily hook up post build step to execute the .cmd file if you would like to automate the installation of the package as well.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Web Publishing &lt;/b&gt;– Web Publishing is the process of directly taking the source application (in Team Build case the sources are hopefully in your TFS source repository) and directly pushing it to the destination web server. In this case a .zip file is not created but if you would like that for archival then that is possible as well. If you want your web servers to have your latest web application installed in Continuous Integration (CI) fashion then Web Publishing is the direction I would recommend.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note - &lt;/b&gt;Web Publishing can only work when you have your Web Servers configured to accept Web Deploy request. There is an earlier blog post about &lt;a href="http://blogs.msdn.com/b/webdevtools/archive/2009/06/05/basic-microsoft-web-deployment-tool-setup-for-visual-studio-2010.aspx"&gt;Setting up your Web Servers for Web Deploy&lt;/a&gt;, without having your Web Servers setup the below walkthrough (Publish Section) will not succeed so please make sure that you have your Web Servers configured correctly before proceeding.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 1: Get your TFS Build Server and Source Code Control Set up&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;I am going to assume that you have a license for VS 2010 TFS environment setup. Below are the simple steps to have TFS setup using basic configuration (i.e. everything installed as shown belowJ)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/TNOrND9RiMI/AAAAAAAABHU/-9r8ajP8_X8/s1600-h/clip_image002%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image002" alt="clip_image002" src="http://lh5.ggpht.com/_E8t3edIzcC8/TNOrNvWXoHI/AAAAAAAABHY/jv2Zm4u_4Mg/clip_image002_thumb.png?imgmax=800" width="273" height="206" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once the product has installed and you get a successful “Setup is complete” dialog, finish the installation and you will see a TFS configuration wizard. First let us configure Team Foundation Application Server and then configure the Team Build service as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TNOrN7mLkQI/AAAAAAAABHc/ZCyOIeENtOg/s1600-h/clip_image004%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image004" alt="clip_image004" src="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrOEEEZpI/AAAAAAAABHg/MOQCbLxvprE/clip_image004_thumb.png?imgmax=800" width="316" height="272" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The TFS Basic install is sufficient as it is the simplest setup option and honestly it does most of the stuff that I need. Honestly in my opinion it is so many times better than TFS 2008 which was much more complicated to set up. For nearly all of the screens just simply keep clicking next and eventually the set up wizard will finish and hopefully you will agree with me that this setup is indeed a breeze.&lt;/p&gt;  &lt;p&gt;Once the server configuration is complete, start the wizard for to Configure Team Foundation Build Service and it will come up with a Welcome Screen below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TNOrOoW16dI/AAAAAAAABHk/2aZKELPa7KY/s1600-h/clip_image006%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image006" alt="clip_image006" src="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrPO1ACxI/AAAAAAAABHo/4w56U3Ahf_k/clip_image006_thumb.png?imgmax=800" width="572" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Again, click Next for each page and accept the defaults, before even you know you will have a functional TFS server ready to go. I know that the above explanation will sound like a joke but really TFS 2010 setup is as simple as that and it is difficult to complicate it unless you really require all the bells and whistles. I did have a loaded Microsoft software box but if you don’t then there might be some minor pre-requisites required but I am sure the setup wizard will let you know that J&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Glitch: &lt;/u&gt;&lt;/b&gt;Now there is one glitch in this entire set up still which I need to call out for you. When you build your web projects, you need the Team Build service to have all the .targets files your projects needs. The TFS installation I showed above does not include all the targets files that comes with Visual Studio 2010. To get the necessary files on your machines, install Visual Studio on the same machine as your TFS server so your projects can build successfully. Now that certainly does not sound very nice so the alternate back door option is to go to %Program Files (x86)%\MSBuild\Microsoft\VisualStudio\v10.0 on your Visual Studio IDE box and copy the target files on your Team Build Server at the similar path. For Web deployment you will most likely only need “Web” and “WebApplications” folder but there is nothing wrong with having all the tasks and targets there just in case you need them later.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 2: Connecting to your TFS server from Visual Studio and getting your project into source control&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;On the home screen of VS 2010 you now have an option to Connect to Team Foundation Server or alternatively you can do so from the “Team” menu within VS too as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TNOrPR7eAGI/AAAAAAAABHs/1QA_XeuD09I/s1600-h/clip_image008%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image008" alt="clip_image008" src="http://lh6.ggpht.com/_E8t3edIzcC8/TNOrP7SLdZI/AAAAAAAABHw/gW4yxwmC_Yo/clip_image008_thumb.png?imgmax=800" width="273" height="144" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrQPK4zQI/AAAAAAAABH0/eNBlOjhXfqs/s1600-h/clip_image010%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image010" alt="clip_image010" src="http://lh5.ggpht.com/_E8t3edIzcC8/TNOrQvjDtsI/AAAAAAAABH4/ff_gl3TEefc/clip_image010_thumb.png?imgmax=800" width="304" height="73" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You will then see the “Connect to Team Project” dialog where you point to your TFS Server. If your server isn’t already populated in the server list drop down, you can add it clicking the “Servers…” button:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrRI-MuVI/AAAAAAAABH8/M9wLTm6jVzg/s1600-h/clip_image012%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image012" alt="clip_image012" src="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrRZ_7FPI/AAAAAAAABIA/GIVOZuv2jCw/clip_image012_thumb.jpg?imgmax=800" width="624" height="471" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you are connected, you need to create a new Team Project from the File menu:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrRttKM3I/AAAAAAAABIE/BGdJSnDO1kk/s1600-h/clip_image014%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image014" alt="clip_image014" src="http://lh6.ggpht.com/_E8t3edIzcC8/TNOrSMwmccI/AAAAAAAABII/XoZvug7vZec/clip_image014_thumb.png?imgmax=800" width="301" height="130" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Give your team project a name and click through the wizard to create your Team Project and finish the wizard. Once your team project is created, you are ready to get your app into the source code control.&lt;/p&gt;  &lt;p&gt;If you need further help in setting up your source code control and build server then check out the links below:&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=2d531219-2c39-4c69-88ef-f5ae6ac18c9f"&gt;TFS 2010 Installation Guide&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://msdn.microsoft.com/library/ms181368.aspx"&gt;Using Version Control with TFS 2010&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://msdn.microsoft.com/en-us/library/ms181709.aspx"&gt;Understanding basic Build with TFS 2010&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 3: Get your app running and checked into TFS Source Code Control&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Well you know how to get your app up and running so I will not dive into that J but just for reference of this walkthrough below the is app I am using. I created this Web App for TechEd US 2010 in New Orleans using &lt;a href="http://mvcmusicstore.codeplex.com/"&gt;MVC Music store sample on CodePlex&lt;/a&gt;. (&lt;a href="http://www.vimeo.com/16526557"&gt;You can watch the TechEd US 2010 video here&lt;/a&gt;) As you can see in the sample below it is working on my localhost.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TNOrSdmuMfI/AAAAAAAABIM/v6N_ExSDFjM/s1600-h/clip_image016%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image016" alt="clip_image016" src="http://lh6.ggpht.com/_E8t3edIzcC8/TNOrSlMUShI/AAAAAAAABIQ/AJNv62KP_oc/clip_image016_thumb.jpg?imgmax=800" width="427" height="307" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The site is also checked into my TFS source code control as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TNOrTEbThLI/AAAAAAAABIU/YbQPbyEapD4/s1600-h/clip_image018%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image018" alt="clip_image018" src="http://lh5.ggpht.com/_E8t3edIzcC8/TNOrTRf8RXI/AAAAAAAABIY/Mg7_DEVQqR4/clip_image018_thumb.jpg?imgmax=800" width="316" height="368" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To check your application to Source Code Control you simply need to right click it and the menu options will guide you from there.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 4: Connect to TFS using Team Explorer&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;On VS 2010 Team Explorer you will find a button on the top right which will allow you to connect to a team project. When you click the button and select your Team project your Team should similar to what I have below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TNOrU8PfhJI/AAAAAAAABIc/7eL6rQkeAvs/s1600-h/clip_image019%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image019" alt="clip_image019" src="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrVNqsulI/AAAAAAAABIg/FusPB-rGKV4/clip_image019_thumb.png?imgmax=800" width="364" height="222" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 5: Create a new Build Definition&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A build definition instructs TFS on how to trigger the build. In this case we want deployment to accompany the Build too so we will create a new Build Definition and configure it accordingly. For that right click on the “Builds” node of the Team Project and click “New Build Definition”&lt;/p&gt;  &lt;p&gt;At this point you will see the below dialog where you can name your build definition appropriately.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TNOrVcSaFFI/AAAAAAAABIk/r7fKdJbv3AM/s1600-h/clip_image020%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image020" alt="clip_image020" src="http://lh3.ggpht.com/_E8t3edIzcC8/TNOrV-m0QxI/AAAAAAAABIo/zjfcbAb_jMo/clip_image020_thumb.png?imgmax=800" width="630" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 6: Configure your Trigger in TFS 2010 Build Definition&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Trigger configuration informs Team Build on when to fire a build there are several options as shown below and I will explain them at high level for you to be able to make the right call&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrWAjQLlI/AAAAAAAABIs/gjkAtufYhTI/s1600-h/clip_image022%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image022" alt="clip_image022" src="http://lh6.ggpht.com/_E8t3edIzcC8/TNOrWSYFn_I/AAAAAAAABIw/xl0QAmHYrfE/clip_image022_thumb.jpg?imgmax=800" width="783" height="321" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Manual&lt;/b&gt; – As the name suggests this mode allows the Build to be triggered manually as you desire, for demo purposes I am going to use this but ideally you want to explore other options also to determine what works best for you.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Continuous Integration – &lt;/b&gt;This is classic celebrated CI model where every check in into the source code control will cause a build and hence resultant deployment that we would configure. &lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Rolling Builds - &lt;/b&gt;Sometimes when working in massive teams CI can be disruptive as there are several check ins happening every other hour. In that case you can inform your dev team that there will be a build happening every X minutes and they should plan for that. During end game period of the project this configuration may help to have routine quick builds coming out.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Gated Check-Ins - &lt;/b&gt;This was one of the highly requested features for teams who did not want any broken builds due to bad check-ins. This will ensure that only check-ins which merge &amp;amp; build successfully.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Scheduled Builds – &lt;/b&gt;As name suggests you can also have builds coming out during regular times every day. This is the model which is used by larger VS and .NET teams in general, we too get our builds created on a nightly basis. The funny part is that I do not think that VS &amp;amp; .NET build configuration is as easy as TFS 2010 makes it for everyone else J&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 7: Configure your Workspace which needs to be built&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This is where you specify what you want to build. As shown below I have configured my Project folder as the build target.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrWzrxJYI/AAAAAAAABI0/EwsrXV6kD0M/s1600-h/clip_image024%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image024" alt="clip_image024" src="http://lh5.ggpht.com/_E8t3edIzcC8/TNOrXcUMvjI/AAAAAAAABI4/acshDJhun_8/clip_image024_thumb.jpg?imgmax=800" width="624" height="478" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 8: Provide Drop Location where you want your builds to be dropped&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This is relatively a simple step for creating a UNC folder with correct folder permissions so that your TFS build (which typically runs under NETWORK SERVICE) has correct permissions to write to build output path. My setting looks as below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrXlE-H-I/AAAAAAAABI8/wyz1UxdgrUc/s1600-h/clip_image025%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image025" alt="clip_image025" src="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrX3CNL6I/AAAAAAAABJA/_W737SMSDtI/clip_image025_thumb.png?imgmax=800" width="649" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 9: Setup the Retention Policy&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Retention Policy simply informs how to save the builds in the drop folder mentioned above. I did not modify mine so it looks as below, although you might want to change these settings based on the disk space that you available:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TNOrY2FHjBI/AAAAAAAABJE/q7Fc20JejUw/s1600-h/clip_image027%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image027" alt="clip_image027" src="http://lh3.ggpht.com/_E8t3edIzcC8/TNOrZOxHmaI/AAAAAAAABJI/uuRCy6r6dow/clip_image027_thumb.jpg?imgmax=800" width="624" height="264" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 10: Configuring the Deployment Process&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;For this you have to go to the “Process” tab which looks as below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TNOrZhm5JiI/AAAAAAAABJM/QTyUsQMky1w/s1600-h/clip_image029%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image029" alt="clip_image029" src="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrZ0FlA1I/AAAAAAAABJQ/l8EASw2LuJo/clip_image029_thumb.jpg?imgmax=800" width="836" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Most of the items in these are self explanatory but I want to spend some time explaining a few which matter in our case:&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Automated Tests – &lt;/b&gt;TFS allows you to run the tests in Tests.dll automatically during each build so if you would like to have some unit tests run during build and deployment then this is a great place to mention that. There is also a flag to stop running the tests in the grid which you can set if you do not want to disturb your configuration of this property.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;MSBuild Arguments - &lt;/b&gt;This is the location where you need to specific the hooks to mention that you want to trigger deployment as part of the build. &lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;o &lt;b&gt;Web Packaging – &lt;/b&gt;For Web Packaging the argument you want to specify is simply:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;/p:DeployOnBuild=True; &lt;/p&gt;  &lt;p&gt;The above property is going to tell the Web Publishing Pipeline (WPP) to engage after the build is successful. At the default target which executes is Packaging you should not need to provide any other properties.&lt;/p&gt;  &lt;p&gt;o &lt;b&gt;Web Publishing – &lt;/b&gt;For Web Publishing the arguments you want to specify are:&lt;/p&gt;  &lt;p&gt;/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=True /p:MSDeployPublishMethod=InProc /p:MSDeployServiceUrl=localhost /p:DeployIisAppPath=&amp;quot;Default Web Site/NewOrleansJazz&amp;quot; /p:UserName=domain\user /p:Password=myPassword&lt;/p&gt;  &lt;p&gt;In this case because we want publishing with Web Deploy to happen we provide /p:DeployTarget value to be MsDeployPublish.&lt;/p&gt;  &lt;p&gt;/p:CreatePackageOnPublish allows you to create a package before publishing, it will help you keep an archive of what you published on your local drops folder. Although do note that It will certainly slow down the deployment and eat your disk space so choose it as you see fit.&lt;/p&gt;  &lt;p&gt;/p:MsDeployServiceUrl tells the WPP where the project needs to be published to. In the beginning of this post I had mentioned that you need to &lt;a href="http://blogs.msdn.com/b/webdevtools/archive/2009/06/05/basic-microsoft-web-deployment-tool-setup-for-visual-studio-2010.aspx"&gt;set up the remote Web Server for Publish&lt;/a&gt;, this is the place where it finally gets used. The URL format is typically &lt;a href="https://ServerName:8172/MsDeploy.axd"&gt;https://ServerName:8172/MsDeploy.axd&lt;/a&gt;. As I am using localhost as my build as well as test server I do not need to provide the full URL (i.e. VS 2010 will complete it as needed) but since your test server is going to be different than build server in real world you will have to provide full URL. &lt;/p&gt;  &lt;p&gt;&lt;u&gt;[UPDATE: It was brought to my attention that I had missed a detail in this post which is certainly worth clarifying.&amp;#160; If you are using the Service URL by setting up the server as explained above then you will have to change MSDeployPublishMethod from InProc to WMSVC so the property should become /p:MSDeployPublishMethod=InProc&amp;#160; to /p:MSDeployPublishMethod=WMSVC&amp;#160; Note that if you are publishing to localhost VS can use Web Deploy APIs directly within the same process of VS hence I was using InProc as my option.&amp;#160; If you are publishing to a different server then InProc will not work and give you errors so please make the above change.&amp;#160; Apologies for missing this detail earlier.]&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;/p:DeployIisAppPath tells the publishing system the &lt;b&gt;IIS Site Name/App Name&lt;/b&gt; that you want to publish to. E.g. Default Web Site/MVCMusicStore&lt;/p&gt;  &lt;p&gt;/p:UserName=domain\user is the actual User Name which has access to the remote Web Server on which you set up the Web Deploy Publishing&lt;/p&gt;  &lt;p&gt;/p:Password=myPassword is the actual Password for the User Name above&lt;/p&gt;  &lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; Do note that the sample here can only publish to IIS 7 (Win2k8 and above), if you are running IIS6 or lower (i.e. Win2k3/ Win2k) then you need to follow slightly different process. Please drop a comment here and I will write a follow up post on that.&lt;/p&gt;  &lt;p&gt;o &lt;b&gt;File Copying – &lt;/b&gt;This will allow you to simply to a xCopy deployment without needing to setup any remote service&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;/p:DeployOnBuild=true /p:DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempRootDir=&lt;a href="file:///\\BuildServer\BuildDrops\MVCMusicStore"&gt;\\BuildServer\BuildDrops\MVCMusicStore&lt;/a&gt; /p:AutoParameterizationWebConfigConnectionStrings=false&lt;/p&gt;  &lt;p&gt;/p:_PackageTempRootDir allows you to specify the remote server location on which you want xCopy to happen. Again the remote location will need permission to be writable by Team Build Agent which is running the deployment&lt;/p&gt;  &lt;p&gt;/p:AutoParameterizationWebConfigConnectionStrings=false essentially tells WPP to not parameterize the Web.Config file since doing so will introduce replicable tokens within Web.Config which are used during Packaging &amp;amp; Publishing.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;NOTE:&lt;/u&gt;&lt;/b&gt; File Copying was honestly never designed out of the box to be used from Team Build in such fashion but some people have been interested in using &lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html"&gt;Web.Config Transformation&lt;/a&gt; during xCopy and hence I thought it was worthwhile mentioning this in the blog.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;PS:&lt;/u&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;Using properties which begin with underscore “_” is not typically recommended as they are considered private MSBuild variables by convention but in this case it is relatively easy way to accomplish the xCopy solution. Even in future versions of VS if this property changes I am hopeful there will be alternate/easier way to do this. In general if you can set up the Publishing on your web server using Web Deploy I think it will yield you longer term advantages and I think it is a worthwhile endeavor to take.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Projects To Build - &lt;/b&gt;When you have only one web application and class libraries then it is easier to just have the Project (CSProj or VBProj) to build as shown in my example above, but if you have bunch of projects which all need to built then you might have to go with Solution Build option (.SLN).&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Deployment for Web Apps is feasible at both Solution as well as Project build level although when it comes to Solution Build then you might want to make sure that the properties you are passing at Solution level will apply to all the projects in the solution which might not always the outcome you desire. In that situation all these properties can be set within the .csproj or .vbproj files too. You can do that by unloading your project file and in the top &amp;lt;PropertyGroup&amp;gt; section just add above properties as you like:&lt;/p&gt;  &lt;p&gt;For e.g /p:DeployOnBuild=True can be added as &amp;lt;DeployOnBuild&amp;gt;True&amp;lt;/DeployOnBuild&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 11: Trigger your Build Definition &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Now that you have everything configured you can right click on the Build Definition and hit “Queue New Build”.. That will show you a dialog which you can simply hit OK on and you should soon get your Build ready and the site deployed as shown in my case below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TNOraaCS7xI/AAAAAAAABJU/IBJ4efNkG94/s1600-h/clip_image031%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image031" alt="clip_image031" src="http://lh6.ggpht.com/_E8t3edIzcC8/TNOravHEhHI/AAAAAAAABJY/oDcfS4yETIE/clip_image031_thumb.jpg?imgmax=800" width="624" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After a while when you check into the Completed section of the build you should see your new build lined up.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/TNOrbFkt5aI/AAAAAAAABJc/bIRHrZnQicM/s1600-h/clip_image033%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image033" alt="clip_image033" src="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrbVhf8yI/AAAAAAAABJg/xQPe4PF7I4A/clip_image033_thumb.jpg?imgmax=800" width="624" height="177" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On inspecting the IIS and SQL Server you can see my sites &amp;amp; DBs are also deployed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/TNOrbtRrwEI/AAAAAAAABJk/rMjrIN8dFTY/s1600-h/clip_image034%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image034" alt="clip_image034" src="http://lh6.ggpht.com/_E8t3edIzcC8/TNOrcEl2BuI/AAAAAAAABJo/_O9xLSdPVrA/clip_image034_thumb.png?imgmax=800" width="195" height="116" /&gt;&lt;/a&gt; &lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TNOrcaRyoTI/AAAAAAAABJs/x6odxySzDWk/s1600-h/clip_image035%5B3%5D.png"&gt;&lt;img style="display: inline" title="clip_image035" alt="clip_image035" src="http://lh5.ggpht.com/_E8t3edIzcC8/TNOrc0NePuI/AAAAAAAABJw/mQYsItLuRF0/clip_image035_thumb.png?imgmax=800" width="200" height="155" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Finally on running the application it runs great too:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TNOrdPpWH3I/AAAAAAAABJ0/MBT95YMi7gQ/s1600-h/clip_image037%5B3%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image037" alt="clip_image037" src="http://lh4.ggpht.com/_E8t3edIzcC8/TNOrdU_zWcI/AAAAAAAABJ4/VkOK96SvaUw/clip_image037_thumb.jpg?imgmax=800" width="530" height="434" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This was actually a combination of setting up my DB deployment settings too, to learn more about configuring your deployment in the right way check out &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;TOC on Web deployment&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;PS: If you get an error on TFS like below:&lt;/p&gt;  &lt;p&gt;TF215097: An error occurred while initializing a build for build definition \TechEd-US-2010\MvcMusicStore: There was no endpoint listening at http://MyServer:9191/Build/v3.0/Services/Controller/1 that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.&lt;/p&gt;  &lt;p&gt;Then most likely you do not have your Build Service running, you can enable it by going to Start à All Programs à Team Foundation Administration Console à Build Configuration.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Hopefully this will get you going with your automated web deployments. Please write back if you feel anything is missing or if you have any other questions. If you have questions like how would you configure what gets deployed, how to set up DB deployment, how to change web.config etc etc we have tons of articles on how to customize your deployment. You can look at a whole list of them at &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;Overview of Web Deployment&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hope this helps&lt;/p&gt;  &lt;p&gt;Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-4480985185384751140?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/4480985185384751140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html#comment-form' title='80 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4480985185384751140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4480985185384751140'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html' title='Team Build + Web Deployment + Web Deploy + VS 2010 = Goodness'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_E8t3edIzcC8/TNOrNvWXoHI/AAAAAAAABHY/jv2Zm4u_4Mg/s72-c/clip_image002_thumb.png?imgmax=800' height='72' width='72'/><thr:total>80</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-8363932386054774901</id><published>2010-10-26T01:54:00.001-07:00</published><updated>2010-10-26T02:09:17.798-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Vishal R. Joshi'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><title type='text'>Setting up my new Web Development Machine</title><content type='html'>&lt;p&gt;For more immediate and tiny updates on web development and photography follow me on Twitter &lt;a href="http://twitter.com/vishalrjoshi"&gt;@VishalRJoshi&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I just recently got a new laptop, it looks awesome, is blazing fast and from now on I will spend at least few hours every evening with it.&amp;#160; I have always wanted to upgrade but Microsoft keeps getting me powerful work laptops I hardly ever came out of the spell.&amp;#160; But recently stars aligned and that provoked me to get a personal laptop:&lt;/p&gt;  &lt;p&gt;1. I hate the looks of Lenovo W500 which is what I have at work&lt;/p&gt;  &lt;p&gt;2. I have software licenses for photography and other software which feel weird to register from work machine&lt;/p&gt;  &lt;p&gt;3. The screen resolution on Lenovo’s is not as good as I would like&lt;/p&gt;  &lt;p&gt;4. Work laptop makes me work more and play less, I really do need a clean separation J&lt;/p&gt;  &lt;p&gt;Well anyways I got my laptop this weekend. As I would primarily use this for Web Development and Photography I thought I would write down a post which would be a nice walk down the memory lane for me in the future and perhaps help someone now.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Hardware&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Intel Core i5 ~ 2.5GHz, 4GB RAM, 500GB with 7200 RPM HD and 1680 x 1050 high quality screen.&lt;/p&gt;  &lt;p&gt;I was hoping to get i7 processor but most reviews and friends said that it heats up on a laptop and does not provide as much value. I was also going to go with 8GB RAM but a friend of mine got his 8GB RAM cheaper online than with the laptop. Finally I was going to buy SSD Hard Disk but could not justify the cost to myself in the mirror.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;OS &amp;amp; Office&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/windows/windows-7/compare/default.aspx"&gt;Windows 7 Ultimate&lt;/a&gt; x64 &lt;i&gt;(Paid)&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;I think Win 7 Professional would do just fine as I am not intending to use bit locker or 35 languages which seems to be the only difference between Professional and Ultimate. Anyways, I think I am spoilt, it just feels good when Windows starts and the screen says Ultimate J&lt;/p&gt;  &lt;p&gt;&lt;a href="http://office.microsoft.com/en-us/buy/office-2010-which-suite-is-right-for-you-FX101825640.aspx"&gt;Office Professional 2010&lt;/a&gt; &lt;i&gt;(Paid)&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Again Office Home &amp;amp; Business would do just fine but I had got a copy of Office Pro 2010 which was waiting for my new laptop to arrive J&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Outlook&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;I configured Outlook with my Live.com, Gmail.com and Hotmal.com email ids. The Hotmail connector for Outlook actually comes down automatically during the configuration and the thing sets up like a charm.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Web Development &lt;/u&gt;&lt;i&gt;(Free)&lt;/i&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;As any other developer I am inclined to download a bunch of stuff just in case I need it but this time I have decided to keep the list of installed software to bare essentials and going with the minimalistic attitude. Also in support of high productivity I got Web PI from &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;Microsoft.com/Web&lt;/a&gt; and customized as following:&lt;/p&gt;  &lt;p&gt;Tools &lt;i&gt;(Free)&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/TMaXPWoFeEI/AAAAAAAABGs/ycg4o5HwkTs/s1600-h/clip_image002%5B18%5D%5B2%5D.jpg"&gt;&lt;img style="margin: 0px; display: inline" title="clip_image002[18]" alt="clip_image002[18]" src="http://lh3.ggpht.com/_E8t3edIzcC8/TMaXPpyavoI/AAAAAAAABGw/2jSLpvS6T2U/clip_image002%5B18%5D_thumb.jpg?imgmax=800" width="624" height="464" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Framework &lt;i&gt;(Free)&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TMaXPxpgRxI/AAAAAAAABG0/IcZhtm2o7ow/s1600-h/clip_image004%5B4%5D%5B2%5D.jpg"&gt;&lt;img style="margin: 0px; display: inline" title="clip_image004[4]" alt="clip_image004[4]" src="http://lh5.ggpht.com/_E8t3edIzcC8/TMaXQpOYI_I/AAAAAAAABG4/mLXaG2aeGRw/clip_image004%5B4%5D_thumb.jpg?imgmax=800" width="624" height="464" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Database &lt;i&gt;(Free)&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TMaXQ5BOQDI/AAAAAAAABG8/qiNbhRSY0KI/s1600-h/clip_image006%5B4%5D%5B2%5D.jpg"&gt;&lt;img style="margin: 0px; display: inline" title="clip_image006[4]" alt="clip_image006[4]" src="http://lh6.ggpht.com/_E8t3edIzcC8/TMaXRIJ3yEI/AAAAAAAABHA/ihvSqlZzAKM/clip_image006%5B4%5D_thumb.jpg?imgmax=800" width="624" height="461" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Server &lt;i&gt;(Free)&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TMaXRrSyQQI/AAAAAAAABHE/ZtY6gQ9keNw/s1600-h/clip_image008%5B4%5D%5B2%5D.jpg"&gt;&lt;img style="margin: 0px; display: inline" title="clip_image008[4]" alt="clip_image008[4]" src="http://lh5.ggpht.com/_E8t3edIzcC8/TMaXR4Cr2mI/AAAAAAAABHI/hx45j_tHfFo/clip_image008%5B4%5D_thumb.jpg?imgmax=800" width="624" height="466" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Apart from the above listed I also took IIS6 Metabase compatibility for Visual Studio à IIS interactions (yeah I know we need to remove the dependency on it J), some basic logging features, IIS Management Console, Remote Management for my hosted sites, Windows &amp;amp; Basic Authentication.&lt;/p&gt;  &lt;p&gt;I was inclined to enable a bunch of modules but I thought I will enable them when I need them and try to stay as bare minimum as possible.&lt;/p&gt;  &lt;p&gt;Honestly, after I kicked off Web PI, there was one restart for .NET 4 framework install and everything went super smooth. Unfortunately my SQL Server Express installation failed and I had to go and install it manually from &lt;a href="https://www.microsoft.com/betaexperience/pd/SQLEXPPRE/enus/"&gt;MSDN&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In anycase, I do not mind installing SQL Server 2008 R2 Express manually as it allows me to configure mixed mode authentication and provide sa password, which I sometimes like to use with my connectionStrings.&lt;/p&gt;  &lt;p&gt;I do not exactly remember but I do think that the SQL Server 2008 Management studio also required a restart of the machine but other than that it did go pretty smooth.&lt;/p&gt;  &lt;p&gt;Honestly, getting a fully functional Web Development box was never that easy before Web PI so I am really happy that our team was able to pull together this highly impactful product and the more I see it in use on day to day basis within Microsoft, it makes me feel even better about the impact it can have. Most certainly there are pros and cons but overall I think it is a good thing J&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Visual Studio Themes &lt;/u&gt;&lt;i&gt;(Free)&lt;/i&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;First thing is to get VS customized to get a darker and a nicer theme. I like &lt;a href="http://studiostyl.es/schemes/selenitic"&gt;Selenitic by Tim Thomas&lt;/a&gt; but you can find several others at &lt;a href="http://studiostyl.es/"&gt;http://studiostyl.es/&lt;/a&gt; to suit your needs.&lt;/p&gt;  &lt;p&gt;If you are using VWD Express 2010 which I use on my machine then to set the Theme you have to go to following location on Tools à Options (make sure you set the settings file by using the “Use team settings file” check box.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/TMaXSI4WZQI/AAAAAAAABHM/EttsAeKAW7Q/s1600-h/clip_image010%5B4%5D%5B2%5D.jpg"&gt;&lt;img style="display: inline" title="clip_image010[4]" alt="clip_image010[4]" src="http://lh4.ggpht.com/_E8t3edIzcC8/TMaXSrDj3zI/AAAAAAAABHQ/s0FuP37tHn0/clip_image010%5B4%5D_thumb.jpg?imgmax=800" width="624" height="387" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Typically I would go to the “Extensions Manager” in “Tools” menu and get few power tools but since VWD Express does not have all extensibility hooks not many of the power tools are really available.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;NuPack &lt;/u&gt;&lt;i&gt;(Free)&lt;/i&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Next I was super inclined to get &lt;a href="http://nupack.codeplex.com/"&gt;NuPack from Codeplex&lt;/a&gt; as I know the packages in there are growing like crazy but I prevented myself from going there just yet as there were bunch of other things to get in place and again, using the policy of getting something only if I need it.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;7Zip &lt;/u&gt;&lt;i&gt;(Free)&lt;/i&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Several times during conversation at work 7Zip comes up as the possible direction we want to take to save download times across many of Microsoft technologies. In general I think it is an innovative community project which is worth your attention. It also has easy file extensions associations in Tools à Options within 7 Zip File Manager and you can download it from &lt;a href="http://www.7-zip.org/"&gt;http://www.7-zip.org/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Reflector &lt;/u&gt;&lt;i&gt;(Free)&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;They say it for a reason that every .NET developer should have reflector, you can get that for free at &lt;a href="http://reflector.red-gate.com/download.aspx"&gt;http://reflector.red-gate.com/download.aspx&lt;/a&gt;. Unfortunately, if you are using any Express versions of Visual Studio like VWD Express 2010 then you won’t be able to use the Reflector Add In for debugging but even without that Reflector is pretty useful in itself.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Resharper &lt;i&gt;(Free)&lt;/i&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Again there is a reason why they make banners “Can’t Code without Resharper” but oh well I am using VWD Express and the Add-Ins are not allowed with it so unfortunately no Resharper for me. Btw you can download it from &lt;a href="http://www.jetbrains.com/resharper/download/"&gt;http://www.jetbrains.com/resharper/download/&lt;/a&gt; for Free if you are working on an OSS project or for $199 if you are getting it for personal use. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.mozilla.com/en-US/firefox/ie.html"&gt;FireFox&lt;/a&gt; &amp;amp; &lt;a href="http://getfirebug.com/community"&gt;Firebug&lt;/a&gt;&lt;i&gt; (Free)&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;I am eagerly looking forward to use these and I am sure most people do as well.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Windows Live Writer &lt;i&gt;(Free)&lt;/i&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Well this blog would not have happened as easily as it has without Live Writer. If you plan to write you have to try this software for sure. Download it from &lt;a href="http://explore.live.com/windows-live-writer?os=other"&gt;Windows Live Essentials download center&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;TweetDeck &lt;i&gt;(Free)&lt;/i&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Next was to get into the Social community and &lt;a href="http://www.tweetdeck.com/desktop/"&gt;install TweetDeck&lt;/a&gt; and connect all of my Linked In, Facebook, Four Square as well Twitter accounts on it. This will provide some reasonable entertainment for me.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;EverNote &lt;em&gt;(Free)&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;I use Evernote all the time to sync up all types of my work items, To Dos from home, shopping list etc etc and it keeps it all synced up.&amp;#160; This is one of the best tools ever if you have not used it yet.&amp;#160; Get it from &lt;a title="http://www.evernote.com/" href="http://www.evernote.com/"&gt;http://www.evernote.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;LightRoom &lt;i&gt;(Paid)&lt;/i&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Finally, it comes down to having a great machine and a great photo management tool. My cousin just got me a copy of Light room and I got it all installed and ready on the machine. You can get Lightroom 3 for 30 day trial for Free if you have never used it from &lt;a href="https://www.adobe.com/cfusion/tdrc/index.cfm?product=photoshop_lightroom&amp;amp;promoid&amp;amp;promoid=DTEML"&gt;Adobe site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;With all that said even with keeping stuff simple and minimal I landed up installing quite a bit of software on my machine. Interesting piece is that other than the Hardware, OS, Office &amp;amp; Lightroom everything else on my machine is Free software. I intend not to add a lot more to my machine but if I do I will most likely update this post too. In the meantime I hope you find this at least minimally useful/interesting.&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2563e873-4a31-4b40-b53e-2526aef4896a" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Web+Development" rel="tag"&gt;Web Development&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Machine" rel="tag"&gt;Machine&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PhotoGraphy" rel="tag"&gt;PhotoGraphy&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-8363932386054774901?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/8363932386054774901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/10/setting-up-my-new-web-development.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8363932386054774901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8363932386054774901'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/10/setting-up-my-new-web-development.html' title='Setting up my new Web Development Machine'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_E8t3edIzcC8/TMaXPpyavoI/AAAAAAAABGw/2jSLpvS6T2U/s72-c/clip_image002%5B18%5D_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-8121274250297676441</id><published>2010-09-22T01:14:00.001-07:00</published><updated>2010-09-22T10:17:07.437-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS 5.1'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS6'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Packages'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS7'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Web Deploy: IIS6 to IIS7 Migrations + Link Extensions</title><content type='html'>&lt;p&gt;Recently I was having a conversation with one of Web Deploy (MSDeploy) users and an interesting scenario came up.&amp;#160; He essentially wanted to move his site from IIS 6.0 to IIS 7 and wanted to consider Web Deploy to do this.&amp;#160; In addition he actually was fine with just xCopy-ing the site’s content from IIS6 server to IIS7 server as it was almost 6GB+ in size and trying to create a zip package for it was not most the optimal way of using resources, nevertheless creating a zip package using Web Deploy for just the IIS configuration is what was certainly desirable due to ease of portability &amp;amp; use.&lt;/p&gt;  &lt;p&gt;I thought this would be a good opportunity to write a quick note to share with you that migration from IIS 6 to IIS 7 was one of the original scenarios of Web Deploy and so if you are considering the migration from IIS 5.1 to IIS 7 &amp;amp; above then for sure you should consider Web Deploy to help you with it.&lt;/p&gt;  &lt;p&gt;Now as you know IIS 6 configuration is based on Metabase and IIS 7 configuration is based on new XML based configuration system so even trying to migrate just the configuration part might be challenging to do manually.&amp;#160; Web Deploy does a fantastic job with this configuration migration and more.&lt;/p&gt;  &lt;p&gt;In IIS 7 there is a great UI for you to use to export a Web Site, Web Site or Web Application package from IIS Manager but in IIS 6 there was no way to introduce any UI without servicing IIS 6 which when you consider the impact worldwide is not most ideal thing to do. But anyways the long and short of it is that you will have to use msdeploy.exe command line in IIS 5.1/IIS6 to create a package. When you get the package on to IIS 7+ box then you can of course use the “Import Application” UI on the IIS7 Action pane (right column) even if the package was generated by IIS 5.1 or 6…&lt;/p&gt;  &lt;p&gt;One other interesting area to know about is Web Deploy Link Extensions coz they will come very handy when you go about migrating your IIS 6 sites &amp;amp; servers to IIS 7.&amp;#160; Earlier I have talked about how &lt;a href="http://vishaljoshi.blogspot.com/2009/03/how-does-web-deployment-with-vs-10.html"&gt;Web Deploy works and what Web Deploy providers are. &lt;/a&gt;In addition to Web Deploy providers it is useful to understand the concept of Link Extensions. Well as the name suggests a “Link Extension” is some artifact which Web Deploy can decipher from a parent provider based on some kind of meta data or link which might be present in the parent. Some of the notable link extensions are:&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;AppPoolExtension&lt;/b&gt; - &lt;a href="http://vishaljoshi.blogspot.com/2009/02/tips-tricks-difference-between-app-pool.html"&gt;Application Pool configuration which resides outside the contained site configuration&lt;/a&gt;, but again the site configuration points to which Application Pool it uses.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;CertifacteExtension&lt;/b&gt; - Certificates which are external artifacts associated to the site but something which site’s IIS configuration links to.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;ContentExtension&lt;/b&gt; - Site’s content which resides on the disk but again technically only a pointer to it exists in the site’s IIS configuration.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;FrameworkConfigExtension&lt;/b&gt; - The root web.config associated with each .NET Framework (stored C:\Windows\Microsoft.NET\Framework\&lt;b&gt;&lt;i&gt;v4.0.30319&lt;/i&gt;&lt;/b&gt;\Config) which some IT Admins customize and IIS configuration knows which ASP.NET version you are using so technically that can be deciphered too.&lt;/p&gt;  &lt;p&gt;The meta point is that these are all the above link extensions can be turned on or off from Web Deploy command line when you are trying to migrate your IIS 5.1/IIS6 sites and servers to IIS 7 and above… There are more link extensions and it is likely that more might be added in the future, you can keep a link to &lt;a href="http://technet.microsoft.com/en-us/library/dd569028(WS.10).aspx"&gt;this TechNet article&lt;/a&gt; as that is where we might update the information if it changes.&lt;/p&gt;  &lt;p&gt;Finally for the scenario that we started talking about in the beginning of this blog the command line to create a package of all of IIS 6 configuration for a Site (&lt;i&gt;&lt;u&gt;with Site id 1&lt;/u&gt;&lt;/i&gt;) without including the content of the site would be:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MsDeploy.exe -verb:sync -source:metakey=lm/w3svc/1 -disableLink:Content -dest:package=c:\mySite1Package.zip&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;If you would like to sync up the entire server then the command line would be:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Msdeploy.exe -verb:sync -source:webserver60 -dest:package=c:\mySite1Package.zip -disableLink:Content&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now the generated MsDeploy package can be easily transported to IIS 7 or IIS 7.5 and configuration can be easily replicated without the content being touched in anyway.&lt;/p&gt;  &lt;p&gt;Hope this helps,&lt;/p&gt;  &lt;p&gt;Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-8121274250297676441?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/8121274250297676441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/09/web-deploy-iis6-to-iis7-migrations-link.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8121274250297676441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8121274250297676441'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/09/web-deploy-iis6-to-iis7-migrations-link.html' title='Web Deploy: IIS6 to IIS7 Migrations + Link Extensions'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-6581698480465987763</id><published>2010-07-03T11:18:00.001-07:00</published><updated>2010-07-16T02:27:16.984-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web.config'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deploy'/><category scheme='http://www.blogger.com/atom/ns#' term='msdeploy'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Packages'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Web Deploy Parameterization in Action</title><content type='html'>&lt;p&gt;A few weeks back I explained the key differences between &lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html" target="_blank"&gt;Web.Config Transformation&lt;/a&gt; and Web Deploy (aka MSDeploy) Parameterization…&amp;#160; Before you read this post I recommend that you read &lt;a href="http://vishaljoshi.blogspot.com/2010/06/parameterization-vs-webconfig.html" target="_blank"&gt;Transformation vs. Parameterization&lt;/a&gt; post, it is tiny and will clear few fundamentals…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Automatic Parameterization&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Before I dive in more let me clarify that if you are using VS 2010 then in common scenarios you may not even need to do custom parameterization, coz VS 2010 already parameterizes things like IIS Application Name, Application physical installation directory and connectionStrings… So when you actually create a web deploy .zip package you can easily build it once and deploy it several number of times by changing the parameters values…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Custom Parameterization&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The typical scenarios where you will need to do custom parameterization is for scenarios like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You have an appSetting&amp;#160; which needs to be changed by server admin at install time… &lt;/li&gt;    &lt;li&gt;You are using a WCF Service and you want to change the end point at install time… &lt;/li&gt;    &lt;li&gt;You have created re-usable web package for community apps and have bunch of questions to ask the users before they install the app (similar to all of the apps that you find in &lt;a href="http://www.microsoft.com/web/gallery/default.aspx" target="_blank"&gt;Application Gallery&lt;/a&gt; eg ScrewturnWiki, DNN, etc…) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Scenario&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In today’s post I am going to use Parameterization with VS 2010 for changing an appSetting &amp;amp; WCF Service end point… Before we do that let us look at the web.config settings which we want to change at install time…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;App Settings&amp;#160; &lt;/em&gt;&lt;/strong&gt;- The Log Folder location here &lt;strong&gt;(“value” attribute) &lt;/strong&gt;is something which I want my admin to be able to change at production install time to a shared location so that if my app is virtualized and put on a web farm then I have a common place to go and look at the log…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TC9_Au5uqGI/AAAAAAAABFA/PtSYctm5-uM/s1600-h/image%5B2%5D.png"&gt;&lt;img style="display: inline" title="appSettings" alt="appSettings" src="http://lh4.ggpht.com/_E8t3edIzcC8/TC9_BFY8D8I/AAAAAAAABFE/qGg_3Gjl-fc/image_thumb.png?imgmax=800" width="407" height="86" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;WCF Endpoint &lt;/em&gt;– &lt;/strong&gt;Below is my WCF EndPoint URL &lt;strong&gt;(“address” attribute) &lt;/strong&gt;which I would like my admin to change to the servers/sites on which the WCF Services will get deployed…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TC9_BwHj8vI/AAAAAAAABFI/dp4c16eIgtg/s1600-h/image%5B5%5D.png"&gt;&lt;img style="display: inline" title="WCF endpoint" alt="WCF endpoint" src="http://lh5.ggpht.com/_E8t3edIzcC8/TC9_CJp5-NI/AAAAAAAABFM/4VlUmn6xWoA/image_thumb%5B1%5D.png?imgmax=800" width="678" height="103" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Install Time Experience&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Installation of Web Packages can be done in couple of different ways:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/07/importing-web-package-into-iis-manager.html" target="_blank"&gt;Installation using IIS Manager&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-packaging-installing-web-packages.html" target="_blank"&gt;Installation using Command Line&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We want to make sure that no matter which direction our IT Admin takes he/she gets an opportunity to provide values for the above two parameters… &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Parameters.xml File format&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As I explained in the &lt;a href="http://vishaljoshi.blogspot.com/2010/06/parameterization-vs-webconfig.html" target="_blank"&gt;earlier post&lt;/a&gt; Parameters.xml file can be passed to Web Deploy when your .zip Web package &lt;u&gt;is being created&lt;/u&gt; and that allows Web Deploy to determine what items in your web should it mark as “changeable” at install time…&amp;#160; VS 2010 makes your life easier by allowing you to simply drop the Parameters file in the root of your web project and if a file with the name Parameters.xml is found in the root of your project it passes it to Web Deploy which then parameterizes your web…&lt;/p&gt;  &lt;p&gt;The Parameters.xml file follows a specific format, the key attributes to note for each parameter that you declare within parameters.xml file are:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;name&lt;/u&gt;&amp;#160;&lt;em&gt;–&lt;/em&gt; Required unique name to identify the parameter with e.g. “Service 1 endpoint address”&lt;/p&gt;  &lt;p&gt;&lt;u&gt;description &lt;/u&gt;– This text shows up in the UI of IIS Manager to help the user fill in the value so anything clarifying the parameter is cool…&lt;/p&gt;  &lt;p&gt;&lt;u&gt;defaultValue&lt;/u&gt; - Optionally you can specify a default value for a parameter so that while installing the package a user may know what kind of values are permissible…&lt;/p&gt;  &lt;p&gt;&lt;u&gt;scope&lt;/u&gt; – Regular Expression to determine what entities (files e.g. web.config, DBs, Web Deploy providers etc) does the parameter apply to&lt;/p&gt;  &lt;p&gt;&lt;u&gt;kind&lt;/u&gt; – There are several kinds of parameters but the key ones to remember are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;XmlFile &lt;/strong&gt;– Use this for web.config, any settings XML files etc where you can make replacements using XPath &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;TextFile &lt;/strong&gt;– Use this for non-XML file where you can make replacements by looking for fixed text or token within a file. e.g. you can put @@replaceme@@ in the a settings.ini file and during installation that text can be replaced &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;u&gt;match&lt;/u&gt; -&amp;#160; This depends upon the parameter &lt;strong&gt;kind&lt;/strong&gt;… For e.g. for XmlFile parameter the match expression would be a XPath… For TextFile the match expression could be @@replaceme@@ which you might pre-place in the file…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Declaring Parameters using Parameters.xml&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Below is the content of Parameters.xml file that I dropped to the root of my MVC Application&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515"&gt;xml &lt;/span&gt;&lt;span style="color: red"&gt;version&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;?&amp;gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;parameters &lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;parameter &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Log Folder Location&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;description&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Please provide a shared location where the app can write log files to&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;defaultValue&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;\\Logs\MvcApp\Logs\&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;tags&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;parameterEntry &lt;/span&gt;&lt;span style="color: red"&gt;kind&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;XmlFile&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;scope&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;\\web.config$&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;match&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;/configuration/appSettings/add[@key='LogFolder']/@value&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;parameter&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;parameter &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;WCF Service1 Endpoint Address&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;description&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Please provide the Endpoint address for Service1 that this MVC App needs to call&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;defaultValue&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;http://localhost:61938/Service1.svc&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;tags&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;parameterEntry &lt;/span&gt;&lt;span style="color: red"&gt;kind&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;XmlFile&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;scope&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;\\web.config$&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;match&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;//system.serviceModel/client/endpoint/@address&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;parameter&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;  &lt;br /&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;parameters&lt;/span&gt;&lt;/font&gt;&lt;span style="color: blue"&gt;&lt;font size="3"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;If you notice each of the Parameter above you can see that I am using XmlFile parameter kind with Xpath as the match syntax…&amp;#160; After adding this Parameters.xml file into my project my solution explorer looks as below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TEAl44yLvoI/AAAAAAAABFU/1KNpgw4NpAk/s1600-h/image%5B3%5D.png"&gt;&lt;img style="display: inline" title="parameters.xml" alt="parameters.xml" src="http://lh4.ggpht.com/_E8t3edIzcC8/TEAl5AKTnhI/AAAAAAAABFY/3H6rjIjN9nI/image_thumb%5B1%5D.png?imgmax=800" width="275" height="331" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now I can simply right click on my MvcApplication and hit “Build Deployment Package”…&amp;#160; The resultant .zip file should be created at obj\Debug\Package\MvcApplication1.zip…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Validating that Parameters really worked&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt; Now to validate whether the parameters really worked you can very quickly open IIS Manager (Start –&amp;gt; Run –&amp;gt; InetMgr) and select your Default Web Site&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;You can now click the “Import Application” command on the right side bar and pass the newly created .zip package to it.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TEAl5q_gqVI/AAAAAAAABFc/0Uc1Slj4ZZ8/s1600-h/image%5B6%5D.png"&gt;&lt;img style="display: inline" title="IIS Manager Import Application" alt="IIS Manager Import Application" src="http://lh3.ggpht.com/_E8t3edIzcC8/TEAl57eLFzI/AAAAAAAABFg/BP7rC_f2iCo/image_thumb%5B2%5D.png?imgmax=800" width="675" height="714" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;On Hitting&amp;#160; next on the Import Application wizard you will be able to see the “Parameterization” screen which user will be able to pass values to the parameters.&amp;#160; Notice even our defaultValues provided in the Parameters.xml show up:&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/TEAl6cQeLTI/AAAAAAAABFk/lNMEEfp16AI/s1600-h/image%5B12%5D.png"&gt;&lt;img style="display: inline" title="Parameters Import Application" alt="Parameters Import Application" src="http://lh5.ggpht.com/_E8t3edIzcC8/TEAl63IVaII/AAAAAAAABFo/fkovmizJ4rQ/image_thumb%5B4%5D.png?imgmax=800" width="685" height="520" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;I am now changing the value of these variables as shown below:&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/TEAl7JwNsrI/AAAAAAAABFs/GlHLpHGesFo/s1600-h/image%5B15%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/TEAl7tI0BPI/AAAAAAAABFw/K0qHZjL7Vo8/image_thumb%5B5%5D.png?imgmax=800" width="685" height="519" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;When I now go ahead and finish the wizard by clicking “Next” and go ahead and inspect the Web.Config file in the deployed location, I can see that the changed parameter values were applied to the web.config file seamlessly…&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/TEAl76C1yaI/AAAAAAAABF0/6i_vmHKaRoA/s1600-h/image%5B18%5D.png"&gt;&lt;img style="display: inline" title="Parameterized Web.config" alt="Parameterized Web.config" src="http://lh6.ggpht.com/_E8t3edIzcC8/TEAl8XbwK2I/AAAAAAAABF4/bxPhnOgqQsw/image_thumb%5B6%5D.png?imgmax=800" width="914" height="414" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Also do note that in the process above “Parameters.xml” will also get deployed with your web application, in reality you do not need that file… To avoid that file from getting deployed you can go to its properties (select the file and hit F4) and set “Build Action” = None as shown below:&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/TEAl8jvMegI/AAAAAAAABF8/FASdaJhnsIs/s1600-h/image%5B21%5D.png"&gt;&lt;img style="display: inline" title="Build Action None" alt="Build Action None" src="http://lh3.ggpht.com/_E8t3edIzcC8/TEAl8yM_VDI/AAAAAAAABGA/uSpYhJMQdn0/image_thumb%5B7%5D.png?imgmax=800" width="440" height="619" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;There is a ton more power of parameters.xml file that you can explore via &lt;a href="http://technet.microsoft.com/en-us/library/dd569084(WS.10).aspx#BKMK_ParameterKindSettings" target="_blank"&gt;Technet Article on Web Deploy Parameters&lt;/a&gt; or &lt;a href="http://learn.iis.net/page.aspx/722/reference-for-the-web-application-package/" target="_blank"&gt;IIS.NET Articles about Parameters.xml&lt;/a&gt; but for scenario like ours the above information should hopefully suffice… &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Thanks for reading :-)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-6581698480465987763?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/6581698480465987763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/07/web-deploy-parameterization-in-action.html#comment-form' title='44 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6581698480465987763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6581698480465987763'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/07/web-deploy-parameterization-in-action.html' title='Web Deploy Parameterization in Action'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_E8t3edIzcC8/TC9_BFY8D8I/AAAAAAAABFE/qGg_3Gjl-fc/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>44</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-3021571947816829979</id><published>2010-06-18T00:35:00.001-07:00</published><updated>2010-06-18T00:35:22.966-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web.config transformation'/><category scheme='http://www.blogger.com/atom/ns#' term='XDT'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='msdeploy'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Packages'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Parameterization vs. Web.Config Transformation</title><content type='html'>&lt;p&gt;I was recently asked about being able to change values of different variables like ConnectionStrings, Installation physical directory, app Settings etc during install time rather than build time, so I thought it might be worth while to de-mystify the concepts around Web.Config Transforms and Parameterization…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html" target="_blank"&gt;Web.Config Transformation&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Geeks say Web.Config Transformation is a great feature of Web Deploy (aka MsDeploy), well the first part about being a great feature is true :-) but it is important to note that Web.Config Transformation is not a Web Deploy feature but it instead is a VS 2010 only feature.&amp;#160; Web.Config Transformation is connected with Build configuration of MSBuild/VS/Team Build etc…&amp;#160; Its XML transformation engine is wrapped in MSBuild and has a UI around in VS 2010 which yeilds following benefits:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You get to tie Web.Config Transform with various build configurations and access it independently from Team Build.&lt;/li&gt;    &lt;li&gt;You can use it with any deployment mechanism like File System, FTP, FTPS, or Web Deploy&lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/05/applying-xdt-magic-to-appconfig.html" target="_blank"&gt;You can use it in projects other than Web Projects where you want to transform XML files&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you are building a &lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html" target="_blank"&gt;deployment web package (.zip)&lt;/a&gt; and know which environment you are building for then web.config transformation is great.&amp;#160; This is the category where many of us fall coz we build for a release environment and need the right config file to go in that deployment package.&amp;#160; For that matter many people are just fine creating web packages for the correct environment they are deploying to…&lt;/p&gt;  &lt;p&gt;Now for others who want to be able to build just once and deploy to both test as well as staging/release environment then an embedded web.config file for one environment may not work.&amp;#160; For this scenario there is parameterization.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Parameterization&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Parameterization, unlike Web.Config Transform is Web Deploy (aka MsDeploy) only feature, which means that it will not work in non-Web projects or when you are using other protocols like FTP/FTPS etc.&amp;#160; Parameterization from Web Deploy standpoint is a 2 step process&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Declare Parameters: &lt;/strong&gt;You create a &lt;strong&gt;Parameters.xml&lt;/strong&gt; file and pass it to Web Deploy while creating the package…&amp;#160; In this file you need to indicate what file you want to parameterize&amp;#160; (e.g. web.config), what variable inside the file needs to be parameterized (e.g. connectionString) and what would be the default value of the variable (e.g. release connectionString)… Using Parameters.xml file, Web Deploy will create an internal meta data file within your .zip package which guides Web Deploy to know what “Questions” to ask the person who is installing the .zip package…&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Set Parameters: &lt;/strong&gt;When user is about to install the web package the value of the Parameters can be provided to Web Deploy via several means.&amp;#160; In case you are using IIS Manager to install the package then the IIS Manager UI will automatically show the Parameters with filled in default values.&amp;#160; If you are using Web Deploy command line to install the package then you can provide a &lt;strong&gt;setParameters.xml&lt;/strong&gt; file to the commandline (in case of VS 2010 generated deploy.cmd file just having setParameters.xml file in same folder as the .cmd and .zip file is sufficient).&amp;#160; The setParameters.xml file is a very simple name-value pair file in which you can provide the value of the parameter adjacent to its name.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;In one of the future posts I will write more about how to use Parameterization for some canonical deployment scenarios, but hopefully this will lay the foundation of how to differentiate between build time transforms from install time parameters.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you can know your environment settings during build time use Web.Config transformation.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you would want to create deployment package only once and then enter the settings during install time then use Parameters.xml&lt;/p&gt;  &lt;p&gt;VS 2010 actually uses a combination of Parameters and Web.Config transforms to provide you with a seamless experience (i.e. connectionStrings, IIS Application Name etc are already parameterized by default) so for most common scenarios you would hopefully not have to delve into understanding all the details but if you have any questions then of course feel free to ask here or via email…&lt;/p&gt;  &lt;p&gt;Thanks&lt;/p&gt;  &lt;p&gt;Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-3021571947816829979?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/3021571947816829979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/06/parameterization-vs-webconfig.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3021571947816829979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3021571947816829979'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/06/parameterization-vs-webconfig.html' title='Parameterization vs. Web.Config Transformation'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-7428956047659019987</id><published>2010-05-23T23:42:00.001-07:00</published><updated>2010-05-23T23:42:45.835-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>throw new System.DumbDevException(“Vishal”);</title><content type='html'>&lt;p&gt;Funny enough but I am here to confess that I did not realize that I had set “Comments Auto-Approve” to off on my blog since I don’t know when…&amp;#160; And as I use Windows Live Writer to write my blogs I never care to go to the blog dashboard for nearly anything…&lt;/p&gt;  &lt;p&gt;Anyways, for whatever reason I thought I will go and check if I was missing out on some new features of blogger so I logged in and realized that I had several hundreds of comments piling up waiting for moderation…&lt;/p&gt;  &lt;p&gt;So first of all sorry for the dumbness and secondly I ask you to be patient while I weed through all the comments that are accumulated so far…&lt;/p&gt;  &lt;p&gt;I am hoping that over this next week or two I will be able to get through them all but if you need anything urgently then do not hesitate to drop me a line at &lt;a href="mailto:Vishal.Joshi@Microsoft.com"&gt;Vishal.Joshi@Microsoft.com&lt;/a&gt;…&lt;/p&gt;  &lt;p&gt;Thanks - Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-7428956047659019987?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/7428956047659019987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/05/throw-new-systemdumbdevexceptionvishal.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7428956047659019987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7428956047659019987'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/05/throw-new-systemdumbdevexceptionvishal.html' title='throw new System.DumbDevException(“Vishal”);'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-4360622736384711884</id><published>2010-05-18T01:19:00.001-07:00</published><updated>2010-05-18T01:30:40.792-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web.config transformation'/><category scheme='http://www.blogger.com/atom/ns#' term='XDT'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Applying XDT magic to App.Config</title><content type='html'>&lt;p&gt;For several weeks now people have been asking to be able to use the XML Document Transform (XDT) with App.Config files similar to what is available with Web.Config files in VS 2010…&lt;/p&gt;  &lt;p&gt;In all honesty there is no official/supported&amp;#160; implementation of XDT for any other project type than Web Application Projects but the good news is that the basis of Web.Config Transformation resides in Web Publishing Pipeline (WPP) which are set of extensible tasks and targets hooked up to provide a great deployment story for Web Applications…&lt;/p&gt;  &lt;p&gt;Today, Ming (our senior dev on Visual Studio) and I decided to get together to give some love to App.Config file too… The below implementation is a crude way of getting XDT working into other project types within VS 2010… In a way, I would say it is a big solution for a smaller problem but the idea here is to get people unblocked and show the kind of things that WPP is capable of doing…&amp;#160; &lt;/p&gt;  &lt;p&gt;If by now everything is sounding foreign then please check out the articles:&lt;/p&gt;  &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html"&gt;Web.Config Transformation&lt;/a&gt; &lt;/li&gt;  &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/04/xml-document-transform-xdt-snippets-for.html"&gt;VS 2010 Snippets for Web.Config Transformations&lt;/a&gt; &lt;/li&gt;  &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/05/xml-document-transforms-xdt-for-any-xml.html"&gt;Web.Config Transforms (XDTs) for any XML files in your web projects&lt;/a&gt;     &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Goals&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Being able to use XDT syntax for App.Config files similar to what you can use with Web.Debug.Config and Web.Release.Config… &lt;/li&gt;      &lt;li&gt;Being able to use this in an automated fashion in build environments like Team Build… &lt;/li&gt;      &lt;li&gt;Reduce the concept count and make it as simple as possible (without digging deep into optimization &amp;amp; performance)… &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;u&gt;&lt;strong&gt;Step by Step Instructions&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;The example I am using below should be hopefully super simple that you can follow along without any prep work… All you need is VS 2010 which has “Visual Web Developer” components installed… &lt;/p&gt;    &lt;p&gt;&lt;u&gt;Step 1&lt;/u&gt; Create a new Windows Forms Application in VS 2010&lt;/p&gt;    &lt;p&gt;&lt;u&gt;Step 2&lt;/u&gt; Add App.Config file to the project…&lt;/p&gt;    &lt;p&gt;Add simple test settings to App.Config file as shown below:&lt;/p&gt;    &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515"&gt;xml &lt;/span&gt;&lt;span style="color: red"&gt;version&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;?&amp;gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;configuration&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;appSettings&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;key&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;author&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Vishal Joshi&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;    &lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;appSettings&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;configuration&lt;/span&gt;&lt;/font&gt;&lt;span style="color: blue"&gt;&lt;font size="3"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div id="codeSnippetWrapper"&gt;&lt;u&gt;Step 3&lt;/u&gt; Add App.Debug.Config file to the project, I would recommend using the same App.Config file adding mechanism as shown below&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/S_JNkcAOBsI/AAAAAAAABEY/sT_4QdloabY/s1600-h/image%5B15%5D.png"&gt;&lt;img style="display: inline" title="app.debug.config" alt="app.debug.config" src="http://lh4.ggpht.com/_E8t3edIzcC8/S_JNkqpTXvI/AAAAAAAABEc/aASZMt2cKGM/image_thumb%5B9%5D.png?imgmax=800" width="741" height="516" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;u&gt;Step 4&lt;/u&gt; Modify the content of App.Debug.Config as shown below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515"&gt;xml &lt;/span&gt;&lt;span style="color: red"&gt;version&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;1.0&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- &lt;/span&gt;&lt;span style="color: green"&gt;For more information on using App.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 &lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;configuration &lt;/span&gt;&lt;span style="color: red"&gt;xmlns:xdt&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;http://schemas.microsoft.com/XML-Document-Transform&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;appSettings&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;key&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;article&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;XDT Magic for App.Config Files&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;xdt:Transform&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Insert&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;appSettings&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;configuration&lt;/span&gt;&lt;/font&gt;&lt;span style="color: blue"&gt;&lt;font size="3"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;The key things to note above are:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;ul&gt;&lt;br /&gt;    &lt;li&gt;There is a XDT namespace declaration which allows XDT engine to recognize the Transform/Locator syntax in the file &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;There is a new node being inserted into the config file using the syntax xdt:Transform=”Insert” &lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;u&gt;Step 5&lt;/u&gt; Save the edited files and unload the project frin VS 2010 Solution Explorer using the right click command as shown below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/S_JNlNj_C-I/AAAAAAAABEg/2m3XMOx-_3Y/s1600-h/image%5B14%5D.png"&gt;&lt;img style="display: inline" title="unload project" alt="unload project" src="http://lh3.ggpht.com/_E8t3edIzcC8/S_JNltsWdBI/AAAAAAAABEk/ywmQWMj9DsQ/image_thumb%5B8%5D.png?imgmax=800" width="522" height="492" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&lt;u&gt;Step 6&lt;/u&gt; Edit the .csproj/.vbproj file to make App.Debug.Config file to be dependent on App.Config file as shown in the syntax below:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="code"&gt;  &lt;font size="3"&gt;  &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Content &lt;/span&gt;&lt;span style="color: red"&gt;Include&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;App.config&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Content &lt;/span&gt;&lt;span style="color: red"&gt;Include&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;App.Debug.Config&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;DependentUpon&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;App.Config&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DependentUpon&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Content&lt;/span&gt;&lt;/font&gt;&lt;span style="color: blue"&gt;&lt;font size="3"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;The key things to note above are:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;ul&gt;&lt;br /&gt;    &lt;li&gt;By default the build action of App.Config and App.Debug.Config file will be “ None”… It needs to be changed to “Content”… This is a tiny pre-requisite for WPP but if you encounter any issues because of this then we can dig the work around… &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;DependentUpon node will make your App.Debug.Config appear as a node under your App.Config file similar to the way Web.Debug.Config and Web.Release.Config files appear under Web.Config file… &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;In VB Projects nested files are hidden so you might need to unhide these by clicking the icon on the solution explorer… &lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;u&gt;Step 7&lt;/u&gt; Change the ProjectConfigFileName property within your .csproj/.vbproj file&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;WPP has an inbuilt property called ProjectConfigFileName which is by default set to Web.Config, we need to change this to app.Config which will allow projects like WinForm project not expect web.config files to transform… You can add this property right under ProjectGuid property as shown below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="code"&gt; &lt;font size="3"&gt; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertyGroup&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Configuration &lt;/span&gt;&lt;span style="color: red"&gt;Condition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot; &lt;span style="color: blue"&gt;'$(Configuration)' == '' &lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Debug&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Configuration&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Platform &lt;/span&gt;&lt;span style="color: red"&gt;Condition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot; &lt;span style="color: blue"&gt;'$(Platform)' == '' &lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;x86&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Platform&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ProductVersion&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;8.0.30703&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ProductVersion&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;SchemaVersion&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;2.0&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;SchemaVersion&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ProjectGuid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;{2D587604-866B-4675-8587-FA9728EC59D8}&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ProjectGuid&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ProjectConfigFileName&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;App.Config&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ProjectConfigFileName&lt;/span&gt;&lt;/font&gt;&lt;span style="color: blue"&gt;&lt;font size="3"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;u&gt;Step 8&lt;/u&gt; Hook up WPP within your WinForms project by importing the WPP targets.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;You can search for “Import” node in your project file and then simply copy below one line for WPP targets import&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;  &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Import &lt;/span&gt;&lt;span style="color: red"&gt;Project&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;span style="color: blue"&gt;&lt;font size="3"&gt;/&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&lt;u&gt;Step 9&lt;/u&gt; Add a target to copy the transformed App.Config file to your output (BIN) directory&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;You can simply copy paste the below code just before your &amp;lt;/project&amp;gt; node closes in the .csproj/.vbproj file&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;  &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Target &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;PostTransformAppConfig&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;AfterTargets&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;TransformWebConfig&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Copy &lt;/span&gt;&lt;span style="color: red"&gt;Condition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Exists('$(TransformWebConfigIntermediateLocation)\transformed\App.config')&lt;/span&gt;&amp;quot; &lt;br /&gt;          &lt;span style="color: red"&gt;SourceFiles&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(TransformWebConfigIntermediateLocation)\transformed\App.config&lt;/span&gt;&amp;quot; &lt;br /&gt;          &lt;span style="color: red"&gt;DestinationFiles&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(OutputPath)\WinFormConfigTransform.exe.config&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Copy &lt;/span&gt;&lt;span style="color: red"&gt;Condition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Exists('$(TransformWebConfigIntermediateLocation)\transformed\App.config')&lt;/span&gt;&amp;quot; &lt;br /&gt;          &lt;span style="color: red"&gt;SourceFiles&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(TransformWebConfigIntermediateLocation)\transformed\App.config&lt;/span&gt;&amp;quot; &lt;br /&gt;          &lt;span style="color: red"&gt;DestinationFiles&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(OutputPath)\WinFormConfigTransform.vshost.exe.config&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Target&lt;/span&gt;&lt;/font&gt;&lt;span style="color: blue"&gt;&lt;font size="3"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;The key things to note above are:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;ul&gt;&lt;br /&gt;    &lt;li&gt;We hooked up the new PostTransformAppConfig target after TransformWebConfig target… The TransformWebConfig target is the native target in WPP which does any XML transform and will do the actual job of transforming App.Config as well.. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;The location at which the new App.Config file is getting copied is pretty self explanatory but do note that you do want to change “WinFormConfigTransform” to be the name of your own Project…&amp;#160; I just used a project called “WinFormConfigTransform” and hence the DestinationFiles path is named as such… &lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;u&gt;Step 10&lt;/u&gt; Run /T:TransformWebConfig task on your Project from MSBuild&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;You need to use &lt;u&gt;Visual Studio 2010 Command prompt&lt;/u&gt; and type in the below command &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;strong&gt;msbuild C:\Vishal\WinFormConfigTransform.csproj /t:TransformWebConfig&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;After running the above command if you now check the BIN folder of your project you should see that the Project.exe.Config file is now modified as shown below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/S_JNmPhmN1I/AAAAAAAABEo/Pund6Cv7xoQ/s1600-h/image%5B18%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh6.ggpht.com/_E8t3edIzcC8/S_JNmko16XI/AAAAAAAABEs/23yom3t3eKo/image_thumb%5B10%5D.png?imgmax=800" width="883" height="377" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;u&gt;NOTE:&lt;/u&gt; If you want the App.Config file to be Transformed after every build in your Visual Studio IDE (this will take some perf away but may not even be noticeable) then you can change &lt;u&gt;Step 9 &lt;/u&gt;code to be as below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Target &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;PostTransformAppConfig&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;AfterTargets&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Build&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;CallTarget &lt;/span&gt;&lt;span style="color: red"&gt;Targets&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;TransformWebConfig&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Copy &lt;/span&gt;&lt;span style="color: red"&gt;Condition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Exists('$(TransformWebConfigIntermediateLocation)\transformed\App.config')&lt;/span&gt;&amp;quot; &lt;br /&gt;          &lt;span style="color: red"&gt;SourceFiles&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(TransformWebConfigIntermediateLocation)\transformed\App.config&lt;/span&gt;&amp;quot; &lt;br /&gt;          &lt;span style="color: red"&gt;DestinationFiles&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(OutputPath)\WinFormConfigTransform.exe.config&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Copy &lt;/span&gt;&lt;span style="color: red"&gt;Condition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Exists('$(TransformWebConfigIntermediateLocation)\transformed\App.config')&lt;/span&gt;&amp;quot; &lt;br /&gt;          &lt;span style="color: red"&gt;SourceFiles&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(TransformWebConfigIntermediateLocation)\transformed\App.config&lt;/span&gt;&amp;quot; &lt;br /&gt;          &lt;span style="color: red"&gt;DestinationFiles&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;$(OutputPath)\WinFormConfigTransform.vshost.exe.config&lt;/span&gt;&amp;quot; &lt;/font&gt;&lt;font size="3"&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Target&lt;/span&gt;&lt;/font&gt;&lt;span style="color: blue"&gt;&lt;font size="3"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div id="codeSnippetWrapper"&gt;The only key difference above is that I made the new target to be called after “Build” and in the new target I made a call to “TransformWebConfig” target to ensure the transform happens before we try to copy the transformed app.config file to their final location…&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;With the above change now when you build in IDE then the new transformed App.Config will be copied to your output directory…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;With the above 10 steps you should now be able to Transform your App.config just like the way you do Web.Config files in VS 2010&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;-Vishal&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;PS:&amp;#160; Whenever you make changes to your project file (like above) you make your project susceptible to data loss during upgrade to future versions of VS as next versions of VS will not know all the fancy code you put in the files, but such risks are part of the game to get all the fancy toys working :-)&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-4360622736384711884?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/4360622736384711884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/05/applying-xdt-magic-to-appconfig.html#comment-form' title='46 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4360622736384711884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4360622736384711884'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/05/applying-xdt-magic-to-appconfig.html' title='Applying XDT magic to App.Config'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_E8t3edIzcC8/S_JNkqpTXvI/AAAAAAAABEc/aASZMt2cKGM/s72-c/image_thumb%5B9%5D.png?imgmax=800' height='72' width='72'/><thr:total>46</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-8440660220819897819</id><published>2010-05-02T22:09:00.001-07:00</published><updated>2010-05-02T22:09:38.128-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web.config transformation'/><category scheme='http://www.blogger.com/atom/ns#' term='XDT'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Xml Document Transforms (XDT) for any XML file in your project</title><content type='html'>&lt;p&gt;There have been several requests floating around to be able to use XDTs (the technology behind Web.Debug.Config/Web.Release.Config) with other XML files within the project…&amp;#160; To make that feasible I wrote a &lt;strong&gt;XmlDocumentTransform.targets&lt;/strong&gt;&amp;#160; file which can generically transform any XML file using the standard Web.Config Transformation syntax introduced with VS 2010…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html" target="_blank"&gt;Learn more about XDT &amp;amp; Web.Config Transformation here…&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now to get started first &lt;a href="http://cid-c4e57bdd18ff6eaa.skydrive.live.com/self.aspx/Public/XmlDocumentTransform.Targets" target="_blank"&gt;download XmlDocumentTransform.targets file from my Skydive…&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Follow the below simple steps to get transformation working for any &lt;strong&gt;&lt;u&gt;well formed&lt;/u&gt; &lt;/strong&gt;XML file in your project…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&lt;u&gt;Step 1:&lt;/u&gt;&lt;/strong&gt; Save the downloaded &lt;strong&gt;XmlDocumentTransform.targets &lt;/strong&gt;to %ProgramFiles%\MSBuild\Microsoft\VisualStudio\v10.0\Web\XmlDocumentTransform.targets&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/S95aahxi6CI/AAAAAAAABCU/ff-U5WGHkfM/s1600-h/image%5B5%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/S95abrW2xQI/AAAAAAAABCY/E6imJ0nUx6E/image_thumb%5B1%5D.png?imgmax=800" width="840" height="230" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font color="#800040"&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;I would highly encourage you to make a copy of the Microsoft.WebApplication.targets file as backup before you do Step 2 below, as if this file is modified incorrectly then your VS 2010 instances might start showing funny problems which will be virtually impossible to debug and the only option left with you will be to repair/uninstall-install VS 2010… (i.e. proceed at your own risk :-))&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&amp;#160;&lt;strong&gt;&lt;u&gt;Step 2:&lt;/u&gt;&lt;/strong&gt; Put following line of code in Microsoft.WebApplication.targets file just before closing of the Project node &lt;strong&gt;i.e. before &amp;lt;/Project&amp;gt;&lt;/strong&gt;...&amp;#160;&amp;#160; &lt;br /&gt;&amp;lt;Import Project=&amp;quot;$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\XmlDocumentTransform.targets&amp;quot; Condition=&amp;quot;Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\XmlDocumentTransform.targets')&amp;quot; /&amp;gt;      &lt;br /&gt;The Microsoft.WebApplication.targets file is located at %ProgramFiles%\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications...&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/S95acA4iZ3I/AAAAAAAABCc/g5_5Vx2ZSSY/s1600-h/image%5B11%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh5.ggpht.com/_E8t3edIzcC8/S95achyw5WI/AAAAAAAABCk/gtOtw9yF0X8/image_thumb%5B3%5D.png?imgmax=800" width="1039" height="329" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; &lt;br /&gt;&lt;u&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;Changing the above targets file will allow you to use this functionality with all the Web Application Projects (WAPs), if you just want to change this for the current project then you can put the same Import node in .csproj or .vbproj as well...&amp;#160; If you use per project model then you can also check in this file into source code control and have your team use it seamlessly…&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&lt;u&gt;Step 3:&lt;/u&gt; &lt;/strong&gt;Open your .csproj/vbproj file and insert the below property in &amp;lt;PropertyGroup&amp;gt; section&amp;#160; &amp;lt;AllXmlsToTransform&amp;gt;Settings.xml;app.config&amp;lt;/AllXmlsToTransform&amp;gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/S95ac6qLvAI/AAAAAAAABCo/n8Zn95hnHW8/s1600-h/image%5B14%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh4.ggpht.com/_E8t3edIzcC8/S95adYVYnoI/AAAAAAAABCs/0xni33yJTJo/image_thumb%5B4%5D.png?imgmax=800" width="684" height="353" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;u&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;The Settings.xml or app.config can be replaced with the name of Xml files you want to transform… &lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;u&gt;&lt;strong&gt;Step 4:&lt;/strong&gt;&lt;/u&gt; Insert &amp;lt;OnAfterTransformWebConfig&amp;gt;TransformXml;&amp;lt;/OnAfterTransformWebConfig&amp;gt; similar to #3 above but do not modify the TransformXml; text here…&amp;#160; This is the actual hook which ties in your project to this generic XDT system...&amp;#160; After making the Step 3 &amp;amp; Step 4 changes your project file should have below content…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/S95ad9uexzI/AAAAAAAABCw/I-7EKuR0OI0/s1600-h/image%5B17%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh4.ggpht.com/_E8t3edIzcC8/S95aeQtsIEI/AAAAAAAABC0/OWHbChmG_tM/image_thumb%5B5%5D.png?imgmax=800" width="658" height="225" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;u&gt;&lt;strong&gt;Step 5:&lt;/strong&gt;&lt;/u&gt; Create Setting.Debug.Xml or similar files and put &lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html" target="_blank"&gt;XDT syntax&lt;/a&gt; in them... You need to make sure in the .csproj/.vbproj file of yours you have the DependentUpon property is set like the example below:      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Content Include=&amp;quot;Configuration\Settings.xml&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Content Include=&amp;quot;Configuration\Settings.Debug.xml&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;DependentUpon&amp;gt;Configuration\Settings.xml&amp;lt;/DependentUpon&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Content&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Content Include=&amp;quot;Configuration\Settings.Release.xml&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;DependentUpon&amp;gt;Configuration\Settings.xml&amp;lt;/DependentUpon&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Content&amp;gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/S95ae3J3NuI/AAAAAAAABC4/TtgVC5CBC4I/s1600-h/image%5B20%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/S95afMswShI/AAAAAAAABC8/XX4JEl_EgY4/image_thumb%5B6%5D.png?imgmax=800" width="468" height="226" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;The above will allow your solution to look pretty, i.e. just like web.debug.config and web.release.config files show nested under web.config, your &lt;strong&gt;*.$(configuration).* &lt;/strong&gt;files will show nested under your parent file too…&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;With the above &lt;strong&gt;&lt;u&gt;5 steps &lt;/u&gt;&lt;/strong&gt;you are all set to use XDT with any of the deployment models covered in the &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html" target="_blank"&gt;Overview of Web Deployment Post&lt;/a&gt;…&amp;#160; In a way above steps harness the power of Web Publishing Pipeline (WPP) extensibility model and you can do several other extensions like above if you are familiar with MsBuild sytax…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;SAMPLE:&lt;/u&gt;&lt;/strong&gt;&amp;#160;&amp;#160; The remainder of the post is just showing you the steps to test whether the changes you made worked or not (i.e. the remaining half of the post is just playing with what you already accomplished in the first half)… :-)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;To test the above target file I created the below MVC 2.0 project structure:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/S95afm2sQ4I/AAAAAAAABDA/fizeaGZ49KI/s1600-h/image%5B23%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh5.ggpht.com/_E8t3edIzcC8/S95af6w7dMI/AAAAAAAABDE/TaR1EQ3kzXM/image_thumb%5B7%5D.png?imgmax=800" width="261" height="319" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Once you put DependentUpon node in your project file you will have to click the&amp;#160; “Show All Files” icon on the solution explorer for VB Projects to see Settings.Debug.Xml&lt;/li&gt;    &lt;li&gt;My Settings.xml file looked as below:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/S95agDSe22I/AAAAAAAABDI/ExugAsSGriQ/s1600-h/image%5B26%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh6.ggpht.com/_E8t3edIzcC8/S95agnut9MI/AAAAAAAABDM/7mlubTNqUJ4/image_thumb%5B8%5D.png?imgmax=800" width="559" height="181" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;My Settings.Debug.xml file looked as below:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/S95ag5yTUdI/AAAAAAAABDQ/Yg7Zp-Y3Eso/s1600-h/image%5B29%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh5.ggpht.com/_E8t3edIzcC8/S95ahX8xa6I/AAAAAAAABDU/CL1FCnPuRWU/image_thumb%5B9%5D.png?imgmax=800" width="875" height="202" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;To test out I tried simple “file system” publish (Right click on project and say Publish)… The new WAP Publish dialog for me looked as below:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/S95ahi_6czI/AAAAAAAABDY/utFfFB7TbFU/s1600-h/image%5B32%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh5.ggpht.com/_E8t3edIzcC8/S95ah-1XWPI/AAAAAAAABDc/B7z5lhWx81w/image_thumb%5B10%5D.png?imgmax=800" width="380" height="362" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;After publishing my C:\TestPublish folder looked as below:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/S95aiWXzWiI/AAAAAAAABDg/RVn0CULXoxs/s1600-h/image%5B35%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/S95aih16cuI/AAAAAAAABDk/MB82IVaE7CY/image_thumb%5B11%5D.png?imgmax=800" width="716" height="265" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Note that Settings.Debug.xml was removed from my final publish location as it is not required for my web to function and the content of Settings.xml file were transformed and looked as below:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/S95ai39LtjI/AAAAAAAABDo/OyyYLgh_V7Y/s1600-h/image%5B38%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/S95ajcrPVtI/AAAAAAAABDs/jc20xTlLaa4/image_thumb%5B12%5D.png?imgmax=800" width="624" height="330" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;TeamBuild/Commandline Approach:&lt;/u&gt; &lt;/strong&gt;You can also use your new transformations from TeamBuild/MsBuild by using the below command (from VS 2010 Command prompt if you are trying locally):&lt;/p&gt;  &lt;p&gt;MsBuild MyXDTTestProject.csproj /t:TransformXml&lt;/p&gt;  &lt;p&gt;The output of the command line transform should look as below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/S95aj15SaCI/AAAAAAAABDw/dx_Hq7oq9Cg/s1600-h/image%5B41%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh6.ggpht.com/_E8t3edIzcC8/S95akYlOu6I/AAAAAAAABD0/GYfH4owB10M/image_thumb%5B13%5D.png?imgmax=800" width="642" height="854" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As specified above your transformed XML will be stored in obj\$(configuration)\Settings.xml…&amp;#160; &lt;/p&gt;  &lt;p&gt;As such feel free to open the &lt;strong&gt;XmlDocumentTransform.targets &lt;/strong&gt;file which you download, I have tried to put as much comments as I could to make it readable…&amp;#160; If you go through it I am sure you will be able to do many other cool things out of it…&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-8440660220819897819?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/8440660220819897819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/05/xml-document-transforms-xdt-for-any-xml.html#comment-form' title='48 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8440660220819897819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8440660220819897819'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/05/xml-document-transforms-xdt-for-any-xml.html' title='Xml Document Transforms (XDT) for any XML file in your project'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_E8t3edIzcC8/S95abrW2xQI/AAAAAAAABCY/E6imJ0nUx6E/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>48</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-5076978424150069599</id><published>2010-04-26T20:38:00.001-07:00</published><updated>2010-04-26T20:38:30.222-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web.config'/><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='web.config transformation'/><category scheme='http://www.blogger.com/atom/ns#' term='XDT'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Xml Document Transform (XDT) Snippets for VS 2010</title><content type='html'>&lt;p&gt;During my &lt;a href="http://vishaljoshi.blogspot.com/2009/11/web-deployment-painkillers-vs-2010-ms.html"&gt;PDC talk&lt;/a&gt; I had shown some of the snippets that can come handy while using Web.Config Transformations…&amp;#160; This post is intended to share the XDT snippets and instructions on how to install them to use them with VS 2010…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://cid-c4e57bdd18ff6eaa.skydrive.live.com/self.aspx/Public/XDT.zip"&gt;Download XDT zip file from my SkyDrive&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Unzip the files and copy the inner XDT folder into %Program Files%\Microsoft Visual Studio 10.0\Xml\1033\Snippets&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/S9ZcIzyLU2I/AAAAAAAABB8/M1CKK-ILkMQ/s1600-h/image%5B25%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/S9ZcJ-s5gbI/AAAAAAAABCA/mAYZkZbA98M/image_thumb%5B17%5D.png?imgmax=800" width="735" height="417" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;After this the XDT snippets will be available for you to use within any XML file within VS 2010…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To know how to use XDTs for Web.Config file please check out the post about &lt;a href="web-deployment-webconfig-transformation"&gt;Web.Config Transformations&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Few interesting points about Transforms &amp;amp; Locators which are worth noting to do pretty powerful stuff with your XML are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Transforms&lt;/strong&gt;&amp;#160;&lt;strong&gt; - &lt;/strong&gt;Transforms act on a XML node i.e. from XDT engine standpoint the node on which a transform is found is plucked out of the document and passed as a node to the Transform itself (e.g. “SetAttributes” Transform)… The Transform class internally implements the logic of modifying the node with its own special logic (i.e. setting attributes in case of “SetAttributes” Transform) and returns back the node to the engine…&amp;#160; The XDT engine then replaces the new node into the document…&amp;#160; The engine also passes the handle of the parent node to the transform which the transform can then play around with (e.g. “Insert” Transform receives a new node as well as the parent node and has the DOM code of inserting the new node under the parent…)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/S9ZcKQ5aIgI/AAAAAAAABCE/f9dYzHFYUEc/s1600-h/image%5B31%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh4.ggpht.com/_E8t3edIzcC8/S9ZcLWEkXGI/AAAAAAAABCI/QQK_PqsmD_E/image_thumb%5B19%5D.png?imgmax=800" width="1287" height="315" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Locators – &lt;/strong&gt; XDT usually traverses through the XML document and constructs the XPath all along e.g. when it hits the add node under connectionStrings in web.config it has already constructed the XPath (/configuration/connectionString/add)…&amp;#160; Locators help with narrowing down the XPath so that the correct node can be picked up… Check out the example below:&lt;/li&gt; &lt;/ul&gt;  &lt;pre class="csharpcode"&gt;   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1stDB&amp;quot;&lt;/span&gt; &lt;br /&gt;        &lt;span class="attr"&gt;connectionString&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Data Source=Server1;Initial Catalog=DB1;Integrated Security=True&amp;quot;&lt;/span&gt; &lt;br /&gt;           &lt;span class="attr"&gt;xdt:Transform&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;SetAttributes&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;2ndDB&amp;quot;&lt;/span&gt;&lt;br /&gt;           &lt;span class="attr"&gt;connectionString&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Data Source=Server2;Initial Catalog=DB2;Integrated Security=True&amp;quot;&lt;/span&gt; &lt;br /&gt;           &lt;span class="attr"&gt;xdt:Transform&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;SetAttributes&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;xdt:Locator&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Match(name)&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;Based on the standard logic of XPath traversing XDT will always pick up the &lt;strong&gt;&lt;u&gt;first &lt;/u&gt;&lt;/strong&gt;“add” node i.e. one with 1stDB in the example below… That may not be always desirable…&amp;#160; In XDT we could have implemented the logic to do special things for appSettings &amp;amp; connectionStrings but then that would have made XDT specific to web.config instead we implemented Locators which now allows XDT to be general purposes XML transformation engine…&amp;#160; In the above example if we use a Locator called xdt:Locator=”Match(name)” on the 2ndDB then as soon as the XDT engine encouters a locator it calls the class implementing it (i.e. “Match” and allows it to play with the XPath that is being generated… In this case the match locator will help construct the XPath as /configuration/connectionString/add[@name=’2ndDB’] &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/S9ZcL6Nt8xI/AAAAAAAABCM/HVSKZExCZ64/s1600-h/image%5B24%5D.png"&gt;&lt;img style="display: inline" title="xdt:locator" alt="xdt:locator" src="http://lh3.ggpht.com/_E8t3edIzcC8/S9ZcM-oV4TI/AAAAAAAABCQ/J0SHwhZiRp0/image_thumb%5B16%5D.png?imgmax=800" width="852" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;The high level takeaway here is that when you play around with the snippets for XDT keep the above concepts for Transforms &amp;amp; Locators in mind and with the quick snippet explanations of each transforms and locators you should be able to very easily use all of them… If you encounter any issues plz feel free to reach out…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;Thanks!!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;-Vishal &lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-5076978424150069599?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/5076978424150069599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/04/xml-document-transform-xdt-snippets-for.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/5076978424150069599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/5076978424150069599'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/04/xml-document-transform-xdt-snippets-for.html' title='Xml Document Transform (XDT) Snippets for VS 2010'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_E8t3edIzcC8/S9ZcJ-s5gbI/AAAAAAAABCA/mAYZkZbA98M/s72-c/image_thumb%5B17%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-597634512385291425</id><published>2010-04-16T12:03:00.001-07:00</published><updated>2010-04-16T12:03:28.868-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Packages'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Web Deployment Projects Released to Beta (WDP for VS 2010)</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Our team recently released WDP for VS 2010… The key features to note for WDP for VS 2010 are:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;All the core features of WDP 2008&lt;/li&gt;    &lt;li&gt;Migration from WDP 2008 to WDP 201o&lt;/li&gt;    &lt;li&gt;Multi-Targeting support in WDP 2010&lt;/li&gt;    &lt;li&gt;Support Web Deploy Packages in the WDP project..&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;You can read more about the above features on our team blog at &lt;a href="http://blogs.msdn.com/webdevtools/archive/2010/04/14/visual-studio-2010-web-deployment-projects-beta-avail-now.aspx"&gt;Visual Web Developer Team Blog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=711a2eef-b107-4784-9063-c978edc498cd&amp;amp;displaylang=en"&gt;Download WDP 2010 Beta by clicking here!!&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The guidance around using WDP 2010 is&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Use it if you want to migrate to VS 2010 and are currently using WDP for VS 2008&lt;/li&gt;    &lt;li&gt;Use it for TeamBuild/MSBuild based deployment of Web Site Projects in VS 2010…&lt;/li&gt;    &lt;li&gt;Use them for Web Application Projects (WAPs) if you feel it is extremely important for you to pre-compile/merge your projects… If not then you can use &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;Web Deployment features built into VS 2010&lt;/a&gt;…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hope this helps!!&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-597634512385291425?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/597634512385291425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/04/web-deployment-projects-released-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/597634512385291425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/597634512385291425'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/04/web-deployment-projects-released-to.html' title='Web Deployment Projects Released to Beta (WDP for VS 2010)'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-7325819479414163463</id><published>2010-04-15T11:16:00.001-07:00</published><updated>2010-04-15T11:16:20.910-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Packages'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Web Deployment Demos, Slides &amp; Videos for VS 2010 launch</title><content type='html'>&lt;p&gt;I have been dormant for ever, have been keeping busy on a very exciting project… Anyways April 12th 2010 was a big day with VS 2010 formally launching…&amp;#160; Few days back I asked Twitter whether people needed a ready made talk to talk about VS 2010 Web Deployment as part of the community launch events of VS 2010 and got a lot of asks for the content so here it is…&amp;#160; &lt;/p&gt;  &lt;p&gt;Titles &amp;amp; Abstract I would recommend you &lt;u&gt;do not &lt;/u&gt;use are below… :-)&amp;#160; The reason I say that is coz VS 2010 &amp;amp; Web Deploy are way more exciting than the way I present here; so get creative and make a fun abstract &amp;amp; title…&amp;#160; The only reason I have them descriptive is so that you know what are the key items to put in there…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Title&lt;/strong&gt;: Web Deployment with VS 2010 &amp;amp; Web Deploy&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;Web deployment is not as easy as it should be; whether you are deploying to a shared hosting environment or to your company’s web servers there are a lot of manual steps involved.&amp;#160; Check out how new VS 2010 and Web Deploy can help you deploy your web along with its dependencies like databases and IIS settings to any environment with just One Click Publish.&amp;#160; Also check out how&amp;#160; you can transport your entire web in a single .zip file and finally hear all about the web.staging.config, web.release.config etc&amp;#160; and the simple transformation syntax in them to create web.config per deployment configuration… Finally also learn how you can automate your Web Deployments using Team build so you no more have to worry about daily builds and setting up of environments…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Video:&amp;#160; &lt;/strong&gt;Check out the video at &lt;a title="http://microsoftpdc.com/Sessions/FT56" href="http://microsoftpdc.com/Sessions/FT56"&gt;http://microsoftpdc.com/Sessions/FT56&lt;/a&gt;, this should prep you up on what are the talking points…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Demos &amp;amp; Slides: &lt;/strong&gt;You can download it from my &lt;a href="http://cid-c4e57bdd18ff6eaa.skydrive.live.com/self.aspx/Public/FT56%5E_VS10%5E_WebDeploy%5E_Joshi.zip?authkey=oW9Az!omTgs%24"&gt;SkyDrive&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you have any questions/thoughts on the content you can feel free to write comments here or reach me at &lt;a href="http://twitter.com/VishalRJoshi"&gt;@VishalRJoshi&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope this helps!!&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-7325819479414163463?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/7325819479414163463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2010/04/web-deployment-demos-slides-videos-for.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7325819479414163463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7325819479414163463'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2010/04/web-deployment-demos-slides-videos-for.html' title='Web Deployment Demos, Slides &amp;amp; Videos for VS 2010 launch'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-526598725308649023</id><published>2009-11-24T23:12:00.001-08:00</published><updated>2010-01-07T10:16:06.134-08:00</updated><title type='text'>Web Deployment Painkillers: VS 2010 &amp; MS Deploy</title><content type='html'>&lt;p&gt;Last week I did a talk at the &lt;a href="http://microsoftpdc.com/"&gt;PDC 2009&lt;/a&gt; and the talk is now available to view online live at &lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT56"&gt;www.microsoftpdc.com/Sessions/FT56&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The abstract of the talk was “&lt;em&gt;Learn about next generation of ASP.NET Web Deployment with tips &amp;amp; guidance on how you can reuse and extend the technologies available with VS 2010 to build a hassle free web deployment solution for your team. See how to use VS 2010 and MS Deploy to assist with with creating virtual directories in an automated fashion, setting up app pools correctly, uploading only the changed content, replicating servers in web farms, modifying Web.config files for testing/staging/pre-Prod/UAT/Production environments, setting up team build environment or deploying databases.”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Hope you will enjoy it!!&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;p&gt;PS: Btw, the presentation deck is available to download at &lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/FT56.pptx"&gt;Web Deployment Painkillers&lt;/a&gt;… Feel free to use it the way you like… &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-526598725308649023?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/526598725308649023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/11/web-deployment-painkillers-vs-2010-ms.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/526598725308649023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/526598725308649023'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/11/web-deployment-painkillers-vs-2010-ms.html' title='Web Deployment Painkillers: VS 2010 &amp;amp; MS Deploy'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-5740697219914835029</id><published>2009-10-31T20:31:00.001-07:00</published><updated>2009-10-31T20:32:53.029-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='1-Click Publish'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Packages'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS7'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='DB Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>VS 2010 Beta 2 Read Me Items for Web Deployment</title><content type='html'>&lt;p&gt;There are some known issues/bugs related to &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html" target="_blank"&gt;VS 2010 Web Deployment features&lt;/a&gt; in VS 2010 Beta 2 Read Me… I can imagine reading the entire Beta 2 read me file can be daunting so I thought I can just copy paste the ones related to Web Deployment here…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#800000"&gt;DB Deployment will fail if the Database Name is longer than 127 characters&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Description: &lt;/u&gt;If you are using latest &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;VS 2010 Web Deployment Features&lt;/a&gt; and trying to deploy your database using the &lt;a href="http://vishaljoshi.blogspot.com/2009/05/database-deployment-with-visual-studio.html"&gt;Deploy SQL &lt;/a&gt;property page then at times you might get error from VSMsDeploy task.&amp;#160; &lt;/p&gt;  &lt;p&gt;There might be several reasons for the failure including connection and authentication issue but a current bug in the product does not allow you to script schema/data from a database (typically SQL Express MDF file) if the file path is longer than 127 characters.&amp;#160; In the OS like XP or Win2K3 the default path for the VS project &amp;amp; its default ASP.NET Login/Profile DB could be something like C:\Documents and Setting\... \Visual Studio 2010\Projects\MyProject\App_Data\ASPnet_DB.mdf... This path can potentially exceed 127 characters and result into Deployment failure...&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Workaround:&lt;/u&gt; The easy work around is to have the project copied to a location where the path will not exceed 127 characters for e.g. C:\MyProject\App_Data...&amp;#160; This issue will eventually be resolved in the product...&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#800000"&gt;&lt;u&gt;Some VS 2010 Web Deployment Features will not work if VS 2010 is installed on Vista RTM instead of Vista SP1&lt;/u&gt;&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Description:&amp;#160; &lt;/u&gt;If you are using the new &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;Web Deployment feature set in VS 2010 &lt;/a&gt;and are using the below features which integrate with MSDeploy:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html"&gt;Web Packaging&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/web-1-click-publish-with-vs-2010.html"&gt;One-Click Publishing&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/database-deployment-with-visual-studio.html"&gt;DB Deployment&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;then you will have to use Vista SP1 instead of Vista RTM as your OS. &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Workaround: &lt;/u&gt;MsDeploy requires features which are built inside Vista SP1 and hence trying to run Web Deployment features on Vista RTM fails.&amp;#160; This is a &lt;u&gt;required&lt;/u&gt; dependency so you will have to use Vista SP1 as your OS for VS 2010.&amp;#160; Do note that you can still use any other operating system like XP, Win2K3, Win2k8 R2, Win7 etc to install VS 2010 and use the Web Deployment features, it is just advised that any of the OS versions that you use are updated with the latest Service Packs so that all the required dependencies are in place.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#800000"&gt;MsDeploy.exe.config file will be required to run Web Deployment on machines with .NET 4.0 only&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Description:&lt;/u&gt; If you installed VS 2010 on a clean machine which does not have .NET 2.0 (e.g Win2K3)&amp;#160; and are trying to use the &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;VS 2010 Web Deployment Features &lt;/a&gt;then when you run the &lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-packaging-installing-web-packages.html"&gt;deploy.cmd &lt;/a&gt;file to install your web package you might receive error stating &amp;quot;Msdeploy.exe -.NET Framework Initialization Error Unable to find a version of the runtime to run this application.&amp;quot;&amp;#160; This is due to the fact that VS 2010 comes with only .NET 4/CLR4 and and CLR 4 does not allow CLR 2.0 executables to run&amp;#160; without having an explict exe.config file…&amp;#160; If you are using other .NET 2.0/3.0 or 3.5 exes on a box with just .NET 4 then you might face similar issues with those EXEs too…&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Workaround&lt;/u&gt;: You can easily work around this by going to &amp;quot;%Program Files%\IIS\Microsoft Web Deploy&amp;quot; (&amp;amp; additionally also on &amp;quot;%Program Files (x86)%\IIS\Microsoft Web Deploy&amp;quot; folders and create following msdeploy.exe.config file in there&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;font size="3"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;startup&lt;/span&gt; &lt;span style="color: #ff0000"&gt;useLegacyV2RuntimeActivationPolicy&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;supportedRuntime&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;v2.0.50727&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;supportedRuntime&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;v4.0&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;startup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This issue will be fixed in the future releases of the product.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-5740697219914835029?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/5740697219914835029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/vs-2010-beta-2-read-me-items-for-web.html#comment-form' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/5740697219914835029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/5740697219914835029'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/vs-2010-beta-2-read-me-items-for-web.html' title='VS 2010 Beta 2 Read Me Items for Web Deployment'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-3056253362379984784</id><published>2009-10-21T00:47:00.001-07:00</published><updated>2009-10-21T00:47:27.880-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='1-Click Publish'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>How to ensure placeholder folders are created during VS 2010 Web Deployment</title><content type='html'>&lt;p&gt;During many web deployment scenarios developers want to be able create place holder folders where eventually their log files or runtime generated files like XMLs, Images etc will be stored…&lt;/p&gt;  &lt;p&gt;With VS 2010 Web Deployment there will be a small work around required for you to be able to deploy place holder folders…&amp;#160; Before I go about explaining the work around let me call out that if you do not know about VS 2010 Web Deployment features it might be worth while to check out the blog series about VS 2010 Web Deployment at &lt;a href="http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html"&gt;Overview Post for VS 2010 Web Deployment&lt;/a&gt;…&lt;/p&gt;  &lt;p&gt;Anyways, as VS 2010 Web Deployment is completely based on MSBuild based Web Publishing Pipeline (WPP) lot of deployment depends upon the MSBuild constructs…&amp;#160; One of the key features which is also supported using MSBuild based constructs is the ability to exclude Files and Folders from deployment.&amp;#160; I am hoping to write blog posts on both of these topics at some point but currently without going into the details consider following:&lt;/p&gt;  &lt;p&gt;There is a file/folder structure like C:\MyWeb\Foo\Bar\myfile.htm…&amp;#160; VS 2010 will allow you to exclude or include myfile.htm or folder “Foo” from Web Deployment… If you now chooses to &lt;strong&gt;include&lt;/strong&gt; myfile.htm but chooses to &lt;strong&gt;exclude&lt;/strong&gt; “Foo” folder then the WPP will get into unwanted complex state for potentially trivial gains…&lt;/p&gt;  &lt;p&gt;That is the reason most of the include, exclude, delete etc operations are done at the &lt;strong&gt;File level &lt;/strong&gt;rather than at Folder level… So when you are excluding a folder from deployment&amp;#160; behind the scenes a bunch of files under that folder are getting excluded and the end result is the folder being excluded too… The above explanation is not exactly how it translates into code but is more for understanding purposes…&lt;/p&gt;  &lt;p&gt;Anyways, this design decision causes the side effect that if there are no files in a folder then the folder does not get deployed as well… By now I imagine you must have figured out the work around too :-) Ya! just put a place holder file even if it is empty.txt in your place holder folder and it will get deployed too !!&lt;/p&gt;  &lt;p&gt;If this causes you a lot of grief then do write back with your scenarios so that we can try to understand and analyze them individually…&lt;/p&gt;  &lt;p&gt;Also do note that whether you are creating a web package or doing 1-Click Publish the same rationale applies as ultimately same WPP is executed behind the scenes for both…&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-3056253362379984784?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/3056253362379984784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/how-to-ensure-placeholder-folders-are.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3056253362379984784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3056253362379984784'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/how-to-ensure-placeholder-folders-are.html' title='How to ensure placeholder folders are created during VS 2010 Web Deployment'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-6465751449795596113</id><published>2009-10-19T23:42:00.001-07:00</published><updated>2009-10-20T00:27:51.145-07:00</updated><title type='text'>How to debug the selected page inside selected project all the time?</title><content type='html'>&lt;p&gt;As you might already know &lt;a href="http://connect.microsoft.com"&gt;http://connect.microsoft.com&lt;/a&gt; is a way to open bugs/request suggestions on various Microsoft products… One of the repeated suggestion I see for Web Development within Visual Studio is the ability to hit F5 on any .aspx page within a solution and have it be treated as the “Start up page”…&lt;/p&gt;  &lt;p&gt;It is pretty common to set a fixed page as a start up page within a Web Project…You could do that simply by right clicking the page of your choice and setting “Set as Start Page” as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/St1b0vlzIwI/AAAAAAAABAo/EmGUkTOF0BM/s1600-h/image%5B2%5D.png" target="_blank"&gt;&lt;img style="display: inline" title="Set As Start Page" alt="Set As Start Page" src="http://lh6.ggpht.com/_E8t3edIzcC8/St1b1BXE39I/AAAAAAAABAs/RTXcUQQ7ZnA/image_thumb.png?imgmax=800" width="338" height="372" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The above will fix your start page to be “Default.aspx” and no matter what you select within the project, Default.aspx will start when you hit F5…&lt;/p&gt;  &lt;p&gt;You can make the active selected page as your start up page by going to the Project –&amp;gt; Properties –&amp;gt; Web&amp;#160; and choosing the “Current Page” as your “Start Action” &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/St1b1tqk0KI/AAAAAAAABAw/8UHeh5TdBX4/s1600-h/image%5B6%5D.png" target="_blank"&gt;&lt;img style="display: inline" title="Current Page Start Action" alt="Current Page Start Action" src="http://lh3.ggpht.com/_E8t3edIzcC8/St1b2N-d1GI/AAAAAAAABA0/4Q3Tj1yo4mM/image_thumb%5B2%5D.png?imgmax=800" width="902" height="420" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There is a similar option for Web Site Projects too, although the interesting ask comes up when you have more than one web project in your solution and &lt;u&gt;you want to debug current page from the project you have currently selected…&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Most people right click on their project and click “Set as StartUp Project” every time they want to change the project they are debugging&amp;#160; (as shown below):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/St1b2a5iCqI/AAAAAAAABA4/N1VpXIEoBg0/s1600-h/image%5B9%5D.png" target="_blank"&gt;&lt;img style="display: inline" title="Set as StartUp Project" alt="Set as StartUp Project" src="http://lh5.ggpht.com/_E8t3edIzcC8/St1b2gUVCeI/AAAAAAAABA8/a2Yykm5LLs0/image_thumb%5B3%5D.png?imgmax=800" width="417" height="477" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Although there is a well kept secret in Visual Studio, which is worth noting…&amp;#160; You can actually right click on your “Solution File” and click “Set Start up&amp;#160; projects…”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/St1b3AkoekI/AAAAAAAABBA/p9mmG4OhU-o/s1600-h/image%5B12%5D.png" target="_blank"&gt;&lt;img style="display: inline" title="Set StartUp Projects..." alt="Set StartUp Projects..." src="http://lh4.ggpht.com/_E8t3edIzcC8/St1b3QTxxMI/AAAAAAAABBE/xYzErcUTZOA/image_thumb%5B4%5D.png?imgmax=800" width="426" height="425" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This will bring up the below dialog:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/St1b37sCwbI/AAAAAAAABBI/fy2r4FpvE-k/s1600-h/image%5B15%5D.png" target="_blank"&gt;&lt;img style="display: inline" title="StartUp Projects" alt="StartUp Projects" src="http://lh6.ggpht.com/_E8t3edIzcC8/St1b4Igk9pI/AAAAAAAABBM/DwkLD1j4uYc/image_thumb%5B5%5D.png?imgmax=800" width="771" height="482" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In this dialog you just need to select the radio button which says “Current Selection” and this will automatically make the project you are in as the start up project…&lt;/p&gt;  &lt;p&gt;Effectively by choosing “Current Selection” for the &lt;strong&gt;Start Up Project &lt;/strong&gt;and the “Current Page” for &lt;strong&gt;Start Action,&lt;/strong&gt;&amp;#160; you can now very easily debug the project + web page of your choice simply hitting F5…&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8112c6b0-bff4-47d3-9b68-81cfe565a617" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/WAP" rel="tag"&gt;WAP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Web+Site" rel="tag"&gt;Web Site&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Debugging" rel="tag"&gt;Debugging&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Web+Development" rel="tag"&gt;Web Development&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-6465751449795596113?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/6465751449795596113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/how-to-debug-selected-page-inside.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6465751449795596113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6465751449795596113'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/how-to-debug-selected-page-inside.html' title='How to debug the selected page inside selected project all the time?'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/St1b1BXE39I/AAAAAAAABAs/RTXcUQQ7ZnA/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-4476181561825884597</id><published>2009-10-12T22:40:00.001-07:00</published><updated>2009-10-12T22:40:30.591-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='WDP'/><title type='text'>Server specific Web.config sections replacement with WDP</title><content type='html'>&lt;p&gt;In this post I am hoping to explain how you can change your web.config settings per different server environment using Web Deployment Projects (WDP) for VS 2005 or VS 2008…&lt;/p&gt;  &lt;p&gt;First of all let me start with the fact that &lt;a href="http://msdn.microsoft.com/en-us/asp.net/aa336619.aspx"&gt;WDP for VS 2005&lt;/a&gt; as well as &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&amp;amp;displaylang=en"&gt;WDP for VS 2008&lt;/a&gt; are build configuration aware… In fact, special effort was made in WDP 2005 &amp;amp; WDP 2008 to allow configuration specific settings… &lt;/p&gt;  &lt;p&gt;That is the reason when you look at the WDP UI you can see configuration specific dropdowns as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/StQSxMoeNMI/AAAAAAAABAQ/4M86qz-tU60/s1600-h/image11.png" target="_blank"&gt;&lt;img style="display: inline" title="WDP Property Page" alt="WDP Property Page" src="http://lh5.ggpht.com/_E8t3edIzcC8/StQSxuSSptI/AAAAAAAABAU/XObDH5ryK94/image_thumb7.png?imgmax=800" width="730" height="426" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can create one build configuration per your server environment eg. “Testing”, “Staging” , “Production” etc and configure all of your WDP settings per build configuration pretty easily… Learn more &lt;a href="http://vishaljoshi.blogspot.com/2009/02/tips-tricks-managing-environment.html"&gt;how to manage configurations per build environment&lt;/a&gt;…&lt;/p&gt;  &lt;p&gt;Next I want to change connectionStrings section in side the web.config for “Testing” server and “Release” server… The original connection String section in my web.config file looks as below:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 163.11%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; height: 48px; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;connectionStrings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;vishal-db&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;connectionString&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Data Source=vijoshi-DevBox; Initial Catalog=vishal-db; Integrated Security=True&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;connectionStrings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;For “Testing” environment I would like to change my Data Source to be vijoshi-Testing &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;For “Release” environment I would like to change my Data Source to be vijoshi-Release &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To accomplish this I am going to add two configuration files to my project named connectionString.Testing.config and connectionString.Release.config… After adding the two files my solution explorer should look as below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/StQSxwjLCJI/AAAAAAAABAY/-Ptcf0EVB0U/s1600-h/image2.png" target="_blank"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh4.ggpht.com/_E8t3edIzcC8/StQSyv7JeBI/AAAAAAAABAc/ImqZfiDVI-0/image_thumb.png?imgmax=800" width="295" height="232" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The content of connectionString.Testing.config file will look as below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 162.88%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; height: 48px; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;connectionStrings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;vishal-db&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;connectionString&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Data Source=vijoshi-Testing; Initial Catalog=vishal-db; Integrated Security=True&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;connectionStrings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Notice that the connectionString.Testing.config only contains connectionStrings section (as opposed to original web.config which may contain many other sections) … Similar to the above example in connectionString.Release.config file I will only change the Data Source to vijoshi-Release…&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;After these two files are added I can now open my WDP configuration and go to the “Deployment” node and check the “Enable Web.config file replacement”…&amp;#160; After this the only thing I need to do is write &lt;strong&gt;connectionStrings=connectionString.Testing.config&lt;/strong&gt;&amp;#160; as shown below…&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/StQSyxJ9JmI/AAAAAAAABAg/cfGWeHUWyok/s1600-h/image8%5B1%5D.png" target="_blank"&gt;&lt;img style="display: inline" title="connectionStrings=connectionString.Testing.config " alt="connectionStrings=connectionString.Testing.config " src="http://lh3.ggpht.com/_E8t3edIzcC8/StQSzbPNgnI/AAAAAAAABAk/N8PXp1v6API/image_thumb2.png?imgmax=800" width="787" height="455" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;After this when I build my WDP project the connectionStrings section will be replaced by the content of the connectionString.Testing.config…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Also now I can modify the Configuration from “Testing” to “Release” and set the Web.config file section replacements section to look as below&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;connectionStrings=connectionString.Release.config&lt;/strong&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This way you can also modify the other config sections each in a new line of the text box shown above…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Hope this will help…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-4476181561825884597?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/4476181561825884597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/server-specific-webconfig-sections.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4476181561825884597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4476181561825884597'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/server-specific-webconfig-sections.html' title='Server specific Web.config sections replacement with WDP'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_E8t3edIzcC8/StQSxuSSptI/AAAAAAAABAU/XObDH5ryK94/s72-c/image_thumb7.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-3765410726334313786</id><published>2009-10-08T14:01:00.001-07:00</published><updated>2009-10-08T14:01:55.274-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='msdeploy'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Live Meeting: Simplifying Deployment With the Web Deployment Tool (MSDeploy)</title><content type='html'>&lt;p&gt;&lt;b&gt;One of our MVPs &lt;a href="http://sedodream.com"&gt;Sayed Ibrahim Hashimi&lt;/a&gt; is doing a Live Meeting&amp;#160; M&lt;/b&gt;&lt;b&gt;VP TV talk on : &lt;em&gt;Simplifying Deployment With the Web Deployment Tool (MSDeploy)&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You are invited to join the talk which is scheduled for &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Wednesday, October 14&lt;sup&gt;th&lt;/sup&gt;, 2009 | 4:00pm – 5:00pm (PDT, Redmond time)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Deploying ASP.NET Websites has always been a challenge and different teams have used different approaches to overcoming those challenges. Microsoft has offered some support for making deployment easier in the past. For instance they first introduced Web Deployment Projects for Visual Studio 2005, and also have a version for 2008. Web Deployment Projects do greatly simplify the process of calling the aspnet_compiler and aspnet_merge tool but even though their title states “Deployment” they had no support for physically deploying the site. Now Microsoft has introduced the Web Deployment Tool, also known as MSDeploy. MSDeploy will bridge the gap between taking a web site and physically deploying it to its destination. With MSDeploy you can easily and very effectively perform tasks such as pushing an ASP.NET site (Web site, Web Application Project, ASP.NET, etc) from one machine to several other machines. This is achieved by the target machines having the MSDeploy Remote Agent Service installed and running. You can sync two different Web Sites that are hosted in IIS, you can create a web package (simply a .zip file) and use that as your source, you can sync two different folders, and many other options. Another compelling feature of MSDeploy is that it will be integrated into Visual Studio 2010. From Visual Studio 2010 you can compile your ASP.NET Web Application Project and then create the Web Package which contains all your content files plus IIS settings. This one file will full describe your web.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Live Meeting Information&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.livemeeting.com/cc/mvp/join?id=PR7D6Z&amp;amp;role=attend&amp;amp;pw=A5128ML0Y0D"&gt;&lt;b&gt;Join the meeting.&lt;/b&gt;&lt;/a&gt;    &lt;br /&gt;&lt;b&gt;Audio Information&lt;/b&gt;    &lt;br /&gt;&lt;b&gt;Computer Audio&lt;/b&gt;    &lt;br /&gt;To use computer audio, you need speakers and microphone, or a headset.    &lt;br /&gt;&lt;b&gt;Telephone conferencing&lt;/b&gt;    &lt;br /&gt;Use the information below to connect:    &lt;br /&gt;Toll-free: +1 (866) 500-6738    &lt;br /&gt;Toll: +1 (203) 480-8000    &lt;br /&gt;Participant code: 5460396 &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Please join 10 minutes prior to the start time.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;First Time Users:&lt;/b&gt;    &lt;br /&gt;To save time before the meeting, &lt;a href="http://go.microsoft.com/fwlink/?LinkId=90703"&gt;check your system&lt;/a&gt; to make sure it is ready to use Microsoft Office Live Meeting.    &lt;br /&gt;&lt;b&gt;Notes&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Troubleshooting&lt;/b&gt;    &lt;br /&gt;Unable to join the meeting? Follow these steps:&lt;/p&gt;  &lt;p&gt;1. Copy this address and paste it into your web browser:   &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/mvp/join"&gt;https://www.livemeeting.com/cc/mvp/join&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. Copy and paste the required information:   &lt;br /&gt;Meeting ID: PR7D6Z    &lt;br /&gt;Entry Code: A5128ML0Y0D    &lt;br /&gt;Location: &lt;a href="https://www.livemeeting.com/cc/mvp"&gt;https://www.livemeeting.com/cc/mvp&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you still cannot enter the meeting, &lt;a href="http://r.office.microsoft.com/r/rlidLiveMeeting?p1=12&amp;amp;p2=en_US&amp;amp;p3=LMInfo&amp;amp;p4=support"&gt;contact support&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Microsoft Office Live Meeting can be used to record meetings. By participating in this meeting, you agree that your communications may be monitored or recorded at any time during the meeting.&lt;/p&gt;  &lt;p&gt;Hope this helps!!&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-3765410726334313786?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/3765410726334313786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/live-meeting-simplifying-deployment.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3765410726334313786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3765410726334313786'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/10/live-meeting-simplifying-deployment.html' title='Live Meeting: Simplifying Deployment With the Web Deployment Tool (MSDeploy)'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-7383058202739534525</id><published>2009-09-28T20:09:00.001-07:00</published><updated>2009-09-30T11:02:00.057-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Program Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Jobs'/><title type='text'>Do you think building Web sites should be easier, faster and fun?</title><content type='html'>&lt;p&gt;If you answered “Yes” then it might be interesting to you that there is an opportunity on our team for a person who has passion for making web development easier and exciting for everyone…&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;[NOTE: I have received a tons of resume already on this posting, thanks to everyone for sending your resume and showing interest… As there are several resumes to look into I will probably try to spend reasonable time over the weekend and respond whether the resume fits the needs of the job or not… Thanks again for your interest…]&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;This job posting is &lt;strong&gt;the unofficial job posting&amp;#160; &lt;/strong&gt;describing a person whom I am looking to &lt;strong&gt;refer&lt;/strong&gt; to my team to consider for &lt;strong&gt;an official job posting &lt;/strong&gt;which exists somewhere on Microsoft.com… :-) &lt;/p&gt;  &lt;p&gt;Our team is chartered with building Web Developer Tools based on web standards and so we are looking for someone who knows HTML, CSS, JavaScript/AJAX…&lt;/p&gt;  &lt;p&gt;We would love if this person knows PHP and/or ASP.NET too… If you know someone who loves building Web Sites and is passionate about web development technologies then please pass on the word… &lt;/p&gt;  &lt;p&gt;The person will most likely have to relocate to Redmond, WA and would work as a Program Manager (PM) within Microsoft…&amp;#160; Considering that I am inviting folks who are not familiar with Microsoft jargons let me write couple of lines about being a PM… :-)&lt;/p&gt;  &lt;p&gt;As a PM, this person will have to be the voice of The Web Developer, an advocate of the web developer to the rest of the team so that the right technologies can be created… &lt;/p&gt;  &lt;p&gt;Before I joined Microsoft I use to be some species of a developer i.e. I wrote code almost everyday so being a PM worried me coz it felt like I will not be writing code anymore… Well that is not true, a PM typically needs to represent the customer, in this case the customer is a Web Developer so as a PM, this person should be able to behave like a Web Developer… In short, this person will have the liberty to be amongst the first people to try out new web developer tools &amp;amp; technologies and hence can code as much as he/she likes :-)&lt;/p&gt;  &lt;p&gt;Now, many will start asking questions about how many years of experience does one need to have, how much salary will be given, how proficient should one be with Visual Studio and .NET, Is knowing ASP.NET or ASP.NET MVC important; well lot of that will depend upon the person and I do not have finite answers to any of these… !!&lt;/p&gt;  &lt;p&gt;But,&amp;#160; at this point I just want to ask simple but important questions to the potential candidate…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Are you passionate about web development and have a vision of how it can be made much easier, faster and fun…? &lt;/li&gt;    &lt;li&gt;Have you developed real world web sites which are up and running on the internet/intranet…? &lt;/li&gt;    &lt;li&gt;Are you a person who believes in web developer community and contributes towards it in someway, may it be blog, open source code, forums, articles, books, twitter etc &lt;/li&gt;    &lt;li&gt;Do you like speaking in front of a big audience at conferences and talk about the future of web development and doing coolest demos on web development? &lt;/li&gt;    &lt;li&gt;Do you understand what are the gaps in web development today in PHP/ASP.NET and what needs to be done to fix those? &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you answered “Yes” to the questions above send me an email with your resume and some background about the above at &lt;a href="mailto:FirstName.LastName@Microsoft.com"&gt;FirstName.LastName@Microsoft.com&lt;/a&gt; or call me at +1-425-705-2031 and we can talk… &lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;p&gt;PS: Comments for this blog post have been closed, you can feel free to send me your questions/concerns directly via email… &lt;/p&gt;  &lt;p&gt;Raghuraman &amp;amp; Amit – Although my email is already up there at various places but I still changed this based on your recommendation :-)&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://vishaljoshi.blogspot.com/2009/09/do-you-think-building-web-sites-should.html";digg_title = "Do you think building Web sites should be easier, faster and fun?";digg_bgcolor = "#FFFFFF";digg_skin = "compact";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-7383058202739534525?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/7383058202739534525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/09/do-you-think-building-web-sites-should.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7383058202739534525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7383058202739534525'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/09/do-you-think-building-web-sites-should.html' title='Do you think building Web sites should be easier, faster and fun?'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-544960335070100010</id><published>2009-09-22T23:05:00.001-07:00</published><updated>2012-01-04T17:59:05.255-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='DB Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Overview Post for Web Deployment in VS 2010</title><content type='html'>&lt;p&gt;In past few months I and my team have written several blog posts on VS 2010 Web Deployment features… In VS 2010 there was a lot of investment made in Web Deployment and over next few months we will be writing more on the subject…&lt;/p&gt;  &lt;p&gt;Below is the list of all the posts for easy reference: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Overview of VS 2010 Web Deployment&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-deployment-with-vs-2010-and-iis.html"&gt;Overview of Web Deployment with VS 2010 and IIS&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/11/web-deployment-painkillers-vs-2010-ms.html"&gt;Web Deployment Painkillers: VS 2010 &amp;amp; Web Deploy&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/04/web-deployment-demos-slides-videos-for.html"&gt;Web Deployment Demos, Slides &amp;amp; Videos for reuse&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/Glucose/Hanselminutes-on-9-ASPNET-4-and-Deployment/Default.aspx?lc=1033"&gt;Hanselminutes on 9 Video on Web Deployment&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/WebDeploymentMadeAwesomeIfYoureUsingXCopyYoureDoingItWrong.aspx" target="_blank"&gt;Web Deployment Made Awesome: Hanselman’s MIX 2010 talk&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/29/vs-2010-web-deployment.aspx" target="_blank"&gt;Web Deployment Overview on ScottGu's Blog&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html" target="_blank"&gt;Team Build walkthrough on using Web Deploy&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb386521.aspx" target="_blank"&gt;MSDN Documentation root for Web Deployment&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Web Packaging (Put your web into a .zip file)&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/07/10-20-reasons-why-you-should-create-web.html"&gt;10 + 20 Reasons why should you create Web Packages&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html"&gt;Web Packaging: Creating a Web Package using VS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-packages.html"&gt;Web Packaging: Creating web packages using MSBuild&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/514/export-a-package-through-iis-manager/"&gt;Creating a Web Package using IIS Manager&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/03/how-does-web-deployment-with-vs-10.html"&gt;How does Web Deployment with VS 10 &amp;amp; Web Deploy Work?&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-packaging-installing-web-packages.html"&gt;Installing Web Packages using Command Line&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/07/importing-web-package-into-iis-manager.html"&gt;Importing Web Package into IIS manager&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ewaldhofman.nl/post/2010/04/12/Auto-deployment-of-my-web-application-with-Team-Build-2010-to-add-Interactive-Testing.aspx"&gt;Web Packaging &amp;amp; Installation using Team Build&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Web.Config Transformation (Change Web.Config files per deployment environment)&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html"&gt;Web.Config Transformation&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://discountaspnet.spaces.live.com/blog/cns!FC24ECAD565F3E2C!809.entry"&gt;Basic Web.Config Transformation for Publishing&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/04/xml-document-transform-xdt-snippets-for.html"&gt;VS 2010 Snippets for Web.Config Transformations&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/05/xml-document-transforms-xdt-for-any-xml.html" target="_blank"&gt;Web.Config Transforms (XDTs) for any XML files in your web projects&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/05/applying-xdt-magic-to-appconfig.html" target="_blank"&gt;Applying XDT Magic to App.Config Files&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;u&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/06/parameterization-vs-webconfig.html" target="_blank"&gt;Web Deploy Parameterization vs Web.Config Transformation&lt;/a&gt;&lt;/u&gt; &lt;/li&gt;    &lt;li&gt;&lt;u&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/07/web-deploy-parameterization-in-action.html" target="_blank"&gt;Web Deploy Parameterization in Action&lt;/a&gt;&lt;/u&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://transformconfig.codeplex.com/" target="_blank"&gt;Use Web.Config Transformation independent of Package/Publish&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sedodream.com/2010/09/09/ExtendingXMLWebconfigConfigTransformation.aspx" target="_blank"&gt;Extending Web.Config Transformation by Sayed Hashimi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sedodream.com/2010/04/26/ConfigTransformationsOutsideOfWebAppBuilds.aspx" target="_blank"&gt;Config Transformation outside of Web Applications&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Database Deployment&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/database-deployment-with-visual-studio.html"&gt;DB Deployment with Visual Studio 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/replacing-your-old-db-with-new-one.html"&gt;Replacing your old DB with new one using VS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/06/28/vs2010-beta1-web-application-project-database-package-and-smo-options.aspx"&gt;SQL Script Options for DB Deployment in VS 2010&lt;/a&gt;&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/07/exclude-appdata-folder-from-deployment.html"&gt;Exclude App_Data during your deployment&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/09/27/dev10-beta1-deploy-web-application-with-sql-express-mdf-file-to-host-s-sql-server.aspx"&gt;Deploy SQL Server Express (MDF) DBs to full SQL Server&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/07/02/vs2010-beta1-delete-existing-objects-before-creating-flag-for-db-deployment.aspx"&gt;Delete existing DB Objects on Server before deployment&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/06/28/vs2010-beta1-web-application-project-database-package-and-smo-options.aspx"&gt;Using SQL Management Objects (SMO) Options for DB Deployments&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2010/03/24/extending-the-web-publishing-pipeline-to-package-database-project-deployed-sql-file.aspx"&gt;Extending Web Publishing Pipeline (WPP) to package SQL files generated by TS Data Projects&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/webdevtools/archive/2010/08/09/an-example-of-packaging-web-application-containing-database-upgrade-sql-file.aspx " target="_blank"&gt;How to use VS Database Projects (TS Data/Data Dude) with VS 2010 Web Deployment&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Web Publishing (Push you web from one machine to another)&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/web-1-click-publish-with-vs-2010.html"&gt;Web One Click Publish&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/06/05/basic-microsoft-web-deployment-tool-setup-for-visual-studio-2010.aspx"&gt;Server side setup of Web Deployment Tool (MsDeploy)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/10/how-to-ensure-placeholder-folders-are.html"&gt;How to ensure place holder folders are created during web deployment&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/06/01/free-web-hosting-to-try-asp-net-4-beta1-vs-2010-beta1-and-ms-web-deployment-tool-rc1.aspx"&gt;Free Web Hosting Announcement for VS 2010 Beta1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2010/02/15/free-sandbox-hosting-for-visual-studio-2010-rc-and-asp-net-4-0-rc-from-discount-asp-net.aspx"&gt;Free Web Hosting Announcement for VS 2010 RC with DiscountASP&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2010/03/05/free-sandbox-hosting-for-visual-studio-2010-rc-and-asp-net-4-0-rc-from-orcs-web.aspx"&gt;Free Web Hosting Announcement for VS 2010 RC with OrcsWeb&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=ewaR-yFmi4w"&gt;Deploying a Web Application using VS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;u&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2010/04/20/one-click-publish-what-s-new-since-beta-2.aspx"&gt;One-Click Publish - What's New Since Beta 2&lt;/a&gt;&lt;/u&gt;&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blog.arvixe.com/web-deploy-common-errors/" target="_blank"&gt;List of common Web Deploy errors to hosting provider&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/13/automating-deployment-with-microsoft-web-deploy.aspx" target="_blank"&gt;Publishing using Web Deploy on ScottGu’s blog&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Tips &amp;amp; Tricks for Web Deployment&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/10/29/converting-a-web-site-project-to-a-web-application-project.aspx"&gt;Converting Web Site Projects to Web Application Projects&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2010/02/19/how-to-package-com-component.aspx"&gt;How to package or publish GAC Assemblies&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2010/02/09/how-to-extend-target-file-to-include-registry-settings-for-web-project-package.aspx"&gt;How to package or publish Registry Entries&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2010/03/03/how-to-package-and-deploy-com-component.aspx"&gt;How to package or publish COM Components&lt;/a&gt;&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/10/vs-2010-beta-2-read-me-items-for-web.html" target="_blank"&gt;VS 2010 Beta2 Read Me Items for Web Deployment&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/04/web-deployment-projects-released-to.html"&gt;Web Deployment Projects (WDP) Beta for VS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;u&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2010/04/22/web-deployment-excluding-files-and-folders-via-the-web-application-s-project-file.aspx" target="_blank"&gt;Excluding Files and Folders from Deployment&lt;/a&gt; &lt;/u&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/09/web-deploy-iis6-to-iis7-migrations-link.html" target="_blank"&gt;Migrating IIS6 to IIS7 using Web Deploy &amp;amp; Link Extensions&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx" target="_blank"&gt;Deploying to a Web Farm using Microsoft Web Farm Framework&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sedodream.com/2010/08/15/WebDeploymentToolMSDeployHowToExcludeFilesFromPackageBasedOnConfiguration.aspx" target="_blank"&gt;Excluding files/folder based on Configuration&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx" target="_blank"&gt;Including extra files/folder while deploying&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sedodream.com/2010/06/07/InstallingWebAppsMadeEasyWebPlatformInstaller.aspx" target="_blank"&gt;Installing Web Applications made easy via Web PI&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sedodream.com/2010/03/11/WebDeploymentToolMSDeployCustomProviderTake1.aspx" target="_blank"&gt;Web Deploy (MsDeploy) Creating a custom Provider&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sedodream.com/2009/12/07/MSDeploySyncing2OrMoreFolders.aspx" target="_blank"&gt;Web Deploy (MSdeploy) Syncing 2 or more Folders&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://bit.ly/8ZnekR" target="_blank"&gt;How to see the Web Deploy commandline generated by VS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sedodream.com/2011/11/08/SettingFolderPermissionsOnWebPublish.aspx"&gt;Setting Folder Permissions on Web Publish&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Walkthroughs&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.asp.net/web-forms/tutorials/deployment-to-a-hosting-provider"&gt;Deployment to a Hosting Provider&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.asp.net/web-forms/tutorials/deployment-to-windows-azure/hosting-an-aspnet-web-forms-application-on-windows-azure"&gt;Hosting an ASP.NET Web Forms Application on Windows Azure&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.asp.net/mvc/tutorials/deployment-to-windows-azure/walkthrough-hosting-an-aspnet-mvc-application-on-windows-azure"&gt;Hosting an ASP.NET MVC Application on Windows Azure&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh694045(v=VS.103).aspx"&gt;Hosting an ASP.NET Web Application on Windows Azure&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sedodream.com/2011/11/08/UsingAWebDeployPackageToDeployToIISOnTheDevBoxAndToAThirdPartyHost.aspx"&gt;Using a Web Deploy package to deploy to IIS on the dev box and to a third party host&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hope you will enjoy the VS 2010 Web Deployment features…&lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-544960335070100010?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/544960335070100010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html#comment-form' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/544960335070100010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/544960335070100010'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html' title='Overview Post for Web Deployment in VS 2010'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-799012507807895832</id><published>2009-08-28T19:32:00.001-07:00</published><updated>2009-08-29T13:22:38.495-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multitargeting'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>All for that small Drop Down Box – Part 3</title><content type='html'>&lt;p&gt;I wrote couple of posts describing how Web MultiTargeting (Web MT) works in VS 2010… You can find those posts at:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-1.html"&gt;All for that small Drop Down Box – Part 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-2.html"&gt;All for that small Drop Down Box – Part 2&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Today&amp;#160; I hope to cover few other things related to MultiTargeting that the team focused on during VS 2010 and ASP.NET 4 cycle…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Silverlight MultiTargeting&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;VS 2010 will allow you to develop Silverlight (SL) projects seamlessly…&amp;#160; SL has got its own runtime versions like SL 2.0/3.0 and eventually there will be SL 4.0 too…&amp;#160; SL development has been possible with VS 2008 where you might have your Web Projects using SL 2.0 or 3.0 and now when VS 2010 comes out is is obvious that developers will expect smooth migration and upgrade for their VS 2008 SL projects into VS 2010…&lt;/p&gt;  &lt;p&gt;So in VS 2010 there will be functionality available to upgrade your SL projects to SL 3.0… As SL has different versions it becomes important for VS 2010 to support MultiTargeting between different SL versions… Do note that these version are completely independent of .NET FX versions…&lt;/p&gt;  &lt;p&gt;We have talked about Web Projects supporting .NET 2.0/3.0/3.5 as well as .NET 4… In addition to this it is now important for each of these Web Project to support different versions of SL… Thus when you create a new SL project there will be a drop down in the new project creation wizard which allows you to choose what version of SL do you want to target as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SpiTJPmqBpI/AAAAAAAAA_Y/PogpQLms1VI/s1600-h/image%5B9%5D.png"&gt;&lt;img style="display: inline" title="Silverlight New Project" alt="Silverlight New Project" src="http://lh6.ggpht.com/_E8t3edIzcC8/SpiTK9NirbI/AAAAAAAAA_c/jHR7Mn8f0G4/image_thumb%5B3%5D.png?imgmax=800" width="643" height="446" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On selecting Silverlight Application when you click “OK” then the below wizard will show up which will allow you to target the available Silverlight versions in your project…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SpiTLUP_D-I/AAAAAAAAA_g/iYez9VjAlQY/s1600-h/image%5B5%5D.png"&gt;&lt;img style="display: inline" title="Silverlight MT" alt="Silverlight MT" src="http://lh5.ggpht.com/_E8t3edIzcC8/SpiTMOuUfFI/AAAAAAAAA_k/QHxAp7g-qfw/image_thumb%5B1%5D.png?imgmax=800" width="436" height="355" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;SL MT also uses the Reference assemblies infrastructure that we discussed during Part –1 of this post…&amp;#160; You can find that SL also has its own set of “Reference Assemblies” as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SpiTMmGNiOI/AAAAAAAAA_o/40XTIFtFduU/s1600-h/image%5B12%5D.png"&gt;&lt;img style="display: inline" title="SL Reference Assemblies" alt="SL Reference Assemblies" src="http://lh3.ggpht.com/_E8t3edIzcC8/SpiTOKWS26I/AAAAAAAAA_s/peBFxP-8XgE/image_thumb%5B4%5D.png?imgmax=800" width="754" height="307" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This actually brings up an interesting point to note that Reference Assemblies infrastructure is pretty extensible and can be used for Frameworks which are technically outside of .NET Framework too…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ASP.NET MVC&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As you know ASP.NET MVC 1.0 was released on top of VS 2008… Then eventually the support for VS 2010 was also provided…&amp;#160; VS 2010 will fully support ASP.NET MVC just like it supports &lt;a href="http://vishaljoshi.blogspot.com/2009/08/web-application-project-vs-web-site.html"&gt;Web Application Projects or Web Site Projects&lt;/a&gt;… There will be upgrade options available from VS 2008 MVC projects to VS 2010 MVC Projects…&amp;#160; &lt;/p&gt;  &lt;p&gt;MVC projects can MultiTarget based on project references i.e. if you have reference to MVC 1.0 your intellisense will work for 1.0 and if you have reference to MVC 2.0 your intellisense will work for 2.0…&amp;#160; If your hoster does not support ASP.NET MVC just yet you can just select the reference to MVC assemblies and in the properties mark “CopyLocal” to True which will copy the MVC assemblies into your BIN which you can just simply deploy to the server along with your project (as shown below)…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SpiTOri9vsI/AAAAAAAAA_w/E9ITtGoLV8k/s1600-h/image%5B20%5D.png"&gt;&lt;img style="display: inline" title="CopyLocal" alt="CopyLocal" src="http://lh5.ggpht.com/_E8t3edIzcC8/SpiTPvYi0MI/AAAAAAAAA_0/_itka5HQ3so/image_thumb%5B8%5D.png?imgmax=800" width="370" height="619" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Multiple Frameworks in same Solution&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you have read Web MultiTargeting posts (&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-1.html"&gt;Part 1&lt;/a&gt; &amp;amp;&amp;#160; &lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-2.html"&gt;Part 2&lt;/a&gt;) you already know by now that there is a lot happening with respect to toolbox filtering, property grid filtering, context sensitive markup intellisense, JavaScript intellisense, C#/VB intellisense,&amp;#160; IIS App Pool management, web.config etc…&amp;#160; &lt;/p&gt;  &lt;p&gt;If someone has a big solution with several web projects, few class libraries, few web services etc, it is very likely that they will not update all of their project at the same time to .NET 4… So VS 2010 needs to make sure that things don’t break even if there were multiple projects in a single solution and all of them were targeting different .NET Framework Versions (with few Silverlight projects with multiple versions into the mix :-)) …&lt;/p&gt;  &lt;p&gt;There were various stress scenarios which were tested and optimized for in this area… In fact we have something called as “Overall Goodness Factor (OGF)”… OGF is a subjective adhoc test which needs to be performed on a regular basis by various people across the the team to understand how the product is behaving…&amp;#160; As most of the folks in our teams are developers (even if their title don’t say so :-)) they do reasonable job in playing around with various real world projects… This particular OGF covering stress scenario was always hard to execute, coz every time we had to set up this complex project structure from ground up and play around with it to make sure VS 2010 is actually performing correctly… Btw, the OGF report is sent out pretty broadly across the division for features like MT so if&amp;#160; any team’s OGF was not “Good” it use to become the the center of everyone’s attraction across the division (not in a good way :-))… In short there was enough motivation provided to get things right!!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Making sure all Web Stack Features Work&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As Web MT operates relatively in the lower layers of VS 2010 and ASP.NET 4 stack a small issue in MT surfaces as a big issue somewhere else… Although this is very much assumed and expected but the MT team had to specifically write Automation tests to ensure other features within the products like Dynamic Data, AJAX, Web Deployment, Build/Compilation, Debugging, WCF, Web Services etc etc continues to perform while targeting any .NET Framework version…&lt;/p&gt;  &lt;p&gt;Most of the time we did not face a lot of issue in this area, but nevertheless something which is worth mentioning…:-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Target Framework Moniker &amp;amp; Profiles&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As we talked about earlier “Reference Assemblies” which are laid down on the disk at %Program Files%\Reference Assemblies folder are meta data only assemblies… By default there are Reference Assemblies folders created for Silverlight versions and .NET Framework versions (e.g. 2.0, 3.0. 3.5 &amp;amp; 4)… VS 2010 architecture runs using a concept called as “Target Framework Moniker” which describes where reference assemblies should be picked from the disk…&amp;#160; The target framework Moniker looks something like below:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&amp;quot;.NETFramework,Version=v4.0,Profile=ServerCore&amp;quot;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;u&gt;Target Framework Identifier (“.NETFramework” in above example)&lt;/u&gt; &lt;/li&gt;    &lt;li&gt;&lt;u&gt;Target Framework Version (“Version=v4.0” in above example)&lt;/u&gt; &lt;/li&gt;    &lt;li&gt;&lt;u&gt;Profile Name (“ServerCore” in above example)&lt;/u&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Based of this information VS 2010 will pick up “Reference Assemblies” which in turn will allow VS 2010 to control the behavior across the board in the IDE (i.e. on toolbox filtering, intellisense, property grid filtering etc etc)…&lt;/p&gt;  &lt;p&gt;When Profile Name in the target framework Moniker is present then VS 2010 looks under the framework for the presence of the Profile definition &lt;u&gt;(Think of “MT Profile” as a SUBSET of the full .NET framework)&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SpiTP951dUI/AAAAAAAAA_4/zD1QRCDRt9U/s1600-h/image%5B23%5D.png"&gt;&lt;img style="display: inline" title="Profile Folder" alt="Profile Folder" src="http://lh3.ggpht.com/_E8t3edIzcC8/SpiTQVhBsXI/AAAAAAAAA_8/c9J1lriQ7X4/image_thumb%5B9%5D.png?imgmax=800" width="606" height="255" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When Profile Name in target framework Moniker is missing then the full frameworks are picked up… i.e. “.NETFramework,Version=v4.0” will pick up reference assemblies for the full .NET 4 Framework…&amp;#160; &lt;/p&gt;  &lt;p&gt;Profiles are interesting coz in the future there might be platforms and servers which do not need full .NET Framework but only subset of it… VS 2010 can ensure that projects developed using a specific &lt;strong&gt;Profile &lt;/strong&gt;will not land up accidentally consuming the larger surface area of .NET framework which might be absent on the destination… Eventually Mobile development can have its own profile and so can Windows Client development have its own… Anyways, the key point is that “Profiles” are a reusable way to provide MultiTargeting support with Visual Studio and will be expressed via the “target framework moniker”…&lt;/p&gt;  &lt;p&gt;You might be wondering where is this target Framework Moniker physically visible… Well the answer is complicated but what is important to note is that starting .NET 4 ASP.NET &lt;strong&gt;web.config&lt;/strong&gt;&amp;#160; schema will support a special attribute called &lt;strong&gt;targetFramework=”4.0” &lt;/strong&gt;as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SpiTQkIxehI/AAAAAAAABAA/VZDxeUk0Dng/s1600-h/image%5B26%5D.png"&gt;&lt;img style="display: inline" title="TargetFrameworkMoniker" alt="TargetFrameworkMoniker" src="http://lh5.ggpht.com/_E8t3edIzcC8/SpiTQ1IZlHI/AAAAAAAABAE/MDyZSg14gb4/image_thumb%5B10%5D.png?imgmax=800" width="391" height="53" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Following things are worth noting about this attribute:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The attribute resides on the compilation node of the system.web attribute of the web.config… &lt;/li&gt;    &lt;li&gt;This attribute was introduced in ASP.NET 4 and it is not supported for .NET 2.0/3.0/3.5 webs (as they shipped before the concept of Reference Assemblies and Profiles was introduced)… i.e. do not try to code something like “targetFramework=v3.5” in VS 2010&amp;#160; it will not work :-) &lt;/li&gt;    &lt;li&gt;“targetFramework” attribute is just a short form of “targetFrameworkMoniker”… &lt;/li&gt;    &lt;li&gt;“targetFrameworkMoniker” was the attribute which was earlier used in &lt;strong&gt;VS 2010 Beta1 &lt;/strong&gt;but in final VS 2010 release it will be renamed to “&lt;strong&gt;targetFramework”…&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;targetFramework=&lt;strong&gt;”4.0” &lt;/strong&gt;is same as targetFramework=&lt;strong&gt;”&lt;em&gt;.NETFramework,Version=v4.0”&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;If there was a profile then that could be added to targetFramework too &lt;em&gt;e.g. targetFramework=”.NETFramework,Version=v4.0,Profile=ServerCore&amp;quot; (btw, Profile=ServerCore&amp;quot; is just a made up name by me, it does not exist :-))&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;Post VS 2010 &lt;strong&gt;Beta1&lt;/strong&gt;, targetFramework will not be a required attribute at &lt;u&gt;runtime &lt;/u&gt;for ASP.NET 4… &lt;u&gt;But, it is required for VS 2010 to support correct MT behavior within IDE so I strongly encourage you to not delete that attribute from your web.config file…&lt;/u&gt; Its, just a little attribute it means no harm :-)&lt;u&gt; &lt;/u&gt;&lt;/li&gt;    &lt;li&gt;As targetFramework attribute is optional at runtime, if it was missing from web.config and the web was deployed under .NET 2.0 App Pool in IIS then ASP.NET will assume the web to be 2.0 Web… If the web was deployed on .NET 4.0 App Pool in IIS then ASP.NET will assume that the web is .NET 4 web…&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;em&gt;targetFrameworkMoniker, &lt;/em&gt;which was &lt;em&gt;&amp;#160;&lt;/em&gt;the VS 2010 &lt;strong&gt;Beta1&lt;/strong&gt;&amp;#160; equivalent of targetFramework attribute was a &lt;strong&gt;required&lt;/strong&gt; attribute&amp;#160; i.e. if that was absent you would get an error as below: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font color="#800000"&gt;“The application domain or application pool is currently running version 4.0 or later of the .NET Framework. This can occur if IIS settings have been set to 4.0 or later for this Web application, or if you are using version 4.0 or later of the ASP.NET Web Development Server. The &amp;lt;compilation&amp;gt; element in the Web.config file for this Web application does not contain the required 'targetFrameworkMoniker' attribute for this version of the .NET Framework (for example, '&amp;lt;compilation targetFrameworkMoniker=&amp;quot;.NETFramework,Version=v4.0&amp;quot;&amp;gt;'). Update the Web.config file with this attribute, or configure the Web application to use a different version of the .NET Framework.”&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#000000"&gt;The solution for the above error in &lt;strong&gt;VS 2010 BETA 1 &lt;/strong&gt;is to add below attribute under compilation node of the web.config file&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;targetFrameworkMoniker=&lt;strong&gt;”&lt;em&gt;.NETFramework,Version=v4.0”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Anyways, I guess now you know a lot more about a single attribute within web.config than you would ideally like to, so let’s move on :-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Retargeting between Framework Versions &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I intentionally kept this piece towards the end coz now you know a whole gamut of things that happen around Web MT within Visual Studio for a single project… The nice part is that VS 2010 will allow you to simply go to your project properties and use that retargeting drop down box shown below to flip your Framework version between 2.0, 3.0, 3.5, 4 or any of the Profiles that might be installed on your box… And as soon as you retarget IDE will frantically start doing a bunch of things behind the scenes and within no time will reload your project and get you all set on new Framework of your choice…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SpiTRU7GrTI/AAAAAAAABAI/q18t86S_8gM/s1600-h/image%5B32%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh5.ggpht.com/_E8t3edIzcC8/SpiTRhCqSlI/AAAAAAAABAM/Bd3sX6bWAew/image_thumb%5B12%5D.png?imgmax=800" width="884" height="528" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you choose to down target your project from say .NET 4 to .NET&amp;#160; 3.5 you will get a bunch of errors when you build, the primary reason for that is that VS 2010 cannot simply wipe out source code from your code files, it does not really know what code you wrote and tweaked painstakingly and suddenly loosing it all might be scary… But anyways, the chances of people moving from .NET 4 to 3.5 are very few so most people do not ever experience the errors… Even if you see retargeting errors most of the time the solution is all about deleting some new 4.0 specific code which is pretty easy to do…&lt;/p&gt;  &lt;p&gt;Anyways, in the image above you will also see a tons of extra frameworks, we have not yet made progress beyond 4.0, so most of them are not real… :-) They are all the test profiles and frameworks that MT team created painstakingly to make sure MT really works in whatever difficult situation we will throw at it…&amp;#160; So, when VS 2010 ships all the test frameworks will be gone and all you will see are few Frameworks is &lt;strong&gt;that small Drop Down Box&lt;/strong&gt;…. :-)&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;The remaining posts in the Web MultiTargeting Series are:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-1.html"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;All for that small Drop Down Box – Part 1&lt;/u&gt;&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-2.html"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;All for that small Drop Down Box – Part 2&lt;/u&gt;&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/vs-2010-project-conversion-upgrade.html"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Migrating Projects from VS 2008 to VS 2010&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-3.html";digg_title = "All for that small Drop Down Box – Part 3";digg_bgcolor = "#FFFFFF";digg_skin = "compact";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-799012507807895832?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/799012507807895832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-3.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/799012507807895832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/799012507807895832'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-3.html' title='All for that small Drop Down Box – Part 3'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/SpiTK9NirbI/AAAAAAAAA_c/jHR7Mn8f0G4/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-967303744890098151</id><published>2009-08-25T19:53:00.001-07:00</published><updated>2009-08-28T19:46:05.609-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multitargeting'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><title type='text'>All for that small Drop Down Box – Part 2</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;Web MultiTargeting (Web MT) for VS 2010 has been a great journey of fine technology and a tons of learning for me in person, I am sure everyone in the team feels very similar (although some may add “&lt;strong&gt;+ lot of pain&lt;/strong&gt;” into the mix :-))…&amp;#160; Yesterday, I published some of the details around what Web MT offers web developers in VS 2010… You can read it at:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-1.html"&gt;All for that small Drop Down Box – Part 1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I covered approx 10 different features of MultiTargeting in the previous post, today I am going to time box myself to a couple of hours to write as much as I can and then see if we need Part –3 of this series in few more days or not… :-)&lt;/p&gt;  &lt;p&gt;Anyways, let us get started!!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Filtering Markup Intellisense&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;One of the essential benefits of working within IDE like Visual Studio is that you get your code colorized correctly and intellisense keeps showing up as and when you need it…&amp;#160; Before working on many of these feature areas I often use to take things like keywords getting colorized and intellisense showing up etc pretty much for granted, now I don’t, now I appreciate that ultimately everything is a text pad before it becomes as fancy as VS 2010 code editor is… :-)&lt;/p&gt;  &lt;p&gt;The MT team did a reasonable amount of work to make sure that when you go about typing &amp;lt;asp: in HTML editor of VS 2010 and you start getting intellisense as below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SpSjn925IPI/AAAAAAAAA-w/r8lFm2UC9fw/s1600-h/image2.png"&gt;&lt;img style="display: inline" title="markup intellisense" alt="markup intellisense" src="http://lh6.ggpht.com/_E8t3edIzcC8/SpSjoCClNUI/AAAAAAAAA-0/tBygSKpWfWA/image_thumb.png?imgmax=800" width="310" height="323" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;then that is actually customized to the correct ASP.NET version… Imagine if folks got &amp;lt;asp:ListBox in .NET 2.0 project (where ListBox control is not supported) and they started using the ListBox only to find out when the web project is deployed it will not work…&amp;#160; Well, VS 2010 will not show you &amp;lt;asp:List Box in .NET 2.0 project but in order to do that there was work done to filter out the mark up from intellisense which does not apply in a particular framework… After we got the filtering working then the team was assigned to do some more work to make sure that the design was refined in a way that it did not adversely impact performance…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Correct JavaScript Intellisense&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You must have already heard that VS 2010 gives great JavaScript intellisense support… In fact in VS 2010 there was a lot of work in this area (out side of MT work) to ensure that you get intellisense everywhere, hopefully I will write about that also in a different post but whether or not I do I am sure you will start noticing the difference in JavaScript intellisense in VS 2010 over VS 2008… &lt;/p&gt;  &lt;p&gt;Anyways, for now what is interesting to know is that for Microsoft AJAX the JavaScript files are embedded inside the assemblies like System.Web.Extensions etc…&amp;#160; The AJAX support has only been growing in every .NET framework release and it is one of the reasons why people move from .NET 2.0 to 3.5 and will hopefully move to .NET 4 too…&amp;#160; &lt;/p&gt;  &lt;p&gt;You might recollect the reference assemblies discussion from my &lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-1.html"&gt;Part 1 post&lt;/a&gt; and that reference assemblies are meta data only assemblies… You might also recollect that VS 2010 process loads only .NET 4 and then reference assemblies are used to mask .NET 4 features in lower level targets like .NET 2.0/3.0 and 3.5…&amp;#160; &lt;/p&gt;  &lt;p&gt;Now the AJAX JavaScript files are embedded inside assemblies and they actually differ from framework to framework…&amp;#160; If VS 2010 would use the embedded JavaScript files from .NET 4 assemblies all the time then .NET 2.0/3.5 projects would land up consuming some JavaScript functions which may not be available in that framework…&amp;#160; Due to such scenarios the Reference assemblies actually always contain embedded resources (even though they do not actually contain the source code implementations)… Web MT team worked on getting these embedded resources from the correct reference assemblies and feeding to the JavaScript intellisense engine to ensure that you get correct AJAX intellisense when you are using Microsoft AJAX feature sets…&amp;#160; It was kind of cool to see even JavaScript intellisense get target aware, I hope folks who use a lot of Microsoft AJAX will be able to appreciate this :-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Special support for AJAX Control Toolkit (ACT)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;It is funny that we land up calling &lt;a href="http://www.asp.net/ajax/ajaxcontroltoolkit/samples/"&gt;AJAX Control Toolkit&lt;/a&gt; as “ACT”, I guess not many web developers using and contributing to ACT don’t do so!!&amp;#160; Anyways, ACT 1.0 was an out of band release (i.e. it did not ship as part of .NET 2.0) and offered various controls and extenders which are used by many many web developers…&amp;#160; Eventually ACT 3.5 and now community previews of recent ACT release are becoming available…&amp;#160; When you download and use ACT then you get controls and extenders in your toolbox and your web controls get options to add or remove extenders (e.g. A TextBox control can have a ColorPicker extender)… When all this things come together in VS 2010 there are a lot of possibilities like what if you have .NET 2.o project what kind of ACT should be made available, what if you have ACT 1.0 as well as ACT 3.5&amp;#160; on your box how should VS 2010 react to it, what should be allowed and what should be prevented via errors and intellisense so that web developers do not land up getting their webs into a bad state… ACT in itself with all its combinations keeps several members of our QA team busy for extended period of time… Their goal is&amp;#160; that things should just work and web developers should remain blissfully unaware of the complexity behind the scene…&amp;#160; &lt;/p&gt;  &lt;p&gt;Actually the entire MultiTargeting feature in a way is like that “If you as a developer never realized MTs existence throughout your project lifespan--&amp;gt; from creation, to editing to deployment in production, to end of maintenance life then it is “mission accomplished” for us:-)”…&amp;#160; It feels like working in the entertainment industry, making movies everyday and contributing in the category of work which is pivotal but does not have an Oscar category associated with it!!&amp;#160; As long as our movie is loved by the people watching it we will be happy and satisfied, so in short the ask from you is “Love VS 2010 and .NET 4”&amp;#160; it is indeed great!!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Support for 3rd party controls&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ensuring that 3rd party controls from likes of Infragistics and Dundas work seamlessly across framework versions (based on how they are designed) was also important… Some people want to be able to not keep buying same control over and over again after upgrading their framework version (sounds familiar :-))…&amp;#160; There is a reasonable amount of work done in verifying controls from many of our partners and also working with many control vendors to provide them with the guidance on how to work within VS 2010 to make sure things continue to work find when people migrate their projects into VS 2010…&amp;#160; The central MT team across the division worked together to come up with a guidance document for control vendors to integrate into VS 2010, even this simple blog post series is long enough so I will leave to you to imagine how much information must be poured into that document which will be used by various companies to build controls which will work within VS 2010…&amp;#160; You will be surprised on how versioning, licensing and naming is done by various partners… Ensuring that nothing of this broke in VS 2010 was not easy…:-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ASP.NET Compilation System&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;With .NET 4 running in VS 2010 process the ASP.NET Compilation System used is also .NET 4… Before we talk more about this let me tell you what ASP.NET Compilation System does – it is the system which actually takes the web pages, parses the various ASP.NET related syntax present inside the HTML e.g. &amp;lt;asp:GridView etc and converts that into code… It also pulls out all of the inline C# or VB code out of your web page and calls the correct C#/VB compiler on it… This is the core ASP.NET Compiler which runs inside of Visual Studio… &lt;/p&gt;  &lt;p&gt;Now imagine that the ASP.NET Compiler within VS 2010 was required to be made target aware… What I mean by that is when you are targeting .NET 2.0 and you have .NET 4.0 syntax in your web then the compiler needs to throw an error which shows up in your VS 2010 error list which you can then double click and you are taken to the line on which there was an error…&amp;#160; This actually is the same kind of error reporting mechanism that happens even when there is a typo in source code… In essence ASP.NET 4 compiler needs to get into the “correct framework mode” to provide the accurate error messaging and to avoid any type bleeding from happening…&lt;/p&gt;  &lt;p&gt;There are also MT implications on C# and VB compilers which I will possibly cover in a separate post… In any case trust me that making compilation system target aware is a significant endeavor…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;IIS Application Pool Mappings&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As you know we have Visual Studio Development Server (aka Cassini) that is used to debug/run your project within VS without needing IIS…&amp;#160; I talked a little bit about this in my previous post… The other possibility for running and debugging your app is by using IIS on your local box itself… &lt;/p&gt;  &lt;p&gt;VS allows you to create a &lt;a href="http://vishaljoshi.blogspot.com/2009/08/web-application-project-vs-web-site.html"&gt;WAP or a Web Site&lt;/a&gt; which uses IIS instead of Cassini… Even here MT needs to intervene; if you are creating a .NET 2.0 IIS Web then VS 2010 needs to go access IIS and create Virtual Directories, IIS Apps and map them to the correct App Pools running in correct target frameworks… Simply put VS 2010 needs to put .NET 2.0 project in .NET 2.0 App Pool and .NET 4 project in .NET 4 App Pool…&amp;#160; I wish it was just limited to this but there are instances when correct App Pools are not available and then VS 2010 needs to go and create them for that framework… Sometime the project is mapped to use .NET 2.0 App Pool and now it is being upgraded to .NET 4… In this scenario VS needs to go and change the IIS App to use the correct App Pool too… &lt;/p&gt;  &lt;p&gt;VS 2010 actually uses IIS 6 Metabase APIs to make these changes and even when you are using IIS 7.0 or 7.5 VS 2010 continues to use the same Metabase APIs and hence if you are using IIS as your development server with VS 2010 with Vista/Win7 you will need to have IIS 6 Metabase Compatibility Layer turned on in Control Panel –&amp;gt; Programs–&amp;gt; Turn Windows Features On/Off&amp;#160; as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SpSjohus8YI/AAAAAAAAA-4/7ogh9Fl75Js/s1600-h/image5.png"&gt;&lt;img style="display: inline" title="metabse compatibility" alt="metabse compatibility" src="http://lh6.ggpht.com/_E8t3edIzcC8/SpSjuHmJEtI/AAAAAAAAA-8/LS_6trKZ3kM/image_thumb1.png?imgmax=800" width="429" height="375" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It is not only when VS 2010 flips/flops Virtual Directory App Pools when this compatibility layer is used… It is also used when IIS App is created for the first time, in short it is used every time you use IIS based web project within VS 2010… &lt;/p&gt;  &lt;p&gt;In all honesty, in VS we could write code to get rid of the IIS 6 Metabase compatibility dependency and instead start using IIS 7 configuration system API but there was a lot work needed to do that we could never get to completely finishing it on time… :-( I totally understand that it is going to be an inconvenience to have the compatibility layer enabled and I apologize for the same but I hope that you will recognize the fact that we do have the intent to finish the work but just from cost and schedule standpoint we could not fit this work into VS 2010…&lt;/p&gt;  &lt;p&gt;Anyways, I have reached at the end of my stipulated couple of hours of time to write this post… I assumed that if I give myself couple of hours to write then the content will be at reasonable reading length without making everyone bored, it will also ensure that I do not start writing gibberish :-)&lt;/p&gt;  &lt;p&gt;I certainly have more inner workings to tell you about Web MT but I guess that the content is interesting enough to deserve “All for that small Drop Down Box - &lt;strong&gt;Part 3&lt;/strong&gt;”…!!&lt;/p&gt;  &lt;p&gt;So until then please do feel free to let me know if any of this is any good to anyone reading :-)&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;The remaining posts in the Web MultiTargeting Series are:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-1.html"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;All for that small Drop Down Box – Part 1&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-3.html"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;All for that small Drop Down Box – Part 3&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/vs-2010-project-conversion-upgrade.html"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Migrating Projects from VS 2008 to VS 2010&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-2.html";digg_title = "All for that small Drop Down Box – Part 2";digg_bgcolor = "#FFFFFF";digg_skin = "compact";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-967303744890098151?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/967303744890098151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-2.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/967303744890098151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/967303744890098151'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-2.html' title='All for that small Drop Down Box – Part 2'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/SpSjoCClNUI/AAAAAAAAA-0/tBygSKpWfWA/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-2327337615575159374</id><published>2009-08-24T23:56:00.001-07:00</published><updated>2009-08-28T19:44:56.607-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multitargeting'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><title type='text'>All for that small Drop Down Box – Part 1</title><content type='html'>&lt;p&gt;Multi Targeting in Visual Studio 2010 is surprisingly a big feature area… It falls under the category of what we called as a “Divisional Initiatives” which spans across nearly all of Visual Studio and .NET Framework teams… Even engineers from outside of VS and .NET teams contributed significantly on the project... With this series of blog posts I am going to merely focus on MultiTargeting (MT) for Web Developers in Visual Studio 2010 and ASP.NET 4… &lt;/p&gt;  &lt;p&gt;First of all let me call out by saying that in VS 2008 there was only one version of CLR i.e. CLR 2.0… Various framework versions i.e. .NET 2.0, .NET 3.0 and .NET 3.5 were only changes to the framework assemblies which still ran on the same CLR 2.0…&amp;#160; With .NET 4 this equation changes coz .NET 4 runs on CLR 4…&amp;#160; VS 2010 now needs to support .NET 2.0, .NET 3.0, .NET 3.5 as well as .NET 4 Applications; this implies that now we are about to cross into different CLRs for Applications targeting different Framework Versions… Solving this issue is in part what VS 2010 MT is all about… Solving this problem for various ASP.NET Web projects is what Web MT is all about…&lt;/p&gt;  &lt;p&gt;As VS 2010 itself loads CLR 4, trying to create, edit, debug, deploy applications with VS 2010 running on CLR 2 would mean loading CLR 2 inside CLR 4…&amp;#160; That without going into detail is a technical nightmare… &lt;u&gt;To overcome this VS 2010 loads only CLR 4 and .NET 4 in its process and for applications targeting .NET 2.0, 3.0 or 3.5 VS 2010 makes .NET 4 emulate .NET 2.0/3.0 or 3.5&lt;/u&gt;. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So how does the emulation inside VS 2010 really happen?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;With VS 2010 there is a new concept called as “Reference Assemblies”… “Reference Assemblies” simply put are meta data assemblies which represent each framework… These assemblies &lt;u&gt;do not contain&lt;/u&gt; the complete implementation of the framework they just allow VS 2010 to decipher what classes, methods, properties, resources etc are really present in each .NET Framework version… You can find these “Reference Assemblies” in %Program Files%\Reference Assemblies folder…. There is more to the process of creating “Reference Assemblies” and registering them etc but for now I will not get into those details…&lt;/p&gt;  &lt;p&gt;As I mentioned earlier inside VS 2010 process only CLR 4 and .NET Framework 4 is loaded… If you create a .NET 2.0 project, VS 2010 will use the .NET 2.0 Reference assemblies to ensure that your project behaves like a .NET 2.0 app… Although, all the time when you are editing your .NET 2.0 code, designing your web pages, authoring controls, debugging etc you are actually using .NET 4 but VS 2010 is masking off all the .NET 4 features based on the directions provided by .NET 2.0 Reference Assemblies… Now when you build your projects VS 2010 cannot use .NET 4 and CLR 4 to create the output assemblies coz if VS 2010 would do that then you would not be able to run your project on a box which only has only .NET 2.0 (i.e. not CLR 4/.NET 4)…&amp;#160; Hence, when it comes to building the assemblies VS 2010 launches the correct compilers out of process and generates the correct assemblies for your project… &lt;/p&gt;  &lt;p&gt;Now with this high level understanding let me mention that as I write this article I am thinking that I have been lucky to have worked with great engineers across the company to make the VS 2010 MT experience the way it is today and additionally I feel lucky that people whom we build all this stuff for (ie .NET developers world wide) can actually understand what goes into development of such a system as Visual Studio and .NET Framework… Anyways, let us get into the meat of what all does all this crazy MT stuff buys web developers at the end of the day (APART FROM THAT SMALL DROP DOWN BOX that you see…&amp;#160; :-)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/SpOLIogErLI/AAAAAAAAA94/MO2PZnnhNZE/s1600-h/image10.png"&gt;&lt;img style="display: inline" title="small drop down box" alt="small drop down box" src="http://lh3.ggpht.com/_E8t3edIzcC8/SpOLI51EY9I/AAAAAAAAA98/U173_uGlFzE/image_thumb3%5B1%5D.png?imgmax=800" width="201" height="111" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Migrating pre-VS 2010 (starting from VS 2003) web projects to VS 2010 – &lt;/strong&gt;One of the feature areas of Web MT is migration of apps created using previous version of VS to VS 2010.&amp;#160; VS 2010 allows migration from VS 2003, VS 2005 as well as VS 2008…&amp;#160; This entails modifying the solution files (.sln) and project files (.csproj/.vbproj) of your Web Projects to make them complaint with VS 2010 format. &lt;/p&gt;  &lt;p&gt;Have you wondered why do we need to do that??&amp;#160; As you might already know project and build systems within VS work using MSBuild… There are target files and task dlls which are installed as part of VS 2010 in specific directories… These directories need to be side by side with VS 2008/VS 2005 directories to ensure that you can run VS 2008 and VS 2005 on the same box and uninstalling of any of the IDEs does not break the other versions… Anyways, there are references to various target files inside the solution and project which need to be updated to be point to the correct directories of VS 2010… Apart from that there is also changes to IDE version etc which is embedded inside these files which are used by VS, all that stuff needs to be updated…&lt;/p&gt;  &lt;p&gt;When you open VS 2003/2005 or 2008 projects in VS 2010, VS will automatically do this migration for you.&lt;/p&gt;  &lt;p&gt;People always bring up the discussion where they would like few developers in their team try out VS 2010 and remaining stay with VS 2003/2005 or 2008.&amp;#160; They typically want to try out the VS 2010 release in a limited way and once the few folks trying the product give a green light they would move the entire team to VS 2010…&amp;#160; Doing this is of course possible but an additional ask which comes with that is “Can we have some developers use VS 2010 while others use VS 2008 for the &lt;u&gt;same project/solution file&lt;/u&gt; in a common source control?”; unfortunately the answer to that is No…&amp;#160; The process of having the same project being operable in various versions of VS is what we call as “Round-Tripping”… We really did want to include this feature for VS 2010 but unfortunately could not due to the existing complexity of MT (as discussed above, below and everywhere in this post :-)) + limited time to get everything right… !!&amp;#160; Well, what is important is that we will make everyone in your project team move to VS 2010 easy enough that you can have the entire team bet on it at the same time…!!&amp;#160; Let us see how -&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Upgrading pre- .NET 4 web projects to .NET 4&lt;/strong&gt;&amp;#160; - VS 2010 will also allow you to upgrade your .NET Framework version from .NET 2.0, 3.0 or 3.5 to .NET 4…&amp;#160; This now enters the realm of making changes which impact your code… That is the reason VS 2010 allows you to either stay with your existing Framework version or upgrade the Framework version to .NET 4… There are tons of cool new ASP.NET 4 features, I encourage you to read the whitepaper on &lt;a href="http://www.asp.net/learn/whitepapers/aspnet40/"&gt;ASP.NET 4 and VS 2010&lt;/a&gt; to learn more… -&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Creating .NET 2.0, 3.0, 3.5 as well as .NET 4 projects – &lt;/strong&gt;This is &lt;strong&gt;&lt;u&gt;drop down box&lt;/u&gt;&lt;/strong&gt;&amp;#160; which I am referring to in the title of this article… :-)&amp;#160; It will manifest itself again but what is important to note is that when you try to use File –&amp;gt; New –&amp;gt; Project or File –&amp;gt; New –&amp;gt; Web Site (as shown below), you will get a choice to choose the Framework version of your choice for the new project… &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SpOLJYLccSI/AAAAAAAAA-A/8WYa2QTw5mY/s1600-h/image3.png"&gt;&lt;img style="display: inline" title="new project framework dropdown" alt="new project framework dropdown" src="http://lh6.ggpht.com/_E8t3edIzcC8/SpOLKNYCJsI/AAAAAAAAA-E/LZ-c-TAFmiY/image_thumb1%5B1%5D.png?imgmax=800" width="682" height="474" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Some folks will still have their web servers set up only for .NET 3.5 and in that case they can choose the corresponding framework version from the drop down…&amp;#160; As soon as the framework version is chosen in you will notice that the &lt;a href="http://vishaljoshi.blogspot.com/2009/08/vs-project-template-vs-project-system.html"&gt;project templates&lt;/a&gt; will get filtered correctly…&amp;#160; When any of the project templates (or item templates) are authored we now have a concept of embedding the “Min Framework Version” and “Max Framework Version” in them…&amp;#160; This allows VS 2010 to determine which templates to show and hide when you are choosing a particular Framework.&amp;#160; It also ensures that we do not need to have multiple copies of the same template within VS saving time and size during VS 2010 install… &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Filtering Item Templates for Framework Version – &lt;/strong&gt;Similar to the project templates discussion above are the details for the Item templates…&amp;#160; When you go ahead and try to right click on your project and Add—&amp;gt; New Item, similar filtering happens… For e.g. you do not see “ADO.NET Entity Data Model” item template if you right click on a .NET 2.0 project&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SpOLKlivFII/AAAAAAAAA-I/wH8dU70Ipeo/s1600-h/image7.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh4.ggpht.com/_E8t3edIzcC8/SpOLLJE8fbI/AAAAAAAAA-M/45uRVyA698U/image_thumb3.png?imgmax=800" width="756" height="522" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Item template filtering works similar to project template filtering… Also it is worth noting that there can always be custom code which can be run during “Project creation” or “adding Item Template” which allows VS 2010 to do special things with the template per .NET framework version…&amp;#160; A good example of this is the web.config file template which needs to generate different web.config file based on the .NET framework version…&amp;#160; So if you crack open a item template you might see some conditional framework based logic in there… :-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ToolBox Filtering – &lt;/strong&gt;As you are about to design your page or user control you may tend to drag and drop controls from toolbox… At this time VS 2010 needs to make sure that you see only the controls that your .NET version allows…&amp;#160; If you remember I mentioned earlier that VS 2010 is always running .NET 4…&amp;#160; If the toolbox showed all the controls associated with .NET 4 all the time then you might see unwanted controls when you are targeting .NET 2.0 and potentially may have errors in production if you used .NET 4 controls in .NET 2.0 projects… To avoid this from happening VS 2010 uses “Reference Assemblies” and the entire architecture surrounding them to identify what controls need to be shown in the toolbox…&lt;/p&gt;  &lt;p&gt;At this time VS 2010 also gathers what the tooltip for the controls and shows them correctly to you so that you know what type of control are you using…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SpOLLWzvjlI/AAAAAAAAA-Q/vF6CXvfV67s/s1600-h/image10%5B1%5D.png"&gt;&lt;img style="display: inline" title="toolbox version tooltip" alt="toolbox version tooltip" src="http://lh6.ggpht.com/_E8t3edIzcC8/SpOLLwGnwsI/AAAAAAAAA-U/1lwec-lfh68/image_thumb4.png?imgmax=800" width="394" height="502" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Additionally what is interesting to note is that the toolbox meta data population also happens for 3rd party controls and hence even if you were using Infragistics or Dundas control their metadata will also get correctly reflected in the Toolbox i.e. their framework dependency chain will be walked and correct Framework dependency will be verified…&lt;/p&gt;  &lt;p&gt;As you can imagine there is a lot of work being done based on your framework version to go down to “Reference Assemblies” and find out what needs to be shown what does not and only after all that the toolbox gets populated correctly…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Property Grid Filtering – &lt;/strong&gt;Now if you pause and ponder for a moment that it is only the .NET 4 control which is being used within VS all the time then you can possibly imagine that some controls may now have more properties in .NET 4 than what they use to have in the previous framework versions… For example let us take Login control in .NET 2.0 vs the same control in .NET 4… ClientIDMode did not use to exist in .NET 2.0 but does in .NET 4.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SpOLMVtks8I/AAAAAAAAA-Y/5eCkiUDgovM/s1600-h/image14.png"&gt;&lt;img style="display: inline" title="property grid filtering" alt="property grid filtering" src="http://lh4.ggpht.com/_E8t3edIzcC8/SpOLMp9qPAI/AAAAAAAAA-c/rDqFctSWazA/image_thumb6.png?imgmax=800" width="637" height="323" /&gt;&lt;/a&gt;&amp;#160; In this case VS 2010 needs to make sure that those extra properties are not shown in the control property grid as shown above, coz if they do and someone accidentally sets them then they will appear as part of the .aspx/.ascx markup and will get deployed to the web server… As on the web server the app will be set to run in .NET 2.0 it will not recognize the ClientIDMode property and will throw an exception causing production failures.&amp;#160; &lt;/p&gt;  &lt;p&gt;One additional goals of Web MT was to ensure that if at all there are any accidental mistakes then they are caught well early within VS rather than letting them propagate and have the application fail at runtime… &lt;/p&gt;  &lt;p&gt;In fact I would say that it would be a cardinal sin for Web MT if VS 2010 design time allowed you to create an app which will fail after deployment and the teams over here have done whatever it takes to make sure that does not happen…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Switching C# &amp;amp; VB compilers for the correct Framework Versions – &lt;/strong&gt;As I mentioned earlier based on the correct framework version the correct C# &amp;amp; VB compilers need to be invoked so that correct binaries can be produced for your projects… This also ensures that VS 2010 is able to catch errors in the C# &amp;amp; VB code based on the compiler features for the particular framework version…&amp;#160; &lt;/p&gt;  &lt;p&gt;From compilation standpoint there are different things that happen for Web Application Projects (WAPs) as compared to Web Site Projects (WSPs) which I have explained in the article &lt;a href="http://vishaljoshi.blogspot.com/2009/08/web-application-project-vs-web-site.html"&gt;WAPs vs Web Sites&lt;/a&gt; and so there are is a interesting design on how the compiler switching happens in case of these different project systems… I will explain that in a future article but for now you can be rest assured that when you target .NET 3.5 VS 2010 will produce binaries which will run on .NET 3.5 and when you use .NET 4 VS 2010 will produce binaries which target .NET 4…:-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Add Reference Dialog Filtering&lt;/strong&gt; – When you try to add new references to your projects to any of the assemblies now you will notice that you will see the references associated with the correct framework version… Again this list is populated by querying reference assemblies similar to what toolbox and property grid filtering did…&lt;/p&gt;  &lt;p&gt;In Add Reference dialog box again the validation is done against your project and you are shown only the references which are legit to be added to your project based on its .NET Framework version…&amp;#160; &lt;/p&gt;  &lt;p&gt;You will also notice that the path of the Framework assemblies will be pointing to Reference Assemblies folder as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/SpOLNA-W6wI/AAAAAAAAA-g/2FsSr1_FYkk/s1600-h/image20.png"&gt;&lt;img style="display: inline" title="Add Reference" alt="Add Reference" src="http://lh4.ggpht.com/_E8t3edIzcC8/SpOLNspWWCI/AAAAAAAAA-k/qIo-L3HkMs0/image_thumb8.png?imgmax=800" width="467" height="383" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;One of the big challenges that the team faced was trying to improve the performance as compared to VS 2008 while incorporating all these architectural changes around the meta data only assemblies…&amp;#160; The design of&amp;#160; reflecting upon the “Reference Assemblies” and then filtering out .NET 4 assemblies to finally populate the dialog boxes, tool boxes, property grids etc certainly is a lot more work as compared to simply looking at a fixed folder location that was being done in VS 2008…&amp;#160;&amp;#160; I am really proud of our team who have spent countless amount of time in fine tuning the flow of these designs to ensure that performance is not adversely affected and hopefully in future builds of VS 2010 you will notice the perf improvements since Beta1 build…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Using the correct machine.config and root web.config&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Many of you might be already aware that the web.config file that you see in your web project is actually part of a hierarchical config system…&amp;#160; There is machine.config as well as root web.config which resides in CONFIG folder under “%Windows%\Microsoft.NET\Frameworks\Vx” directory…&amp;#160;&amp;#160; Actually an interesting piece to note is that for .NET 2.0, 3.0 and 3.5 the CLR version was always 2.0 and hence the machine.config and root web.config file was never changed since .NET 2.0, check out the “Config” folder for .NET 2.0, if you go to v3.0 or 3.5 you will not find any “Config” folder at all:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/SpOLOJJOinI/AAAAAAAAA-o/WslsAUqmIJ0/s1600-h/image6.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/SpOLOnzhwsI/AAAAAAAAA-s/EKr7tj8TYco/image_thumb1.png?imgmax=800" width="691" height="393" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For .NET 4.0 you will have a similar folder and it will contain “machine.config” and “web.config” files… In essence .NET 4 is the first opportunity for ASP.NET to have a different root web.config and machine.config… Certainly that brings a huge set of advantages but increases the work we needed to do from Web MT standpoint.&amp;#160; &lt;/p&gt;  &lt;p&gt;Now when you create .NET 2.0/3.0 or 3.5 project in VS 2010 then the machine.config and root web.config needs to be picked up from .NET 2.0 folder but if you create .NET 4 project then the machine.config and root web.config needs to be picked up from .NET 4 folder…&amp;#160; In nutshell when you start typing &amp;lt;appSettings&amp;gt; and so on in your web.config file do note that the schema intellisense that you get is also customized to the correct config hierarchy that you are in.&lt;/p&gt;  &lt;p&gt;If you have incorrect settings in web.config file (which might be correct for a different Framework) then you get errors because of this work in Web MT to use the config files from the correct Framework hierarchy…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Picking correct version of Visual Studio Development Server (Cassini) &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As you know we have Visual Studio Development Server (aka Cassini) which ships for local development of web projects within VS… In VS 2010 we will ship with two versions of Cassini EXEs, if you observe system tray balloons/pop-ups you will now notice either webserver40.exe or webserver20.exe… That is because Cassini runs outside the process of Visual Studio and for debugging your .NET 2.0/3.0/3.5 you actually want to run under CLR 2.0 and to try your .NET 4.0 apps you need to run under CLR 4.0… This will provide real framework experience during F5/Ctrl+F5 and View in Browser scenarios… Apart from various bug fixes that went into Cassini 4 this was another chunk of work for our QA team did to verify whether VS 2010 picked up correct version of Cassini or not… &lt;/p&gt;  &lt;p&gt;There are several other things related to Multi targeting that I would like to ramble about, but if I do it right now it will just become too long to be read, instead I will hold off for now and continue&amp;#160; with Part 2 in next few days…&lt;/p&gt;  &lt;p&gt;Till then my hope is that you will look at that small drop down box a little more next time and remember us all :-)&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;The remaining posts in the Web MultiTargeting Series are:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-2.html"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;All for that small Drop Down Box – Part 2&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-3.html"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;All for that small Drop Down Box – Part 3&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/vs-2010-project-conversion-upgrade.html"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Migrating Projects from VS 2008 to VS 2010&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-1.html";digg_title = "All for that small Drop Down Box – Part 1";digg_bgcolor = "#FFFFFF";digg_skin = "compact";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-2327337615575159374?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/2327337615575159374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-1.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/2327337615575159374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/2327337615575159374'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/all-for-that-small-drop-down-box-part-1.html' title='All for that small Drop Down Box – Part 1'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_E8t3edIzcC8/SpOLI51EY9I/AAAAAAAAA98/U173_uGlFzE/s72-c/image_thumb3%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-4170786024150550905</id><published>2009-08-12T16:16:00.001-07:00</published><updated>2009-08-12T16:28:16.916-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><title type='text'>Fix-It: Nesting between .aspx and code behind is lost when you move files to a different folder</title><content type='html'>&lt;p&gt;In this post I am hoping to cover a quick tip/trick about file nesting in ASP.NET Web Site Project.&lt;/p&gt;  &lt;p&gt;Let’s say you have the below web site in your solution explorer:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SoNNTR5QXsI/AAAAAAAAA9o/YBERDPeelqY/s1600-h/image%5B8%5D.png"&gt;&lt;img style="display: inline" title="nest files" alt="nest files" src="http://lh6.ggpht.com/_E8t3edIzcC8/SoNNUfzBixI/AAAAAAAAA9s/1VbxrFAJayk/image_thumb%5B6%5D.png?imgmax=800" width="219" height="270" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you move “About.aspx” and “About.aspx.cs”&amp;#160; to the “New Folder” shown above then you will see the file nesting in solution explorer incorrect… &lt;/p&gt;  &lt;p&gt;To fix this issue there is a solution explorer button for “Nesting Related Files” as shown below…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/SoNNUsTY9CI/AAAAAAAAA9w/bGBXFualoW4/s1600-h/image%5B11%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh6.ggpht.com/_E8t3edIzcC8/SoNNV4B3RJI/AAAAAAAAA90/xqzE18EApVw/image_thumb%5B7%5D.png?imgmax=800" width="330" height="331" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When you click this button the project system should update the solution explorer and show you the nested files correctly…&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2b97f2a1-a50d-4523-9146-bf3cf1604718" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Web+Site" rel="tag"&gt;Web Site&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;tweetmeme_style = 'compact';&lt;br /&gt;tweetmeme_url = 'http://vishaljoshi.blogspot.com/2009/08/fix-nesting-between-aspx-and-code.html';&lt;br /&gt;tweetmeme_source = 'VishalRJoshi';&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-4170786024150550905?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/4170786024150550905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/fix-nesting-between-aspx-and-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4170786024150550905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4170786024150550905'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/fix-nesting-between-aspx-and-code.html' title='Fix-It: Nesting between .aspx and code behind is lost when you move files to a different folder'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/SoNNUfzBixI/AAAAAAAAA9s/1VbxrFAJayk/s72-c/image_thumb%5B6%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-6047450005143292762</id><published>2009-08-12T14:06:00.001-07:00</published><updated>2009-08-12T16:27:36.945-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET Development Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio Development Server'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Cassini'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><title type='text'>Fix-It: Multiple instances of Visual Studio Development server getting created</title><content type='html'>&lt;p&gt;Sometimes while developing some of you might notice a lot instances of Visual Studio Development Server (aka Cassini) in your system tray… Many of these icons when clicked on land up just vanishing away and at times these icons may flood the system tray causing frustration…&amp;#160; Sorry for that :-(&lt;/p&gt;  &lt;p&gt;One of the reasons for this happening is that ASP.NET Development server is set up to use dynamic port allocation as shown below:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WAP &lt;/strong&gt;(Right Click Project –&amp;gt; Properties –&amp;gt; Web)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SoMu2cCYPFI/AAAAAAAAA9Y/Crsc-vmOWXw/s1600-h/image3.png"&gt;&lt;img style="display: inline" title="Auto-assign Port" alt="Auto-assign Port" src="http://lh6.ggpht.com/_E8t3edIzcC8/SoMu3cmFPPI/AAAAAAAAA9c/AEp3QHCK8Nk/image_thumb1.png?imgmax=800" width="716" height="418" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Web Sites &lt;/strong&gt;(Select Web Sites –&amp;gt; F4 to see properties)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SoMu3pyBXzI/AAAAAAAAA9g/rjt9kCVq_g0/s1600-h/image7.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh5.ggpht.com/_E8t3edIzcC8/SoMu4mQv5bI/AAAAAAAAA9k/VmGXFhWJzno/image_thumb3.png?imgmax=800" width="309" height="438" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Sometimes on some developer boxes either Windows firewall or custom firewall blocks a bunch of ports… In this situation Web Development Server tries to hook to one of the blocked ports port and is not allowed to… In the process the Development Server lands up crashing… Next time it tries to assign itself to another dynamic port and the same thing happens…&amp;#160; As a result there are various tray icons created even though the Web Development Server exe has actually crashed…&amp;#160; That is the reason when you hover over the icons in the system tray they vanish away…&lt;/p&gt;  &lt;p&gt;Firstly, let me call out that this is a bug, I just verified it with our key dev Bill Hiebert and he confirmed that this is now fixed in VS 2010…&amp;#160; For the time being the work around for &lt;/p&gt;  &lt;p&gt;VS 2008 developers is to go ahead and turn off the Auto-assign Port/Use Dynamic ports option and actually set a fixed port which you know is not blocked by one of your firewalls…&amp;#160; Hopefully with this the multiple icons in the system tray should no longer appear…&lt;/p&gt;  &lt;p&gt;If you still face problem then do write back…&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d81caa93-077c-456d-87fc-2c5fd7416d92" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET+Development+Server" rel="tag"&gt;ASP.NET Development Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio+Development+Server" rel="tag"&gt;Visual Studio Development Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cassini" rel="tag"&gt;Cassini&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;tweetmeme_style = 'compact';&lt;br /&gt;tweetmeme_url = 'http://vishaljoshi.blogspot.com/2009/08/multiple-instances-of-visual-studio_12.html';&lt;br /&gt;tweetmeme_source = 'VishalRJoshi';&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-6047450005143292762?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/6047450005143292762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/multiple-instances-of-visual-studio_12.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6047450005143292762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6047450005143292762'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/multiple-instances-of-visual-studio_12.html' title='Fix-It: Multiple instances of Visual Studio Development server getting created'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/SoMu3cmFPPI/AAAAAAAAA9c/AEp3QHCK8Nk/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-5270527107529874483</id><published>2009-08-12T13:25:00.001-07:00</published><updated>2009-08-12T13:25:38.231-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET Development Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio Development Server'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Cassini'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><title type='text'>Multiple instances of Visual Studio Development server getting created</title><content type='html'>&lt;p&gt;Sometimes while developing some of you might notice a lot instances of Visual Studio Development Server (aka Cassini) in your system tray… Many of these icons when clicked on land up just vanishing away and at times these icons may flood the system tray causing frustration…&amp;#160; Sorry for that :-(&lt;/p&gt;  &lt;p&gt;One of the reasons for this happening is that ASP.NET Development server is set up to use dynamic port allocation as shown below:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WAP &lt;/strong&gt;(Right Click Project –&amp;gt; Properties –&amp;gt; Web)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SoMlPdq2voI/AAAAAAAAA9I/av9zc5DJhcA/s1600-h/image%5B3%5D.png"&gt;&lt;img style="display: inline" title="Auto-assign Port" alt="Auto-assign Port" src="http://lh5.ggpht.com/_E8t3edIzcC8/SoMlPvfvByI/AAAAAAAAA9M/Wezwf1t8zO0/image_thumb%5B1%5D.png?imgmax=800" width="716" height="418" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Web Sites &lt;/strong&gt;(Select Web Sites –&amp;gt; F4 to see properties)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/SoMlQL9uFvI/AAAAAAAAA9Q/ne37HXtbjm0/s1600-h/image%5B7%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh6.ggpht.com/_E8t3edIzcC8/SoMlQTVRNjI/AAAAAAAAA9U/hrfCFr1ITH4/image_thumb%5B3%5D.png?imgmax=800" width="309" height="438" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Sometimes on some developer boxes either Windows firewall or custom firewall blocks a bunch of ports… In this situation Web Development Server tries to hook to one of the blocked ports port and is not allowed to… In the process the Development Server lands up crashing… Next time it tries to assign itself to another dynamic port and the same thing happens…&amp;#160; As a result there are various tray icons created even though the Web Development Server exe has actually crashed…&amp;#160; That is the reason when you hover over the icons in the system tray they vanish away…&lt;/p&gt;  &lt;p&gt;Firstly, let me call out that this is a bug, I just verified it with our key dev Bill Hiebert and he confirmed that this is now fixed in VS 2010…&amp;#160; For the time being the work around for VS 2008 developers is to go ahead and turn off the Auto-assign Port/Use Dynamic ports option and actually set a fixed port which you know is not blocked by one of your firewalls…&amp;#160; Hopefully with this the multiple icons in the system tray should no longer appear…&lt;/p&gt;  &lt;p&gt;If you still face problem then do write back…&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-5270527107529874483?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/5270527107529874483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/multiple-instances-of-visual-studio.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/5270527107529874483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/5270527107529874483'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/multiple-instances-of-visual-studio.html' title='Multiple instances of Visual Studio Development server getting created'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_E8t3edIzcC8/SoMlPvfvByI/AAAAAAAAA9M/Wezwf1t8zO0/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-8901850766786255628</id><published>2009-08-08T15:25:00.001-07:00</published><updated>2009-08-08T15:25:23.989-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><category scheme='http://www.blogger.com/atom/ns#' term='WDP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Web Application Project Vs Web Site</title><content type='html'>&lt;p&gt;Few days back I summarized the &lt;a href="http://vishaljoshi.blogspot.com/2009/08/vs-project-template-vs-project-system.html"&gt;difference between a project system and a project templates&lt;/a&gt;; today I want to focus on key differences between different project systems available for web developers in Visual Studio…&lt;/p&gt;  &lt;p&gt;You might be aware of the fact that we have two different types of project systems for Web developers i.e Web Application Projects (WAPs) and Web Site Projects (WSPs)…&amp;#160; Often time I get asked this question on which type of project should to use for web development…&amp;#160; Sometimes web developers even start a religious war on the two choices, honestly here you have an option to choose the god of your own choice and this post is my attempt to help you make an informed decision…&lt;/p&gt;  &lt;p&gt;Most of the time I land up asking questions to people before actually recommending a particular project system.&amp;#160; I will try to keep the format of this post in that similar fashion as it typically works out easier to come to a conclusion…&amp;#160; If you are in a hurry and do not care of about the inner workings then feel free to just read the &lt;strong&gt;questions (in bold)&lt;/strong&gt; and the &lt;strong&gt;&lt;font color="#8000ff"&gt;highlighted&lt;/font&gt;&lt;/strong&gt; winning project system name in the answer :-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q1. Do you intend to deploy source code on your production server and edit it right on the server if there was a time sensitive bug reported ?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you answered &lt;strong&gt;Yes&lt;/strong&gt; to the above question, you want to use &lt;strong&gt;&lt;font color="#8000ff"&gt;Web Site projects (WSPs)&lt;/font&gt;&lt;/strong&gt;…&amp;#160; In case of Web Site projects Visual Studio does not really compile your source code on your dev box, it merely uses aspnet_compiler to validate that your source code will actually compile and run on the server…&amp;#160; Hence when you try to deploy a web site people typically also deploy the source code on the server which allows them to edit the source right on the production server if there was a time sensitive bug reported…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q2. Conversely, are you sensitive about not having your source code openly available on production servers?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you answered &lt;strong&gt;Yes &lt;/strong&gt;then you want to use &lt;font color="#8000ff"&gt;&lt;strong&gt;Web Application Projects (WAPs)&lt;/strong&gt;&lt;/font&gt;… In case of WAPs the .aspx.cs or .aspx.vb files are actually compiled via VS and converted into a .dll which actually resides in the BIN folder of your project…&amp;#160; The generated dll is named as MyProject.dll by default (but you can change the name and also potentially strong name sign it if you care)… Hence in case of WAP projects you do not need to deploy you .aspx.cs or .aspx.vb files which prevents exposure of your source code, in case of WSP you need to deploy these files… The subtlety to note here is that Visual Studio in this case is actually calling C# or VB compilers to compile your .aspx.cs or .aspx.vb files whereas in case of Web Sites the ASP.NET RUNTIME compiler calls the C# and VB compilers internally on production servers... &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q3. Do you care to unit test your source code which is present in your .aspx.vb/.aspx.cs files?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I know this is a politically flaming question, don’t answer it aloud :-)… If you answered &lt;strong&gt;Yes&lt;/strong&gt; then you want to use &lt;font color="#8000ff"&gt;&lt;strong&gt;WAPs&lt;/strong&gt;&lt;/font&gt;… As WAPs generate a DLL out of your .aspx.cs and .aspx.vb files you can very easily create a Unit Test project using MBUnit, NUnit, VS Unit Test etc and add a reference to the WAP DLL…&amp;#160; In case of WSPs there is no DLL generated on developer box hence it is difficult to reference that code and write unit tests for them…&amp;#160; Not that it is not doable but it is not very intuitive and easy as in case of WAPs…&lt;/p&gt;  &lt;p&gt;Also additionally if you have factored your C#/VB source code in a class library and are unit testing that library then WSP projects will work just fine…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q4. Do you want many developers editing the deployed site as and when required by going to the server ?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you answered &lt;strong&gt;Yes &lt;/strong&gt;then refer to &lt;strong&gt;Q1.&lt;/strong&gt; the rationale is simple WAP does not give you an option to edit .aspx.cs or .aspx.vb files on the server directly hence you need to use &lt;font color="#8000ff"&gt;&lt;strong&gt;WSP&lt;/strong&gt;&lt;/font&gt; in this case…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q5. Do you use Source Code Control like VSS or Team Foundation Server to store your sources ?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This question was just for fun and clarity… :-) It does not matter whether you are using &lt;strong&gt;&lt;font color="#8000ff"&gt;WAP or WSP&lt;/font&gt;&lt;/strong&gt;… There is full source code control integration available with both project types so this is not really a deciding factor…&amp;#160;&amp;#160; Similarly debug, run, view in browser etc all work no matter which project system you choose…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q6. Do you intend to use Team Build/Cruise Control.NET etc to create a nightly/rolling builds or set up Continuous Integration?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you answered &lt;strong&gt;Yes &lt;/strong&gt;then ideally you are better off with &lt;strong&gt;&lt;font color="#8000ff"&gt;WAP&lt;/font&gt;&lt;/strong&gt;…&amp;#160; WAP is actually a MSBuild based project system and as you may be aware MSBuild is the basis of most command line build/test/deploy model for projects created by Visual Studio...&amp;#160; It contains .csproj or .vbproj file which contains all the MSBuild semantics to be able to build/compile/deploy your web project, hence it is very easy to set up command line builds, deployments etc with WAPs.&amp;#160; WSPs on the other hand have no .csproj or .vbproj files, we provided rudimentary support for WSP to use command line build using Solution Files (.sln)…&amp;#160; It is not rocket science to have WSP projects build in Team Build/CC.NET but the fact is that when WSPs were designed back in VS 2005 continuous integration (CI) was not the primary scenario rather quick easy editing of web pages was a higher priority…&amp;#160; &lt;/p&gt;  &lt;p&gt;A different way of thinking about this is that there can be a lot of generic MSBuild based plug-ins (tasks/targets) which can out of the box work for WAPs but will need your own manual tweaking around to get them to work with WSP…&amp;#160; Essentially this decision point is not as black n white but without doubt WAPs will be way easier when it comes to MSBuild/Team Build support…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q.7 Do you intend to remotely connect to your web and edit it via FTP?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Many people create their web sites and deploy it to a remote server… Eventually, they want to be able to connect to these LIVE sites from Visual Studio and edit them live by adding more features to them, fixing bugs etc…&amp;#160; If you are one of these folks then &lt;strong&gt;&lt;font color="#8000ff"&gt;WSP&lt;/font&gt; &lt;/strong&gt;is a better bet for you as WSP allow you to open a Web Site on the server and edit it right inside of Visual Studio… Again it boils down to the fact that the server actually has your source code so it is possible to edit it via FTP or FPSE and as WAPs do not have source code it does not really make sense to try to edit them…&lt;/p&gt;  &lt;p&gt;While we are on this topic, let me mention&amp;#160; “please try to avoid using FPSE, it is a deprecated technology on the server side and sooner or later Visual Studio will stop supporting it”…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q.8 Is there a possibility that you might ever loose your source code from your dev box if your hard disk crashed and you never had source code control back up?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Sounds like a silly question right, but many times for my personal web sites I do land up in this bucket… Recently I lost the source code for a portion of &lt;a href="http://vishaljoshi.blogspot.com/2008/12/kritzu-zune-playlist-generator-based-on.html"&gt;KritZu&lt;/a&gt; project, well it was a windows app but the point is that for my tiny home grown projects I sometimes do not have a proper source control repository… &lt;/p&gt;  &lt;p&gt;Anyways in this scenario if you had a &lt;font color="#8000ff"&gt;&lt;strong&gt;WSP &lt;/strong&gt;&lt;/font&gt;and had deployed it with source code on the server then you might be better off… &lt;font color="#000000"&gt;But then honestly this is a silly reason, please create back up of your source code somewhere and don’t use this as a differentiating factor…&amp;#160; Additionally in VS 2010 you can also &lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html"&gt;create source package of your project&lt;/a&gt; and potentially save them somewhere, it makes creating back ups for source code in WAPs much easier, so in case of &lt;strong&gt;VS 2010 &lt;/strong&gt;you can also use &lt;strong&gt;&lt;font color="#8000ff"&gt;WAP &lt;/font&gt;&lt;/strong&gt;equally well for this scenario…&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Q.9 Do you intend to update just few .aspx and .aspx.cs/.aspx.vb files and do not want to recompile your project?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;If you answered &lt;strong&gt;Yes&lt;/strong&gt; you want to use &lt;strong&gt;&lt;font color="#8000ff"&gt;WSP&lt;/font&gt;… &lt;/strong&gt;Again as described in Q.1, 2, and 4 above Web Site project has source code on the server and it gets compiled there so if you just want to update one file and push it on the server then you do not need to recompile your project.&amp;#160; This is the very reason why “&lt;strong&gt;Copy Web Site&lt;/strong&gt;” feature is available only with WSP and not with WAP… In case of &lt;strong&gt;WAP &lt;/strong&gt;as all the .aspx.vb/.aspx.cs files are actually compiled into a DLL if you want to just change one of it you have to recompile….&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;NOTE:&amp;#160; If you just want to change .aspx files and not .aspx.vb/.aspx.cs then &lt;strong&gt;&lt;font color="#8000ff"&gt;WAP &lt;/font&gt;&lt;/strong&gt;is equally good…&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Q.10 Do you intend to leverage Web Deployment features of VS 2010 and MsDeploy?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;If you answered &lt;strong&gt;Yes&lt;/strong&gt; then you want to use &lt;strong&gt;&lt;font color="#8000ff"&gt;WAPs&lt;/font&gt;&lt;/strong&gt;…&amp;#160; There are tons of Web Deployment features available in VS 2010 for WAPs, some of them are:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-deployment-with-vs-2010-and-iis.html"&gt;Overview of Web Deployment with VS 2010 and IIS&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html"&gt;Web Packaging: Creating a Web Package using VS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-packages.html"&gt;Web Packaging: Creating web packages using MSBuild&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-packaging-installing-web-packages.html"&gt;Installing Web Packages using Command Line&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/07/10-20-reasons-why-you-should-create-web.html"&gt;10 + 20 Reasons why should you create Web Packages&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html"&gt;Web.config Transformation&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/database-deployment-with-visual-studio.html"&gt;DB Deployment with Visual Studio 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/web-1-click-publish-with-vs-2010.html"&gt;Web 1-Click Publish&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Not that the above features will be supported in Web Site someday but we initially implemented the entire feature set on MSBuild so that it can be supported in a CI model on CC.NET/Team Build and as it is very straightforward to hook MSBuild WAPs was the de-facto choice… WSPs do not have a project file and hence trying to implement this for WSP will require a major changes in WSPs which we are not able to accommodate within VS 2010 &lt;strong&gt;box&lt;/strong&gt;…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q.11 Have you heard of Web Deployment Projects for VS 2005 and VS 2008?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://vishaljoshi.blogspot.com/2008/01/visual-studio-2008-web-deployment.html"&gt;Web Deployment Projects (WDP)&lt;/a&gt; are an add on to VS 2005 (&lt;a href="http://msdn.microsoft.com/en-us/asp.net/aa336619.aspx"&gt;Download WDP 2005&lt;/a&gt;)and VS 2008 (&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&amp;amp;displaylang=en"&gt;Download WDP 2008&lt;/a&gt;)… WDP is a MSBuild based project and it has its own project file… It essentially takes the output of WAP or WSP and pre-compiles/merges it into DLLs which are ready to be deployed… Essentially WDP does the compilation that ASP.NET Compiler would do at RUNTIME and so if you use them during build time then your web pages’ FIRST TIME load performance will significantly improve (as ASP.NET will not have to compile the pages on the server)… &lt;/p&gt;  &lt;p&gt;For WSP this means that you get some of MSBuild benefits of integration with Team Build/CC.NET but then you loose the flexibility of having your source code on the server and editing it anytime you want…&amp;#160; In any case WDP in my opinion should NOT be one of the deciding points while choosing WAP or WSP, in fact&amp;#160; WDP works just fine with both the project systems…&amp;#160; &lt;/p&gt;  &lt;p&gt;Many people try to use WDP to get Team Build style benefits on WSPs but then I would recommend pausing and asking yourself a question “Why are you using WSP if you are about to loose many of the advantages of WSP like being able to edit code files anytime, etc?&lt;/p&gt;  &lt;p&gt;So from WDP standpoint either &lt;strong&gt;&lt;font color="#8000ff"&gt;WAP&lt;/font&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;font color="#8000ff"&gt;WSP&lt;/font&gt;&lt;/strong&gt; is equally ok…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q.12. Do you write inline C# or VB code in .aspx files (&lt;em&gt;in addition to / instead of &lt;/em&gt;writing it in .aspx.cs or .aspx.vb)?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;People sometimes do write &amp;lt;script runat=”server”&amp;gt; int i;&amp;lt;/script&amp;gt; or &amp;lt;%= %&amp;gt; style code inside the .aspx pages… If you do so you should note that WSP provide better intellisense and refactoring here… But most of the times the difference is not very noticeable in WAPs either (at least not many people are screaming about&amp;#160; it :-))…&amp;#160; So if you leave that part alone both WAP or WSP work the same from this standpoint…&lt;/p&gt;  &lt;p&gt;The code written in .aspx pages EVEN IN CASE OF WAP does not get compiled by VS… The code in .aspx pages is left as is and is compiled by ASP.NET compiler on the server… So essentially even if you are using WAPs you can also edit the code written in .aspx on the production server… Certainly, you can do this with WSP too…&lt;/p&gt;  &lt;p&gt;So when it comes to writing inline C# &amp;amp; VB code &lt;strong&gt;&lt;font color="#8000ff"&gt;WSP&lt;/font&gt;&lt;/strong&gt; and &lt;font color="#8000ff"&gt;&lt;strong&gt;WAPs &lt;/strong&gt;&lt;/font&gt;are more or less the same…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q.13 Do you aspire to write both VB and C# code in a single Web Project?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;What if people who love VB could write VB code and people who love C# could write C# code and they both can work on the same project at the same time… Interesting idea right…?&amp;#160; You can imagine that in some community project people may decide to do this… In enterprises or formal companies I have never seen this happen due to maintainability reasons…&amp;#160; Anyways, even for kicks if you want to write both VB and C# code in the same Web Project it is way more simpler to do so in WSP than in WAP…&amp;#160; &lt;/p&gt;  &lt;p&gt;Again it is not impossible to do it in WAPs but slightly more convoluted…&amp;#160; The reason why it is complicated to do this in WAP is coz WAP compiles everything based on the project file which is either vbproj or csproj… WSP on the other hand is just a folder and ASP.NET RUNTIME can call any compiler based on the file extension… There are some &lt;em&gt;ifs and buts &lt;/em&gt;and maybe someday I will write about them but for now &lt;font color="#8000ff"&gt;&lt;strong&gt;WSP&lt;/strong&gt;&lt;/font&gt; is more preferred in this scenario…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q.14 Have you heard of &lt;/strong&gt;&lt;a href="http://www.asp.net/mvc/"&gt;&lt;strong&gt;ASP.NET MVC&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; projects?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In&amp;#160; my &lt;a href="http://vishaljoshi.blogspot.com/2009/08/vs-project-template-vs-project-system.html"&gt;Project template vs. Project system&lt;/a&gt; post I had mentioned that &lt;a href="http://asp.net/mvc"&gt;ASP.NET MVC&lt;/a&gt; Projects are a type of &lt;strong&gt;&lt;font color="#8000ff"&gt;WAP&lt;/font&gt;&lt;/strong&gt;…&amp;#160; To further explain it MVC Projects are essentially what we call as “Flavor” of WAP…&amp;#160; Flavor is a special little “lingo” of VS :-) think of it as a special type of inheritance i.e. MVC Projects flavor WAP Projects who in turn flavor Class Library projects and all along the line you keep getting more an more features while the child projects can hide features of the parent as well…&amp;#160; For e.g. MVC projects hide “View in Browser” command while adding “Add a View” command…We can talk more about this some other time but in nutshell MVC projects have got controllers and model classes which all get compiled into DLLs and the Views get deployed as they are on to the server…&lt;/p&gt;  &lt;p&gt;MVC projects also are pro on Unit Testing so in lines with Q3. we just decided to avoid any confusion and just created MVC projects for WAPs… So if you are using ASP.NET MVC you are most likely using WAPs… Again using ASP.NET MVC with WSP is possible, it is just not straightforward option and some IDE features may not be available out of the box if you were using MVC with WSP today…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Q.15 Do you want to edit your code while debugging (w/o stopping debugging)?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Edit &amp;amp; Continue feature is supported only in &lt;strong&gt;&lt;font color="#8000ff"&gt;WAP&lt;/font&gt;&lt;/strong&gt; projects and not WSP hence if you care about Edit &amp;amp; Continue then WAP is your option of choice…&lt;/p&gt;  &lt;p&gt;In conclusion, there are more subtle things to look out for… e.g. Few days back I explained why &lt;a href="http://vishaljoshi.blogspot.com/2009/07/appcode-folder-doesnt-work-with-web.html"&gt;App_Code does not work all that well with WAPs&lt;/a&gt;…&amp;#160; But other things should be hopefully minor issues and the above decision points should hopefully allow you to make an informed decision when WAP vs WS discussion comes up again…:-)&lt;/p&gt;  &lt;p&gt;There are more subtle differences between WAP and WSPs and some of them are discussed in &lt;a href="http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx#wapp_topic5"&gt;the white paper on MSDN&lt;/a&gt;…&lt;/p&gt;  &lt;p&gt; Hope this discussion helps and do not hesitate to reach out if you would like to know anything in more details…&lt;/p&gt;  &lt;p&gt;-Vishal &lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://vishaljoshi.blogspot.com/2009/08/web-application-project-vs-web-site.html";digg_title = "Web Application Project Vs Web Site";digg_bgcolor = "#FFFFFF";digg_skin = "compact";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-8901850766786255628?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/8901850766786255628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/web-application-project-vs-web-site.html#comment-form' title='90 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8901850766786255628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8901850766786255628'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/web-application-project-vs-web-site.html' title='Web Application Project Vs Web Site'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>90</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-4886908357301327384</id><published>2009-08-05T16:40:00.001-07:00</published><updated>2009-08-05T16:40:02.843-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Vishal R. Joshi'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><title type='text'>VS Project Template Vs Project System</title><content type='html'>&lt;p&gt;You might many times hear the words “project templates” and “project system” from time to time, I though it would be worth while to talk about the differences between the&amp;#160; two from a web developer stand point…&lt;/p&gt;  &lt;p&gt;Web developers using Visual Studio use either File –&amp;gt; New –&amp;gt; Project or File –&amp;gt; New –&amp;gt; Web site as shown below to create new Web projects as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/SnoYSr3ZvKI/AAAAAAAAA8w/HZkj5skijCw/s1600-h/image%5B5%5D.png"&gt;&lt;img style="display: inline" title="File-New-Project" alt="File-New-Project" src="http://lh6.ggpht.com/_E8t3edIzcC8/SnoYS2R8SKI/AAAAAAAAA80/RmdT5av72Vw/image_thumb%5B1%5D.png?imgmax=800" width="598" height="156" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The new project dialog for Web Developers looks as below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SnoYTW3MPLI/AAAAAAAAA84/uZfS0m4WMs4/s1600-h/image%5B9%5D.png"&gt;&lt;img style="display: inline" title="new project" alt="new project" src="http://lh4.ggpht.com/_E8t3edIzcC8/SnoYT1MKrdI/AAAAAAAAA88/70NtL3AAE9E/image_thumb%5B3%5D.png?imgmax=800" width="740" height="513" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;and the new web site dialog looks as below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SnoYUK4AIHI/AAAAAAAAA9A/W3Ljas926vc/s1600-h/image%5B13%5D.png"&gt;&lt;img style="display: inline" title="new web site" alt="new web site" src="http://lh4.ggpht.com/_E8t3edIzcC8/SnoYUvur-sI/AAAAAAAAA9E/fIcONXVUR8M/image_thumb%5B5%5D.png?imgmax=800" width="740" height="511" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;What is probably interesting to note is that all the options that you see inside any of these dialog boxes above are just &lt;strong&gt;“Project Templates” &lt;/strong&gt;and what that really means is that they are underlying the same project system but just wrapped with different set of start up files for easy project development…&lt;/p&gt;  &lt;p&gt;In reality there are only two major &lt;strong&gt;Project Systems &lt;/strong&gt;for Web Developers&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Web Application Projects (WAPs) which are accessible via File –&amp;gt; New –&amp;gt; Project –&amp;gt; Web &lt;/li&gt;    &lt;li&gt;Web Site Projects (WSPs) which are accessible via File –&amp;gt; New –&amp;gt; Web Site&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;What is also interesting to note is that WAPs and WSPs have different code bases (with reasonable set of shared components)… I will eventually write a post on real differences between WAPs and WSPs but today let us focus on Project Systems vs Templates…&lt;/p&gt;  &lt;p&gt;A Project system like WAP or WSP actually takes care of building, compiling, debugging, managing source control, deploying, hooking up references, intellisense etc etc&amp;#160; for a project…&amp;#160; In essence the major code for functionality of the web project like commands, hot keys, content menus, toolbars etc are all specific to a project system and they remain the same across all the project templates of a single project system…&lt;/p&gt;  &lt;p&gt;A Project template on the other hand is simply a bunch of files bundled together to allow a person to easily start developing a certain type of project…&amp;#160;&amp;#160; The project templates can have specific files like .svc or .aspx with boiler plate code in it… Each project template can choose to include its own set of references or code files… Behind the scene the project system invoked to do all the magic remains the same… For example ASP.NET Web Application and WCF Service Application are just two different templates for “Web Application Project System”…&amp;#160; Similarly there are a bunch of project templates for “Web Site Project System”…&lt;/p&gt;  &lt;p&gt;The key Project templates for Web Application Projects (WAP) are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ASP.NET Web Application&lt;/li&gt;    &lt;li&gt;Empty ASP.NET Web Application&lt;/li&gt;    &lt;li&gt;ASP.NET Web Service Application&lt;/li&gt;    &lt;li&gt;WCF Service Application&lt;/li&gt;    &lt;li&gt;Dynamic Data Linq to SQL Web Application &lt;/li&gt;    &lt;li&gt;ASP.NET MVC Web Application &lt;em&gt;(MVC is a customized Web Application Project system, we call it Flavor of WAP, so it is not necessarily a project template only…)&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;Dynamic Data Entities Web Application&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Similarly, the key Project templates for Web Site Project (WSP) are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ASP.NET Web Site&lt;/li&gt;    &lt;li&gt;Empty Web Site&lt;/li&gt;    &lt;li&gt;WCF Service&lt;/li&gt;    &lt;li&gt;ASP.NET Reports Web Site&lt;/li&gt;    &lt;li&gt;Dynamic Data Linq to SQL Web Site&lt;/li&gt;    &lt;li&gt;Dynamic Data Entities Web Site&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hence many a times there are features which work for one project system but do not work for other… A classic example is App_Code directory which works great with Web Site projects but not as seamlessly with Web Application Projects…&amp;#160; Recently I wrote a blog post on &lt;a href="http://vishaljoshi.blogspot.com/2009/07/appcode-folder-doesnt-work-with-web.html"&gt;Why App_Code does not work as well with WAPs&lt;/a&gt;…&lt;/p&gt;  &lt;p&gt;Anyways, I hope this gives an idea on how the project systems and project templates for Web Developers work within Visual Studio…&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-4886908357301327384?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/4886908357301327384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/vs-project-template-vs-project-system.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4886908357301327384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4886908357301327384'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/vs-project-template-vs-project-system.html' title='VS Project Template Vs Project System'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/SnoYS2R8SKI/AAAAAAAAA80/RmdT5av72Vw/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-6357230913501782139</id><published>2009-08-04T23:12:00.001-07:00</published><updated>2009-08-04T23:12:24.330-07:00</updated><title type='text'>Did you know: How to get “Unload Project” option to show</title><content type='html'>&lt;p&gt;Typically if you want to edit your .csproj or .vbproj file manually then there is a very easy way to do this within VS:&lt;/p&gt;  &lt;p&gt;First: Unload the project within VS&lt;/p&gt;  &lt;p&gt;&lt;img title="Unload Project" border="0" alt="Unload Project" src="http://lh6.ggpht.com/_E8t3edIzcC8/SnkWkQU3qKI/AAAAAAAAA8Y/cdktHiRoJ5A/s1600/image%5B2%5D.png" /&gt;&lt;/p&gt;  &lt;p&gt;Second: On the unloaded project click “Edit project.csproj/vbproj”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SnkWlJ6vsnI/AAAAAAAAA8g/K6e56K9e0TE/s1600-h/image%5B8%5D.png"&gt;&lt;img title="Reload Project" alt="Reload Project" src="http://lh6.ggpht.com/_E8t3edIzcC8/SnkWlYn3oUI/AAAAAAAAA8k/I0EZMjKTjDw/image_thumb%5B2%5D.png?imgmax=800" width="291" height="193" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Now you can edit the file and click “Reload Project”…&lt;/p&gt;  &lt;p&gt;Although at times you might not see the “Unload Project” menu and&amp;#160; it is interesting to note that this menu shows only when your solution is showing up… The solution shows up when you have more than one project but if you have only one project in your solution then solution file does not show by default…&amp;#160; If you want to have the solution file show in the solution explorer then you can go down to Tools &amp;gt; Options &amp;gt; Projects and Solutions &amp;gt; General and check “Always show solution”…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SnkixRWsAWI/AAAAAAAAA8o/DDPbKiOx1WA/s1600-h/image%5B2%5D.png"&gt;&lt;img style="display: inline" title="Tools Options" alt="Tools Options" src="http://lh5.ggpht.com/_E8t3edIzcC8/Snkix5DM3wI/AAAAAAAAA8s/MYwA9p9z9Wc/image_thumb.png?imgmax=800" width="640" height="372" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After this your “Unload Project” menu should start showing up on your project file.&lt;/p&gt;  &lt;p&gt;-Vishal &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-6357230913501782139?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/6357230913501782139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/did-you-know-how-to-get-unload-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6357230913501782139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/6357230913501782139'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/did-you-know-how-to-get-unload-project.html' title='Did you know: How to get “Unload Project” option to show'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/SnkWkQU3qKI/AAAAAAAAA8Y/cdktHiRoJ5A/s72-c/image%5B2%5D.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-1595632695173940377</id><published>2009-08-04T22:20:00.001-07:00</published><updated>2009-08-04T22:57:35.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='DB'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='DB Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Replacing your old DB with new one using VS 2010</title><content type='html'>&lt;p&gt;Earlier in the below blog posts we had talked about how to Deploy your DB using VS 2010…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/database-deployment-with-visual-studio.html"&gt;DB Deployment with VS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/07/exclude-appdata-folder-from-deployment.html"&gt;Exclude App_Data during your deployment&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Today I wanted to share how you can replace your old DB with a new one using VS 2010 DB Deployment.&lt;/p&gt;  &lt;p&gt;Before we get into it please note that using this method you are essentially going to get rid of your old DB schema as well as data and replace it with the new one…&amp;#160; You should make sure that you do not turn this setting on accidentally as there will be no way to revert it back if you accidentally drop your DB content… !!&lt;/p&gt;  &lt;p&gt;So with that understanding and with the assumption that you have already, configured your &lt;a href="http://vishaljoshi.blogspot.com/2009/05/database-deployment-with-visual-studio.html"&gt;DB for deployment&lt;/a&gt; for use with &lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html"&gt;Web Packaging&lt;/a&gt; OR &lt;a href="http://vishaljoshi.blogspot.com/2009/05/web-1-click-publish-with-vs-2010.html"&gt;1-Click Publish&lt;/a&gt;; let us proceed:&lt;/p&gt;  &lt;p&gt;After configuring your DB for Deployment your “Deploy SQL” Property tab should look something like below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SnkWjbY9hSI/AAAAAAAAA8Q/pcN4XwtYstI/s1600-h/image%5B12%5D.png"&gt;&lt;img style="display: inline" title="Deploy SQL Tab" alt="Deploy SQL Tab" src="http://lh5.ggpht.com/_E8t3edIzcC8/SnkWj2ekPtI/AAAAAAAAA8U/i67kesri69g/image_thumb%5B4%5D.png?imgmax=800" width="552" height="521" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you look at the above UI, you will notice that there is no UI option to drop your database objects during Packaging or Publishing… This was an intentional decision as we did not want anyone to accidentally check that box and regret later… Although you can do this by manually by editing your project file…&lt;/p&gt;  &lt;p&gt;To do that you will have to Right Click on your project and click “Unload Project” as shown below: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/SnkWkQU3qKI/AAAAAAAAA8Y/cdktHiRoJ5A/s1600-h/image%5B2%5D.png"&gt;&lt;img style="display: inline" title="Unload Project" alt="Unload Project" src="http://lh5.ggpht.com/_E8t3edIzcC8/SnkWkrzRmmI/AAAAAAAAA8c/jzQ_bY4J5zw/image_thumb.png?imgmax=800" width="381" height="346" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once you unload your project you will have an option to Edit your project file as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SnkWlJ6vsnI/AAAAAAAAA8g/K6e56K9e0TE/s1600-h/image%5B8%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh6.ggpht.com/_E8t3edIzcC8/SnkWlYn3oUI/AAAAAAAAA8k/I0EZMjKTjDw/image_thumb%5B2%5D.png?imgmax=800" width="291" height="193" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Alternatively you can also open your project folder and edit the project file in notepad…&lt;/p&gt;  &lt;p&gt;If you have your DB deployment configured in “Deploy SQL” tab (shown above) of your project properties then you should find following XML schema in the project file:&lt;/p&gt; &lt;span class="kwrd"&gt;&lt;/span&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;PublishDatabaseSettings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Objects&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ObjectGroup&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;MyDB&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Order&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Enabled&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;False&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;          &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Destination&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Path&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;          &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Object&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Type&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;dbFullSql&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffff00; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;PreSource&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Path&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;your connectionString value&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ScriptDropsFirst&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;”True”&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ScriptSchema&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;True&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ScriptData&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;False&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;SchemaQualify&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;False&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;CopyAllFullTextCatalogs&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;False&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Source&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Path&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;obj\Debug\AutoScripts\MyDB_SchemaOnly.sql&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;          &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Object&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ObjectGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Objects&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;PublishDatabaseSettings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;If you notice carefully you should see that in the “&lt;strong&gt;PreSource&lt;/strong&gt;” node above I have &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;additionally inserted a special attribute called &lt;strong&gt;&lt;u&gt;ScriptDropsFirst=”True”&lt;/u&gt;&lt;/strong&gt;, this attribute will tell the Web Publishing Pipeline (WPP) to insert DROP statements while scripting your DB…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In nutshell the PreSource node tells VS 2010 about your source DB and the options you would like to use while script it… &lt;strong&gt;ScriptDropsFirst &lt;/strong&gt;is only one of the options but there are several others properties that you can set to control the scripting of your DB which are mentioned in &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.scriptingoptions_properties.aspx"&gt;SMO Scripting Options&lt;/a&gt;. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The option of ScriptDropsFirst will not drop your Database it will simply drop the objects inside the Database… If you would also like to drop the Database and recreate it you should use the option &lt;strong&gt;dropDestinationDatabase=”True”.&lt;/strong&gt; If you are deploying to a hoster like DiscountASP or OrcsWeb you should &lt;strong&gt;NOT &lt;/strong&gt;use dropDestinationDatabase option as most likely you will not have the permission to do so and even if you did the chances are that you will not have an option to recreate it and you might have to land up calling the support center…&amp;#160; Hopefully if you are deploying to a hosted server then you will not need to drop the DB and just dropping the schema and data inside it will be sufficient…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Anyways, once you have set these attributes&amp;#160; on your preSource node you can now save the project file and reload it… After that next time you Package or Publish your deployment will first drop all the tables, columns and data in your destination DB and then recreate it using the newly generated SQL script…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-1595632695173940377?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/1595632695173940377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/replacing-your-old-db-with-new-one.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/1595632695173940377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/1595632695173940377'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/08/replacing-your-old-db-with-new-one.html' title='Replacing your old DB with new one using VS 2010'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_E8t3edIzcC8/SnkWj2ekPtI/AAAAAAAAA8U/i67kesri69g/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-3326365036555729571</id><published>2009-07-31T17:22:00.001-07:00</published><updated>2009-07-31T17:22:31.156-07:00</updated><title type='text'>App_Code folder doesn’t work with Web Application Projects (WAPs)</title><content type='html'>&lt;p&gt;As you might already know we have two different project types for web development&amp;#160; in Visual Studio 1.) Web Application Projects (WAPs) 2.) Web Site Projects (WSPs)…&lt;/p&gt;  &lt;p&gt;Often time developers hear that if you want to put a random class file in your web project you should put it in App_Code folder.&amp;#160; While this is true for Web Site Projects (WSPs), it is not so much true for Web Application Projects (WAPs) and in this post I will try to explain the inner workings on why that is the case…&lt;/p&gt;  &lt;p&gt;Firstly App_Code folder is a special ASP.NET RUNTIME folder…&amp;#160; Any files in this folder are compiled by ASP.NET when your site is actually running on the server...&amp;#160; This essentially allows you to drop random class/code files in this folder to be compiled on the server side…&amp;#160; For this very reason if you drop something new into the App_Code folder of your running web site, it is like resetting it coz ASP.NET runtime now recognizes that there is a new class which needs to be kept in consideration during running the site…&amp;#160; This magical folder brings with itself various connotations when it comes to different project types…&lt;/p&gt;  &lt;p&gt;First of all it is important to know that Visual Studio does not really create any DLLs when you are using Web Site Projects (even when you are building the web site)…&amp;#160; VS simply validates that your code is correct in WSP… In Web Application Projects (WAPs) this is not actually true as VS actually creates a DLL with all the code behind and class files that are present in your project and drops them into the BIN folder of your project…&lt;/p&gt;  &lt;p&gt;In case of WAPs every file in the project is marked with a specific “Build Action” as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SnOKwd90SMI/AAAAAAAAA8A/GVTvvJ3DUMc/s1600-h/image%5B2%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/SnOKw6W8nqI/AAAAAAAAA8E/75p-f5o6SDY/image_thumb.png?imgmax=800" width="464" height="382" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;All the class files (.vb/.cs) are marked as “Compile”… This essentially tells VS to take all those files and call the correct VB/C# compilers on them…&amp;#160; The result of that activity is the DLL,which is named same as your project name i.e. WebApplication1.dll, being created in the BIN folder of your project…&lt;/p&gt;  &lt;p&gt;With this understanding let us look at right click Add—&amp;gt; Add ASP.NET Folder --&amp;gt; options on Web Application Project&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SnOKxNSP8KI/AAAAAAAAA8I/X6dpezhYApI/s1600-h/image%5B5%5D.png"&gt;&lt;img style="display: inline" title="image" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/SnOKxotVbnI/AAAAAAAAA8M/f37RbUIuzn4/image_thumb%5B1%5D.png?imgmax=800" width="694" height="496" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You will notice that App_Code folder is not really available as an option… This is an intentional behavior…&amp;#160; &lt;/p&gt;  &lt;p&gt;If you add a App_Code folder into a Web Application Project and add classes to that folder then more than likely their “Build Action” will be marked as “Compile” (as all .vb/.cs files are defaulted to “Compile”)… This will signal Visual Studio to compile them inside the IDE to produce the DLL in the BIN folder…&amp;#160; For illustration let us assume you added a class called Products in App_Code\Products.cs file which is marked as “Compile”… Now when you build your WAP you will get a DLL in your project BIN (e.g. WebApplication1.dll), which when you open in ILDASM or Reflector will tell you that Product class exists in it…&lt;/p&gt;  &lt;p&gt;Now when you try to run the project locally or do a xCopy deployment of your WAP to the server you will might accidentally move the App_Code\Products.cs on the server as well…&amp;#160; This is time when things start getting tricky… Now you have a DLL in the BIN which is provided as a reference to ASP.NET runtime which has the Products class… Also ASP.NET is trying to compile your App_Code folder (as it is a special Runtime folder and that is an expected behavior) which will result in duplicate declaration of your Product class (one in the referenced project DLL and second in the dynamic compilation)…&amp;#160; As you can imagine duplicate declaration of same type is not desirable…:-)&lt;/p&gt;  &lt;p&gt;Additionally, VS will auto generate namespace for your Products class in the DLL to be something like WebApplication1.App_Code.Products vs ASP.NET runtime will produce a hashed version of the name space causing additional connotations giving you weird error messages… &lt;/p&gt;  &lt;p&gt;So at a high level there are many reasons why App_Code folder is not supported for Web Application Projects and should be avoided…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Does this mean App_Code and WAPs just don’t ever work together?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;No, that is not true… App_Code and WAPs can work together, you need to make sure that “Build Action” of none of the files in the App_Code folder is marked as “Compile”… Ideally you should mark them as “Content” which will ensure that they will get deployed on the destination and get compiled by ASP.NET instead of locally by VS IDE…&amp;#160; &lt;/p&gt;  &lt;p&gt;But this will bring its own side effects that intellisense may not work very well for these files inside VS as they will not be treated as Class files by VS… &lt;strong&gt;&lt;u&gt;But the key point is that you do not really need “App_Code in Web Application Projects (WAP) &lt;/u&gt;&lt;/strong&gt;if you do not intend to put random code files or modify existing code files in App_Code folder directly on your production server…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What should one do if there are isolated code files which need to be added to WAPs?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can add code files under any folder call it “CodeFolder”, “Controllers” or anything that makes sense in your project… Just avoid putting them under &lt;strong&gt;“App_Code” &lt;/strong&gt;unless you specifically want the server side compilation behavior…&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-3326365036555729571?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/3326365036555729571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/appcode-folder-doesnt-work-with-web.html#comment-form' title='31 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3326365036555729571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3326365036555729571'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/appcode-folder-doesnt-work-with-web.html' title='App_Code folder doesn’t work with Web Application Projects (WAPs)'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_E8t3edIzcC8/SnOKw6W8nqI/AAAAAAAAA8E/75p-f5o6SDY/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>31</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-4130439427022694648</id><published>2009-07-31T15:09:00.001-07:00</published><updated>2009-07-31T15:09:19.164-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1-Click Publish'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Packages'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Exclude App_Data Folder from Deployment</title><content type='html'>&lt;p&gt;SQL Server Express is a development time database and it is not recommended to use it on your production server.&amp;#160; The rationale for providing SQL Express edition was to ensure that development can be done without having to install a licensed copy of SQL Server on your development machine…&lt;/p&gt;  &lt;p&gt;Additionally most of the hosters do not support SQL Server Express on their shared web servers and enterprises are typically running on full SQL Server in their Staging/Production environment.&lt;/p&gt;  &lt;p&gt;When you are developing a Web Project using Visual Studio then your SQL Express MDF file is put inside App_Data folder.&amp;#160; VS also ensures that App_Data folder is set up with the correct read/write access so that your application can then write to the Database files in it…&amp;#160; &lt;/p&gt;  &lt;p&gt;When it comes time to deploy your application you should ensure that your MDF files do not get deployed with the rest of your application.&amp;#160; To help with this VS provides option to exclude the content of App_Data folder.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Web Application Projects (VS 2005/ VS 2008)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you are using Web Application Projects in VS 2005/VS 2008 then when your right click on your project and hit “Publish” then the option to Exclude the content of App_Data is available as a checkbox as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/SnNriYmpTiI/AAAAAAAAA7w/95S1CrdxRug/s1600-h/image%5B10%5D.png"&gt;&lt;img style="display: inline" title="Publish WAP" alt="Publish WAP" src="http://lh4.ggpht.com/_E8t3edIzcC8/SnNri4JFR_I/AAAAAAAAA70/TSfej18HTwQ/image_thumb%5B8%5D.png?imgmax=800" width="473" height="352" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Web Application Projects (VS 2010)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In VS 2010 web deployment is hugely improved… As part of the clean up this option is now moved to project properties as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="file:///C:/Users/vijoshi/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles67949AE/image32.png" target="_blank"&gt;&lt;img style="display: inline" title="image_thumb10" alt="image_thumb10" src="http://lh5.ggpht.com/_E8t3edIzcC8/SnNrjI0FUHI/AAAAAAAAA74/Q-NnvSuyi0w/image_thumb102.png?imgmax=800" width="234" height="292" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When project properties window opens then navigate to Package/Publish tab… In this tab there is a checkbox which allows you to exclude “App_Data” content while publishing…Check the box as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="file:///C:/Users/vijoshi/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles67949AE/image35.png" target="_blank"&gt;&lt;img style="display: inline" title="image_thumb11" alt="image_thumb11" src="http://lh3.ggpht.com/_E8t3edIzcC8/SnNrjuK1hZI/AAAAAAAAA78/KqiJfAGSOtE/image_thumb112.png?imgmax=800" width="733" height="580" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;With this setting Visual Studio 2010 will make sure that your Web Deployment does not includes content of App_Data folder… If you would like to learn more, &lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html" target="_blank"&gt;check out the rest of the properties of Package/Publish tab&lt;/a&gt;…&lt;/p&gt;  &lt;p&gt;After setting this property it will get respected automatically while &lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html"&gt;creating a web package&lt;/a&gt; or while using &lt;a href="http://vishaljoshi.blogspot.com/2009/05/web-1-click-publish-with-vs-2010.html"&gt;1-Click Publish&lt;/a&gt;…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Are there scenarios to not exclude App_Data folder all the time?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Sometimes I have been asked why to give a specific option to Exclude App_Data folder and not exclude it all the time by default. &lt;/p&gt;  &lt;p&gt;Well people also put bunch of other files in App_Data folder for e.g. XML files which your web updates or other flat file DBs that your web might potentially use…&amp;#160; In this scenario excluding App_Data would exclude those files too and you would ideally want to avoid that, hence there is an explicit option to leave out the content of App_Data folder…&lt;/p&gt;  &lt;p&gt;Hope this helps!!&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-4130439427022694648?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/4130439427022694648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/exclude-appdata-folder-from-deployment.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4130439427022694648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4130439427022694648'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/exclude-appdata-folder-from-deployment.html' title='Exclude App_Data Folder from Deployment'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_E8t3edIzcC8/SnNri4JFR_I/AAAAAAAAA70/TSfej18HTwQ/s72-c/image_thumb%5B8%5D.png?imgmax=800' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-151538646246717757</id><published>2009-07-29T16:00:00.001-07:00</published><updated>2009-07-29T16:48:40.452-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='WDP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Web Deployment Projects do not work after installing VS 2008 SDK</title><content type='html'>&lt;p&gt;Some days back it was brought to our attention that Web Deployment Projects (WDP) stop working after installing Visual Studio 2008 SDK…&amp;#160; As you soon VS 2008 SDK is uninstalled then WDP again start working…&lt;/p&gt;  &lt;p&gt;We narrowed down this issue to be due to “Isolated Shell Application” which come as part of VS 2008 SDK…&amp;#160; &lt;strong&gt;The work around to get WDP working again is to go ahead remove the Shell package by deleting the registry key below:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;HKLM\Software\Microsoft\VisualStudio\9.0\Packages\{815946b0-1c0d-4eab-8226-36ea3c59162a}&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you would at anytime restore the Shell package functionality then it would be advisable to Export the registry key and save it somewhere (or repairing the VS 2008 SDK install should also do the same)…&lt;/p&gt;  &lt;p&gt;If you have any concerns or issues please do not hesitate to write back to &lt;a href="mailto:Vishal.Joshi@Microsoft.com"&gt;Vishal.Joshi@Microsoft.com&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;p&gt;PS: Do note that although the WDP build reports failure with VS 2008 SDK installed the build is not really failing, it is just a reporting false failures, so it is not as severe as it sounds….&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-151538646246717757?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/151538646246717757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/web-deployment-projects-do-not-work.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/151538646246717757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/151538646246717757'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/web-deployment-projects-do-not-work.html' title='Web Deployment Projects do not work after installing VS 2008 SDK'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-4977081105932216825</id><published>2009-07-09T12:46:00.001-07:00</published><updated>2009-07-09T12:46:04.382-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS 5.1'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS6'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Vishal R. Joshi'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS7'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Packaging'/><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='msdeploy'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Packages'/><category scheme='http://www.blogger.com/atom/ns#' term='DB Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>10 + 20 Reasons why you should Create a Web Package</title><content type='html'>&lt;p&gt;Before we talk about the reasons why you should create a Web Package let us first understand what is a web package… &lt;strong&gt;Web Package &lt;/strong&gt;is an atomic, transparent, self describing unit representing your web application which can be easily hydrated into any IIS Web server to reproduce your web…&amp;#160; It is a .zip file which not only contains your content but also contains its dependencies like IIS Settings, Databases, GAC DLLs, Registry Keys etc…&lt;/p&gt;  &lt;p&gt;The concept of creating Web Packages for deploying your web application to an IIS Web Server is recently introduced with &lt;a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1602" target="_blank"&gt;Microsoft Web Deployment Tool (MsDeploy)&lt;/a&gt; and towards the end of this post I will talk about how you can create a Web Package for your web app… But before going there let me talk about the &lt;u&gt;&lt;strong&gt;10 reasons&lt;/strong&gt; &lt;/u&gt;why you should consider creating web packages for your web application:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Having all your web content and dependencies like IIS Settings &amp;amp; DB into a single .zip file allows you to easily transport it anywhere…&lt;/li&gt;    &lt;li&gt;If the web package actually contains source code then you can replicate your dev environment to another box relatively easily…&amp;#160; Imagine being able to recreate a project on your home machine by simply emailing yourself a .zip file…&lt;/li&gt;    &lt;li&gt;If you are deploying in a web farm environment then deploying the web package to various server boxes will allow you to very easily recreate your load balanced web servers…&lt;/li&gt;    &lt;li&gt;If you are creating software for community to use then sharing web package .zip files with world creates a common handshake model…&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/web/gallery/default.aspx"&gt;Web Application Gallery&lt;/a&gt;, which will be common home to find reusable Web Applications also uses the same Web Package format… So you will have an opportunity to put up your web app into Web Application Gallery if you create a Web Package…&lt;/li&gt;    &lt;li&gt;Most of the Package creation process is very automated so you do not need to write custom actions like you would have to do in case of MSIs…&lt;/li&gt;    &lt;li&gt;Creation of Web Packages can be automated along with your nightly builds really easily using MsBuild with systems like Team Build…&lt;/li&gt;    &lt;li&gt;You can create a web package for various versions of your web application and easily use the versioned packages to roll back to any version you like…&lt;/li&gt;    &lt;li&gt;You get &lt;a href="http://vishaljoshi.blogspot.com/2009/07/importing-web-package-into-iis-manager.html" target="_blank"&gt;free standardized UI to install the Web Packages in IIS Manager&lt;/a&gt; which hopefully will become pretty standard and easy for everyone to understand…&amp;#160; If you do not like to use the UI the package can be installed via commandline as well…:-)&lt;/li&gt;    &lt;li&gt;Most of the automated tools (providers) required for packaging&amp;#160; your web application and its dependencies are available out of the box (few of which are IIS Settings, SQL DBs, Web Content, GAC assemblies, COM components, Registry keys etc)…&amp;#160; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Finally let me mention the out of the box providers which can be invoked when you want to package your web application…&amp;#160; You actually have a choice to call any of these providers depending on what parts of your Web Application you like to be packaged… These are my other &lt;strong&gt;&lt;u&gt;+20 reasons &lt;/u&gt;&lt;/strong&gt;why you should create a web package…&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;File System Directory to move a files &amp;amp; folder which contains your web application files like .aspx, .config, images, .js, .css, .master etc – &lt;strong&gt;contentPath&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Creating a new IIS Web Application for your web– &lt;strong&gt;iisApp&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Moving IIS7 and above (read Vista, Win2k8, Win7, Win2k8 R2 and above) Configuration Settings associated with your web (e.g. Default Document, ApplicationPool Mapping etc) – &lt;strong&gt;appHostConfig&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;IIS5.1 &amp;amp; 6 (read XP, Win2K3 compatibility)&amp;#160; Metabase Configuration Settings (parallel to IIS7+ settings above) - &lt;strong&gt;metakey&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Pulling data &amp;amp; schema from existing SQL Server Database or custom generated .SQL files which your web uses– &lt;strong&gt;dbfullSQL&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Any Security Certificates (e.g. SSL &amp;amp; ClientAuth) that your web depends upon- &lt;strong&gt;cert&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Any GACed assemblies like 3rd party controls or libraries that your web uses – &lt;strong&gt;gacAssembly&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Any custom IIS7+ Application Pool that your web has created– &lt;strong&gt;appPoolConfig&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Registry key associated with your webs – &lt;strong&gt;regkey&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;32 bit COM Object – &lt;strong&gt;comObject32&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;64 bit COM Object – &lt;strong&gt;comObject64&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Security ACLs associated with folder – &lt;strong&gt;setAcl&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Granular control by pulling just a registry value - &lt;strong&gt;regValue&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;ASP.NET root web configuration file on 32 bit machine – &lt;strong&gt;rootWebConfig32&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;ASP.NET root web configuration file on 64 bit machine – &lt;strong&gt;rootWebConfig64&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Similar type of support for packaging MySQL DB – &lt;strong&gt;dbMySQL&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Packaging Machine.Config of 32 bit machine – &lt;strong&gt;machineConfig32&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Packaging Machine.Config of 64 bit machine – &lt;strong&gt;machineConfig64&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;If there is still a provider missing then you can very easily create one – &lt;strong&gt;yourCustomProvider&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;A secret provider which I am not allowed to talk about just yet :-), but trust me it is really a killer provider - &lt;strong&gt;secretProvider&lt;/strong&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So now that you have 10 +20 reasons to create a web package let us talk about how to create one… From end developer/IT pro standpoint you can create Web Packages from various different avenues, some of which are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html" target="_blank"&gt;Web Packaging from VS 2010 UI&lt;/a&gt;&amp;#160;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-packages.html" target="_blank"&gt;Web Packaging from MsBuild in VS 2010&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Web Packaging from CommandLine&lt;/li&gt;    &lt;li&gt;Web Packaging from PowerShell&lt;/li&gt;    &lt;li&gt;Web Packaging from IIS Manager&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Please follow the links above to create a web package using your preferred method… I hope you are jazzed about being able to archive and deploy your web applications using Web Packaging…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-4977081105932216825?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/4977081105932216825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/10-20-reasons-why-you-should-create-web.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4977081105932216825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4977081105932216825'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/10-20-reasons-why-you-should-create-web.html' title='10 + 20 Reasons why you should Create a Web Package'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-8151918882483852645</id><published>2009-07-07T00:05:00.001-07:00</published><updated>2009-07-07T00:17:24.290-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Vishal R. Joshi'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS7'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='DB'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='msdeploy'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='DB Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Importing a Web Package into IIS Manager</title><content type='html'>&lt;p&gt;Today I am hoping to talk about installing/importing a Web Package into IIS using IIS Manager… &lt;/p&gt;  &lt;p&gt;For this walkthrough you will first need a Web Package… If you want to get few ready made packages you can get them from &lt;a href="http://www.microsoft.com/web/gallery/default.aspx" target="_blank"&gt;Web Application Gallery&lt;/a&gt;…&amp;#160; There is also a MsDeploy package of &lt;a href="http://blogengine.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=26080" target="_blank"&gt;BlogEngine.NET available on CodePlex&lt;/a&gt;, which you can download to try out this walkthrough… &lt;/p&gt;  &lt;p&gt;Hopefully, eventually you will be creating your own web packages for deployment and this walkthrough will even apply at that time…&amp;#160; If you want to learn how to create a web package from &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target="_blank"&gt;Visual Studio 2010&lt;/a&gt; then read the below posts:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-package.html" target="_blank"&gt;How to create a web package from VS 2010&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-packaging-creating-web-packages.html" target="_blank"&gt;How to create a web package using MsBuild commandline&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/05/database-deployment-with-visual-studio.html" target="_blank"&gt;How to include SQL DBs within your web packages&lt;/a&gt;&amp;#160;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To begin importing a web package into IIS using the new “Import Application” wizard you need to make sure that you have installed IIS Manager by going to Add/Remove Windows component…&amp;#160; You will also need MsDeploy installed over IIS, typically it will come with your VS 2010 installation but if you do not have VS 2010 just yet then you can download it from &lt;a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1602" target="_blank"&gt;MsDeploy Download&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Today, I will install a Web Package of the sample ASP.NET 4.0 web application that I created earlier in the tutorial “&lt;a href="http://vishaljoshi.blogspot.com/2009/05/creating-simple-net-40-web-app-using.html" target="_blank"&gt;Creating a simple ASP.NET 4.0 Web Site&lt;/a&gt;”…&lt;/p&gt;  &lt;p&gt;To start importing the web package let us start IIS Manager (Start –&amp;gt; Run –&amp;gt; InetMgr)&lt;/p&gt;  &lt;p&gt;I will be installing the web package under Default Web Site…&amp;#160; Although it is not required to install the package under Default Web Site, it can be installed under any Web Site of your choice… Also if the package created was a “&lt;strong&gt;IIS &lt;/strong&gt;Web Site Package” then it could be installed under the server /sites node directly as well…&amp;#160; In anycase when we open the “Default Web Site” node then on the right side command bar you will now notice two new commands&amp;#160; 1.) Export Application 2.) Import Application as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SlLzj1zTN9I/AAAAAAAAA6w/jp-3BCPc9WQ/s1600-h/image%5B14%5D.png" target="_blank"&gt;&lt;img title="Import Application" style="display: inline" height="455" alt="Import Application" src="http://lh6.ggpht.com/_E8t3edIzcC8/SlLzkUtKkSI/AAAAAAAAA60/EZJMhSSJ1Ow/image_thumb%5B10%5D.png?imgmax=800" width="750" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On clicking “Import Application” on the first screen you will be asked to provide the path to web package (.zip file)… I will be providing the location of the sample web package which I created in the earlier tutorial:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SlLzklEKGMI/AAAAAAAAA68/ir8lN5ehXUI/s1600-h/image%5B20%5D.png" target="_blank"&gt;&lt;img title="image" style="display: inline" height="516" alt="image" src="http://lh5.ggpht.com/_E8t3edIzcC8/SlLzlI8qN1I/AAAAAAAAA7A/vEcXRWEHvGE/image_thumb%5B12%5D.png?imgmax=800" width="685" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On clicking next the Import Application wizard will display the content of the web package as below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SlLzlc7pEkI/AAAAAAAAA7E/3qNp7IdwROo/s1600-h/image%5B27%5D.png" target="_blank"&gt;&lt;img title="Package Content" style="display: inline" height="508" alt="Package Content" src="http://lh6.ggpht.com/_E8t3edIzcC8/SlLzlgrp3sI/AAAAAAAAA7I/-CoYzZ5FEYI/image_thumb%5B15%5D.png?imgmax=800" width="677" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Notice that in the above example the package wizard shows that the Web Package contains: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;IIS 7 Application&lt;/strong&gt; - This will actually do the job of creating an IIS Application and mapping the virtual directory…&amp;#160; It will also move any additional IIS Settings associated with the web application…&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;File System Content&lt;/strong&gt;&amp;#160; - All the physical files (.aspx, .dlls etc) which need to be placed in the web site directory…&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database&lt;/strong&gt; – This is the database that I packaged into my web package &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;On clicking “Next” I will get a screen which I will call as the “Parameters” screen…&amp;#160; When you create a package using VS 2010, then VS identifies the key attributes of your web application which you need to customize and it creates MsDeploy parameters for the same…&amp;#160; All these parameters are something which you can modify during the package import process as seen below… &lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SlLzmEAtWgI/AAAAAAAAA7M/MGFR1Vj5FLM/s1600-h/image%5B33%5D.png" target="_blank"&gt;&lt;img title="Parameters Screen" style="display: inline" height="506" alt="Parameters Screen" src="http://lh6.ggpht.com/_E8t3edIzcC8/SlLzmrYRFxI/AAAAAAAAA7Q/07sGw-sS0G4/image_thumb%5B17%5D.png?imgmax=800" width="675" /&gt;&lt;/a&gt;     &lt;br /&gt;In the above example notice that “Default Web Site” is read-only… This is due to the fact that the “Import Application” wizard was invoked from Default Web Site… I am now naming the Web As “SimpleASP4Web” and placing it under “C:\WebSites\SimpleASP4Web”…&amp;#160; Also note that I am using “SimpleASP4Web” DB on my local SQL Server…&lt;/p&gt;  &lt;p&gt;The ConnectionString that I am providing in here will be used to deploy my packaged DB and will also be used to update my web.config file (this will happen only if the package was created to do so…&amp;#160; I will write a separate blog post on how to do that, but in future release of VS 2010 this option will be set by default when you create the web package at the first place…)&lt;/p&gt;  &lt;p&gt;In any case now on clicking “Next” the Web Application installation will begin showing you a progress bar and hopefully within no time the web package will get installed showing you the status as below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SlLzmw8JECI/AAAAAAAAA7U/9IOEV-gYl_U/s1600-h/image%5B36%5D.png" target="_blank"&gt;&lt;img title="Installation Progress" style="display: inline" height="508" alt="Installation Progress" src="http://lh6.ggpht.com/_E8t3edIzcC8/SlLznS4mXOI/AAAAAAAAA7Y/0TtAuinA120/image_thumb%5B18%5D.png?imgmax=800" width="677" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On hitting “Finish” on this screen the web package will be installed and on inspecting the IIS Manager you can see that the package is actually successfully imported and web site is ready to go:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SlLznswHfPI/AAAAAAAAA7c/jCcrQCJbrSg/s1600-h/image%5B40%5D.png" target="_blank"&gt;&lt;img title="Deployed Web in IIS" style="display: inline" height="637" alt="Deployed Web in IIS" src="http://lh3.ggpht.com/_E8t3edIzcC8/SlLzoLDcB8I/AAAAAAAAA7g/Pfp1zMGYsWY/image_thumb%5B20%5D.png?imgmax=800" width="755" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;On inspecting the SQL Server Management Studio you can also see the Simple ASP4Web DB also installed:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SlLzpJP4qDI/AAAAAAAAA7k/xfbRDBaYwes/s1600-h/image%5B43%5D.png" target="_blank"&gt;&lt;img title="SimpleASP4Web DB" style="display: inline" height="478" alt="SimpleASP4Web DB" src="http://lh3.ggpht.com/_E8t3edIzcC8/SlLzpjHWX9I/AAAAAAAAA7o/j0sJl8_05Pk/image_thumb%5B21%5D.png?imgmax=800" width="420" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Hopefully you can see that the web deployment features with great UI options in VS 2010 and IIS will make the process of packaging and installing you web applications much easier than what it has been before…&lt;/p&gt;  &lt;p&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-8151918882483852645?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/8151918882483852645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/importing-web-package-into-iis-manager.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8151918882483852645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/8151918882483852645'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/07/importing-web-package-into-iis-manager.html' title='Importing a Web Package into IIS Manager'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/SlLzkUtKkSI/AAAAAAAAA60/EZJMhSSJ1Ow/s72-c/image_thumb%5B10%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-3755381400752706449</id><published>2009-06-26T14:45:00.001-07:00</published><updated>2009-06-26T14:45:18.492-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><title type='text'>Unload Web Site and WAP in Visual Studio</title><content type='html'>&lt;p&gt;Inside Visual Studio many times people want to be able to unload a projects without having to completely close them… &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Web Application Projects (WAPs)/ Class Libraries Unload&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;WAPs or Class Libraries unloading the project allows you to open the .csproj or .vbproj within an XML editor and modify the properties… This is by far the biggest reason why unloading WAPs, Class Libraries etc is used…&amp;#160; You can Unload most of the VS projects by Right Clicking on the project node and clicking “Unload Project” as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SkVBYMnGC0I/AAAAAAAAA6Y/nSFkXGbRbDw/s1600-h/image%5B4%5D.png" target="_blank"&gt;&lt;img title="image" style="display: inline" height="470" alt="image" src="http://lh5.ggpht.com/_E8t3edIzcC8/SkVBYqntrYI/AAAAAAAAA6c/Uay4qcsX4G8/image_thumb%5B2%5D.png?imgmax=800" width="285" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After Unloading the project looks as below and you can again Right Click on it to edit the project file.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SkVBZ5LaPJI/AAAAAAAAA6g/-At3ckqkDyU/s1600-h/image%5B7%5D.png" target="_blank"&gt;&lt;img title="image" style="display: inline" height="277" alt="image" src="http://lh3.ggpht.com/_E8t3edIzcC8/SkVBafnQdUI/AAAAAAAAA6k/-5p905Chm5M/image_thumb%5B3%5D.png?imgmax=800" width="283" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Web Site Project Unload&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Web site project on the other hand are different, firstly cause they do not have a project file and hence unloading them to edit the project file is not a motivation…&amp;#160; People still do want the ability to unload Web Site project and the scenario around it is that when you unload a project then on Solution build the unload project does not get built… This way if you are in middle of writing some code in that project and have existing errors then you can still unload it and continue with solution build…&amp;#160; Also Reloading the project will be faster than opening a closed project…&amp;#160; With that said if you Right Click on Web Site project you won’t find the “Unload Project” option…&amp;#160; &lt;/p&gt;  &lt;p&gt;The right Click context menu is already very long for Web Site and as Unloading Web Site is not as common the command for “Unload Web Site” actually sits in the “Web Site” menu on top of Visual Studio as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SkVBa5bMUZI/AAAAAAAAA6o/_7FXgtSZRMo/s1600-h/image%5B11%5D.png" target="_blank"&gt;&lt;img title="image" style="display: inline" height="418" alt="image" src="http://lh6.ggpht.com/_E8t3edIzcC8/SkVBbdz7l_I/AAAAAAAAA6s/fKdOHAynEoM/image_thumb%5B5%5D.png?imgmax=800" width="606" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After unloading the project you can then right click on the unavailable node (just like WAP above) and ask VS to “Reload Project”…&lt;/p&gt;  &lt;p&gt;Also FYI unloading and reloading of project resets a lot of in memory objects associated with the project so in VS 2010 we explicitly load and unload WAP as well Web Site when you change your project’s target .NET framework version (e.g. move from 3.5 to 4.0)… This allows VS to hook in the correct intelligence, toolbox etc etc associated with the correct .NET Framework version…&lt;/p&gt;  &lt;p&gt;Hope this small tip &amp;amp; trick&amp;#160; will help you…!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-3755381400752706449?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/3755381400752706449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/unload-web-site-and-wap-in-visual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3755381400752706449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3755381400752706449'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/unload-web-site-and-wap-in-visual.html' title='Unload Web Site and WAP in Visual Studio'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_E8t3edIzcC8/SkVBYqntrYI/AAAAAAAAA6c/Uay4qcsX4G8/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-7288611131748445525</id><published>2009-06-25T09:50:00.001-07:00</published><updated>2009-06-25T09:50:57.012-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='IE8'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><title type='text'>Disabling Script Debugging with VS 2010, Silverlight &amp; IE 8</title><content type='html'>&lt;p&gt;This is a quick post to cover few items related to Script Debugging and the way it is impacted by Silverlight, Internet Explorer 8 and Visual Studio 2010…&lt;/p&gt;  &lt;p&gt;With IE 8 there is no longer option to disable script debugging… When VS 2010 will launch IE 8 then script debugging will be enabled by default… This will help people debug scripts flawlessly without having to go and change script debugging features within IE 8… While this is a good feature for most users it might at times create problem when you do not really want script debugging to be enabled for performance reasons (i.e. if you do not want to debug scripts and have lot of scripts in your pages)…&lt;/p&gt;  &lt;p&gt;On separate note Silverlight is a special debugging option for Web Projects…&amp;#160; You can view that by going to Project –&amp;gt; Properties –&amp;gt; Web…&amp;#160; Check the screenshots below for Web Application Projects (WAP):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SkOq668CpbI/AAAAAAAAA6I/gXVVN_rPgEk/s1600-h/image%5B14%5D.png" target="_blank"&gt;&lt;img title="WAP Silverlight Debugger" style="display: inline" height="444" alt="WAP Silverlight Debugger" src="http://lh3.ggpht.com/_E8t3edIzcC8/SkOq7QwOjKI/AAAAAAAAA6M/kJu8GGzwpz4/image_thumb%5B6%5D.png?imgmax=800" width="730" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;for Web Sites you can view those options by going to Web Site—&amp;gt; Properties –&amp;gt; Start Options as shown in the figure below&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SkOq7m1BlwI/AAAAAAAAA6Q/2S7Jo2n6FP8/s1600-h/image%5B15%5D.png" target="_blank"&gt;&lt;img title="Web Site Silverlight Debugger" style="display: inline" height="420" alt="Web Site Silverlight Debugger" src="http://lh4.ggpht.com/_E8t3edIzcC8/SkOq8DwEdnI/AAAAAAAAA6U/picu9TWPifU/image_thumb%5B7%5D.png?imgmax=800" width="730" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Now Silverlight debugging is mutually exclusive with Script Debugging as Debugger at a time can attach to only one of the two, so when you turn on Silverlight debugging then VS has to turn Script Debugging Off…&amp;#160; If you have bunch of Client side scripts in your Silverlight project which needs to be debugged then in that case you will have to go to the above option and turn off Silverlight debugging to have Script Debugging enabled…&amp;#160; &lt;/p&gt;  &lt;p&gt;Now a side effect of all this is that if you want to turn off Script Debugging on your regular projects then your easiest work around is to go and turn on Silverlight debugging and your script debugging will get turned off by itself…&lt;/p&gt;  &lt;p&gt;GreggM on our Debugger team has got some further detailed work around via modifying the registry at &lt;a title="http://blogs.msdn.com/greggm/archive/2009/04/06/disabling-script-debugging-in-vs-2008-ie8.aspx" href="http://blogs.msdn.com/greggm/archive/2009/04/06/disabling-script-debugging-in-vs-2008-ie8.aspx"&gt;http://blogs.msdn.com/greggm/archive/2009/04/06/disabling-script-debugging-in-vs-2008-ie8.aspx&lt;/a&gt;, it is a great post take a look at it…&lt;/p&gt;  &lt;p&gt;Hope this workaround helps you!!…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-7288611131748445525?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/7288611131748445525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/disabling-script-debugging-with-vs-2010.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7288611131748445525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7288611131748445525'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/disabling-script-debugging-with-vs-2010.html' title='Disabling Script Debugging with VS 2010, Silverlight &amp;amp; IE 8'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_E8t3edIzcC8/SkOq7QwOjKI/AAAAAAAAA6M/kJu8GGzwpz4/s72-c/image_thumb%5B6%5D.png?imgmax=800' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-7191701385825827236</id><published>2009-06-12T15:30:00.001-07:00</published><updated>2009-06-12T15:30:36.321-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Web Development with Windows Azure</title><content type='html'>&lt;p&gt;Today I am hoping to put together a bunch of resources to get started on Web Development on Windows Azure…&lt;/p&gt;  &lt;h4&gt;Overview &amp;amp; Value Props&lt;/h4&gt;  &lt;p&gt;At a very high level &lt;a href="http://www.microsoft.com/azure/default.mspx" target="_blank"&gt;Windows Azure&lt;/a&gt; will provide cloud computing platform for web developers with few key advantages over any other on premise or hosted environment… IMO, the key value props of Windows Azure for Web Developers are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;u&gt;Scale up and down based on your need &lt;/u&gt;– You can start off with very small server capacity and eventually as your web site traffic grows you can choose to request more capacity as things go…&lt;/li&gt;    &lt;li&gt;&lt;u&gt;Failover management&lt;/u&gt; – If one of the server fails or your application goes down then Windows Azure will take care of spinning up new server VMs for you behind the scenes without your site experiencing any downtime…&lt;/li&gt;    &lt;li&gt;&lt;u&gt;Store your Data in the Cloud &lt;/u&gt;-&amp;#160; If your web application is sitting in the cloud then you will need to have your database in the cloud as well...&amp;#160; With Microsoft’s cloud storage you can now have your data in the cloud as well…&lt;/li&gt;    &lt;li&gt;&lt;u&gt;Use existing&amp;#160; Skill Set&lt;/u&gt; – Developers have invested a lot of time and energy in learning technologies like ASP.NET and general .NET framework in itself.&amp;#160; In Windows Azure you will be able to use the same APIs that you are familiar with…&amp;#160; Funny but you can also host PHP applications on Windows Azure…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you would like to learn more about the high level advantage and direction then visit &lt;a href="http://www.microsoft.com/azure/webdev.mspx" target="_blank"&gt;Windows Azure for Web Developers page&lt;/a&gt;… While you are at it make sure you watch the small videos on the page which will give you a good back ground about Azure for Web Developers…&lt;/p&gt;  &lt;h4&gt;Getting the Windows Azure Tools &amp;amp; Accounts&lt;/h4&gt;  &lt;p&gt;Next, let us talk about what do you get yourself set up for Azure development…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Register for a free Windows Azure Account – The chances are that the account may not remain free and available all the time so go ahead and register for a account at &lt;a href="https://login.live.com/login.srf?wa=wsignin1.0&amp;amp;rpsnv=10&amp;amp;ct=1244840147&amp;amp;rver=4.0.1534.0&amp;amp;wp=MBI_SSL&amp;amp;wreply=https:%2F%2Fconnect.microsoft.com%2FSelfNomination.aspx%3FSiteID%3D681%26ProgramID%3D2500%26pageType%3D1&amp;amp;lc=1033&amp;amp;id=64416" target="_blank"&gt;Connect site&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Use your existing Visual Studio 2008 install or even better than that download &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target="_blank"&gt;Visual Studio 2010 Beta 1&lt;/a&gt;&amp;#160; which is available to download for FREE…&lt;/li&gt;    &lt;li&gt;Recently Windows Azure tools for Visual Studio were released which work on VS 2008 as well as VS 2010 Beta 1… &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=11b451c4-7a7b-4537-a769-e1d157bad8c6&amp;amp;displaylang=en" target="_blank"&gt;Download the Windows Azure Tools for VS&lt;/a&gt; and install them on top of VS 2010 Beta 1…&lt;/li&gt;    &lt;li&gt;You can also separately get the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=22703881-1197-49e5-8231-f49095cfd0bb&amp;amp;displaylang=en" target="_blank"&gt;Windows Azure SDK&lt;/a&gt;, although I would recommend using the Tools install which contains all the stuff that you need including the runtime…&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Do find some very useful resources around the Azure application development below:&lt;/p&gt;  &lt;h4&gt;Useful Documentation&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.microsoft.com/azure/resources.mspx" href="http://www.microsoft.com/azure/resources.mspx"&gt;Windows Azure Resource Index &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/azure/cc994380.aspx"&gt;Windows Azure home page on MSDN&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd179406.aspx"&gt;Windows Azure SDK Samples&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/azure/sdk.mspx"&gt;Windows Azure Downloads&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="www.microsoft.com/azure/trainingkit.mspx"&gt;Windows Azure Training Kit&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Web Casts &amp;amp; Videos&lt;/h4&gt;  &lt;p&gt;There are some good Azure web casts available… &lt;a href="http://www.microsoft.com/events/series/azure.aspx?tab=webcasts" target="_blank"&gt;View Windows Azure Web Casts&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Some of the interesting videos in the series of Windows Azure Videos are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/azure/dd327648.aspx" target="_blank"&gt;How Do I: Get Started Developing with Windows Azure?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/azure/dd464807.aspx" target="_blank"&gt;How Do I: Debug Windows Azure Applications&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/azure/dd483299.aspx" target="_blank"&gt;How Do I: Store Data in Windows Azure Tables&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/azure/dd637760.aspx" target="_blank"&gt;How Do I: Use Logging in a Windows Azure Application?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/azure/dd441704.aspx" target="_blank"&gt;How Do I: Get Started with .NET Services&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;MSDN has got some more &lt;a href="http://msdn.microsoft.com/en-us/azure/dd439432.aspx" target="_blank"&gt;Azure Videos&lt;/a&gt; too… &lt;/p&gt;  &lt;p&gt;Microsoft Events site also has many other &lt;a href="http://www.microsoft.com/events/series/azure.aspx?tab=videos" target="_blank"&gt;Windows Azure videos&lt;/a&gt;…&lt;/p&gt;  &lt;h4&gt;Sample Projects&lt;/h4&gt;  &lt;p&gt;To get started further easily you can find sample projects which use Windows Azure at &lt;a href="http://www.codeplex.com"&gt;www.codeplex.com&lt;/a&gt;… TIP: Search for “Azure” in CodePlex and you should find some samples easily…&lt;/p&gt;  &lt;h4&gt;Feedback and Questions&lt;/h4&gt;  &lt;p&gt;If you have any feedback and Questions, you can certainly leave them here; additionally you can also go to &lt;a href="http://www.azureusergroup.com/" target="_blank"&gt;Azure User Groups&lt;/a&gt;….&amp;#160; &lt;i&gt;&amp;#160;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Hope this helps…&lt;/p&gt;  &lt;p&gt;&lt;a name="_MailAutoSig"&gt;- Vishal | Twitter: &lt;/a&gt;&lt;a href="http://twitter.com/home?status=follow%20@VishalRJoshi"&gt;@VishalRJoshi&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-7191701385825827236?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/7191701385825827236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/web-development-with-windows-azure.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7191701385825827236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/7191701385825827236'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/web-development-with-windows-azure.html' title='Web Development with Windows Azure'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-3793954760531121772</id><published>2009-06-12T00:34:00.001-07:00</published><updated>2009-06-12T00:34:07.901-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint Designer 2007 download for Free</title><content type='html'>&lt;p&gt;SharePoint designer was made as a free download for everyone starting April 2009… You can download it for free from:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42#RelatedLinks" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42#RelatedLinks"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42#RelatedLinks&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can learn more on the SPD page @ &lt;a href="http://www.microsoft.com/spd"&gt;http://www.microsoft.com/spd&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Tom Rizzo from SharePoint team shares some of his thoughts on the SPD Designer decisions….&lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:5916e7fb-edaa-4643-8f90-f1bebac9a806" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div id="cdcc173e-2639-4445-8fae-45f707a06213" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=cvvVJamO3nQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_E8t3edIzcC8/SjIE7w58ngI/AAAAAAAAA5g/hjCWqi6Lnt8/videoa654d2ad255d%5B3%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('cdcc173e-2639-4445-8fae-45f707a06213'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/cvvVJamO3nQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/cvvVJamO3nQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/p&gt;  &lt;p&gt;Hope this will remove one more barrier for folks to learn and get ahead with SharePoint…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-3793954760531121772?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/3793954760531121772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/sharepoint-designer-2007-download-for.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3793954760531121772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/3793954760531121772'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/sharepoint-designer-2007-download-for.html' title='SharePoint Designer 2007 download for Free'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_E8t3edIzcC8/SjIE7w58ngI/AAAAAAAAA5g/hjCWqi6Lnt8/s72-c/videoa654d2ad255d%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-9103800493560347748</id><published>2009-06-11T00:09:00.001-07:00</published><updated>2009-06-11T00:09:01.753-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Dev Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='WAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><title type='text'>How to make Content Web Pages to use existing Master Page</title><content type='html'>&lt;p&gt;Let us say you want to add a new page Page1.aspx to use Site.Master…&amp;#160; Lets say that Site.Master already exists in your project…&lt;/p&gt;  &lt;p&gt;If you were to add Page1.aspx as a simple .aspx page then you will have to make manual change to the &amp;lt;%@ Page directive of the page to make sure Inherits property is set correctly… But generally you will not need to do this if you add the file in the below fashion…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WEB SITE PROJECTS: &lt;/strong&gt;If you are using a Web Site Project (i.e. below)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_E8t3edIzcC8/SjCteubjT8I/AAAAAAAAA4w/tB9SW03GCLA/s1600-h/image%5B2%5D.png" target="_blank"&gt;&lt;img title="new web site" style="display: inline" height="160" alt="new web site" src="http://lh3.ggpht.com/_E8t3edIzcC8/SjCtfNlqSoI/AAAAAAAAA40/QSL2dh3QhGA/image_thumb.png?imgmax=800" width="635" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Then in that case you can Right click on your project –&amp;gt; Add New Item and “Select Master Page”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SjCtfrSWnwI/AAAAAAAAA44/wFyJPNbadpg/s1600-h/image%5B12%5D.png" target="_blank"&gt;&lt;img title="new web form" style="display: inline" height="428" alt="new web form" src="http://lh5.ggpht.com/_E8t3edIzcC8/SjCtf77t5xI/AAAAAAAAA48/6wEQCsER7-s/image_thumb%5B4%5D.png?imgmax=800" width="681" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;On the next page you will get an option to select the master page as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_E8t3edIzcC8/SjCtgMC419I/AAAAAAAAA5A/-As6f6G7chE/s1600-h/image%5B8%5D.png" target="_blank"&gt;&lt;img title="Web Site Master" style="display: inline" height="389" alt="Web Site Master" src="http://lh5.ggpht.com/_E8t3edIzcC8/SjCtgvdOJqI/AAAAAAAAA5E/Mg5CRYYb9TI/image_thumb%5B2%5D.png?imgmax=800" width="653" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WEB APPLICATION PROJECTS (WAPs):&amp;#160;&amp;#160; &lt;/strong&gt;If&amp;#160; you are using a WAP (i.e. File –&amp;gt; New Project as shown below)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SjCthDB6bCI/AAAAAAAAA5I/YffAw4A0edU/s1600-h/image%5B13%5D.png" target="_blank"&gt;&lt;img title="new WAP" style="display: inline" height="416" alt="new WAP" src="http://lh3.ggpht.com/_E8t3edIzcC8/SjCthraQTDI/AAAAAAAAA5M/xPLCEGp_EaQ/image_thumb%5B5%5D.png?imgmax=800" width="683" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Then while adding a new page, right click on your project—&amp;gt; Add –&amp;gt; New Item and instead of selecting “Web Form” select “Web Content Form” as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_E8t3edIzcC8/SjCth7z7u9I/AAAAAAAAA5Q/xnSti_TeEls/s1600-h/image%5B17%5D.png" target="_blank"&gt;&lt;img title="web content form" style="display: inline" height="396" alt="web content form" src="http://lh3.ggpht.com/_E8t3edIzcC8/SjCtiWkpxXI/AAAAAAAAA5U/va4opT0lgzE/image_thumb%5B7%5D.png?imgmax=800" width="700" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When you now click the “Add” button you will get to select the Site.Master page that you had previously added to your project… Check the figure below…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_E8t3edIzcC8/SjCti_pMewI/AAAAAAAAA5Y/tQdQxcp8HqQ/s1600-h/image%5B20%5D.png" target="_blank"&gt;&lt;img title="web form site master" style="display: inline" height="393" alt="web form site master" src="http://lh3.ggpht.com/_E8t3edIzcC8/SjCtjeLRJyI/AAAAAAAAA5c/5-on9oE2Px0/image_thumb%5B8%5D.png?imgmax=800" width="653" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Hope this helps…&lt;/p&gt;  &lt;p&gt;- Vishal | Twitter: &lt;a href="http://twitter.com/home?status=follow%20@VishalRJoshi"&gt;@VishalRJoshi&lt;/a&gt; | &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-9103800493560347748?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/9103800493560347748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/how-to-make-content-web-pages-to-use.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/9103800493560347748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/9103800493560347748'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/how-to-make-content-web-pages-to-use.html' title='How to make Content Web Pages to use existing Master Page'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_E8t3edIzcC8/SjCtfNlqSoI/AAAAAAAAA40/QSL2dh3QhGA/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-4480109282016453549</id><published>2009-06-01T21:42:00.001-07:00</published><updated>2009-06-01T21:42:54.634-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='1-Click Publish'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>ASP.NET 4 Beta1 &amp; MsDeploy RC1 Hosting for FREE</title><content type='html'>&lt;p&gt;FREE is the word of the day…&amp;#160; Check out what all you can get for free:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio 2010 Beta1 is available for &lt;strong&gt;FREE&lt;/strong&gt; at &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;SQL Server 2008 Express edition is always available for &lt;strong&gt;FREE&lt;/strong&gt; with VS 2010…&lt;/li&gt;    &lt;li&gt;MsDeploy is available for &lt;strong&gt;FREE&lt;/strong&gt; with VS 2010, but additionally you can download it for &lt;strong&gt;FREE&lt;/strong&gt; also from &lt;a title="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1602" href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1602"&gt;http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1602&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;ASP.NET 4 is always &lt;strong&gt;FREE&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Combine all of the above and imagine you could get &lt;strong&gt;FREE&lt;/strong&gt; web hosting space for IIS 7 &amp;amp; ASP.NET 4.0 + &lt;strong&gt;FREE&lt;/strong&gt; web hosted SQL Server 2008 databases…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Sounds interesting right!!… This is exactly what I just announced on our Team Blog…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/06/01/free-web-hosting-to-try-asp-net-4-beta1-vs-2010-beta1-and-ms-web-deployment-tool-rc1.aspx" target="_blank"&gt;&lt;strong&gt;Get ASP.NET 4 Beta1, VS 2010 Beta1 &amp;amp; MsDeploy RC1 hosting free&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;!!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Although, before finishing off I need to pause and thank &lt;a href="http://www.orcsweb.com/"&gt;OrcsWeb&lt;/a&gt; and &lt;a href="http://www.discountasp.net/"&gt;DiscountASP&lt;/a&gt; teams who have been hard at work since weeks now to get you FREE hosting accounts to try out the new technologies way before even “GO LIVE” license for them is available… &lt;/p&gt;  &lt;p&gt;I personally want to thank &lt;/p&gt;  &lt;p&gt;Takeshi, Frank, Aristotle and their team @ DiscountASP.NET &lt;/p&gt;  &lt;p&gt;AND&lt;/p&gt;  &lt;p&gt;Scott &amp;amp; WebTeam @ OrcsWeb &lt;/p&gt;  &lt;p&gt;for all their hard work over last so many days, including weekends… As you can imagine setting up remote hosted accounts on brand new technologies while we are still making changes to them is not a simple task…&amp;#160; Just to give you a glimpse it takes from provisioning servers, setting up .NET 4.o, SQL Server, IIS, MsDeploy and dependencies, setting up security + provisioning all the individual accounts that you request, configuring automated emails with correct connection strings, auto generated + unique user ids, site names + passwords etc etc…&amp;#160; Then working for several days to make sure that automatic provisioning yeilds correct emails and correct security settings so that your webs work seamlessly…&amp;#160; This is in all honestly a lot of work and hats off to these folks to make all that work…&lt;/p&gt;  &lt;p&gt;Gladly enough you do not need to do all that hardwork to try out all these things… All you need to do is below 3 things…&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Download VS 2010 Beta 1 for FREE from &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target="_blank"&gt;Microsoft download center&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Get a free hosting account from &lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/06/01/free-web-hosting-to-try-asp-net-4-beta1-vs-2010-beta1-and-ms-web-deployment-tool-rc1.aspx" target="_blank"&gt;&lt;strong&gt;Get ASP.NET 4 Beta1, VS 2010 Beta1 &amp;amp; MsDeploy RC1 hosting free&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;!!&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Follow the walkthrough &lt;a href="http://vishaljoshi.blogspot.com/2009/05/web-1-click-publish-with-vs-2010.html" target="_blank"&gt;Web 1-Click Publish with VS 2010&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Do provide your feedback in comments here, or on &lt;a href="http://forums.asp.net/1206.aspx"&gt;Visual Studio 2010 Beta1 and ASP.NET 4 Beta1 Forum&lt;/a&gt;…&amp;#160; Also you can follow #1ClickPublish on twitter…&lt;/p&gt;  &lt;p&gt;Hope you will enjoy the offer…&amp;#160; &lt;br /&gt;-Vishal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-4480109282016453549?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/4480109282016453549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/aspnet-4-beta1-msdeploy-rc1-hosting-for.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4480109282016453549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/4480109282016453549'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/06/aspnet-4-beta1-msdeploy-rc1-hosting-for.html' title='ASP.NET 4 Beta1 &amp;amp; MsDeploy RC1 Hosting for FREE'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-2794597740550132435</id><published>2009-05-31T19:55:00.001-07:00</published><updated>2009-05-31T19:55:51.107-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 10'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='1-Click Publish'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='DB Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Known Issues, Resolutions and Work-arounds for VS 10 Web 1-Click Publish</title><content type='html'>&lt;p&gt;There are certain known issues and workarounds which you may or may not encounter while using VS 2010 Web 1-Click Publish but I have still posted them here in case you face any of those and want to debug your deployment problems…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If you receive &lt;u&gt;502- Bad Gateway&lt;/u&gt; error then go to Internet Explorer –&amp;gt; Connections –&amp;gt; LAN Settings –&amp;gt; and uncheck the “Automatically detect proxy settings” and after that you should be good to go…&lt;/li&gt;    &lt;li&gt;At times within Intranet environments if ISA Server or alike is not running then you may get errors like &lt;em&gt;&lt;u&gt;“VsMsdeploy failed.(Request to remote agent URL 'https://myWebServerName:8172/msdeploy.axd?site=myWebSite’ failed.) Error Details:Unable to connect to the remote server. OR The remote name could not be resolved… “&lt;/u&gt;&lt;/em&gt;&amp;#160;&amp;#160; The resolution for the above issue is to enable the ISA server and re-run you deployment…&lt;/li&gt;    &lt;li&gt;If you get an error about your .mdf file being used by some other process then the resolution for this issue is to right click on your MDF file under App_Data folder and click “Detach”…&amp;#160; The other typical culprit which holds an handle to the .mdf file is the Server Explorer… You can try to close the server explorer and try publishing again too… Finally, I hate to say it but if nothing works then you can restart VS…&amp;#160; This is a known bug and will be resolved in the future releases of Visual Studio 2010…!!&lt;/li&gt;    &lt;ul&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5704450-2794597740550132435?l=vishaljoshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishaljoshi.blogspot.com/feeds/2794597740550132435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vishaljoshi.blogspot.com/2009/05/known-issues-resolutions-and-work.html#comment-form' title='41 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/2794597740550132435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704450/posts/default/2794597740550132435'/><link rel='alternate' type='text/html' href='http://vishaljoshi.blogspot.com/2009/05/known-issues-resolutions-and-work.html' title='Known Issues, Resolutions and Work-arounds for VS 10 Web 1-Click Publish'/><author><name>Vishal R Joshi</name><uri>http://www.blogger.com/profile/05217117734084631137</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_E8t3edIzcC8/S99IpeUprtI/AAAAAAAABD4/zjMgfkLl0ZM/S220/VishalJoshi-LatestPotrait.jpg'/></author><thr:total>41</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704450.post-7081120603683676706</id><published>2009-05-31T12:23:00.001-07:00</published><updated>2009-05-31T19:59:38.494-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web.config'/><category scheme='http://www.blogger.com/atom/ns#' term='web.config transformation'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Vishal R. Joshi'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS7'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Application Projects'/><category scheme='http://www.blogger.com/atom/ns#' term='DB'/><category scheme='http://www.blogger.com/atom/ns#' term='Publish'/><category scheme='http://www.blogger.com/atom/ns#' term='msdeploy'/><category scheme='http://www.blogger.com/atom/ns#' term='1-Click Publish'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='DB Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Deployment'/><title type='text'>Web 1-Click Publish with VS 2010</title><content type='html'>&lt;p&gt;Visual Studio 2010 has great features to make your web deployment easier…&amp;#160;&amp;#160; I have written a high level article describing the web deployment feature set of VS 2010 below:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://vishaljoshi.blogspot.com/2009/02/web-deployment-with-vs-2010-and-iis.html"&gt;Web Deployment with VS 2010 and IIS&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Today my goal is to go through an end to end walkthrough of the Web 1-Click&amp;#160; Publish feature of VS 2010…&amp;#160; This walkthrough will cover following: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Prepping up an ASP.NET 4.0 web application which is using a SQL Server Database for deployment &lt;/li&gt;    &lt;li&gt;Gathering the remote web and database server information &lt;/li&gt;    &lt;li&gt;Setting up Web.config Transformation to change your connectionString &lt;/li&gt;    &lt;li&gt;Including SQL Server Databases in Web Deployment &lt;/li&gt;    &lt;li&gt;Creating a 1-Click Publish Profile to Publish your web content, databases and transformed web.config files &lt;/li&gt;    &lt;li&gt;1-Click Publish your Web Application &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For this walkthrough you will need Vi
