ASP.NET Web Pages (Razor) FAQ
ASP.NET Web Pages (Razor) FAQ
This article lists some frequently asked questions about ASP.NET Web Pages (Razor) and WebMatrix.
Software versions used in the tutorial
- What's the difference between ASP.NET Web Pages, ASP.NET Web Forms, and ASP.NET MVC?
- What's the difference between Web Pages and WebMatrix?
- Do I need WebMatrix in order to work with Web Pages?
- Can I use ASP.NET Web Forms controls on a Web Pages page?
- Can I deploy an ASP.NET Web Pages site without using WebMatrix?
- Do I have to use the WebSecurity helper to support logins?
- Does ASP.NET Web Pages support HTML5?
- Can I use JavaScript and jQuery with Web Pages?
- Additional Resources
For questions about errors and other issues, see the ASP.NET Web Pages (Razor) Troubleshooting Guide.
What's the difference between ASP.NET Web Pages, ASP.NET Web Forms, and ASP.NET MVC?
All three are ASP.NET technologies for creating dynamic web applications:
-
ASP.NET Web Pages focuses on adding dynamic (server-side) code and database access to HTML pages, and features simple and lightweight syntax.
-
ASP.NET Web Forms is based on a page object model and traditional window-type controls (buttons, lists, etc.). Web Forms uses an event-based model that's familiar to those who've worked with client-based (Windows forms) development.
-
ASP.NET MVC implements the model-view-controller pattern for ASP.NET. The emphasis is on "separation of concerns" (processing, data, and UI layers).
All three frameworks are fully supported and continue to be developed by the ASP.NET team. In general, the choice of which framework to use depends on your background and experience with ASP.NET.
ASP.NET Web Pages in particular was designed to make it easy for people who already know HTML to add server processing to their pages. It's a good choice for students, hobbyists, people in general who are new to programming. It can also be a good choice for developers who have experience with non-ASP.NET web technologies.
What's the difference between Web Pages and WebMatrix?
ASP.NET Web Pages is a programming framework for creating pages that run on the server. (See previous question.)
Microsoft WebMatrix is a tool set (an integrated development environment, or IDE) for developing many kinds of web applications. WebMatrix includes tools that are useful for web development, such as a database management tool for SQL Server Compact and MySQL databases. WebMatrix includes a local web server (IIS Express) that lets you test pages, and it lets you analyze pages for SEO and for errors. It also includes a facility for publishing sites to a hosting provider.
When you install WebMatrix, you also install ASP.NET Web Pages and other technologies like IIS Express and SQL Server Compact. Although these products are included in the WebMatrix installation process, they are also separate products.
You do not need WebMatrix in order to create ASP.NET Web Pages applications. You can use also Visual Studio, or use a text editor to create pages. (See next question.) However, the tools in WebMatrix make it easier to create and test your pages.
Conversely, you can use WebMatrix to create websites other than ASP.NET Web Pages applications. For example, you can create applications based on open-source frameworks like PHP, WordPress, DotNetNuke, Joomla!, and Drupal.
Do I need WebMatrix in order to work with Web Pages?
No. You can use Visual Studio 2013 to work with ASP.NET Web Pages sites. Visual Studio gives you many of the features of WebMatrix, plus additional ones like debugging.
If you don't want to use either WebMatrix or Visual Studio, you can install the component products individually usingMicrosoft Web Platform Installer. You need the following products:
- Microsoft .NET Framework 4.5
- ASP.NET MVC 5 (which installs the ASP.NET Web Pages framework as well)
- IIS Express (the web server)
- Microsoft SQL Server Compact 4.0 (the database)
You can use a text editor to edit .cshtml (or .vbhtml) pages.
Managing SQL Server Compact databases (.sdf files) without a tool is a bit harder. WebMatrix and Visual Studio contain tools for managing .sdf databases. You can also run SQL commands in code to perform many SQL Server management tasks.
To test .cshtml pages without using WebMatrix, you can deploy them to a live server. (See Can I deploy an ASP.NET Web Pages site without using WebMatrix?)
Running IIS Express without using WebMatrix
If you installed WebMatrix, you have IIS Express installed on your computer as a web server and you can use that to test the pages. You can run IIS Express from the command line and associate it with a specific port number. You then specify that port when you request .cshtml files in your browser.
In Windows, open a command prompt with administrator privileges and change to C:\Program Files\IIS Express. (For 64-bit systems, use the folder C:\Program Files (x86)\IIS Express.) Then enter the following command, using the actual path to your site:
iisexpress.exe /port:35896 /path:C:\BasicWebSite
You can use any port number that isn't already reserved by some other process. (Port numbers above 1024 are typically free.) For the path
value, use the path of the website folder where the .cshtml files are.
After you run this command to set up IIS Express to serve your pages, you can open a browser and browse to a.cshtml file. Use a URL like the following:
http://localhost:35896/default.cshtml
For help with IIS Express command line options, enter iisexpress.exe /?
at the command line.
Can I use ASP.NET Web Forms controls on a Web Pages page?
No. Web Forms controls like the CheckBox control, the validation controls, and the GridView control only work in Web Forms pages (.aspx files). These controls require the Web Forms page framework.
Can I deploy an ASP.NET Web Pages site without using WebMatrix?
Yes. You can manually copy website files to a server (typically by using FTP). If you perform a manual copy, you also have to copy the files that support SQL Server Compact (the database). For details, see the blog entry Deploying Web Pages applications without a tool.
Do I have to use the WebSecurity helper to support logins?
No. The SimpleMembership
provider that is part of ASP.NET Web Pages is one option. The security providers that are part of ASP.NET (that you might be used to working with in Web Forms) are also available. For example, you can use forms authentication in ASP.NET Web Pages just as you would in Web Forms. For one example of how to use forms authentication, see the Microsoft Support article How To Implement Forms-Based Authentication in Your ASP.NET Application by Using C#.NET. To download a simple example, see ASP.NET version of "Login & Password.
For information about how to use Windows authentication, see the blog post Using Windows authentication in ASP.NET Web Pages.
Does ASP.NET Web Pages support HTML5?
Yes. The pages you create with ASP.NET Web Pages (.cshtml or .vbhtml pages) are essentially HTML pages that also contain code that runs on the server, before the page is rendered. As long as the user's browser supports HTML5, you can use HTML5 elements in a .cshtml or .vbhtml page.
Can I use JavaScript and jQuery with Web Pages?
Absolutely. The pages you create with ASP.NET Web Pages (.cshtml or .vbhtml pages) are just HTML pages with server code in them. Therefore, anything you can do in a normal HTML page by using JavaScript or jQuery you can also do in a .cshtml or .vbhtml page.
The Starter Site template in WebMatrix contains a number of jQuery libraries. If you create a site by using that template, the Scripts folder contains a jQuery core library (jquery-1.6.2.js) and libraries for jQuery validation (jquery.validate.js, etc.).