Thursday, November 03, 2011

WebMatrix 2 Beta

Soon after starting work on WebMatrix engineering, I got an opportunity to launch WebMatrix 2 Beta at //build.  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.  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.  Typically such tools cost $50-100 but WebMatrix is yours for free Smile

I was involved with WebMatrix 1 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.

If you have not installed WebMatrix 2, you should install it now:

image

imageThere are bunch of NEW features in WebMatrix 2 Beta on top of WebMatrix 1, but I wanted to just call out few top items:

  • Even more seamless and awesome integration with Application Gallery where now you will not have to fill in the standard application installation parameters
  • OSS Application specific code completion which means users of popular apps like WordPress can get help customized to their applications
  • 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.
  • Intlellisense for HTML, CSS, JS, C#, VB, ASP.NET Razor as well as PHP.
  • Support for HTML5, CSS3 as well as jQuery constructs.
  • New awesome tools like color picker.
  • Completely revamped Database workspace where you can now execute multiple queries.
  • Extensibility support by which you can write your own extension for WebMatrix.  And trust me it is so easy that you can whip out a ribbon button to do something cool just within minutes.
  • NuGet integration to allow you to build your app with community by your side.
  • Remote tools which will allow you to see the server files and even edit them within seconds.
  • Integrated learning experience with learnable, pluralsight and appendto
  • And more and more…

You can read all about it at http://webmatrix.com/next

BUILD

  As I mentioned earlier I gave the WebMatrix 2 launch talk at //build/ in September 2011.  This talk was recorded and is now available for you to view below.  Hope you will enjoy it.

 

-Vishal

More web stuff at Microsoft

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.

I wanted to share that after working on Visual Studio, Visual Web Developer,  and ASP.NET for couple of  major releases like VS 2010, VS 11, ASP.NET 4.0, ASP.NET 4.5,  MVC etc, I am now starting to work on Windows Azure, WebMatrixWeb Platform Installer, Microsoft.com/web, Web Hosting Gallery, Web Application Gallery and several related projects.  It is all big happy family so it is going to be fun as everything is web after all.  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.

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.  Thanks!!

-Vishal

Wednesday, July 13, 2011

Documenting Key End-to-End Deployment Scenarios

 

The IIS Web Deployment Tool (Web Deploy) and the deployment features introduced in Visual Studio 2010 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.

UPDATE:  We just published the Enterprise Deployment Series which can be found at:

Interestingly, remaining of this blog post is not the documentation of the solution but actual articulation of problem statements. 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. If you have any feedback as usual you can post them here as comments or feel free to send me an email at Vishal.Joshi@Microsoft.com.

Scenario 1: Enterprise Deployment with Continuous Integration

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.

Target Environments

The TESTING 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.

STAGING 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.

The PRODUCTION 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.

The diagram below illustrates this scenario:

Enterprise_Scenario_Diagram

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.

Visual Studio Solution

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:

  • 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.
  • 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.
  • 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.
  • 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.)
  • 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.
  • 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.
  • 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.

Some additional deployment considerations apply only to the automated deployment from TFS for staging and production:

  • Deployment should occur only if the unit tests are successful.
  • The web projects need to be precompiled before deployment.
  • 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 Smile)
  • App_offline.htm must be set up at the start of deployment and removed at the end.
  • Deployment activities should be logged. When deployment completes or fails, email notifications should be sent to designated recipients.
  • If deployment fails, the previous deployment's package should be redeployed, or the current deployment should be retried.
Tasks Illustrated

The walkthroughs for this scenario would guide you through the following tasks"

  • Downloading the Visual Studio solution to be deployed.
  • Setting up the test server.
  • Using one-click publish to deploy to testing servers:
    • Initial deployment.
    • Redeployment without a database change (for example, an update to code in a web page).
    • Redeployment after making a database schema change.
  • Setting up staging and production servers.
  • Setting up the build server.
  • Three deployments to staging (initial, web page change, database change).
  • Three deployments to production (initial, web page change, database change).

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.

Scenario 2: Enterprise Deployment for MVC and Entity Framework Code First

This is a variant of the first scenario that differs from it in the following ways:

  • The web projects are MVC instead of Web Forms.
  • Entity Framework Code First is used instead of Database First (no .edmx file).
  • TeamCity is used instead of TFS.

Scenario 3: Enterprise Deployment for Web Site Projects

This is another variant of the first scenario that differs from it in the following ways:

  • The web projects are web site projects instead of web application projects or MVC.
  • Web Deployment Projects (WDP 2010) are used.
  • One-click publish is not available for web site projects, so a web deployment package is used for deploying to test.

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.

Your thoughts and feedback are welcome.  Also I want to thank Tom Dykstra, Bilal Aslam & Sayed Hashimi on our team who will be helping on putting together a lot of this content for you.

FEB 2012 UPDATE:  The work on these scenario documentation has started happening.  The tutorials are still being written but the sample app with an initial draft of the first part of the tutorials is available on MSDN:

http://code.msdn.microsoft.com/ASPNET-Enterprise-Web-6b2ad7cf

(The tutorials are in Word docs in a folder in the sample project.)

They’ll be published on the ASP.NET site most likely in the next couple of months.

Thanks for reading!!

-Vishal

Wednesday, June 15, 2011

Announcing HTML5 & CSS3 support for Visual Studio 2010 SP1

image

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.

ASP.NET developers have been asking for HTML5 & CSS3 support all the time and today we are super excited to announce the public availability of Visual Studio Web Standards Update which brings a ton of HTML5 & CSS3 support to Visual Studio 2010 SP1. VS Web Standards Update is a free extension available for anyone who is using Visual Studio 2010 SP1 and it provides HTML5 & CSS3 support based on current W3C specifications.

clip_image001

HTML5

clip_image004

VS Web Standards Update provides you intellisense and validation for most common HTML 5 features like:

· Video & related tags

· Audio & related tag

· New input types like email, url, date etc

· Drag & Drop support

· Accessibility standard WAI-ARIA

· Microdata

· Schema.org & more SEO friendly goodness

·

Browser APIs

· Geo-Location - 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 IE9 test drive demo.

· Local Storage – IE has been supporting local storage from IE8 onwards, 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 HTML5 Demo Site

CSS3

clip_image005

This update supports intellisense and validation for most of the CSS3 modules including:

· 2D Transforms

· 3D Transforms

· Animations

· Background & Borders

· Basic Box Model

· Basic UI

· Behavior

· Color

· Flexible Box Layout

· Fonts

· Generated Content for Paged Media

· Hyperlink Presentation

· Line

· Lists

· Marquee

· Media Queries

· Multi Column

· Namespaces

· Paged Media

· Presentations Levels

· Ruby

· Selectors

· Speech

· Syntax

· Template Layout

· Text

· Transitions

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 –ms; but also other vendor prefixes like –webkit and –moz.

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.

Sharable Links

· Download URL - http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83

· VWD Team Announcement post by Mads - http://blogs.msdn.com/b/webdevtools/archive/2011/06/15/web-standards-update-for-visual-studio-2010-sp1.aspx

· Walkthrough post by Hanselman - http://www.hanselman.com/blog/AnnouncingTheWebStandardsUpdateHTML5SupportForTheVisualStudio2010Editor.aspx

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 Mads Kristensen, Peter Spada, Van Kichline, Aliaksei Baturytski, Damian Edwards, Barry Tang, Bala Chirtsabesan, Alex Gavrilov, Xinyang Qiu, Jon Jung, Scott Hanselman, Teri Schroeppel & Yong Lee.

Thanks again!!

Vishal R. Joshi | http://vishalrjoshi.com | @vishalrjoshi

PS: 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 & Browser API intellisense which would require servicing the shipping bits.

Monday, March 07, 2011

ASP.NET Team Sessions at TechEd Dubai

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.  Here are the sessions Scott & I are doing at TechEd Dubai (sorted by date & time)if you are around please stop by:

-----------------------------------------------------------------------------------------------

09 March 2011 10:30 AM - 11:30 AM

Deep Dive into Razor

Track: Web Platforms (WEB303)

Speakers: Scott Hunter

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.

-----------------------------------------------------------------------------------------------

The New Cool Kid on the Block: ASP.NET MVC 3

09 March 2011 11:45 AM - 12:45 PM

Track: Web Platforms (WEB304) 

Speaker: Vishal Joshi

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.

-----------------------------------------------------------------------------------------------

10 March 2011 09:00 AM - 10:00 AM

What’s New in ASP.NET & Visual Studio for Web Developers

Track: Web Platforms (WEB305)

Speaker: Scott Hunter

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.

-----------------------------------------------------------------------------------------------

10 March 2011 10:30 AM - 11:30 AM

Introduction to Microsoft ASP.NET MVC

Track: Web Platforms (WEB05L) 

Speakers: Scott Hunter, Vishal Joshi

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.

-----------------------------------------------------------------------------------------------

10 March 2011 01:45 PM - 02:45 PM

Meet the Visual Studio Team

Track: Developer Tools, Languages, and Frameworks (IAT209)

Speakers: Lisa Feigenbaum, Shy Cohen, Brian Keller, Vishal Joshi, Scott Hunter

Session Type: Interactive Discussion

Audience: Developer

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.

-----------------------------------------------------------------------------------------------

10 March 2011 03:00 PM - 04:00 PM

Web Deployment That Can Impress your Boss

Track: Web Platforms (WEB306)

Speaker: Vishal Joshi

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.

-Vishal

Sunday, January 16, 2011

Web Developers can feel like Kids in a Candy Store

On Jan 13th 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&A format, so let’s begin.

Q1. I just heard that there were tons of new goodies released, what is all the noise about?

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.

Q2. I use ASP.NET Web Forms what is in for me?

A. We love WebForms and there are many things which are directly applicable to you. As an ASP.NET Web Forms developers IIS Express 7.5, SQL Compact 4, Web Deploy v2, Web PI 3 as well as Web Farm Framework might be very relevant.

Q3. What is IIS Express 7.5?

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.

Q4. Did we not have Visual Studio Development Server (aka “Cassini”)? Yes. Then, why IIS Express 7.5?

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.

Q5. But wait, why could web devs not simply use full IIS instead of asking all these features for Cassini?

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.

Q6. OK cool, is IIS Express 7.5 just for Web Forms?

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.

Q7. Why do you need Visual Studio 2010 “SP1” to support IIS Express 7.5?

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”.

Q8. I am using VS 2010 today; tell me how do I get IIS Express 7.5 working on my box.

A. Visual Studio 2010 SP1 is available as BETA release on MS Download Center. 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 Web PI 3 (Web PI now supports a Search box so just search for IIS 7.5 Express) and you should be all set.

Q9. IIS Express 7.5 indeed sounds interesting, where do I learn more about it?

A. There is overwhelming amount of content on IIS Express 7.5 on web already but I can certainly simplify your search.

· IIS Express Article by ScottGu

· IIS Express Article by Sayed

· IIS Express FAQ

Q10. Is there a good comparison between full IIS and IIS Express?

A. Sure, you can find it on IIS.NET site.

Q11. What if I want the direct IIS Express MSI/EXE to auto install on all of web developer’s boxes across the organization?

A. Ideally you should use Web PI 3 pointing to the local feed but if you are automating the process then here is the link directly to MS Download Center.

Q12. I do not know much about Web PI 3 that you are referring to, what is it?

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:

clip_image001

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.

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!

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 clip_image002. You can use Web PI toolbar to get other goodness that just released, like SQL Compact 4, Web Deploy v2, Orchard, MVC 3 etc.

Q14. Tell me more about SQL Compact 4?

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).

Q15. What does it mean it was engineered to work with Web, what’s so different about Web?

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.

Q16. Did we not have SQL Express, why do I need SQL Compact?

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.

Q17. Can you elaborate what light weight scenarios SQL Compact 4 helps me with?

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 DB engine can simply go inside your web site’s “/bin” folder and the Database itself is a .SDF file which can go inside your “App_Data” folder. At runtime the SQL Compact will run in memory with your ASP.NET Application instead of a separate service which SQL Express & 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

Q18. You said, I can deploy both SQL Compact 4 DB engine & DB with my web site. How exactly do I do this?

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 SP1 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:

clip_image003

Click “OK” and the right binaries, managed as well as native (x86 & 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

Q19. Do I need to learn new APIs to talk to SQL Compact 4?

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.

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?

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.

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?

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

Q22. Do all of the Visual Studio Database tools work with SQL Compact 4?

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. VWD Express also contains support for SQL Compact 4). This means you will need Visual Studio 2010 SP1 to take advantage of this all.

Q23. How do I get SQL Compact 4 working on my machine if I have VS 2010?

A. First get VS 2010 SP1 BETA from MS Download Center. 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 Web PI 3 (click on Databases on the left).

image

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?

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 Web Deploy v2 have. They help you to migrate from SQL Compact to SQL Express/full SQL Server.

Q25. Where do I learn more about SQL Compact 4?

A. There are several places to learn about SQL Compact 4. Start with:

· SQL Compact Team Blog

· Rob Tiffany’s post on SQL Compact 4

· ScottGu’s walkthrough on how to use SQL Compact 4 with ASP.NET Web Forms & MVC

Q26. What is Web Deploy?

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:

· Overview Post of Web Deployment

· IIS.NET

· Visual Studio Web Team blog

Q27. What’s new in Web Deploy v2 as opposed to v1?

A. From a existing VS user standpoint the big things that v2 of Web Deploy contains is:

· The ability to move SQL Compact 4 databases to full SQL Server.

· Tons of bug fixes around reliability and stability.

· Integration with IIS Express making it possible to deploy (package, publish etc) IIS Express based web sites seamlessly.

· Side by Side setup with Web Deploy v1.

· Backward compatibility of Web Deploy v2 to deploy to web servers which still are running on Web Deploy v1.

· Updated gacAssemly provider which allows deploying an assembly to GAC even if it is not in GAC on the source

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 WebMatrix 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.

Q28. You mentioned WebMatrix, what is it? Do I need it?

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 DotNetNuke, Gallery, Umbraco, Orchard in addition to PHP based sites like Wordpress, Drupal, Joomla 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 hosting provider.

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 http://microsoft.com/web

Q29. How do I find great web hosting providers?

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 Microsoft Web Hosting Gallery.

Q30. I deploy my Web Applications to my local web servers and have web farms of servers. Is there anything for me?

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:

· Web Farm Framework post by ScottGu

· IIS.NET site

Q31. You also mentioned Orchard earlier. What is Orchard?

A. Orchard is a free open source CMS web site which also released as v1 on Jan 13th 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 Orchard Project website. There are great walkthroughs on using it in the documentation section too.

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 http://orchard.codeplex.com/. 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 Orchard Gallery.

Finally Orchard is also written using ASP.NET MVC 3 which was also released along with all of the above we talked about.

Q32. What is new about ASP.NET MVC 3?

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 http://asp.net/mvc.

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:

The complete MSDN content map for ASP.NET MVC 3 is available at MVC Content map.

Q33. What is the best way to get started with ASP.NET MVC 3?

A. I would say the best place would be:

· Getting Started with ASP.NET MVC3 section on ASP.NET site

· ASP.NET Music Store Site Tutorial by Jon Galloway

Q34. What is important to know about Razor View Engine?

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&A format but here is a sample with traditional ASP.NET nuggets:

clip_image005

When you write the same in razor it becomes:

image

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.

You should most certainly try to learn about Razor syntax at:

OR read ScottGu’s blog series at:

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 Web Helpers here.

Q34. Is Razor syntax supported in Visual Studio 2010?

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.

Q35. Can I use Resharper with Razor syntax?

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.

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 JetBrians Download Center.

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 Early Access Program.

Q35. Can I use Razor syntax outside of ASP.NET MVC 3?

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:

clip_image008

Q36. Tell me how to get ASP.NET MVC 3 with Razor Syntax?

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 here. If you would like to get ASP.NET Web Pages with Razor Sytax they can be downloaded from here. Btw the second link also contains a book of Razor sytax which I highly recommend.

Q37. Where can I continue learning about ASP.NET MVC?

A. Good places to keep checking out in the future are:

· ASP.NET MVC Site

· ScottGu’s Blog

· Scott Hanselman’s Blog

· Phil Haack’s Blog

Q38. I also heard about NuGet, what is it?

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.

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 http://nuget.org/, which NuGet install links as well as the package gallery. If you want to contribute to NugGet then check out Phil’s post on how to Upload to the NuGet gallery. If you want to check out NuGet source then go to it’s Codeplex page.

Q39. Is there anything for JavaScript developers?

A. Yes. We recently released JavaScript Editor extensions for VS 2010.  These are few highly demanded features by developers and we couldn’t wait for long to have them out there.  The Key features that these extensions contain are:

  • Brace Matching – Matches {}, (), [] in your code to easily navigate through files
  • Outlining/Code-Folding - Adds support for automatically creating outlining regions for JavaScript blocks.
  • Current Word Highlighting – 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
  • IntelliSense Doc-Comment <para> support – In earlier versions you might have seen  tremendously long never breaking lines of comments pop up as tool tips when you typed.  This was because we did not have any way to determine line breaks for xml comments.  With support of <para> elements in XML doc comments this becomes immensely more usable.

You can get all these extensions from VS Extensions Gallery

After you have installed the extensions you can also get the updated vsdoc files for jQuery with <para> tags which are available at jQuery 1.4.3 and 1.4.4

Q40. Is there a place where I can just go to learn about everything here at greater depth?

A. Yes. Our man Scott Hanselman has put together the best collection of all the official documentation for all of Microsoft Web Platform & Tools releases. Check out his Rollup Documentation.

Q401 I still have more questions about this release, where do I ask?

A. You can leave comments here, send me an email at Vishal.Joshi@Microsoft.com but if you would like to have tons of people look and chime in on your questions then ASP.NET Forums is a great place, so is Stackoverflow.

-Vishal