Docs.git

GitHub - aspnet/Docs: Documentation for ASP.NET and ASP.NET Core
Repo URL: https://github.com/aspnet/Docs.git
Edited by:
Cover image: Cover image
Share this using: email, Google+, Twitter, Facebook.
Exports: EPUB | MOBI

1 ASP.NET API reference

2 Entity Framework

Entity Framework (EF) is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write.

  • Get it: Add this to your project and start taking advantage of this powerful O/RM.
  • Get Started: Visit the guide for videos and tutorials that will help you make the most of your data.
  • Get Help: Find out how to get help from the experts and contribute to the data community on Stack Overflow.
  • Contribute: Find out how you can help make Entity Framework, an open development model, even better by visiting GitHub site.

Use Entity Framework with ASP.NET

<div id=“main” class=“v2”>
<div class=“container”>
<h1>ASP.NET Documentation</h1>
<ul class=“pivots”>
<li>
<a href=“#core”>ASP.NET Core</a>
<ul id=“core”>
<li>
<a href=“#core_overview”>Overview</a>
<ul id=“core_overview” class=“cardsC”>
<li>
<div class=“container intro”>
<p>ASP.NET Core is a new open-source and cross-platform .NET framework for building modern
cloud-based web applications on Windows, Mac, or Linux.</p>
<p>Learn the benefits of both ASP.NET Core and ASP.NET
and choose the one that’s right for you.</p>
</div>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/getting-started”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-overview-1.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Get started with ASP.NET Core</h3>
<p>Create your first ASP.NET Core app on any platform in 5 minutes.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-overview-2.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Introduction to ASP.NET Core</h3>
<p>Discover the new concepts in ASP.NET Core and how they help you develop
modern web apps.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/en-us/dotnet/api/?view=aspnetcore-2.0”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-overview-3.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>API Reference</h3>
<p>Explore the ASP.NET Core class library.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/mvc/overview”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-overview-4.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Overview of ASP.NET Core MVC</h3>
<p>Learn how to build web apps and APIs using the MVC design pattern.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/fundamentals/”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-overview-5.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Fundamentals</h3>
<p>Learn the fundamentals of ASP.NET Core.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://www.asp.net/freecourses”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-overview-6.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Free Courses</h3>
<p>Learn to build apps with ASP.NET Core from various training providers
for free.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li class=“fullSpan”>
<div class=“container footer”>
<p><a href=“https://github.com/aspnet/Docs/blob/master/CONTRIBUTING.md”>Contribute to ASP.NET Core docs and samples</a></p>
<p><a href=“https://docs.microsoft.com/en-us/dotnet/articles/project-json”>Find Visual Studio 2015/project.json version of the documentation</a></p>
</div>
</li>
</ul>
</li>
<li>
<a href=“#core_tutorials”>Tutorials</a>
<ul id=“core_tutorials” class=“cardsZ”>
<li>
<div class=“container intro”>
<p>Featured tutorials | View all ASP.NET Core tutorials</p>
</div>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/tutorials/first-mvc-app-mac/start-mvc”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-tutorials-1.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Build a website on a Mac</h3>
<p>Build your first ASP.NET core app on a Mac using Visual Studio for Mac.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/tutorials/first-mvc-app/”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-tutorials-2.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Build a website with Visual Studio on Windows</h3>
<p>Build your first ASP.NET Core MVC app with Visual Studio.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/tutorials/first-web-api”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-tutorials-3.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Build a web API</h3>
<p>Build your first web API with ASP.NET Core MVC and Visual Studio.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/data/ef-mvc/”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-tutorials-4.svg” alt=“”
/>
</div>
</div>
<div class=“cardText”>
<h3>Get started with Entity Framework Core and ASP.NET Core</h3>
<p>Create ASP.NET Core MVC web applications that use Entity Framework Core
for data access.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/tutorials/web-api-help-pages-using-swagger”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-tutorials-5.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>ASP.NET Web API Help Pages using Swagger</h3>
<p>Generate documentation and help pages for ASP.NET Web API using Swagger
and Swashbuckle.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/core/tutorials/publish-to-azure-webapp-using-vs”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/core-tutorials-6.svg” alt=“”
/>
</div>
</div>
<div class=“cardText”>
<h3>Deploy an ASP.NET Core web app to Azure using Visual Studio</h3>
<p>Create a web app in Azure App Service and deploy an ASP.NET Core web
app to it.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li class=“fullSpan”>
<div class=“container footer”>
<p><a href=“https://github.com/aspnet/Docs/blob/master/CONTRIBUTING.md”>Contribute to ASP.NET Core docs and samples</a></p>
<p><a href=“https://docs.microsoft.com/en-us/dotnet/articles/project-json”>Find Visual Studio 2015/project.json version of the documentation</a></p>
</div>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href=“#aspnet”>ASP.NET</a>
<ul id=“aspnet”>
<li>
<a href=“#aspnet_overview”>Overview</a>
<ul id=“aspnet_overview” class=“cardsC”>
<li>
<div class=“container intro”>
<p>ASP.NET is a mature web platform that provides all the services that you require to build
enterprise-class server-based web applications using .NET on Windows.</p>
<p>Learn the benefits of both ASP.NET Core and ASP.NET
and choose the one that’s right for you.</p>
</div>
</li>
<li>
<a href=“https://go.microsoft.com/fwlink/?LinkId=826064”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-overview-1.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Download Visual Studio</h3>
<p>Visual Studio is a free IDE for ASP.NET on Windows.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/overview”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-overview-2.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Introduction to ASP.NET</h3>
<p>Compare the ASP.NET technologies for building web applications and web
APIs, and for adding real-time functionality.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/api-ref”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-overview-3.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>ASP.NET API reference</h3>
<p>Explore the ASP.NET class library.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/mvc/overview/getting-started/introduction/getting-started”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-overview-4.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Websites</h3>
<p>Learn how to build a website using ASP.NET MVC 5 and Visual Studio.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-overview-5.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Web APIs</h3>
<p>Learn how to build a Web API using ASP.NET Web API 2 and Visual Studio.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-overview-6.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Real-time</h3>
<p>Lean how to build a chat application using ASP.NET SignalR 2 and Visual
Studio.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://www.asp.net/freecourses”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-overview-7.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Free Courses</h3>
<p>Learn to build applications with ASP.NET from various training providers
for free.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li class=“fullSpan”>
<div class=“container footer”>
<p><a href=“https://github.com/aspnet/Docs/blob/master/CONTRIBUTING.md”>Contribute to ASP.NET docs and samples</a></p>
</div>
</li>
</ul>
</li>
<li>
<a href=“#aspnet_framework”>Frameworks</a>
<ul id=“aspnet_framework” class=“cardsC”>
<li>
<div class=“container intro”>
<p><a href=“/aspnet/overview#websites-and-web-applications”>Learn about the different options for building websites with ASP.NET</a> and choose the one that’s right for you.</p>
</div>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/web-forms”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-framework-1.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Web Forms</h3>
<p>Build dynamic websites using a familiar drag-and-drop, event-driven model.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/mvc”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-framework-2.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>MVC</h3>
<p>A powerful, patterns-based way to build dynamic websites that enables
a clean separation of concerns.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/web-pages”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-framework-3.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Web Pages</h3>
<p>A fast, approachable, and lightweight way to combine server code with
HTML to create dynamic web content.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/web-api”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-framework-4.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Web API</h3>
<p>Easily build HTTP services that reach a broad range of clients, including
browsers and mobile devices.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/webhooks”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-framework-5.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>WebHooks</h3>
<p>Wire together Web APIs and SaaS services using a lightweight HTTP pattern
providing a simple pub/sub model.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/signalr”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-framework-6.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>SignalR</h3>
<p>Add real-time web functionality to your applications.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li class=“fullSpan”>
<div class=“container footer”>
<p><a href=“https://github.com/aspnet/Docs/blob/master/CONTRIBUTING.md”>Contribute to ASP.NET docs and samples</a></p>
</div>
</li>
</ul>
</li>
<li>
<a href=“#aspnet_tutorials”>Tutorials</a>
<ul id=“aspnet_tutorials” class=“cardsZ”>
<li>
<div class=“container intro”>
<p>Featured tutorials | View all ASP.NET tutorials</p>
</div>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/mvc/overview/getting-started/introduction/getting-started”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-tutorials-1.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Getting Started with ASP.NET MVC 5</h3>
<p>This tutorial series will teach you the basics of building an ASP.NET
MVC 5 web app using Visual Studio.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-tutorials-2.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Getting Started with ASP.NET Web API 2</h3>
<p>This tutorial will teach you the basics of building a web API using ASP.NET
Web API 2 and Visual Studio.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<!– <li>
<a href=“https://docs.microsoft.com/aspnet/web-forms/overview/getting-started/getting-started-with-aspnet-45-web-forms/introduction-and-overview”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-tutorials-3.svg” alt=“”
/>
</div>
</div>
<div class=“cardText”>
<h3>Getting Started with ASP.NET 4.5 Web Forms and Visual Studio 2013</h3>
<p>This tutorial series will teach you the basics of building an ASP.NET
Web Forms application using ASP.NET 4.5 and Visual Studio.</p>
</div>
</div>
</div>
</div>
</a>
</li> –>
<li>
<a href=“https://docs.microsoft.com/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-tutorials-4.svg” alt=“” />
</div>
</div>
<div class=“cardText”>
<h3>Getting Started with SignalR 2</h3>
<p>This tutorial shows how to use SignalR to create a real-time chat application.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-tutorials-5.svg” alt=“”
/>
</div>
</div>
<div class=“cardText”>
<h3>Getting Started with Entity Framework 6 Code First using MVC 5</h3>
<p>The basics of using Entity Framework 6 to display and edit data in an
ASP.NET MVC 5 application.</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li>
<a href=“https://docs.microsoft.com/aspnet/mvc/overview/deployment/docker-aspnetmvc”>
<div class=“cardSize”>
<div class=“cardPadding”>
<div class=“card”>
<div class=“cardImageOuter”>
<div class=“cardImage bgdAccent1”>
<img src=“/media/hubs/aspnet/aspnet-tutorials-5.svg” alt=“”
/>
</div>
</div>
<div class=“cardText”>
<h3>Migrating ASP.NET MVC Applications to Windows Containers</h3>
<p>Learn how to take an existing ASP.NET MVC application and run it in a Windows Docker Container .</p>
</div>
</div>
</div>
</div>
</a>
</li>
<li class=“fullSpan”>
<div class=“container footer”>
<p><a href=“https://github.com/aspnet/Docs/blob/master/CONTRIBUTING.md”>Contribute to ASP.NET docs and samples</a></p>
</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>

3 ASP.NET overview

ASP.NET is a free web framework for building great websites and web applications using HTML, CSS, and JavaScript. You can also create Web APIs and use real-time technologies like Web Sockets.

ASP.NET Core is an alternative to ASP.NET. See the guidance on how to choose between ASP.NET and ASP.NET Core.

3.1 Get started

Download Visual Studio 2015, a free IDE for ASP.NET on Windows.

3.2 Websites and web applications

ASP.NET offers three frameworks for creating web applications: Web Forms, ASP.NET MVC, and ASP.NET Web Pages. All three frameworks are stable and mature, and you can create great web applications with any of them. No matter what framework you choose, you will get all the benefits and features of ASP.NET everywhere.

Each framework targets a different development style. The one you choose depends on a combination of your programming assets (knowledge, skills, and development experience), the type of application you’re creating, and the development approach you’re comfortable with.

Below is an overview of each of the frameworks and some ideas for how to choose between them. If you prefer a video introduction, see Making Websites with ASP.NET and What is Web Tools?

If you have experience in Development style Expertise
Web Forms Win Forms, WPF, .NET Rapid development using a rich library of controls that encapsulate HTML markup Mid-Level, Advanced RAD
MVC Ruby on Rails, .NET Full control over HTML markup, code and markup separated, and easy to write tests. The best choice for mobile and single-page applications (SPA). Mid-Level, Advanced
Web Pages Classic ASP, PHP HTML markup and your code together in the same file New, Mid-Level

3.2.1 Web Forms

With ASP.NET Web Forms, you can build dynamic websites using a familiar drag-and-drop, event-driven model. A design surface and hundreds of controls and components let you rapidly build sophisticated, powerful UI-driven sites with data access.

Learn more about Web Forms

3.2.2 MVC

ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that enables a clean separation of concerns and that gives you full control over markup for enjoyable, agile development. ASP.NET MVC includes many features that enable fast, TDD-friendly development for creating sophisticated applications that use the latest web standards.

Learn more about MVC

3.2.3 ASP.NET Web Pages

ASP.NET Web Pages and the Razor syntax provide a fast, approachable, and lightweight way to combine server code with HTML to create dynamic web content. Connect to databases, add video, link to social networking sites, and include many more features that help you create beautiful sites that conform to the latest web standards.

Learn more about Web Pages

3.2.4 Notes about Web Forms, MVC, and Web Pages

All three ASP.NET frameworks are based on the .NET Framework and share core functionality of .NET and of ASP.NET. For example, all three frameworks offer a login security model based around membership, and all three share the same facilities for managing requests, handling sessions, and so on that are part of the core ASP.NET functionality.

In addition, the three frameworks are not entirely independent, and choosing one does not preclude using another. Since the frameworks can coexist in the same web application, it’s not uncommon to see individual components of applications written using different frameworks. For example, customer-facing portions of an app might be developed in MVC to optimize the markup, while the data access and administrative portions are developed in Web Forms to take advantage of data controls and simple data access.

3.3 Web APIs

ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.

Learn more about Web API

<!– Put first under Web API TOC: Watch video (9 minutes) https://channel9.msdn.com/Blogs/ASP-NET-Site-Videos/services-and-aspnet –>

3.4 Real-time technologies

ASP.NET SignalR is a new library for ASP.NET developers that makes developing real-time web functionality easier. SignalR allows bi-directional communication between server and client. Servers can push content to connected clients instantly as it becomes available. SignalR supports Web Sockets, and falls back to other compatible techniques for older browsers. SignalR includes APIs for connection management (for instance, connect and disconnect events), grouping connections, and authorization.

Learn more about SignalR

<!– Put first under SignalR TOC: Watch video (6 minutes) https://channel9.msdn.com/Blogs/ASP-NET-Site-Videos/signalr-and-the-real-time-web –>

3.5 Mobile apps and sites

ASP.NET can power native mobile apps with a Web API back end, as well as mobile web sites using responsive design frameworks like Twitter Bootstrap. If you are building a native mobile app, it’s easy to create a JSON-based Web API to handle data access, authentication, and push notifications for your app. If you are building a responsive mobile site, you can use any CSS framework or open grid system you prefer, or select a powerful mobile system like jQuery Mobile or Sencha and great mobile applications with PhoneGap.

Learn more about mobile app and site development

<!– Put first under mobile TOC: Watch video (11 minutes) https://channel9.msdn.com/Blogs/ASP-NET-Site-Videos/aspnet-and-mobile –>

3.6 Single-page applications

ASP.NET Single Page Application (SPA) helps you build applications that include significant client-side interactions using HTML 5, CSS 3 and JavaScript. Visual Studio includes a template for building single page applications using knockout.js and ASP.NET Web API. In addition to the built-in SPA template, community-created SPA templates are also available for download.

Learn more about single-page app development

3.7 WebHooks

WebHooks is a lightweight HTTP pattern providing a simple pub/sub model for wiring together Web APIs and SaaS services. When an event happens in a service, a notification is sent in the form of an HTTP POST request to registered subscribers. The POST request contains information about the event which makes it possible for the receiver to act accordingly.

WebHooks are exposed by a large number of services including Dropbox, GitHub, Instagram, MailChimp, PayPal, Slack, Trello, and many more. For example, a WebHook can indicate that a file has changed in Dropbox, or a code change has been committed in GitHub, or a payment has been initiated in PayPal, or a card has been created in Trello.

Learn more about WebHooks

<!–
Create Deployment TOC based on https://www.asp.net/aspnet/overview/deployment
Copy deployment content map to MVC, WebForms, Web Pages, Web API sections.
Copy Web Deployment in Enterprise from WebForms to MVC
Move under ASP.NET Best practices
What not to do in ASP​.NET, and what to do instead https://review.docs.microsoft.com/en-us/aspnet/aspnet/overview/web-development-best-practices/what-not-to-do-in-aspnet-and-what-to-do-instead
Async and await https://channel9.msdn.com/Blogs/ASP-NET-Site-Videos/async-and-await
Building Real World Cloud Apps with Azure https://review.docs.microsoft.com/en-us/aspnet/aspnet/overview/developing-apps-with-windows-azure/building-real-world-cloud-apps-with-windows-azure/introduction
Hands on Lab: Maintainable Azure Websites: Managing Change and Scale https://review.docs.microsoft.com/en-us/aspnet/aspnet/overview/developing-apps-with-windows-azure/maintainable-azure-websites-managing-change-and-scale

–>

4 ASP.NET overview

5 Tutorials

6 Web Forms

6.1 Guidance

6.1.1 Getting Started

6.1.1.1 Getting Started with ASP.NET 4.5 Web Forms and Visual Studio 2013

6.1.1.1.1 Getting Started with Web Forms and Visual Studio
6.1.1.1.2 Create the Project
6.1.1.1.3 Create the Data Access Layer
6.1.1.1.4 UI and Navigation
6.1.1.1.5 Display Data Items and Details
6.1.1.1.6 Shopping Cart
6.1.1.1.7 Checkout and Payment with PayPal
6.1.1.1.8 Membership and Administration
6.1.1.1.9 URL Routing
6.1.1.1.10 ASP.NET Error Handling

6.1.1.2 Creating a Basic Web Forms Page in Visual Studio 2013

6.1.1.3 Code Editing ASP.NET Web Forms in Visual Studio 2013

6.1.1.4 Using Page Inspector for Visual Studio 2012 in ASP.NET Web Forms

6.1.1.5 Visual Studio 2012 Hands On Labs

6.1.1.5.1 What’s New in ASP.NET and Web Development in Visual Studio 2012
6.1.1.5.2 What’s New in Web Forms in ASP.NET 4.5
6.1.1.5.3 Using Page Inspector in Visual Studio 2012

6.1.2 Working with Data

6.1.2.1 Model Binding and Web Forms in Visual Studio 2013

6.1.2.1.1 Retrieving and Displaying Data
6.1.2.1.2 Updating, Deleting, and Creating Data
6.1.2.1.3 Sorting, Paging, and Filtering Data
6.1.2.1.4 Integrating JQuery UI Datepicker
6.1.2.1.5 Using Query String Values to Filter Data
6.1.2.1.6 Adding Business Logic Layer

6.1.3 Security, Authentication, and Authorization

6.1.3.1 Create a secure ASP.NET Web Forms app with user registration, email confirmation and password reset (C#)

6.1.3.2 Create an ASP.NET Web Forms app with SMS Two-Factor Authentication (C#)

6.1.4 Performance

6.1.4.1 Using Asynchronous Methods in ASP.NET 4.5

6.1.5 Deployment

6.1.5.1 ASP.NET Web Deployment using Visual Studio

6.1.5.1.1 Introduction
6.1.5.1.2 Preparing for Database Deployment
6.1.5.1.3 Web.config File Transformations
6.1.5.1.4 Project Properties
6.1.5.1.5 Deploying to Test
6.1.5.1.6 Setting Folder Permissions
6.1.5.1.7 Deploying to Production
6.1.5.1.8 Deploying a Code Update
6.1.5.1.9 Deploying a Database Update
6.1.5.1.10 Command Line Deployment
6.1.5.1.11 Deploying Extra Files
6.1.5.1.12 Troubleshooting

6.1.5.2 ASP.NET 4 - Enterprise Deployment Introduction

6.1.5.2.1 Deploying Web Applications in Enterprise Scenarios using Visual Studio 2010
6.1.5.2.2 Enterprise Web Deployment: Scenario Overview
6.1.5.2.3 Application Lifecycle Management: From Development to Production

6.1.5.3 ASP.NET 4 - Enterprise Deployment Series 1

6.1.5.3.1 Web Deployment in the Enterprise
6.1.5.3.2 The Contact Manager Solution
6.1.5.3.3 Setting Up the Contact Manager Solution
6.1.5.3.4 Understanding the Project File
6.1.5.3.5 Understanding the Build Process
6.1.5.3.6 Building and Packaging Web Application Projects
6.1.5.3.7 Configuring Parameters for Web Package Deployment
6.1.5.3.8 Deploying Web Packages
6.1.5.3.9 Deploying Database Projects
6.1.5.3.10 Creating and Running a Deployment Command File
6.1.5.3.11 Manually Installing Web Packages

6.1.5.4 ASP.NET 4 - Enterprise Deployment Series 2 Configuring Servers

6.1.5.4.1 Configuring Server Environments for Web Deployment
6.1.5.4.2 Choosing the Right Approach to Web Deployment
6.1.5.4.3 Scenario: Configuring a Test Environment for Web Deployment
6.1.5.4.4 Scenario: Configuring a Staging Environment for Web Deployment
6.1.5.4.5 Scenario: Configuring a Production Environment for Web Deployment
6.1.5.4.6 Configuring a Web Server for Web Deploy Publishing (Remote Agent)
6.1.5.4.7 Configuring a Web Server for Web Deploy Publishing (Web Deploy Handler)
6.1.5.4.8 Configuring a Web Server for Web Deploy Publishing (Offline Deployment)
6.1.5.4.9 Configuring a Database Server for Web Deploy Publishing
6.1.5.4.10 Creating a Server Farm with the Web Farm Framework
6.1.5.4.11 Configuring Deployment Properties for a Target Environment

6.1.5.5 ASP.NET 4 - Enterprise Deployment Series 3 Configuring TFS

6.1.5.5.1 Configuring Team Foundation Server for Web Deployment
6.1.5.5.2 Creating a Team Project in TFS
6.1.5.5.3 Adding Content to Source Control
6.1.5.5.4 Configuring a TFS Build Server for Web Deployment
6.1.5.5.5 Creating a Build Definition That Supports Deployment
6.1.5.5.6 Deploying a Specific Build
6.1.5.5.7 Configuring Permissions for Team Build Deployment

6.1.5.6 ASP.NET 4 - Enterprise Deployment Series 4 Advanced Topics

6.1.5.6.1 Advanced Enterprise Web Deployment
6.1.5.6.2 Performing a “What If” Deployment
6.1.5.6.3 Customizing Database Deployments for Multiple Environments
6.1.5.6.4 Deploying Database Role Memberships to Test Environments
6.1.5.6.5 Deploying Membership Databases to Enterprise Environments
6.1.5.6.6 Excluding Files and Folders from Deployment
6.1.5.6.7 Taking Web Applications Offline with Web Deploy
6.1.5.6.8 Running Windows PowerShell Scripts from MSBuild Project Files
6.1.5.6.9 Troubleshooting the Packaging Process

6.1.6 Advanced

6.1.6.1 ASP.NET Web Forms Connection Resiliency and Command Interception

6.1.7 Older Versions - Getting Started

6.1.7.1 ASP.NET 4 - Tailspin Spyworks

6.1.7.1.1 Part 1: File-> New Project
6.1.7.1.2 Part 2: Data Access Layer
6.1.7.1.3 Part 3: Layout and Category Menu
6.1.7.1.4 Part 4: Listing Products
6.1.7.1.5 Part 5: Business Logic
6.1.7.1.6 Part 6: ASP.NET Membership
6.1.7.1.7 Part 7: Adding Features
6.1.7.1.8 Part 8: Final Pages, Exception Handling, and Conclusion

6.1.7.2 ASP.NET 4 - Getting Started with Entity Framework 4 and Web Forms

6.1.7.2.1 Getting Started with Entity Framework 4.0 Database First
6.1.7.2.2 Getting Started with Entity Framework 4.0 Database First - Part 2
6.1.7.2.3 Getting Started with Entity Framework 4.0 Database First - Part 3
6.1.7.2.4 Getting Started with Entity Framework 4.0 Database First - Part 4
6.1.7.2.5 Getting Started with Entity Framework 4.0 Database First - Part 5
6.1.7.2.6 Getting Started with Entity Framework 4.0 Database First - Part 6
6.1.7.2.7 Getting Started with Entity Framework 4.0 Database First - Part 7
6.1.7.2.8 Getting Started with Entity Framework 4.0 Database First - Part 8

6.1.7.3 ASP.NET 4 - Continuing with Entity Framework 4 and Web Forms

6.1.7.3.1 Entity Framework 4.0 and the ObjectDataSource Control, Part 1: Getting Started
6.1.7.3.2 Entity Framework 4.0 and the ObjectDataSource Control, Part 2: Adding a Business Logic Layer and Unit Tests
6.1.7.3.3 Entity Framework 4.0 and the ObjectDataSource Control, Part 3: Sorting and Filtering
6.1.7.3.4 Handling Concurrency with the Entity Framework 4.0 in ASP.NET 4
6.1.7.3.5 Maximizing Performance with the Entity Framework 4.0 in ASP.NET 4
6.1.7.3.6 What’s New in the Entity Framework 4.0

6.1.7.4 ASP.NET 4 - Web Deployment with SQL Server Compact using Visual Studio

6.1.7.4.1 Visual Studio Web Deployment with SQL Server Compact - Introduction
6.1.7.4.2 Visual Studio Web Deployment with SQL Server Compact- Deploying SQL Server Compact Databases
6.1.7.4.3 Visual Studio Web Deployment with SQL Server Compact - Web.Config File Transformations
6.1.7.4.4 Visual Studio Web Deployment with SQL Server Compact - Configuring Project Properties
6.1.7.4.5 Visual Studio Web Deployment with SQL Server Compact - Deploying to IIS as a Test Environment
6.1.7.4.6 Visual Studio Web Deployment with SQL Server Compact - Setting Folder Permissions
6.1.7.4.7 Visual Studio Web Deployment with SQL Server Compact - Deploying to the Production Environment
6.1.7.4.8 Visual Studio Web Deployment with SQL Server Compact - Deploying a Code-Only Update
6.1.7.4.9 Visual Studio Web Deployment with SQL Server Compact - Deploying a Database Update
6.1.7.4.10 Visual Studio Web Deployment with SQL Server Compact - Migrating to SQL Server
6.1.7.4.11 Visual Studio Web Deployment with SQL Server Compact - Deploying a SQL Server Database Update
6.1.7.4.12 Visual Studio Web Deployment with SQL Server Compact - Troubleshooting

6.1.7.5 ASP.NET 3.5 - AJAX

6.1.7.5.1 Understanding Partial Page Updates with ASP.NET AJAX
6.1.7.5.2 Understanding ASP.NET AJAX UpdatePanel Triggers
6.1.7.5.3 Understanding ASP.NET AJAX Authentication and Profile Application Services
6.1.7.5.4 Understanding ASP.NET AJAX Localization
6.1.7.5.5 Understanding ASP.NET AJAX Web Services
6.1.7.5.6 Understanding ASP.NET AJAX Debugging Capabilities

6.1.7.6 ASP.NET 3.5 - Web Forms Master Pages

6.1.7.6.1 Creating a Site-Wide Layout Using Master Pages (C#)
6.1.7.6.2 Multiple ContentPlaceHolders and Default Content (C#)
6.1.7.6.3 Specifying the Title, Meta Tags, and Other HTML Headers in the Master Page (C#)
6.1.7.6.4 URLs in Master Pages (C#)
6.1.7.6.5 Control ID Naming in Content Pages (C#)
6.1.7.6.6 Interacting with the Master Page from the Content Page (C#)
6.1.7.6.7 Interacting with the Content Page from the Master Page (C#)
6.1.7.6.8 Master Pages and ASP.NET AJAX (C#)
6.1.7.6.9 Specifying the Master Page Programmatically (C#)
6.1.7.6.10 Nested Master Pages (C#)
6.1.7.6.11 Creating a Site-Wide Layout Using Master Pages (VB)
6.1.7.6.12 Multiple ContentPlaceHolders and Default Content (VB)
6.1.7.6.13 Specifying the Title, Meta Tags, and Other HTML Headers in the Master Page (VB)
6.1.7.6.14 URLs in Master Pages (VB)
6.1.7.6.15 Control ID Naming in Content Pages (VB)
6.1.7.6.16 Interacting with the Master Page from the Content Page (VB)
6.1.7.6.17 Interacting with the Content Page from the Master Page (VB)
6.1.7.6.18 Master Pages and ASP.NET AJAX (VB)
6.1.7.6.19 Specifying the Master Page Programmatically (VB)
6.1.7.6.20 Nested Master Pages (VB)

6.1.7.7 Deploying Web Site Projects in Visual Studio 2008 and earlier

6.1.7.7.1 ASP.NET Hosting Options (C#)
6.1.7.7.2 Determining What Files Need to Be Deployed (C#)
6.1.7.7.3 Deploying Your Site Using an FTP Client (C#)
6.1.7.7.4 Deploying Your Site Using Visual Studio (C#)
6.1.7.7.5 Common Configuration Differences Between Development and Production (C#)
6.1.7.7.6 Core Differences Between IIS and the ASP.NET Development Server (C#)
6.1.7.7.7 Deploying a Database (C#)
6.1.7.7.8 Configuring the Production Web Application to Use the Production Database (C#)
6.1.7.7.9 Configuring a Website that Uses Application Services (C#)
6.1.7.7.10 Strategies for Database Development and Deployment (C#)
6.1.7.7.11 Displaying a Custom Error Page (C#)
6.1.7.7.12 Processing Unhandled Exceptions (C#)
6.1.7.7.13 Logging Error Details with ASP.NET Health Monitoring (C#)
6.1.7.7.14 Logging Error Details with ELMAH (C#)
6.1.7.7.15 Precompiling Your Website (C#)
6.1.7.7.16 Users and Roles On Production Website (C#)
6.1.7.7.17 ASP.NET Hosting Options (VB)
6.1.7.7.18 Determining What Files Need to Be Deployed (VB)
6.1.7.7.19 Deploying Your Site Using an FTP Client (VB)
6.1.7.7.20 Deploying Your Site Using Visual Studio (VB)
6.1.7.7.21 Common Configuration Differences Between Development and Production (VB)
6.1.7.7.22 Core Differences Between IIS and the ASP.NET Development Server (VB)
6.1.7.7.23 Deploying a Database (VB)
6.1.7.7.24 Configuring the Production Web Application to Use the Production Database (VB)
6.1.7.7.25 Configuring a Website that Uses Application Services (VB)
6.1.7.7.26 Strategies for Database Development and Deployment (VB)
6.1.7.7.27 Displaying a Custom Error Page (VB)
6.1.7.7.28 Processing Unhandled Exceptions (VB)
6.1.7.7.29 Logging Error Details with ASP.NET Health Monitoring (VB)
6.1.7.7.30 Logging Error Details with ELMAH (VB)
6.1.7.7.31 Precompiling Your Website (VB)
6.1.7.7.32 Users and Roles On Production Website (VB)

6.1.8 Older Versions - Ajax Control Toolkit

6.1.8.1 Getting Started

6.1.8.1.1 Get Started with the AJAX Control Toolkit (C#)
6.1.8.1.2 Using AJAX Control Toolkit Controls and Control Extenders (C#)
6.1.8.1.3 Creating a Custom AJAX Control Toolkit Control Extender (C#)
6.1.8.1.4 Get Started with the AJAX Control Toolkit (VB)
6.1.8.1.5 Using AJAX Control Toolkit Controls and Control Extenders (VB)
6.1.8.1.6 Creating a Custom AJAX Control Toolkit Control Extender (VB)

6.1.8.2 Accordion

6.1.8.2.1 Databinding to an Accordion (C#)
6.1.8.2.2 Dynamically Adding Accordion Pane (C#)
6.1.8.2.3 Databinding to an Accordion (VB)
6.1.8.2.4 Dynamically Adding Accordion Pane (VB)

6.1.8.3 Animation

6.1.8.3.1 Adding Animation to a Control (C#)
6.1.8.3.2 Executing Several Animations at Same Time (C#)
6.1.8.3.3 Executing Several Animations after Each Other (C#)
6.1.8.3.4 Animation Depending On a Condition (C#)
6.1.8.3.5 Picking One Animation Out Of a List (C#)
6.1.8.3.6 Animating in Response To User Interaction (C#)
6.1.8.3.7 Disabling Actions during Animation (C#)
6.1.8.3.8 Triggering an Animation in another Control (C#)
6.1.8.3.9 Modifying Animations From Server Side (C#)
6.1.8.3.10 Executing Animations Using Client-Side Code (C#)
6.1.8.3.11 Changing an Animation Using Client-Side Code (C#)
6.1.8.3.12 Animating an UpdatePanel Control (C#)
6.1.8.3.13 Dynamically Controlling UpdatePanel Animations (C#)
6.1.8.3.14 Adding Animation to a Control (VB)
6.1.8.3.15 Executing Several Animations at Same Time (VB)
6.1.8.3.16 Executing Several Animations after Each Other (VB)
6.1.8.3.17 Animation Depending On a Condition (VB)
6.1.8.3.18 Picking One Animation Out Of a List (VB)
6.1.8.3.19 Animating in Response To User Interaction (VB)
6.1.8.3.20 Disabling Actions during Animation (VB)
6.1.8.3.21 Triggering an Animation in another Control (VB)
6.1.8.3.22 Modifying Animations From Server Side (VB)
6.1.8.3.23 Executing Animations Using Client-Side Code (VB)
6.1.8.3.24 Changing an Animation Using Client-Side Code (VB)
6.1.8.3.25 Animating an UpdatePanel Control (VB)
6.1.8.3.26 Dynamically Controlling UpdatePanel Animations (VB)

6.1.8.4 CascadingDropdown

6.1.8.4.1 Filling a List Using CascadingDropDown (C#)
6.1.8.4.2 Using CascadingDropDown with a Database (C#)
6.1.8.4.3 Presetting List Entries with CascadingDropDown (C#)
6.1.8.4.4 Using Auto-Postback with CascadingDropDown (C#)
6.1.8.4.5 Filling a List Using CascadingDropDown (VB)
6.1.8.4.6 Using CascadingDropDown with a Database (VB)
6.1.8.4.7 Presetting List Entries with CascadingDropDown (VB)
6.1.8.4.8 Using Auto-Postback with CascadingDropDown (VB)

6.1.8.5 CollapsiblePanel

6.1.8.5.1 Collapsing and Expanding a Panel from JavaScript (C#)
6.1.8.5.2 Collapsing and Expanding a Panel from JavaScript (VB)

6.1.8.6 ColorPicker

6.1.8.6.1 ColorPicker Control Extender (C#)
6.1.8.6.2 ColorPicker Control Extender (VB)

6.1.8.7 ComboBox

6.1.8.7.1 ComboBox Control (C#)
6.1.8.7.2 ComboBox Control (VB)

6.1.8.8 ConfirmButton

6.1.8.8.1 Using a ConfirmButton In a Repeater (C#)
6.1.8.8.2 Using a ConfirmButton In a Repeater (VB)

6.1.8.9 DropShadow

6.1.8.9.1 Adjusting the Z-Index of a DropShadow (C#)
6.1.8.9.2 Manipulating DropShadow Properties from Client Code (C#)
6.1.8.9.3 Adjusting the Z-Index of a DropShadow (VB)
6.1.8.9.4 Manipulating DropShadow Properties from Client Code (VB)

6.1.8.10 DynamicPopulate

6.1.8.10.1 Dynamically Populating a Control (C#)
6.1.8.10.2 Dynamically Populating a Control Using JavaScript Code (C#)
6.1.8.10.3 Using DynamicPopulate with a User Control And JavaScript (C#)
6.1.8.10.4 Dynamically Populating a Control (VB)
6.1.8.10.5 Dynamically Populating a Control Using JavaScript Code (VB)
6.1.8.10.6 Using DynamicPopulate with a User Control And JavaScript (VB)

6.1.8.11 FilteredTextBox

6.1.8.11.1 Allowing Only Certain Characters in a Text Box (C#)
6.1.8.11.2 Allowing Only Certain Characters in a Text Box (VB)

6.1.8.12 HoverMenu

6.1.8.12.1 Using HoverMenu with a Repeater Control (C#)
6.1.8.12.2 Using HoverMenu with a Repeater Control (VB)

6.1.8.13 HTMLEditor

6.1.8.13.1 HTML Editor Control (C#)
6.1.8.13.2 HTML Editor Control (VB)

6.1.8.14 ModalPopup

6.1.8.14.1 Launching a Modal Popup Window from Server Code (C#)
6.1.8.14.2 Using ModalPopup with a Repeater Control (C#)
6.1.8.14.3 Handling Postbacks from a ModalPopup (C#)
6.1.8.14.4 Positioning a ModalPopup (C#)
6.1.8.14.5 Launching a Modal Popup Window from Server Code (VB)
6.1.8.14.6 Using ModalPopup with a Repeater Control (VB)
6.1.8.14.7 Handling Postbacks from a ModalPopup (VB)
6.1.8.14.8 Positioning a ModalPopup (VB)

6.1.8.15 MutuallyExclusiveCheckbox

6.1.8.15.1 Creating Mutually Exclusive Checkboxes (C#)
6.1.8.15.2 Creating Mutually Exclusive Checkboxes (VB)

6.1.8.16 NoBot

6.1.8.16.1 Fighting Bots (C#)
6.1.8.16.2 Fighting Bots (VB)

6.1.8.17 NumericUpDown

6.1.8.17.1 Creating a Numeric Up/Down Control with a Web Service Backend (C#)
6.1.8.17.2 Creating a Numeric Up/Down Control with a Web Service Backend (VB)

6.1.8.18 PasswordStrength

6.1.8.18.1 Testing the Strength of a Password (C#)
6.1.8.18.2 Testing the Strength of a Password (VB)
6.1.8.19.1 Using Multiple Popup Controls (C#)
6.1.8.19.2 Handling Postbacks from A Popup Control With an UpdatePanel (C#)
6.1.8.19.3 Handling Postbacks from A Popup Control Without an UpdatePanel (C#)
6.1.8.19.4 Using Multiple Popup Controls (VB)
6.1.8.19.5 Handling Postbacks from A Popup Control With an UpdatePanel (VB)
6.1.8.19.6 Handling Postbacks from A Popup Control Without an UpdatePanel (VB)

6.1.8.20 Rating

6.1.8.20.1 Creating a Rating Control (C#)
6.1.8.20.2 Creating a Rating Control (VB)

6.1.8.21 ReorderList

6.1.8.21.1 Using Postbacks with ReorderList (C#)
6.1.8.21.2 Drag and Drop via ReorderList (C#)
6.1.8.21.3 Using Postbacks with ReorderList (VB)
6.1.8.21.4 Drag and Drop via ReorderList (VB)

6.1.8.22 Slider

6.1.8.22.1 Slider Control With Auto-Postback (C#)
6.1.8.22.2 Databinding the Slider Control (C#)
6.1.8.22.3 Slider Control With Auto-Postback (VB)
6.1.8.22.4 Databinding the Slider Control (VB)

6.1.8.23 TextBoxWatermark

6.1.8.23.1 Using TextBoxWatermark in a FormView (C#)
6.1.8.23.2 Using TextBoxWatermark With Validation Controls (C#)
6.1.8.23.3 Using TextBoxWatermark in a FormView (VB)
6.1.8.23.4 Using TextBoxWatermark With Validation Controls (VB)

6.1.9 Older Versions - Data Access

6.1.9.1 Introduction

6.1.9.1.1 Creating a Data Access Layer (C#)
6.1.9.1.2 Creating a Business Logic Layer (C#)
6.1.9.1.3 Master Pages and Site Navigation (C#)
6.1.9.1.4 Creating a Data Access Layer (VB)
6.1.9.1.5 Creating a Business Logic Layer (VB)
6.1.9.1.6 Master Pages and Site Navigation (VB)

6.1.9.2 Basic Reporting

6.1.9.2.1 Displaying Data With the ObjectDataSource (C#)
6.1.9.2.2 Declarative Parameters (C#)
6.1.9.2.3 Programmatically Setting the ObjectDataSource’s Parameter Values (C#)
6.1.9.2.4 Displaying Data With the ObjectDataSource (VB)
6.1.9.2.5 Declarative Parameters (VB)
6.1.9.2.6 Programmatically Setting the ObjectDataSource’s Parameter Values (VB)

6.1.9.3 Master/Detail

6.1.9.3.1 Master/Detail Filtering With a DropDownList (C#)
6.1.9.3.2 Master/Detail Filtering With Two DropDownLists (C#)
6.1.9.3.3 Master/Detail Filtering Across Two Pages (C#)
6.1.9.3.4 Master/Detail Using a Selectable Master GridView with a Details DetailView (C#)
6.1.9.3.5 Master/Detail Filtering With a DropDownList (VB)
6.1.9.3.6 Master/Detail Filtering With Two DropDownLists (VB)
6.1.9.3.7 Master/Detail Filtering Across Two Pages (VB)
6.1.9.3.8 Master/Detail Using a Selectable Master GridView with a Details DetailView (VB)

6.1.9.4 Custom Formatting

6.1.9.4.1 Custom Formatting Based Upon Data (C#)
6.1.9.4.2 Using TemplateFields in the GridView Control (C#)
6.1.9.4.3 Using TemplateFields in the DetailsView Control (C#)
6.1.9.4.4 FormView’s Templates (C#)
6.1.9.4.6 Custom Formatting Based Upon Data (VB)
6.1.9.4.7 Using TemplateFields in the GridView Control (VB)
6.1.9.4.8 Using TemplateFields in the DetailsView Control (VB)
6.1.9.4.9 FormView’s Templates (VB)

6.1.9.5 Editing, Inserting, and Deleting Data

6.1.9.5.1 Overview of Inserting, Updating, and Deleting Data (C#)
6.1.9.5.2 Examining the Events Associated with Inserting, Updating, and Deleting (C#)
6.1.9.5.3 Handling BLL- and DAL-Level Exceptions in an ASP.NET Page (C#)
6.1.9.5.4 Adding Validation Controls to the Editing and Inserting Interfaces (C#)
6.1.9.5.5 Customizing the Data Modification Interface (C#)
6.1.9.5.6 Implementing Optimistic Concurrency (C#)
6.1.9.5.7 Adding Client-Side Confirmation When Deleting (C#)
6.1.9.5.8 Limiting Data Modification Functionality Based on the User (C#)
6.1.9.5.9 Overview of Inserting, Updating, and Deleting Data (VB)
6.1.9.5.10 Examining the Events Associated with Inserting, Updating, and Deleting (VB)
6.1.9.5.11 Handling BLL- and DAL-Level Exceptions in an ASP.NET Page (VB)
6.1.9.5.12 Adding Validation Controls to the Editing and Inserting Interfaces (VB)
6.1.9.5.13 Customizing the Data Modification Interface (VB)
6.1.9.5.14 Implementing Optimistic Concurrency (VB)
6.1.9.5.15 Adding Client-Side Confirmation When Deleting (VB)
6.1.9.5.16 Limiting Data Modification Functionality Based on the User (VB)

6.1.9.6 Paging and Sorting

6.1.9.6.1 Paging and Sorting Report Data (C#)
6.1.9.6.2 Efficiently Paging Through Large Amounts of Data (C#)
6.1.9.6.3 Sorting Custom Paged Data (C#)
6.1.9.6.4 Creating a Customized Sorting User Interface (C#)
6.1.9.6.5 Paging and Sorting Report Data (VB)
6.1.9.6.6 Efficiently Paging Through Large Amounts of Data (VB)
6.1.9.6.7 Sorting Custom Paged Data (VB)
6.1.9.6.8 Creating a Customized Sorting User Interface (VB)

6.1.9.7 Custom Button Actions

6.1.9.7.1 Adding and Responding to Buttons to a GridView (C#)
6.1.9.7.2 Adding and Responding to Buttons to a GridView (VB)

6.1.9.8 Displaying Data with the DataList and Repeater

6.1.9.8.1 Displaying Data with the DataList and Repeater Controls (C#)
6.1.9.8.2 Formatting the DataList and Repeater Based Upon Data (C#)
6.1.9.8.3 Showing Multiple Records per Row with the DataList Control (C#)
6.1.9.8.4 Nested Data Web Controls (C#)
6.1.9.8.5 Displaying Data with the DataList and Repeater Controls (VB)
6.1.9.8.6 Formatting the DataList and Repeater Based Upon Data (VB)
6.1.9.8.7 Showing Multiple Records per Row with the DataList Control (VB)
6.1.9.8.8 Nested Data Web Controls (VB)

6.1.9.9 Filtering Scenarios with the DataList and Repeater

6.1.9.9.1 Master/Detail Filtering With a DropDownList (C#)
6.1.9.9.2 Master/Detail Filtering Across Two Pages (C#)
6.1.9.9.3 Master/Detail Using a Bulleted List of Master Records with a Details DataList (C#)
6.1.9.9.4 Master/Detail Filtering With a DropDownList (VB)
6.1.9.9.5 Master/Detail Filtering Across Two Pages (VB)
6.1.9.9.6 Master/Detail Using a Bulleted List of Master Records with a Details DataList (VB)

6.1.9.10 Editing and Deleting Data Through the DataList

6.1.9.10.1 Overview of Editing and Deleting Data in the DataList (C#)
6.1.9.10.2 Performing Batch Updates (C#)
6.1.9.10.3 Handling BLL- and DAL-Level Exceptions (C#)
6.1.9.10.4 Adding Validation Controls to the DataList’s Editing Interface (C#)
6.1.9.10.5 Customizing the DataList’s Editing Interface (C#)
6.1.9.10.6 Overview of Editing and Deleting Data in the DataList (VB)
6.1.9.10.7 Performing Batch Updates (VB)
6.1.9.10.8 Handling BLL- and DAL-Level Exceptions (VB)
6.1.9.10.9 Adding Validation Controls to the DataList’s Editing Interface (VB)
6.1.9.10.10 Customizing the DataList’s Editing Interface (VB)

6.1.9.11 Paging and Sorting with the DataList and Repeater

6.1.9.11.1 Paging Report Data in a DataList or Repeater Control (C#)
6.1.9.11.2 Sorting Data in a DataList or Repeater Control (C#)
6.1.9.11.3 Paging Report Data in a DataList or Repeater Control (VB)
6.1.9.11.4 Sorting Data in a DataList or Repeater Control (VB)

6.1.9.12 Custom Button Actions with the DataList and Repeater

6.1.9.12.1 Custom Buttons in the DataList and Repeater (C#)
6.1.9.12.2 Custom Buttons in the DataList and Repeater (VB)

6.1.9.13 Accessing the Database Directly from an ASP.NET Page

6.1.9.13.1 Querying Data with the SqlDataSource Control (C#)
6.1.9.13.2 Using Parameterized Queries with the SqlDataSource (C#)
6.1.9.13.3 Inserting, Updating, and Deleting Data with the SqlDataSource (C#)
6.1.9.13.4 Implementing Optimistic Concurrency with the SqlDataSource (C#)
6.1.9.13.5 Querying Data with the SqlDataSource Control (VB)
6.1.9.13.6 Using Parameterized Queries with the SqlDataSource (VB)
6.1.9.13.7 Inserting, Updating, and Deleting Data with the SqlDataSource (VB)
6.1.9.13.8 Implementing Optimistic Concurrency with the SqlDataSource (VB)

6.1.9.14 Enhancing the GridView

6.1.9.14.1 Adding a GridView Column of Radio Buttons (C#)
6.1.9.14.2 Adding a GridView Column of Checkboxes (C#)
6.1.9.14.4 Adding a GridView Column of Radio Buttons (VB)
6.1.9.14.5 Adding a GridView Column of Checkboxes (VB)

6.1.9.15 Working with Binary Files

6.1.9.15.1 Uploading Files (C#)
6.1.9.15.2 Displaying Binary Data in the Data Web Controls (C#)
6.1.9.15.3 Including a File Upload Option When Adding a New Record (C#)
6.1.9.15.4 Updating and Deleting Existing Binary Data (C#)
6.1.9.15.5 Uploading Files (VB)
6.1.9.15.6 Displaying Binary Data in the Data Web Controls (VB)
6.1.9.15.7 Including a File Upload Option When Adding a New Record (VB)
6.1.9.15.8 Updating and Deleting Existing Binary Data (VB)

6.1.9.16 Caching Data

6.1.9.16.1 Caching Data with the ObjectDataSource (C#)
6.1.9.16.2 Caching Data in the Architecture (C#)
6.1.9.16.3 Caching Data at Application Startup (C#)
6.1.9.16.4 Using SQL Cache Dependencies (C#)
6.1.9.16.5 Caching Data with the ObjectDataSource (VB)
6.1.9.16.6 Caching Data in the Architecture (VB)
6.1.9.16.7 Caching Data at Application Startup (VB)
6.1.9.16.8 Using SQL Cache Dependencies (VB)

6.1.9.17 Database-Driven Site Maps

6.1.9.17.1 Building a Custom Database-Driven Site Map Provider (C#)
6.1.9.17.2 Building a Custom Database-Driven Site Map Provider (VB)

6.1.9.18 Working with Batched Data

6.1.9.18.1 Wrapping Database Modifications within a Transaction (C#)
6.1.9.18.2 Batch Updating (C#)
6.1.9.18.3 Batch Deleting (C#)
6.1.9.18.4 Batch Inserting (C#)
6.1.9.18.5 Wrapping Database Modifications within a Transaction (VB)
6.1.9.18.6 Batch Updating (VB)
6.1.9.18.7 Batch Deleting (VB)
6.1.9.18.8 Batch Inserting (VB)

6.1.9.19 Advanced Data Access Scenarios

6.1.9.19.1 Creating New Stored Procedures for the Typed DataSet’s TableAdapters (C#)
6.1.9.19.2 Using Existing Stored Procedures for the Typed DataSet’s TableAdapters (C#)
6.1.9.19.3 Updating the TableAdapter to Use JOINs (C#)
6.1.9.19.4 Adding Additional DataTable Columns (C#)
6.1.9.19.5 Working with Computed Columns (C#)
6.1.9.19.6 Configuring the Data Access Layer’s Connection- and Command-Level Settings (C#)
6.1.9.19.7 Protecting Connection Strings and Other Configuration Information (C#)
6.1.9.19.8 Debugging Stored Procedures (C#)
6.1.9.19.9 Creating Stored Procedures and User-Defined Functions with Managed Code (C#)
6.1.9.19.10 Creating New Stored Procedures for the Typed DataSet’s TableAdapters (VB)
6.1.9.19.11 Using Existing Stored Procedures for the Typed DataSet’s TableAdapters (VB)
6.1.9.19.12 Updating the TableAdapter to Use JOINs (VB)
6.1.9.19.13 Adding Additional DataTable Columns (VB)
6.1.9.19.14 Working with Computed Columns (VB)
6.1.9.19.15 Configuring the Data Access Layer’s Connection- and Command-Level Settings (VB)
6.1.9.19.16 Protecting Connection Strings and Other Configuration Information (VB)
6.1.9.19.17 Debugging Stored Procedures (VB)
6.1.9.19.18 Creating Stored Procedures and User-Defined Functions with Managed Code (VB)

6.1.10 Older Versions - Security

6.1.10.1 ASP.NET 3.5 - Introduction to Security

6.1.10.1.1 Security Basics and ASP.NET Support (C#)
6.1.10.1.2 Overview of Forms Authentication (C#)
6.1.10.1.3 Forms Authentication Configuration and Advanced Topics (C#)
6.1.10.1.4 Security Basics and ASP.NET Support (VB)
6.1.10.1.5 Overview of Forms Authentication (VB)
6.1.10.1.6 Forms Authentication Configuration and Advanced Topics (VB)

6.1.10.2 ASP.NET 3.5 - Membership

6.1.10.2.1 Creating the Membership Schema in SQL Server (C#)
6.1.10.2.2 Creating User Accounts (C#)
6.1.10.2.3 Validating User Credentials Against the Membership User Store (C#)
6.1.10.2.4 User-Based Authorization (C#)
6.1.10.2.5 Storing Additional User Information (C#)
6.1.10.2.6 Creating the Membership Schema in SQL Server (VB)
6.1.10.2.7 Creating User Accounts (VB)
6.1.10.2.8 Validating User Credentials Against the Membership User Store (VB)
6.1.10.2.9 User-Based Authorization (VB)
6.1.10.2.10 Storing Additional User Information (VB)

6.1.10.3 ASP.NET 3.5 - Roles

6.1.10.3.1 Creating and Managing Roles (C#)
6.1.10.3.2 Assigning Roles to Users (C#)
6.1.10.3.3 Role-Based Authorization (C#)
6.1.10.3.4 Creating and Managing Roles (VB)
6.1.10.3.5 Assigning Roles to Users (VB)
6.1.10.3.6 Role-Based Authorization (VB)

6.1.10.4 ASP.NET 3.5 - Security Administration

6.1.10.4.1 Building an Interface to Select One User Account from Many (C#)
6.1.10.4.2 Recovering and Changing Passwords (C#)
6.1.10.4.3 Unlocking and Approving User Accounts (C#)
6.1.10.4.4 Building an Interface to Select One User Account from Many (VB)
6.1.10.4.5 Recovering and Changing Passwords (VB)
6.1.10.4.6 Unlocking and Approving User Accounts (VB)

6.1.11 Older Versions - ASP.NET 2.0

6.1.11.1 Improvements in Visual Studio 2005

6.1.11.2 ASP.NET 2.0 Page Model

6.1.11.3 Server Controls

6.1.11.4 Master Pages

6.1.11.5 Data Source Controls

6.1.11.6 Data Bound Controls

6.1.11.7 Caching

6.1.11.8 Membership

6.1.11.9 Configuration and Instrumentation

6.1.11.10 Profiles, Themes, and Web Parts

6.2 Videos

6.2.1 How Do I?

6.2.1.1 Learn the Tips and Tricks of Experts

6.2.1.2 Create a Multi-Lingual Site with Localization

6.2.1.3 Make use of Caching

6.2.1.4 Make Greater use of Caching

6.2.1.5 Utilize Web Parts and Personalization

6.2.1.6 Customize my Site with Profiles and Themes

6.2.1.7 Secure my Site using Membership and Roles

6.2.1.8 Create a “Contact Us” Page

6.2.1.10 Use Master Pages and Site Navigation

6.2.1.11 Create Data-Driven Web Sites

6.2.1.12 Implement an HttpModule

6.2.1.13 Set Up the SQL Membership Provider

6.2.1.14 Implement URL Rewriting

6.2.1.15 Utilize the CSS Friendly Control Adapters

6.2.1.16 Handle Application Events using an HttpModule

6.2.1.17 Use Cascading Style Sheets for Web Page Layout

6.2.1.18 Create a Custom Membership Provider

6.2.1.19 Create a Custom Profile Provider

6.2.1.20 Implement Site Navigation in ASP.NET

6.2.1.21 Use Validation Controls in ASP.NET

6.2.1.22 Create a Custom User Control in ASP.NET

6.2.1.23 Implement Health Monitoring for an ASP.NET Application

6.2.1.24 Implement Tracing in an ASP.NET Web Site

6.2.1.25 Event Handlers in ASP.NET Web Pages and Controls

6.2.1.26 Implement a Custom Health Monitoring Event

6.2.1.27 Use Control State to Persist Information for a Custom Web Server Control

6.2.1.28 Read, Write, and Delete Cookies in ASP.NET

6.2.1.29 Save and Load View State Information for a Custom Web Server Control

6.2.1.30 Create and Use Application Level Events in ASP.NET

6.2.1.31 Simple File Uploads in ASP.NET

6.2.1.32 Multiple File Uploads in ASP.NET 2

6.2.1.33 Multiple File Uploads in ASP.NET 1

6.2.1.34 File Uploads with an AJAX Style Interface

6.2.1.35 Work with Master Pages Declaratively and Programmatically

6.2.1.36 Handle Events in Master and Content Pages

6.2.1.37 Use the ObjectDataSource with a Data Access Class and Business Object

6.2.1.38 Create User Selectable Themes for a Web Site

6.2.1.39 Share Data Between Client JavaScript and Server Code Using a Hidden Field

6.2.1.40 Add JavaScript to ASP.NET Page

6.2.1.41 Add JavaScript Event Handlers to ASP.NET Server Controls

6.2.1.42 Create and Call a Simple Web Service in ASP.NET

6.2.1.43 Deploy a Web Site Copy Web Site Tool

6.2.1.44 Create and Use a Custom Configuration Section in an ASP.NET Configuration File

6.2.1.45 Configure an ASP.NET Web Site for a .NET Framework Version

6.2.1.46 Use the ASP.NET IIS Registration Tool to Configure ASP.NET

6.2.1.47 Extend and Customize an ASP.NET Server Control for a Specific Purpose

6.2.1.48 Use the Ability to Create Groups with the ListView Control for Different Data

6.2.1.49 Make HTML elements accessible from server side code

6.2.1.50 Use Roles to Segment Functionality in an ASP.NET Web Site

6.2.1.51 Work with Nested Master Pages to Create Standard Content Layouts

6.2.1.52 Detect Browser Capabilities in ASP.NET Web Pages

6.2.1.53 Map an ASP.NET Server Control to the Adaptor Used to Render It

6.2.1.54 Pass Information From One Page to Another Using a Query String

6.2.1.55 Use the aspnet_merge.exe Utility to Merge Assemblies

6.2.1.56 Implement a Cross Page PostBack in ASP.NET

6.2.1.57 Add Controls to an ASP.NET Web Page Programmatically

6.2.1.58 Use a Hidden Field to Store and Manipulate Client-Side Information

6.2.1.59 Use the Fixednames Option with the Compiler Utility for Maximum Flexibility

6.2.1.60 Implement Command Buttons for Individual Items

6.2.1.61 Use Skins with CSS for a Flexible and Maintainable ASP.NET Web Site

6.2.1.62 Determine Whether to Use a Web Site or a Web Application Project

6.2.1.63 Write Web Events to a SQL Server Database SqlWebEventProvider

6.2.1.64 Use ASP.NET to Send Email from a Web Site

6.2.1.65 Configure Email Notification for Health Monitoring on an ASP.NET Web Site

6.2.1.66 Use a Visual Studio 2008 Web Deployment Project

6.2.1.67 Send Templated Emails for Health Monitoring Events in ASP.NET

6.2.1.68 Send Email Asynchronously with ASP.NET

6.2.1.69 Embed an Image in an Email with ASP.NET

6.2.1.70 Implement Error Handling when Sending Email with ASP.NET

6.2.1.71 Create a Custom Provider for Logging Health Monitoring Events

6.2.1.72 Create a Reusable Component for Sending Email to a Distribution List

6.2.1.73 Precompile an ASP.NET Website

6.2.1.74 Use the FtpWebRequest Class to Create an FTP Connection to a FTP Server

6.2.1.75 Export Data to a Comma Delimited (CSV) File for an Application Like Excel

6.2.1.76 Use the Reponse.Filter Property to Replace HTML in an ASP.NET Page

6.2.1.77 Use OutputCache to Cache an ASP.NET Page

6.2.1.78 Cache Portions of an ASP.NET Page

6.2.1.79 Control the Caching of an ASP.NET Page Based Upon Custom Information

6.2.1.80 Cache an ASP.NET Page Based Upon Information in the HTTP Header

6.2.1.81 Synchronize Data in Secondary User Control(s) Based Upon User Selections

6.2.1.82 Use the ASP.NET Cache Object to Cache Application Information

6.2.1.83 Persist the State of a User Control During a Postback

6.2.1.84 Add Client Script Event Handlers Controls on an ASP.NET Page

6.2.1.85 Understand and Defend Against Script Injection Attacks in ASP.NET

6.2.1.86 ASP.NET Data Access Technologies, an Intro to LINQ

6.2.1.87 Create and Use Classes in JavaScript

6.2.1.88 Create an Efficient and Standardized Approach for Implementing CSS Styles

6.2.1.89 What is ASP.NET

6.2.1.90 Choosing the Right Programming Model

6.2.1.91 Build Your First ASP.NET Application with ASP.NET Web Forms

6.2.1.92 Build Your First ASP.NET Application with ASP.NET MVC

6.2.1.93 Best Learn ASP.NET Web Forms

6.2.1.94 5 Minute Intro to ASP.NET Web Forms

6.2.1.95 Install ASP.NET and Tools

6.2.2 Tailspin Spyworks

6.2.2.2 Tailspin Spyworks - Implementing and Also Purchased Control

6.2.2.3 Tailspin Spyworks - Intro UI and EDM

6.2.2.4 Tailspin Spyworks - Directory Organization

6.2.2.5 Tailspin Spyworks - Category Menu

6.2.2.6 Tailspin Spyworks - Display the Product List

6.2.2.7 Tailspin Spyworks - Display Per Product Details

6.2.2.8 Tailspin Spyworks - Adding Items to the Shopping Cart

6.2.2.9 Tailspin Spyworks - Display Shopping Cart

6.2.2.10 Tailspin Spyworks - Update the Shopping Cart

6.2.2.11 Tailspin Spyworks - Migrate the Shopping Cart

6.2.2.12 Tailspin Spyworks - Final Check Out

6.2.2.13 Tailspin Spyworks - Adding User Product Reviews

6.2.2.14 Tailspin Spyworks - Displaying User Reviews

6.2.3 Building 3.5 Applications

6.2.3.1 Intro to Visual Web Developer

6.2.3.2 IntelliSense

6.2.3.3 Intro to Web Forms

6.2.3.4 Page Layout

6.2.3.5 Page Lifecycle Events

6.2.3.6 Intro to ASP.NET Controls

6.2.3.7 Submit and Postback

6.2.3.8 Application Level Objects

6.2.3.9 Session Level Objects

6.2.3.10 Debugging

6.2.3.11 CSS

6.2.3.12 MasterPages

6.2.3.13 Intro to SOAP Based Web Services with Visual Web Developer 2008

6.2.3.14 AJAX Style Services with Microsoft Visual Web Developer 2008

6.2.3.15 Validation

6.2.3.16 Login Controls

6.2.4 Authentication

6.2.4.1 Using Basic Forms Authentication in ASP.NET

6.2.4.2 Change the Forms Authentication Properties

6.2.4.4 ASP Forms Login Relocation

6.2.4.5 Forms Login Custom Key Configuration

6.2.4.6 Add Custom Data to the Authentication Method

6.2.4.7 Use Custom Principal Objects

6.2.4.8 Understanding ASP.NET Memberships

6.2.4.9 Configuring SQL To Work with Membership Schemas

6.2.4.10 Changing Membership Settings in the Default Membership Schema

6.2.4.11 Creating User Accounts with the Create User Wizard

6.2.4.12 Creating User Accounts Programmatically

6.2.4.13 Validating Users Manually

6.2.4.14 Validating Users with the Login Control

6.2.4.15 Adding Users to Your Membership System

6.2.4.16 Logging Users Into Your Membership System

6.2.4.17 Implement the Registration Verification Pattern

6.2.4.18 Simple Web Service Authentication

6.2.4.19 Creating Inactive Users

6.2.4.20 SQL Injection Defense

6.2.5 SQL 2005

6.2.5.1 What is a Database

6.2.5.2 Understanding Database Tables and Records

6.2.5.3 More about Column Data Types and Other Properties

6.2.5.4 Designing Relational Database Tables

6.2.5.5 Manipulating Database Data

6.2.5.6 More Structured Query Language

6.2.5.7 Understanding Security and Network Connectivity

6.2.5.8 Connecting your Web Application to SQL Server 2005 Express Edition

6.2.5.9 Using SQL Server Management Studio

6.2.5.10 Getting Started with Reporting Services

6.2.5.11 Building and Customizing Reports in Business Intelligence Development Studio

6.2.5.12 Creating and Using Stored Procedures

6.2.5.13 Enabling Full-Text Search in your Text Data

6.2.6 Visual Studio 2005

6.2.6.1 Intro to Unit Testing with Team System

6.2.6.2 Intro to Testing Web Applications with Team System

6.2.6.3 Intro to Load Testing Web Applications with Team System

6.2.6.4 Intro to Manual Testing with Team System

6.2.6.5 Intro to Managing and Running Tests with Team System

6.2.6.6 Measuring the Business Value of AJAX

6.2.6.7 Code Coverage of Automated Tests

6.2.6.8 Custom Extraction Rules and Coded Web Tests

6.2.6.9 Effects of Caching

6.2.6.10 Load Test Agent

6.2.6.11 Effects of ViewState

6.2.6.12 Integrate Defect Tracking with Testing

6.2.6.13 Create My Own Bug Work Item

6.2.6.14 Write Code More Quickly with Unit Tests

6.2.6.15 Practice Test-Driven Development

6.2.6.16 Load Test a Web Application

6.2.6.17 Tune Web Application Performance with Profiling

6.2.6.18 Set Up Distributed Load Testing for High Volume Tests

6.2.6.19 Enforce Coding Standards with Code Analysis

6.2.6.20 Use Generic Tests

6.2.6.21 Publish and Analyze Test Results

6.2.6.22 Discover Application Changes Prior to Deployment

6.2.6.23 Implement Continuous Integration with Team Foundation

6.2.6.24 Automate Testing using Team Build

6.2.6.25 Deploy a Web Application during a Team Build

6.2.6.26 Run Unit Tests against a Deployed Database

6.2.6.27 Enable Code Coverage and Profiling in Production Applications

6.2.6.28 Web Deployment Projects

6.2.6.29 Web Application Projects & Web Deployment Projects

6.2.7 Migrating

6.2.7.1 [Intro to ASP.NET 2.0:] ASP.NET 2.0 Fundamentals

6.2.7.2 [Intro to ASP.NET 2.0:] User Interface Elements

6.2.7.3 [Migrating from] Classic ASP to ASP.NET

6.2.7.4 Intro to ASP.NET for JSP Developers: Welcome to ASP.NET 2.0

6.2.7.5 Intro to ASP.NET for JSP Developers: Building Applications

6.2.7.6 Intro to ASP.NET for ColdFusion Developers: Adding ASP.NET to Your Repertoire

6.2.7.7 Intro to ASP.NET for ColdFusion Developers: Building an ASP.NET Application

6.2.7.8 Interop between PHP and the Windows Platform

6.2.8 Building 2.0 Applications

6.2.8.1 [Lesson 1:] Getting Started with Visual Web Developer Express

6.2.8.2 [Lesson 2:] Creating a Web Forms User Interface

6.2.8.3 [Lesson 3:] Understanding More About Events and Postback

6.2.8.4 [Lesson 4:] Understanding Web Application State

6.2.8.5 [Lesson 5:] Debugging and Tracing Your Website

6.2.8.6 [Lesson 6:] Working with Stylesheets and Master Pages

6.2.8.7 [Lesson 7:] Databinding to User Interface Controls

6.2.8.8 [Lesson 8:] Working with the GridView and FormView

6.2.8.9 Watch ASP.NET Development in Action

6.2.9 General IIS Tips

6.2.9.1 Developing and Deploying In a Shared Hosting

6.2.9.2 Working with IIS7 Delegated Admin

6.2.9.3 Feature Specific Delegated Management

6.2.9.4 Troubleshooting Production ASP.NET Apps

6.2.9.5 Creating a Site with IIS7 Manager

6.2.9.6 Installing FTP7

6.2.9.7 Bit Rate Throttling

6.2.9.8 IIS7 Playlists

6.2.10 General VS 2010 Tips

6.2.10.1 Code Optimized Profile

6.2.10.2 Code Search View Hierarchy

6.2.10.3 IntelliSense Smart Lists

6.2.10.4 Multi-Monitor Support

6.2.10.5 New Web Project Template

6.2.10.6 New Multi-Targeting

6.2.10.7 Websites Instead of Web Projects

6.2.10.8 Snippets IntelliSense

6.2.11 Ajax Control Toolkit

6.2.11.1 Get Started with the ASP.NET AJAX Control Toolkit

6.2.11.2 ASP.NET AJAX CascadingDropDown Control Extender

6.2.11.3 ASP.NET AJAX TextBoxWatermark Control Extender

6.2.11.4 ASP.NET AJAX Popup Control Extender

6.2.11.5 ASP.NET AJAX ModalPopup Extender Control

6.2.11.6 ASP.NET AJAX AlwaysVisible Control Extender

6.2.11.7 ASP.NET AJAX Accordion Control

6.2.11.8 ASP.NET AJAX Collapsable Panel Extender

6.2.11.9 ASP.NET AJAX Draggable Panel Extender

6.2.11.10 ASP.NET AJAX DynamicPopulate Extender

6.2.11.11 ASP.NET AJAX FilteredTextbox Extender

6.2.11.12 ASP.NET AJAX HoverMenu Extender

6.2.11.13 ASP.NET AJAX ToggleButton Extender

6.2.11.14 ASP.NET AJAX DropShadow Extender

6.2.11.15 ASP.NET AJAX PasswordStrength Extender

6.2.11.16 Get Started with the ASP.NET AJAX Animation Extender Control

6.2.11.17 ASP.NET AJAX ConfirmButton Extender

6.2.11.18 ASP.NET AJAX Slider Control

6.2.11.19 ASP.NET AJAX AutoComplete Control

6.2.11.20 Configure the ASP.NET AJAX Calendar Control

6.2.11.21 ASP.NET AJAX DropDown Control

6.2.11.22 ASP.NET AJAX MaskedEdit Controls

6.2.11.23 ASP.NET AJAX MutuallyExclusive Checkbox Extender

6.2.11.24 ASP.NET AJAX NoBot Control

6.2.11.25 ASP.NET AJAX ListSearch Extender

6.2.11.26 PagingBulletedList Extender Control

6.2.11.27 NumericUpDown Extender Control

6.2.11.28 ASP.NET AJAX ValidatorCallout Extender

6.2.11.29 ASP.NET AJAX ResizableControl Extender

6.2.11.30 ASP.NET AJAX Tabs Control

6.2.11.31 ASP.NET AJAX SlideShow Extender

6.2.11.32 ASP.NET AJAX UpdatePanelAnimation Extender

6.2.11.33 AJAX Toolkit Reorder Control

6.2.11.34 Utilize the AJAX Rating Control in the ASP.NET Toolkit

6.2.11.35 Control Extenders

6.2.11.36 Color Picker

6.2.11.37 Combo Box

6.2.11.38 Editor Control

6.2.11.39 Editor Control Custom

6.2.11.40 Create a New Custom Extender

6.2.12 ASP.NET AJAX

6.2.12.1 Get Started with ASP.NET AJAX

6.2.12.2 Implement Dynamic Partial-Page Updates with ASP.NET AJAX

6.2.12.3 Make Client-Side Network Callbacks with ASP.NET AJAX

6.2.12.4 Add ASP.NET AJAX Features to an Existing Web Application

6.2.12.5 ASP.NET AJAX Enable an Existing Web Service

6.2.12.6 ASP.NET AJAX Client Library Controls

6.2.12.7 Use an ASP.NET AJAX ScriptManagerProxy

6.2.12.8 ASP.NET AJAX RoundedCorners Extender

6.2.12.9 ASP.NET AJAX Timer Control

6.2.12.10 Implement the Predictive Fetch Pattern for AJAX

6.2.12.11 Implement the AJAX Paging Pattern

6.2.12.12 Implement the AJAX Incremental Page Display Pattern

6.2.12.13 Implement the Incremental Page Display Pattern using HTTP GET and POST

6.2.12.14 ASP.NET AJAX UpdateProgress Control

6.2.12.15 ASP.NET AJAX History Control

6.2.12.16 Implement the AJAX After Processing Pattern

6.2.12.17 Update Multiple Regions of a Page with ASP.NET AJAX

6.2.12.18 Choose Between Methods of AJAX Page Updates

6.2.12.19 Use Other JavaScript User Interface Libraries with ASP.NET AJAX

6.2.12.20 Use the ASP.NET AJAX Profile Services

6.2.12.21 Debug ASP.NET AJAX Applications Using Visual Studio 2005

6.2.12.22 Build a Custom ASP.NET AJAX Server Control

6.2.12.23 Use JavaScript to Refresh an ASP.NET AJAX UpdatePanel

6.2.12.24 Determine Whether an Asynchronous Postback has Occurred

6.2.12.25 Use the Conditional UpdateMode of the UpdatePanel

6.2.12.26 Implement the Persistent Communications Pattern with the UpdatePanel

6.2.12.27 Localize an ASP.NET AJAX Application

6.2.12.28 Implement the Persistent Communications Pattern using Web Services

6.2.12.29 Trigger an UpdatePanel Refresh from a DropDownList Control

6.2.12.30 Create an ASP.NET AJAX Extender from Scratch

6.2.12.31 Build Custom Server Controls that Work With or Without ASP.NET AJAX

6.2.12.32 Associate AJAX Client Behavior with an ASP.NET Server Control

6.2.12.33 Retrieve Values From Server Side AJAX Controls

6.2.12.34 Two Simple Techniques for Triggering Updates to Update Panels

6.2.12.35 Use ASP.NET AJAX Cascading Drop Down Control to Access a Database

6.2.12.36 Implement Infinite Data Patterns in AJAX

6.2.12.37 Basic ASP.NET Authentication in an AJAX Enabled Application

6.2.12.38 Dynamically Change CSS ASP.NET AJAX UpdatePanel

6.2.12.39 Dynamically Add Controls to a Web Page

6.2.12.40 Set Up Your Development Environment for ASP.NET 3.5

6.2.12.41 Set Up Your Development Environment for ASP.NET 2.0

6.2.12.42 Customize Error Handling for the ASP.NET AJAX UpdatePanel

6.2.12.43 Use ASP.NET AJAX Client Templates

6.2.13 Data Access

6.2.13.1 ADO.NET Data Services

6.2.13.1.1 Data Access Layers in ASP.NET Applications
6.2.13.1.2 Manually Bind a Dataset to a Datagrid
6.2.13.1.3 Work with Datasets and Filters from an ASP Application

6.2.13.2 How Do I with LINQ

6.2.13.2.1 LINQ to SQL: Overview
6.2.13.2.2 LINQ to SQL: Data Model
6.2.13.2.3 LINQ to SQL: Querying the Database
6.2.13.2.4 LINQ to SQL: Updating the Database
6.2.13.2.5 LINQ to SQL: LinqDataSource
6.2.13.2.6 LINQ to SQL: Custom LinqDataSource
6.2.13.2.7 LINQ to SQL: Using Stored Procedures
6.2.13.2.8 LINQ to SQL: Updating with Stored Procedures
6.2.13.2.9 LINQ to SQL: Executing Arbitrary SQL

6.2.13.3 LINQ Videos from the VB Team

6.2.13.3.1 Get Started with LINQ
6.2.13.3.2 Perform Group and Aggregate Queries
6.2.13.3.3 Upgrade Visual Basic Projects to Enable LINQ
6.2.13.3.4 Get Started with LINQ to XML
6.2.13.3.5 Enable XML IntelliSense and Use XML Namespaces
6.2.13.3.6 Create XML Documents from SQL Data
6.2.13.3.7 Create Excel Spreadsheets using LINQ to XML

6.2.14 ASP.NET Dynamic Data

6.2.14.1 Your First Scaffold and What is Dynamic Data

6.2.14.2 Enable Inline GridView Editing

6.2.14.3 Change how my Fields render

6.2.14.4 Handle Business Logic Exceptions

6.2.14.5 Make Custom Pages

6.2.14.6 Display Unknown datatypes

6.2.14.7 Use a DynamicControl in ListView and DetailsView Controls

6.2.14.8 Getting Started with Dynamic Data

6.2.14.9 Begin Editing the Templates in ASP.NET Dynamic Data Applications

6.2.14.10 Begin Modifying Dynamic Data Applications with URL Routing

6.2.14.11 Enable In-Line Editing in ASP.NET Dynamic Data Applications

6.2.14.12 Enable Table Specific Routing in Dynamic Data Applications

6.2.14.13 Use Attribute Validation in ASP.NET Dynamic Data Applications

6.2.14.14 Implement Custom Field Validation with Imperative Logic in VB or C#

6.2.14.15 Remove Columns From Your DynamicData Data Grids

6.2.14.16 Create Table Specific Custom Forms in an ASP.NET Dynamic Data Application

6.2.14.17 ASP.NET Dynamic Data Custom Form Formatting

6.2.15 ASP.NET 3.5

6.2.15.1 How Do I

6.2.15.1.1 Create a Master Page in Visual Studio 2008
6.2.15.1.2 Create Nested Master Page in Visual Studio 2008
6.2.15.1.3 Cascading Style Sheets in Visual Studio 2008
6.2.15.1.4 Working with Visual Studio 2008 .NET Framework
6.2.15.1.5 Adding Elements to a CSS File and Create New CSS on the Fly
6.2.15.1.6 Advance Cascading Style Sheet Features and Management
6.2.15.1.7 Converting a .NET 2.0 Windows Forms Application to .NET 3.5
6.2.15.1.8 Get Started with the Entity Framework
6.2.15.1.9 Use the New Entity Data Source
6.2.15.1.10 Serialize a Graph with the Entity Framework
6.2.15.1.11 Use MSBuild to Automate the ASP.NET Compiler and Merge Utilities

6.2.15.2 ASP.NET Ajax

6.2.15.2.1 ASP.NET AJAX Support in Visual Studio 2008
6.2.15.2.2 Adding AJAX Functionality to an Existing ASP.NET Page
6.2.15.2.3 Creating and Using an AJAX-enabled Web Service in a Web Site
6.2.15.2.4 ASP.NET AJAX: A demonstration of ASP.NET AJAX
6.2.15.2.5 ADO.NET Data Services with ASP.NET AJAX Support
6.2.15.2.6 Intro to ASP.NET Ajax History
6.2.15.2.7 Using Script Combining to improve AJAX performance

6.2.15.3 Data Controls

6.2.15.3.1 ListView Control
6.2.15.3.2 DataPager Control

6.2.15.4 Visual Studio Designer

6.2.15.4.1 Visual Studio 2008 and Nested Masterpages

6.2.15.5 Visual Studio Editor

6.2.15.5.1 New Designer Support in Visual Studio 2008
6.2.15.5.2 JavaScript Intellisense Support in Visual Studio 2008
6.2.15.5.3 JavaScript Debugging in Visual Studio 2008
6.2.15.5.4 Multi Targeting Support in Visual Studio 2008
6.2.15.5.5 IntelliSense for Jscript and ASP.NET AJAX
6.2.15.5.6 Quick Tour of the Visual Studio 2008 Integrated Development Environment
6.2.15.5.7 Creating and Modifying a CSS File

6.2.16 jQuery

6.2.16.1 Make Ajax Calls Using jQuery

6.2.17 .NET 4

6.2.17.1 Ajax

6.2.17.1.1 Imperative JavaScript Syntax for Microsoft Client Side Controls
6.2.17.1.2 ScriptLoader
6.2.17.1.3 JQuery Syntax for Microsoft Ajax
6.2.17.1.4 AJAX Data Templates

6.2.17.2 Chart

6.2.17.2.1 Chart Control
6.2.17.2.2 Introducing the New Chart Control in Visual Studio 2010

6.2.17.3 Core

6.2.17.3.1 Auto Start
6.2.17.3.2 Clean Web.Config Files
6.2.17.3.3 Predictable Client IDs
6.2.17.3.4 HtmlEncoder Utility Method

6.2.17.4 Data

6.2.17.4.1 Persistent GridView Row Selection

6.2.17.5 Markup Control

6.2.17.5.1 New Rendering Option for Check Box Lists and Radio Button Lists
6.2.17.5.2 Table Free Templated Controls
6.2.17.5.3 Tableless Menu Control
6.2.17.5.4 Hidden Field Divs
6.2.17.5.5 Disabled Control Styling

6.2.17.6 Performance

6.2.17.6.1 Selective View State
6.2.17.6.2 Easy State Compression
6.2.17.6.3 Use the ViewStateMode Property for Managing ViewState

6.2.17.7 Routing

6.2.17.7.1 Permanent Redirect
6.2.17.7.2 Imperative WebForms Routing
6.2.17.7.3 Declarative WebForms Routing
6.2.17.7.4 Outbound WebForms Routing
6.2.17.7.5 Use Routing with ASP.NET Web Forms
6.2.17.7.6 Work with URLs in ASP.NET Routing

6.2.17.8 SEO

6.2.17.8.1 Dynamic Metadata

6.2.18 ASP.NET 4.5

6.2.18.1 Strongly Typed Data Controls

6.2.18.2 Model Binding Part 1 - Selecting Data

6.2.18.3 Model Binding Part 2 - Filtering

6.2.18.4 Model Binding Part 3 - Updating

6.2.18.5 ASP.NET 4.5 Web Forms Model Binding

6.2.18.6 ASP.NET 4.5 Web Forms Strong Typed Data Controls

6.2.18.7 Bundling and Minification

6.2.18.8 Getting Started with the Next Version of ASP.NET

6.2.18.9 ASP.NET and Web Tools 2012.2

6.3 Introduction to ASP.NET Web Forms

6.4 Web Forms Video Training from Pluralsight

7 MVC

7.1 Guidance

7.1.1 Getting Started

7.1.1.1 Getting Started with ASP.NET MVC 5

7.1.1.1.1 Getting Started
7.1.1.1.2 Adding a Controller
7.1.1.1.3 Adding a View
7.1.1.1.4 Adding a Model
7.1.1.1.5 Creating a Connection String and Working with SQL Server LocalDB
7.1.1.1.6 Accessing Your Model’s Data from a Controller
7.1.1.1.7 Examining the Edit Methods and Edit View
7.1.1.1.9 Adding a New Field
7.1.1.1.10 Adding Validation
7.1.1.1.11 Examining the Details and Delete Methods

7.1.1.2 Getting Started with EF 6 using MVC 5

7.1.1.2.1 Creating an Entity Framework Data Model
7.1.1.2.2 Implementing Basic CRUD Functionality
7.1.1.2.3 Sorting, Filtering, and Paging
7.1.1.2.4 Connection Resiliency and Command Interception
7.1.1.2.5 Code First Migrations and Deployment
7.1.1.2.6 Creating a More Complex Data Model
7.1.1.2.9 Async and Stored Procedures
7.1.1.2.10 Handling Concurrency
7.1.1.2.11 Implementing Inheritance
7.1.1.2.12 Advanced Entity Framework Scenarios

7.1.1.3 EF Database First with ASP.NET MVC

7.1.1.3.1 Getting Started with Entity Framework 6 Database First using MVC 5
7.1.1.3.2 Creating the Web Application and Data Models
7.1.1.3.3 Generating Views
7.1.1.3.4 Changing the Database
7.1.1.3.5 Customizing a View
7.1.1.3.6 Enhancing Data Validation
7.1.1.3.7 Publish to Azure

7.1.1.4 Lifecycle of an ASP.NET MVC 5 Application

7.1.2 UI, Layouts, and Themes

7.1.2.1 Using Page Inspector in ASP.NET MVC

7.1.2.2 Dynamic v. Strongly Typed Views

7.1.3 Security, Authentication, and Authorization

7.1.3.1 Create an ASP.NET MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on (C#)

7.1.3.2 Create a secure ASP.NET MVC 5 web app with log in, email confirmation and password reset (C#)

7.1.3.3 ASP.NET MVC 5 app with SMS and email Two-Factor Authentication

7.1.3.4 XSRF/CSRF Prevention in ASP.NET MVC and Web Pages

7.1.3.5 Preventing Open Redirection Attacks (C#)

7.1.4 Deployment

7.1.4.1 Migrating ASP.NET MVC Applications to Windows Containers

7.1.5 Performance

7.1.5.1 Profile and debug your ASP.NET MVC app with Glimpse

7.1.5.2 Using Asynchronous Methods in ASP.NET MVC 4

7.1.5.3 Bundling and Minification

7.1.6 Internationalization and Advanced Topics

7.1.6.1 Custom MVC Template

7.1.7 Releases

7.1.7.1 What’s New in ASP.NET MVC 5.2

7.1.7.2 What’s New in ASP.NET MVC 5.1

7.1.7.3 How to Upgrade an ASP.NET MVC 4 and Web API Project to ASP.NET MVC 5 and Web API 2

7.1.8 Older Versions - MVC 3 and 4

7.1.8.1 Getting Started with ASP.NET MVC 4

7.1.8.1.1 Intro to ASP.NET MVC 4
7.1.8.1.2 Adding a Controller
7.1.8.1.3 Adding a View
7.1.8.1.4 Adding a Model
7.1.8.1.5 Accessing Your Model’s Data from a Controller
7.1.8.1.6 Examining the Edit Methods and Edit View
7.1.8.1.7 Adding a New Field to the Movie Model and Table
7.1.8.1.8 Adding Validation to the Model
7.1.8.1.9 Examining the Details and Delete Methods

7.1.8.2 Getting Started with EF 5 using MVC 4

7.1.8.2.1 Creating an Entity Framework Data Model
7.1.8.2.2 Implementing Basic CRUD Functionality
7.1.8.2.3 Sorting, Filtering, and Paging
7.1.8.2.4 Creating a More Complex Data Model
7.1.8.2.7 Handling Concurrency
7.1.8.2.8 Implementing Inheritance
7.1.8.2.9 Implementing the Repository and Unit of Work Patterns
7.1.8.2.10 Advanced Entity Framework Scenarios
7.1.8.2.11 Building the Chapter Downloads

7.1.8.3 MVC 4 Hands On Labs

7.1.8.3.1 What’s New in ASP.NET MVC 4
7.1.8.3.2 ASP.NET MVC 4 Fundamentals
7.1.8.3.3 ASP.NET MVC 4 Models and Data Access
7.1.8.3.4 ASP.NET MVC 4 Custom Action Filters
7.1.8.3.5 ASP.NET MVC 4 Entity Framework Scaffolding and Migrations
7.1.8.3.6 ASP.NET MVC 4 Dependency Injection
7.1.8.3.7 ASP.NET MVC 4 Helpers, Forms and Validation

7.1.8.4 ASP.NET MVC 4 Mobile Features

7.1.8.5 Using OAuth Providers with MVC 4

7.1.8.6 Getting Started with ASP.NET MVC3

7.1.8.6.1 Getting Started with ASP.NET MVC 3 (C#)
7.1.8.6.1.1 Intro to ASP.NET MVC 3 (C#)
7.1.8.6.1.2 Adding a Controller (C#)
7.1.8.6.1.3 Adding a View (C#)
7.1.8.6.1.4 Adding a Model (C#)
7.1.8.6.1.5 Accessing your Model’s Data from a Controller (C#)
7.1.8.6.1.6 Examining the Edit Methods and Edit View (C#)
7.1.8.6.1.7 Adding a New Field to the Movie Model and Table (C#)
7.1.8.6.1.8 Adding Validation to the Model (C#)
7.1.8.6.1.9 Improving the Details and Delete Methods (C#)
7.1.8.6.2 Getting Started with ASP.NET MVC 3 (VB.NET)
7.1.8.6.2.1 Intro to ASP.NET MVC 3 (VB)
7.1.8.6.2.2 Adding a Controller (VB)
7.1.8.6.2.3 Adding a View (VB)
7.1.8.6.2.4 Adding a Model (VB)
7.1.8.6.2.5 Accessing your Model’s Data from a Controller (VB)
7.1.8.6.2.6 Examining the Edit Methods and Edit View (VB)
7.1.8.6.2.7 Adding a New Field to the Movie Model and Database Table (VB)
7.1.8.6.2.8 Adding Validation to the Model (VB)
7.1.8.6.2.9 Improving the Details and Delete Methods (VB)

7.1.8.7 Creating a MVC 3 Application with Razor and Unobtrusive JavaScript

7.1.8.8 MVC 3 Music Store

7.1.8.8.1 Part 1: Overview and File->New Project
7.1.8.8.2 Part 2: Controllers
7.1.8.8.3 Part 3: Views and ViewModels
7.1.8.8.4 Part 4: Models and Data Access
7.1.8.8.5 Part 5: Edit Forms and Templating
7.1.8.8.6 Part 6: Using Data Annotations for Model Validation
7.1.8.8.7 Part 7: Membership and Authorization
7.1.8.8.8 Part 8: Shopping Cart with Ajax Updates
7.1.8.8.9 Part 9: Registration and Checkout
7.1.8.8.10 Part 10: Final Updates to Navigation and Site Design, Conclusion

7.1.8.9 MVC 3 - The HTML5 and jQuery UI Datepicker Popup Calendar

7.1.8.9.1 HTML5 and jQuery UI Datepicker Popup Calendar with ASP.NET MVC - Part 1
7.1.8.9.2 HTML5 and jQuery UI Datepicker Popup Calendar with ASP.NET MVC - Part 2
7.1.8.9.3 HTML5 and jQuery UI Datepicker Popup Calendar with ASP.NET MVC - Part 4

7.1.8.10 MVC 3 - Working with the DropDownList Box and jQuery

7.1.8.10.1 Using the DropDownList Helper with ASP.NET MVC
7.1.8.10.2 Examining how ASP.NET MVC scaffolds the DropDownList Helper
7.1.8.10.3 Adding a New Category to the DropDownList using jQuery UI

7.1.9 Older Versions - MVC 1 and 2

7.1.9.1 Overview

7.1.9.1.1 ASP.NET MVC Overview
7.1.9.1.2 Understanding the ASP.NET MVC Execution Process
7.1.9.1.3 Understanding Models, Views, and Controllers (C#)
7.1.9.1.4 Understanding Models, Views, and Controllers (VB)

7.1.9.2 Getting Started With MVC

7.1.9.2.1 Intro to ASP.NET MVC
7.1.9.2.2 Adding a Controller
7.1.9.2.3 Adding a View
7.1.9.2.4 Creating a Database
7.1.9.2.5 Accessing your Model’s Data from a Controller
7.1.9.2.6 Adding a Create Method and Create View
7.1.9.2.7 Adding Validation to the Model
7.1.9.2.8 Adding a Column to the Model

7.1.9.3 Models (Data)

7.1.9.3.1 Creating Model Classes with the Entity Framework (C#)
7.1.9.3.2 Creating Model Classes with LINQ to SQL (C#)
7.1.9.3.3 Displaying a Table of Database Data (C#)
7.1.9.3.4 Performing Simple Validation (C#)
7.1.9.3.5 Validating with the IDataErrorInfo Interface (C#)
7.1.9.3.6 Validating with a Service Layer (C#)
7.1.9.3.7 Validation with the Data Annotation Validators (C#)
7.1.9.3.8 Creating Model Classes with the Entity Framework (VB)
7.1.9.3.9 Creating Model Classes with LINQ to SQL (VB)
7.1.9.3.10 Displaying a Table of Database Data (VB)
7.1.9.3.11 Performing Simple Validation (VB)
7.1.9.3.12 Validating with the IDataErrorInfo Interface (VB)
7.1.9.3.13 Validating with a Service Layer (VB)
7.1.9.3.14 Validation with the Data Annotation Validators (VB)

7.1.9.4 ASP.NET MVC Views

7.1.9.4.1 ASP.NET MVC Views Overview (C#)
7.1.9.4.2 Creating Custom HTML Helpers (C#)
7.1.9.4.3 TagBuilder Class to Build HTML Helpers (C#)
7.1.9.4.4 Creating Page Layouts with View Master Pages (C#)
7.1.9.4.5 Passing Data to View Master Pages (C#)
7.1.9.4.6 ASP.NET MVC Views Overview (VB)
7.1.9.4.7 Creating Custom HTML Helpers (VB)
7.1.9.4.8 TagBuilder Class to Build HTML Helpers (VB)
7.1.9.4.9 Creating Page Layouts with View Master Pages (VB)
7.1.9.4.10 Passing Data to View Master Pages (VB)

7.1.9.5 Controllers and Routing

7.1.9.5.1 ASP.NET MVC Routing Overview (C#)
7.1.9.5.2 Understanding Action Filters (C#)
7.1.9.5.3 Improving Performance with Output Caching (C#)
7.1.9.5.4 Adding Dynamic Content to a Cached Page (C#)
7.1.9.5.5 Creating a Controller (C#)
7.1.9.5.6 Creating an Action (C#)
7.1.9.5.7 ASP.NET MVC Routing Overview (VB)
7.1.9.5.8 Understanding Action Filters (VB)
7.1.9.5.9 Improving Performance with Output Caching (VB)
7.1.9.5.10 Adding Dynamic Content to a Cached Page (VB)
7.1.9.5.11 Creating a Controller (VB)
7.1.9.5.12 Creating an Action (VB)
7.1.9.5.13 ASP.NET MVC Controller Overview (C#)
7.1.9.5.14 Creating Custom Routes (C#)
7.1.9.5.15 Creating a Route Constraint (C#)
7.1.9.5.16 Creating a Custom Route Constraint (C#)
7.1.9.5.17 ASP.NET MVC Controller Overview (VB)
7.1.9.5.18 Creating Custom Routes (VB)
7.1.9.5.19 Creating a Route Constraint (VB)
7.1.9.5.20 Creating a Custom Route Constraint (VB)

7.1.9.6 Deployment

7.1.9.6.1 Using ASP.NET MVC with Different Versions of IIS (C#)
7.1.9.6.2 Using ASP.NET MVC with Different Versions of IIS (VB)

7.1.9.7 Security

7.1.9.7.1 Authenticating Users with Forms Authentication (C#)
7.1.9.7.2 Authenticating Users with Windows Authentication (C#)
7.1.9.7.3 Preventing JavaScript Injection Attacks (C#)
7.1.9.7.4 Authenticating Users with Forms Authentication (VB)
7.1.9.7.5 Authenticating Users with Windows Authentication (VB)
7.1.9.7.6 Preventing JavaScript Injection Attacks (VB)

7.1.9.8 Unit Testing

7.1.9.8.1 Creating Unit Tests for ASP.NET MVC Applications (C#)
7.1.9.8.2 Creating Unit Tests for ASP.NET MVC Applications (VB)

7.1.9.9 Contact Manager

7.1.9.9.1 Iteration #1 – Create the Application (C#)
7.1.9.9.2 Iteration #2 – Make the application look nice (C#)
7.1.9.9.3 Iteration #3 – Add form validation (C#)
7.1.9.9.4 Iteration #4 – Make the application loosely coupled (C#)
7.1.9.9.5 Iteration #5 – Create unit tests (C#)
7.1.9.9.6 Iteration #6 – Use test-driven development (C#)
7.1.9.9.7 Iteration #7 – Add Ajax functionality (C#)
7.1.9.9.8 Iteration #1 – Create the Application (VB)
7.1.9.9.9 Iteration #2 – Make the application look nice (VB)
7.1.9.9.10 Iteration #3 – Add form validation (VB)
7.1.9.9.11 Iteration #4 – Make the application loosely coupled (VB)
7.1.9.9.12 Iteration #5 – Create unit tests (VB)
7.1.9.9.13 Iteration #6 – Use test-driven development (VB)
7.1.9.9.14 Iteration #7 – Add Ajax functionality (VB)

7.1.9.10 NerdDinner

7.1.9.10.1 Introducing the NerdDinner Tutorial
7.1.9.10.2 Create a New ASP.NET MVC Project
7.1.9.10.3 Create a Database
7.1.9.10.4 Build a Model with Business Rule Validations
7.1.9.10.5 Use Controllers and Views to Implement a Listing/Details UI
7.1.9.10.6 Provide CRUD (Create, Read, Update, Delete) Data Form Entry Support
7.1.9.10.7 Use ViewData and Implement ViewModel Classes
7.1.9.10.8 Re-use UI Using Master Pages and Partials
7.1.9.10.9 Implement Efficient Data Paging
7.1.9.10.10 Secure Applications Using Authentication and Authorization
7.1.9.10.11 Use AJAX to Deliver Dynamic Updates
7.1.9.10.12 Use AJAX to Implement Mapping Scenarios
7.1.9.10.13 Enable Automated Unit Testing
7.1.9.10.14 NerdDinner Wrap Up

7.1.9.11 Movie Database

7.1.9.11.1 Create a Movie Database Application in 15 Minutes with ASP.NET MVC (C#)
7.1.9.11.2 Create a Movie Database Application in 15 Minutes with ASP.NET MVC (VB)

7.2 Videos

7.2.1 ASP.NET MVC 4

7.2.1.1 Using Page Inspector in ASP.NET MVC

7.2.1.2 ASP.NET MVC 4

7.2.2 ASP.NET MVC 3

7.2.2.1 MVC 3 - Razor View Engine

7.2.2.2 MVC 3 - Razor Helpers

7.2.3 ASP.NET MVC 2

7.2.3.1 How-Do-I

7.2.3.1.1 Creating a Tasklist Application with ASP.NET MVC
7.2.3.1.2 Creating a Movie Database Application in 15 minutes with ASP.NET MVC
7.2.3.1.3 Understanding Models, Views, and Controllers
7.2.3.1.4 ASP.NET MVC Controller Overview
7.2.3.1.5 Understanding Controllers, Controller Actions, and Action Results
7.2.3.1.6 Understanding Views, View Data, and HTML Helpers
7.2.3.1.7 Intro to URL Routing
7.2.3.1.8 Preventing JavaScript Injection Attacks
7.2.3.1.9 Creating Unit Tests for ASP.NET MVC Applications
7.2.3.1.10 Creating Custom HTML Helpers
7.2.3.1.11 Creating Model Classes with LINQ to SQL
7.2.3.1.12 Displaying a Table of Database Data
7.2.3.1.13 What is ASP.NET MVC 80 minute technical video for developers, building NerdDinner
7.2.3.1.14 Why ASP.NET MVC 3 minute overview video for decision makers
7.2.3.1.15 ASP.NET MVC: How 10 minute technical video for developers
7.2.3.1.16 Return JSON Formatted Data for an AJAX Call in an ASP.NET MVC Web Application
7.2.3.1.17 Work with Data in ASP.NET MVC Partial Views
7.2.3.1.18 Implement View Models to Manage Data for ASP.NET MVC Views
7.2.3.1.19 Create a Custom HTML Helper for an MVC Application
7.2.3.1.20 Work with Model Binders in an MVC Application
7.2.3.1.21 Use HttpVerbs Attributes in an MVC Application
7.2.3.1.22 MVC2 - Html Encoding
7.2.3.1.23 MVC2 - StronglyTyped Helpers
7.2.3.1.24 MVC2 - Model Validation
7.2.3.1.25 MVC2 - Template Customization
7.2.3.1.26 ASP.NET MVC 2 - Areas
7.2.3.1.27 ASP.NET MVC 2 - Render Action
7.2.3.1.28 5 Minute Intro to ASP.NET MVC
7.2.3.1.29 Best Learn ASP.NET MVC

7.2.3.2 ASP.NET MVC For the Rest of Us

7.2.3.2.1 ASP.NET MVC For the Rest of Us: Part 1
7.2.3.2.2 ASP.NET MVC For the Rest of Us: Part 2
7.2.3.2.3 ASP.NET MVC For the Rest of Us: Part 3
7.2.3.2.4 ASP.NET MVC For the Rest of Us: Part 4

7.2.3.3 Music Store

7.2.3.3.1 MVC Music Store Part 1: Intro, Tools, and Project Structure
7.2.3.3.2 MVC Music Store Part 2: Controllers
7.2.3.3.3 MVC Music Store Part 3: Views and ViewModels

7.2.4 ASP.NET MVC 1

7.2.4.1 ASP.NET MVC Storefront

7.2.4.1.1 ASP.NET MVC Storefront Part 1: Architectural Discussion and Overview
7.2.4.1.2 ASP.NET MVC Storefront Part 2: Repository Pattern
7.2.4.1.3 ASP.NET MVC Storefront Part 3: Pipes and Filters
7.2.4.1.4 ASP.NET MVC Storefront Part 4: Linq To Sql Spike
7.2.4.1.5 ASP.NET MVC Storefront Part 5: Globalization
7.2.4.1.6 ASP.NET MVC Storefront Part 6: Finishing Repository, and Initial UI Work
7.2.4.1.7 ASP.NET MVC Storefront Part 7: Routing and UI Work
7.2.4.1.8 ASP.NET MVC Storefront Part 8: Testing Controllers, Iteration 1 Complete
7.2.4.1.9 ASP.NET MVC Storefront Part 9: Shopping Cart
7.2.4.1.10 ASP.NET MVC Storefront Part 10: Shopping Cart Refactor and Authorization
7.2.4.1.11 ASP.NET MVC Storefront Part 11: Hooking Up Shopping Cart and Using Components
7.2.4.1.12 ASP.NET MVC Storefront Part 12: Mocking
7.2.4.1.13 ASP.NET MVC Storefront Part 13: Dependency Injection
7.2.4.1.14 ASP.NET MVC Storefront Part 14: Rich Client Interaction
7.2.4.1.15 ASP.NET MVC Storefront Part 15: Public Code review
7.2.4.1.16 ASP.NET MVC Storefront Part 16: Membership Redo With OpenID
7.2.4.1.17 ASP.NET MVC Storefront Part 17: Checkout With Jeff Atwood
7.2.4.1.18 ASP.NET MVC Storefront Part 18: Creating Experience
7.2.4.1.19 ASP.NET MVC MVC Storefront Part 19: Processing Orders With Windows Workflow
7.2.4.1.20 ASP.NET MVC Storefront Part 19a: Windows Workflow Followup
7.2.4.1.21 ASP.NET MVC Storefront Part 20: Logging
7.2.4.1.22 ASP.NET MVC Storefront Part 21: Order Manager and Personalization
7.2.4.1.23 ASP.NET MVC Storefront Part 22: Restructuring, Rerouting, and PayPal
7.2.4.1.24 ASP.NET MVC Storefront Part 23: Getting Started With Domain-Driven Design
7.2.4.1.25 ASP.NET MVC Storefront Part 24: Finis

7.2.4.2 Talks

7.2.4.2.1 Creating NerdDinner.com with Microsoft ASP.NET Model View Controller (MVC)
7.2.4.2.2 America’s Next Top Model View Controller Framework
7.2.4.2.3 Ninja on Fire Black Belt Tips

7.3 ASP.NET MVC 5

7.4 ASP.NET MVC 4

7.5 ASP.NET MVC 3

7.6 MVC Video Training from Pluralsight

8 Web API

8.1 Guidance

8.1.1 Getting Started

8.1.1.1 Getting Started with Web API 2 (C#)

8.1.1.2 Action Results in Web API 2

8.1.1.3 Using Web API with ASP.NET Web Forms

8.1.1.4 Creating Web API Help Pages

8.1.1.5 Hands On Lab: Build a Single Page Application (SPA) with ASP.NET Web API and Angular.js

8.1.2 Routing

8.1.2.1 Routing in Web API

8.1.2.2 Routing and Action Selection in Web API

8.1.2.3 Attribute Routing in Web API 2

8.1.2.4 Create a REST API with Attribute Routing in Web API 2

8.1.3 Working with Data

8.1.3.1 Using Web API 2 with Entity Framework 6

8.1.3.1.1 Create the Project
8.1.3.1.2 Add Models and Controllers
8.1.3.1.3 Seed the Database
8.1.3.1.4 Handling Entity Relations
8.1.3.1.5 Create Data Transfer Objects (DTOs)
8.1.3.1.6 Create the JavaScript Client
8.1.3.1.7 Create the View (UI)
8.1.3.1.8 Display Item Details
8.1.3.1.9 Add a New Item to the Database
8.1.3.1.10 Publish the App to Azure Websites

8.1.4 Mobile Clients

8.1.4.1 Calling Web API from a Windows Phone 8 Application (C#)

8.1.5 OData

8.1.5.1 OData v4

8.1.5.1.1 Create an OData v4 Endpoint
8.1.5.1.2 Create an OData v4 Client App (C#)
8.1.5.1.3 Entity Relations in OData v4
8.1.5.1.4 Actions and Functions in OData v4
8.1.5.1.5 Containment in OData v4
8.1.5.1.6 Create a Singleton in OData v4
8.1.5.1.7 Open Types in OData v4
8.1.5.1.8 Complex Type Inheritance in OData v4

8.1.5.2 OData v3

8.1.5.2.1 Creating an OData v3 Endpoint
8.1.5.2.2 Supporting Entity Relations in OData v3
8.1.5.2.3 OData Actions in Web API 2
8.1.5.2.4 Calling an OData Service From a .NET Client (C#)

8.1.5.3 Supporting OData Query Options in Web API 2

8.1.5.4 Using $select, $expand, and $value in Web API 2 OData

8.1.5.5 Routing Conventions in Web API 2 OData

8.1.5.6 Security Guidance for Web API 2 OData

8.1.6 Serialization and Model Binding

8.1.6.1 Media Formatters in Web API 2

8.1.6.2 JSON and XML Serialization in Web API

8.1.6.3 BSON Support in Web API 2.1

8.1.6.4 Content Negotiation in Web API

8.1.6.5 Model Validation in Web API

8.1.6.6 Parameter Binding in Web API

8.1.7 Error Handling

8.1.7.1 Exception Handling in Web API

8.1.7.2 Global Error Handling in Web API 2

8.1.8 Testing and Debugging

8.1.8.1 Tracing in Web API 2

8.1.8.2 Unit Testing Web API 2

8.1.8.3 Unit Testing Controllers in ASP.NET Web API 2

8.1.8.4 Mocking Entity Framework when Unit Testing Web API 2

8.1.8.5 Troubleshooting HTTP 405 Errors after Publishing Web API 2 Applications

8.1.9 Security, Authentication, and Authorization

8.1.9.1 Authentication and Authorization in Web API

8.1.9.2 Secure a Web API with Individual Accounts in Web API 2.2

8.1.9.3 External Authentication Services with Web API (C#)

8.1.9.4 Preventing Cross-Site Request Forgery (CSRF) Attacks in Web API

8.1.9.5 Enabling Cross-Origin Requests in Web API 2

8.1.9.6 Authentication Filters in Web API 2

8.1.9.7 Basic Authentication in Web API

8.1.9.8 Forms Authentication in Web API

8.1.9.9 Integrated Windows Authentication

8.1.9.10 Working with SSL

8.1.10 Deployment and Hosting

8.1.10.1 Use OWIN to Self-Host Web API 2

8.1.10.2 Host Web API 2 in an Azure Worker Role

8.1.11 Advanced Topics

8.1.11.1 Configuring Web API 2

8.1.11.2 Dependency Injection in Web API 2

8.1.11.3 Calling a Web API From a .NET Client (C#)

8.1.11.4 HTTP Message Handlers in Web API

8.1.11.5 HttpClient Message Handlers in Web API

8.1.11.6 Sending HTML Form Data in Web API: Form-urlencoded Data

8.1.11.7 Sending HTML Form Data in Web API: File Upload and Multipart MIME

8.1.11.8 HTTP Cookies in ASP.NET Web API

8.1.12 Releases

8.1.12.1 What’s New in Web API OData 5.3

8.1.12.2 What’s New in ASP.NET Web API 2.2

8.1.12.3 What’s New in ASP.NET Web API 2.1

8.1.13 Older Versions

8.1.13.1 Enabling CRUD Operations in Web API 1

8.1.13.2 Using ASP.NET Web API 1 with Entity Framework 5

8.1.13.2.1 Overview and Creating the Project
8.1.13.2.2 Creating the Domain Models
8.1.13.2.3 Creating an Admin Controller
8.1.13.2.4 Adding an Admin View
8.1.13.2.5 Creating a Dynamic UI with Knockout.js
8.1.13.2.6 Creating Product and Order Controllers
8.1.13.2.7 Creating the Main Page

8.1.13.3 Self-Host Web API 1 (C#)

8.1.13.4 Build RESTful API’s with ASP.NET Web API

8.2 Videos

8.2.1 Overview and Getting Started

8.2.1.1 ASP.NET Web API

8.2.1.2 ASP.NET Web API, Part 1: Your First Web API

8.2.1.3 ASP.NET Web API, Part 2: Getting Data

8.2.1.4 ASP.NET Web API, Part 3: Delete and Update

8.2.1.5 ASP.NET Web API, Part 4: Paging and Querying

8.2.1.6 ASP.NET Web API, Part 5: Custom Validation

8.2.1.7 ASP.NET Web API, Part 6: Authorization

8.3 Web API Samples List

9 Web Pages

9.1 Guidance

9.1.1 Getting Started

9.1.1.1 Program ASP.NET Web Pages in Visual Studio

9.1.1.2 Intro to ASP.NET Web Programming Razor Syntax

9.1.1.3 ASP.NET Web Pages Visual Basic

9.1.1.4 ASP.NET Web Pages (Razor) FAQ

9.1.1.5 Sending Email from Your Site

9.1.1.6 Adding Social Networking to Your Website

9.1.1.7 Introducing ASP.NET Web Pages

9.1.1.7.1 Getting Started
9.1.1.7.2 Programming Basics
9.1.1.7.3 Displaying Data
9.1.1.7.4 HTML Form Basics
9.1.1.7.5 Entering Database Data by Using Forms
9.1.1.7.6 Updating Database Data
9.1.1.7.7 Deleting Database Data
9.1.1.7.8 Creating a Consistent Layout
9.1.1.7.9 Publishing a Site by Using WebMatrix

9.1.2 Routing

9.1.2.1 Creating Readable URLs in ASP.NET Web Pages Sites

9.1.3 UI, Layouts, and Themes

9.1.3.1 Working with Forms

9.1.3.2 Validating User Input in ASP.NET Web Pages Sites

9.1.3.3 Creating a Consistent Look

9.1.3.4 Customizing Site-Wide Behavior

9.1.3.5 Working with Images

9.1.3.6 Working with Video

9.1.3.7 Creating and Using a Helper in an ASP.NET Web Pages Site

9.1.3.8 Installing a Helper

9.1.3.9 Twitter Helper with ASP.NET Web Pages

9.1.3.10 Displaying Maps in an ASP.NET Web Pages Site

9.1.4 Mobile

9.1.4.1 Rendering ASP.NET Web Pages Sites for Mobile Devices

9.1.5 Working with Data

9.1.5.1 Working with Data

9.1.5.2 Displaying Data in a Chart

9.1.5.3 Working with Files

9.1.6 Testing and Debugging

9.1.6.1 Intro to Debugging

9.1.6.2 ASP.NET Web Pages (Razor) Troubleshooting Guide

9.1.7 Security

9.1.7.1 Adding Security and Membership

9.1.7.2 Enabling Login from External Sites in an ASP.NET Web Pages Site

9.1.7.3 Using a CAPTCHA to Prevent Automated Programs (Bots) from Using Your ASP.NET Web Site

9.1.8 Performance

9.1.8.1 Caching to Improve the Performance of Your Website

9.1.8.2 Analyzing Traffic

9.1.8.3 Bundling and Minifying Assets in an ASP.NET Web Pages (Razor) Site

9.1.9 API Reference

9.1.9.1 ASP.NET API Quick Reference

9.1.10 Releases

9.1.10.1 What’s New in ASP.NET Web Pages 3.2

9.1.10.2 What’s New in ASP.NET Web Pages 3.1

9.1.10.3 Top Features in ASP.NET Web Pages 2

9.1.10.4 ASP.NET Web Pages 2 Developer Preview ReadMe

9.1.10.5 Running Different Versions of ASP.NET Web Pages Side by Side

9.2 Videos

9.2.1 Introduction

9.2.1.1 5 Minute Intro to ASP.NET Web Pages

9.2.1.2 Install and Use the Microsoft WebMatrix Tool

9.2.1.3 Create a Website Using WebMatrix

9.2.1.4 Change the Visual Style of a Web Page

9.2.1.5 Use the Layout Features in WebMatrix

9.2.1.6 Create a Data-Driven Dynamic Web Page

9.2.1.7 Create a Web Interface in WebMatrix

9.2.1.8 Create an Edit Data Page in WebMatrix

9.2.1.9 Create a Delete Data Page in WebMatrix

9.2.1.10 Publish a Website to the Internet Using WebMatrix

9.2.2 ASP.NET Web Pages

9.2.2.1 Getting Started with WebMatrix and ASP.NET Web Pages

9.2.2.2 Intro to ASP.NET Web Programming Razor Syntax

9.2.2.3 Creating a Consistent Look (Part 1)

9.2.2.4 Creating a Consistent Look (Part 2)

9.2.2.5 Working with Forms (Part 1)

9.2.2.6 Working with Forms (Part 2)

9.2.2.7 Working with Data (Part 1)

9.2.2.8 Working with Data (Part 2)

9.2.2.9 Displaying Data in a Grid

9.2.2.10 Displaying Data in a Chart (Part 1)

9.2.2.11 Displaying Data in a Chart (Part 2)

9.2.2.12 Working with Files

9.2.2.13 Working with Images

9.2.2.14 Working with Video

9.2.2.15 Adding Email to Your Web Site

9.2.2.16 Adding Search to Your Web Site

9.2.2.17 Adding Social Networking to Your Website

9.3 WebMatrix and Web Pages Video Training from Pluralsight

9.4 WebMatrix Readme

9.4.1 WebMatrix Readme

9.4.2 Web Matrix and ASP.NET Web Pages (Razor) Beta 3 Release Readme

9.5 WebMatrix Content Guide

10 SignalR

10.1 Guidance

10.1.1 Getting Started

10.1.1.1 Introduction to SignalR

10.1.1.2 Supported Platforms

10.1.1.3 Tutorial: Getting Started with SignalR 2

10.1.1.4 Tutorial: Getting Started with SignalR 2 and MVC 5

10.1.1.5 Tutorial: High-Frequency Realtime with SignalR 2

10.1.1.6 Tutorial: Server Broadcast with SignalR 2

10.1.1.7 Hands On Lab: Real-Time Web Applications with SignalR

10.1.2 Guide to the API

10.1.2.1 Hubs API Guide - Server (C#)

10.1.2.2 Hubs API Guide - JavaScript Client

10.1.2.3 Hubs API Guide - .NET Client (C#)

10.1.2.4 Understanding and Handling Connection Lifetime Events in SignalR

10.1.2.5 Working with Groups in SignalR

10.1.2.6 Mapping SignalR Users to Connections

10.1.3 Testing and Debugging

10.1.3.1 SignalR Troubleshooting

10.1.3.2 Unit Testing SignalR Applications

10.1.3.3 Enabling SignalR Tracing

10.1.4 Security

10.1.4.1 Introduction to SignalR Security

10.1.4.2 Authentication and Authorization for SignalR Hubs

10.1.4.3 Authentication and Authorization for SignalR Persistent Connections

10.1.5 Performance

10.1.5.1 SignalR Performance

10.1.5.2 Introduction to Scaleout in SignalR

10.1.5.3 SignalR Scaleout with Azure Service Bus

10.1.5.4 SignalR Scaleout with Redis

10.1.5.5 SignalR Scaleout with SQL Server

10.1.5.6 SignalR Connection Density Testing with Crank

10.1.5.7 Using SignalR Performance Counters in an Azure Web Role

10.1.6 Deployment and Hosting

10.1.6.1 Tutorial: SignalR Self-Host

10.1.6.2 Using SignalR with Web Apps in Azure App Service

10.1.7 Advanced

10.1.7.1 Dependency Injection in SignalR

10.1.8 Releases

10.1.8.1 Upgrading SignalR 1.x Projects to version 2

10.1.9 Older Versions

10.1.9.1 Tutorial: Getting Started with SignalR 1.x

10.1.9.2 Tutorial: Getting Started with SignalR 1.x and MVC 4

10.1.9.3 High-Frequency Realtime with SignalR 1.x

10.1.9.4 Tutorial: Server Broadcast with ASP.NET SignalR 1.x

10.1.9.5 Hubs API Guide - Server

10.1.9.6 SignalR 1.x Hubs API Guide - JavaScript Client

10.1.9.7 Hubs API Guide - .NET Client

10.1.9.8 Understanding and Handling Connection Lifetime Events in SignalR

10.1.9.9 Working with Groups in SignalR 1.x

10.1.9.10 Mapping SignalR Users to Connections in SignalR 1.x

10.1.9.11 Introduction to SignalR Security (SignalR 1.x)

10.1.9.12 Authentication and Authorization for SignalR Hubs (SignalR 1.x)

10.1.9.13 Authentication and Authorization for SignalR Persistent Connections (SignalR 1.x)

10.1.9.14 SignalR Performance (SignalR 1.x)

10.1.9.15 Introduction to Scaleout in SignalR 1.x

10.1.9.16 SignalR Scaleout with Azure Service Bus (SignalR 1.x)

10.1.9.17 SignalR Scaleout with Redis (SignalR 1.x)

10.1.9.18 SignalR Scaleout with SQL Server (SignalR 1.x)

10.1.9.19 SignalR Troubleshooting (SignalR 1.x)

10.1.9.20 Dependency Injection in SignalR 1.x

10.2 Videos

10.2.1 ASP.NET SignalR Videos

10.2.1.1 SignalR and Web Sockets

11 Mobile

11.1 Mobile

11.2 ASP.NET Mobile Controls Tested Devices

12 Single Page Application

12.1 Overview

12.1.1 Introduction

12.1.1.1 Single Page Application: KnockoutJS template

12.1.1.2 Know a library other than Knockout?

12.1.2 Templates

12.1.2.1 Backbone Template

12.1.2.2 Breeze/Angular template

12.1.2.3 Breeze/Knockout template

12.1.2.4 EmberJS template

12.1.2.5 Hot Towel template

13 WebHooks

13.1 Source Code and NuGet

13.2 Receiving and processing

13.2.1 Receiving

13.2.2 Processing

13.2.3 Receiver dependencies

13.3 Sending

13.4 Diagnostics

13.4.1 Logging

13.4.2 Debugging

14 Visual Studio 2013

14.1 Creating ASP.NET Web Projects in Visual Studio 2013

14.3 Visual Studio 2013 Web Editor Features - CSS

14.4 Visual Studio 2013 Web Editor Features - JavaScript

14.5 Visual Studio 2013 Web Editor Features - Publishing

14.6 Visual Studio 2013 Web Editor Features - Page Inspector

14.7 Visual Studio 2013 Web Editor Features - HTML Editor

14.8 Visual Studio 2013 Web Editor Features - HTML5

14.9 ASP.NET Scaffolding in Visual Studio 2013

14.11 ASP.NET and Web Tools for Visual Studio 2013 Release Notes

14.12 ASP.NET and Web Tools 2013.2 for Visual Studio 2013 Release Notes

14.13 Hands On Lab: Visual Studio 2013 Web Tools

14.14 Hands On Lab: One ASP.NET: Integrating ASP.NET Web Forms, MVC and Web API

15 Visual Studio 2012

15.1 Visual Studio 2012 HTML Editing Features

15.2 Visual Studio 2012 CSS Editor

15.3 Visual Studio 2012 JavaScript Editor

15.4 Visual Studio 2012 Page Inspector

15.5 Visual Studio 2012 Web Publishing Improvements

15.6 Release Notes for ASP.NET and Web Tools 2013.1 for Visual Studio 2012

15.7 HTML Editor Smart Tasks and Event Handler Generation

15.8 CSS Editor Hierarchical Indentation

15.9 CSS Editor Snippets

15.10 CSS Editor Color Picker

15.11 Page Inspector - Introduction

15.12 Page Inspector - Decomposing your Web Application

15.13 Windows Azure Authentication

15.14 ASP.NET and Web Tools 2012.2 Release Notes

16 Entity Framework

17 Identity

17.1 Overview

17.1.1 Getting Started with ASP.NET Identity

17.1.1.1 Introduction to ASP.NET Identity

17.1.1.3 Adding ASP.NET Identity to an Empty or Existing Web Forms Project

17.1.1.4 Developing ASP.NET Apps with Azure Active Directory

17.1.1.5 ASP.NET Identity: Using MySQL Storage with an EntityFramework MySQL Provider (C#)

17.1.2 Features & API

17.1.2.1 Best practices for deploying passwords and other sensitive data to ASP.NET and Azure App Service

17.1.2.2 Account Confirmation and Password Recovery with ASP.NET Identity (C#)

17.1.2.3 Two-factor authentication using SMS and email with ASP.NET Identity

17.1.3 Extensibility

17.1.3.1 Overview of Custom Storage Providers for ASP.NET Identity

17.1.3.2 Implementing a Custom MySQL ASP.NET Identity Storage Provider

17.1.3.3 Change Primary Key for Users in ASP.NET Identity

17.1.4 Migrations

17.1.4.1 Migrating an Existing Website from SQL Membership to ASP.NET Identity

17.1.4.2 Migrating Universal Provider Data for Membership and User Profiles to ASP.NET Identity (C#)

18 Ajax

18.1 Microsoft Ajax Content Delivery Network

18.1.1 Microsoft Ajax Content Delivery Network

18.1.2 jQuery UI

18.1.2.1 jQuery UI 1.10.4 on the Microsoft Ajax CDN

18.1.2.2 jQuery UI 1.10.3 on the Microsoft Ajax CDN

18.1.2.3 jQuery UI 1.10.2 on the Microsoft Ajax CDN

18.1.2.4 jQuery UI 1.10.1 on the Microsoft Ajax CDN

18.1.2.5 jQuery UI 1.10.0 on the Microsoft Ajax CDN

18.1.2.6 jQuery UI 1.9.2 on the Microsoft Ajax CDN

18.1.2.7 jQuery UI 1.9.1 on the Microsoft Ajax CDN

18.1.2.8 jQuery UI 1.9.0 on the Microsoft Ajax CDN

18.1.2.9 jQuery UI 1.8.24 on the Microsoft Ajax CDN

18.1.2.10 jQuery UI 1.8.23 on the Microsoft Ajax CDN

18.1.2.11 jQuery UI 1.8.22 on the Microsoft Ajax CDN

18.1.2.12 jQuery UI 1.8.21 on the Microsoft Ajax CDN

18.1.2.13 jQuery UI 1.8.20 on the Microsoft Ajax CDN

18.1.2.14 jQuery UI 1.8.19 on the Microsoft Ajax CDN

18.1.2.15 jQuery UI 1.8.18 on the Microsoft Ajax CDN

18.1.2.16 jQuery UI 1.8.17 on the Microsoft Ajax CDN

18.1.2.17 jQuery UI 1.8.16 on the Microsoft Ajax CDN

18.1.2.18 jQuery UI 1.8.15 on the Microsoft Ajax CDN

18.1.2.19 jQuery UI 1.8.14 on the Microsoft Ajax CDN

18.1.2.20 jQuery UI 1.8.13 on the Microsoft Ajax CDN

18.1.2.21 jQuery UI 1.8.12 on the Microsoft Ajax CDN

18.1.2.22 jQuery UI 1.8.11 on the Microsoft Ajax CDN

18.1.2.23 jQuery UI 1.8.10 on the Microsoft Ajax CDN

18.1.2.24 jQuery UI 1.8.9 on the Microsoft Ajax CDN

18.1.2.25 jQuery UI 1.8.8 on the Microsoft Ajax CDN

18.1.2.26 jQuery UI 1.8.7 on the Microsoft Ajax CDN

18.1.2.27 jQuery UI 1.8.6 on the Microsoft Ajax CDN

18.1.2.28 jQuery UI 1.8.5

18.1.2.29 jQuery UI 1.11.2 on the Microsoft Ajax CDN

18.1.2.30 jQuery UI 1.11.1 on the Microsoft Ajax CDN

18.1.2.31 jQuery UI 1.11.0 on the Microsoft Ajax CDN

18.1.2.32 jQuery UI 1.11.3 on the Microsoft Ajax CDN

18.1.2.33 jQuery UI 1.11.4 on the Microsoft Ajax CDN

18.1.2.34 jQuery UI 1.12.0 on the Microsoft Ajax CDN

18.1.2.35 jQuery UI 1.12.1 on the Microsoft Ajax CDN

18.1.3 jQuery Validate

18.1.3.1 jQuery Validation 1.13.0

18.1.3.2 jQuery Validation 1.12.0

18.1.3.3 jQuery Validation 1.11.1

18.1.3.4 jQuery Validation 1.11.0

18.1.3.5 jQuery Validation 1.10.0

18.1.3.6 jquery.validate version 1.9

18.1.3.7 jquery.validate version 1.8.1

18.1.3.8 jquery.validate version 1.8

18.1.3.9 jquery.validate version 1.7

18.1.3.10 jQuery Validate 1.6

18.1.3.11 jQuery Validate 1.5.5

18.1.3.12 jQuery Validation 1.13.1

18.1.3.13 jQuery Validation 1.14.0

18.1.3.14 jQuery Validation 1.15.0

18.1.3.15 jQuery Validation 1.15.1

18.1.3.16 jQuery Validation 1.16.0

18.1.4 jQuery Mobile

18.1.4.1 jQuery Mobile 1.4.2 on the Microsoft Ajax CDN

18.1.4.2 jQuery Mobile 1.4.1 on the Microsoft Ajax CDN

18.1.4.3 jQuery Mobile 1.4.0 on the Microsoft Ajax CDN

18.1.4.4 jQuery Mobile 1.3.2 on the Microsoft Ajax CDN

18.1.4.5 jQuery Mobile 1.3.1 on the Microsoft Ajax CDN

18.1.4.6 jQuery Mobile 1.3.0 on the Microsoft Ajax CDN

18.1.4.7 jQuery Mobile 1.2.0 on the Microsoft Ajax CDN

18.1.4.8 jQuery Mobile 1.1.2 on the Microsoft Ajax CDN

18.1.4.9 jQuery Mobile 1.1.1 on the Microsoft Ajax CDN

18.1.4.10 jQuery Mobile 1.1.0 on the Microsoft Ajax CDN

18.1.4.11 jQuery Mobile 1.1.0 RC2 on the Microsoft Ajax CDN

18.1.4.12 jQuery Mobile 1.0.1 on the Microsoft Ajax CDN

18.1.4.13 jQuery Mobile 1.0 on the Microsoft Ajax CDN

18.1.4.14 jQuery Mobile 1.0 RC2 on the Microsoft Ajax CDN

18.1.4.15 jQuery Mobile 1.0 RC1 on the Microsoft Ajax CDN

18.1.4.16 jQuery Mobile 1.0 Beta 3 on the Microsoft Ajax CDN

18.1.4.17 jQuery Mobile 1.4.5 on the Microsoft Ajax CDN

18.1.5 jQuery Templates

18.1.5.1 jQuery Templates Beta 1

18.1.6 jQuery Cycle

18.1.6.1 jQuery Cycle 2.99

18.1.6.2 jQuery Cycle 2.94

18.1.6.3 jQuery Cycle 2.88

18.1.7 jQuery DataTables

18.1.7.1 jQuery DataTables 1.9.4

18.1.7.2 jQuery DataTables 1.9.3

18.1.7.3 jQuery DataTables 1.9.2

18.1.7.4 jQuery DataTables 1.9.1

18.1.7.5 jQuery DataTables 1.9.0

18.1.7.6 jQuery DataTables 1.8.2

18.1.7.7 jQuery DataTables 1.10.4

18.1.7.8 jQuery DataTables 1.10.5

18.1.8 ASP.NET Web Forms and Ajax 4

18.1.9 ASP.NET Ajax 3.5

18.1.10 ASP.NET Web Forms and Ajax 4.5.2

18.1.11 ASP.NET Web Forms and Ajax 4.5.1

19 Web Development Best Practices

19.1 What not to do in ASP.NET, and what to do instead

19.2 Async and Await

19.3 Building Real World Cloud Apps with Azure

19.3.1 Introduction

19.3.2 Automate Everything

19.3.3 Source Control

19.3.4 Continuous Integration and Delivery

19.3.5 Web Development Best Practices

19.3.6 Single Sign-On

19.3.7 Data Storage Options

19.3.8 Data Partitioning Strategies

19.3.9 Unstructured Blob Storage

19.3.10 Design to Survive Failures

19.3.11 Monitoring and Telemetry

19.3.12 Transient Fault Handling

19.3.13 Distributed Caching

19.3.14 Queue-Centric Work Pattern

19.3.15 More Patterns and Guidance

19.3.16 Appendix: The Fix It Sample Application

19.4 Hands on Lab: Maintainable Azure Websites: Managing Change and Scale

20 OWIN and Katana

20.1 An Overview of Project Katana

20.2 Getting Started with OWIN and Katana

20.3 Katana Samples

20.4 OWIN Startup Class Detection

20.5 Enabling Windows Authentication in Katana

20.6 OWIN Middleware in the IIS Integrated Pipeline

20.7 OWIN OAuth 2.0 Authorization Server

20.8 Host OWIN in an Azure Worker Role

21 Whitepapers

21.1 Whitepapers

21.2 ASP.NET 4 and Visual Studio 2010 Web Development Overview

21.2.1 ASP.NET 4 and Visual Studio 2010 Web Development Overview

21.2.2 ASP.NET 4 Breaking Changes

21.3 Upgrading an ASP.NET MVC 1.0 Application to ASP.NET MVC 2

21.4 ASP.NET Denied Access to IIS Directories

21.5 What’s New in ASP.NET MVC 2

21.6 ASP.NET MVC 3

21.7 ASP.NET MVC 4

21.8 Running ASP.NET 1.1 with IIS 6.0

21.9 How To: Add Mobile Pages to Your ASP.NET Web Forms / MVC Application

21.10 Fix for ‘Server Application Unavailable’ Error after Applying Security Update for IE

21.11 ASP.NET Side-by-Side Execution of .NET Framework 1.0 and 1.1

21.12 ASP.NET MVC 4

21.13 Request Validation - Preventing Script Attacks

21.16 ASP.NET and Web Tools 2012.2 Release Notes

21.17 What’s New in ASP.NET 4.5 and Visual Studio 2012

22 API reference

23 ASP.NET tutorials

The following step-by-step guides for developing ASP.NET applications are available.

[!NOTE]
Looking for ASP.NET Core tutorials? Find them here.

23.1 Web Forms

23.2 MVC

23.3 Web API

23.4 Web Pages

23.5 ASP.NET SignalR

23.6 ASP.NET Identity

23.7 OWIN and Katana

24 What’s new in ASP.NET Core 1.1

ASP.NET Core 1.1 includes the following new features:

24.1 Choosing between versions 1.0 and 1.1 of ASP.NET Core

ASP.NET Core 1.1 has more features than 1.0. In general, we recommend you use the latest version.

24.2 Additional Information

25 What’s new in ASP.NET Core 2.0

This article highlights the most significant changes in ASP.NET Core 2.0, with links to relevant documentation.

25.1 Razor Pages

Razor Pages is a new feature of ASP.NET Core MVC that makes coding page-focused scenarios easier and more productive.

For more information, see the introduction and tutorial:

25.2 ASP.NET Core metapackage

A new ASP.NET Core metapackage includes all of the packages made and supported by the ASP.NET Core and Entity Framework Core teams, along with their internal and 3rd-party dependencies. You no longer need to choose individual ASP.NET Core features by package. All features are included in the Microsoft.AspNetCore.All package. The default templates use this package.

For more information, see Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0.

25.3 Runtime Store

Applications that use the Microsoft.AspNetCore.All metapackage automatically take advantage of the new .NET Core Runtime Store. The Store contains all the runtime assets needed to run ASP.NET Core 2.0 applications. When you use the Microsoft.AspNetCore.All metapackage, no assets from the referenced ASP.NET Core NuGet packages are deployed with the application because they already reside on the target system. The assets in the Runtime Store are also precompiled to improve application startup time.

For more information, see Runtime store

25.4 .NET Standard 2.0

The ASP.NET Core 2.0 packages target .NET Standard 2.0. The packages can be referenced by other .NET Standard 2.0 libraries, and they can run on .NET Standard 2.0-compliant implementations of .NET, including .NET Core 2.0 and .NET Framework 4.6.1.

The Microsoft.AspNetCore.All metapackage targets .NET Core 2.0 only, because it is intended to be used with the .NET Core 2.0 Runtime Store.

25.5 Configuration update

An IConfiguration instance is added to the services container by default in ASP.NET Core 2.0. IConfiguration in the services container makes it easier for applications to retrieve configuration values from the container.

For information about the status of planned documentation, see the GitHub issue.

25.6 Logging update

In ASP.NET Core 2.0, logging is incorporated into the dependency injection (DI) system by default. You add providers and configure filtering in the Program.cs file instead of in the Startup.cs file. And the default ILoggerFactory supports filtering in a way that lets you use one flexible approach for both cross-provider filtering and specific-provider filtering.

For more information, see Introduction to Logging.

25.7 Authentication update

A new authentication model makes it easier to configure authentication for an application using DI.

New templates are available for configuring authentication for web apps and web APIs using [Azure AD B2C]
(https://azure.microsoft.com/services/active-directory-b2c/).

For information about the status of planned documentation, see the GitHub issue.

25.8 Identity update

We’ve made it easier to build secure web APIs using Identity in ASP.NET Core 2.0. You can acquire access tokens for accessing your web APIs using the Microsoft Authentication Library (MSAL).

For more information on authentication changes in 2.0, see the following resources:

25.9 SPA templates

Single Page Application (SPA) project templates for Angular, Aurelia, Knockout.js, React.js, and React.js with Redux are available. The Angular template has been updated to Angular 4. The Angular and React templates are available by default; for information about how to get the other templates, see Creating a new SPA project. For information about how to build a SPA in ASP.NET Core, see Using JavaScriptServices for Creating Single Page Applications.

25.10 Kestrel improvements

The Kestrel web server has new features that make it more suitable as an Internet-facing server. We’ve added a number of server constraint configuration options in the KestrelServerOptions class’s new Limits property. You can now add limits for the following:

  • Maximum client connections
  • Maximum request body size
  • Minimum request body data rate

For more information, see Kestrel web server implementation in ASP.NET Core.

25.11 WebListener renamed to HTTP.sys

The packages Microsoft.AspNetCore.Server.WebListener and Microsoft.Net.Http.Server have been merged into a new package Microsoft.AspNetCore.Server.HttpSys. The namespaces have been updated to match.

For more information, see HTTP.sys web server implementation in ASP.NET Core.

25.12 Enhanced HTTP header support

When using MVC to transmit a FileStreamResult or a FileContentResult, you now have the option to set an ETag or a LastModified date on the content you transmit. You can set these values on the returned content with code similar to the following:

var data = Encoding.UTF8.GetBytes("This is a sample text from a binary array");
var entityTag = new EntityTagHeaderValue("\"MyCalculatedEtagValue\"");
return File(data, "text/plain", "downloadName.txt", lastModified: DateTime.UtcNow.AddSeconds(-5), entityTag: entityTag);

The file returned to your visitors will be decorated with the appropriate HTTP headers for the ETag and LastModified values.

If an application visitor requests content with a Range Request header, ASP.NET will recognize that and handle that header. If the requested content can be partially delivered, ASP.NET will appropriately skip and return just the requested set of bytes. You do not need to write any special handlers into your methods to adapt or handle this feature; it is automatically handled for you.

25.13 Hosting startup and Application Insights

Hosting environments can now inject extra package dependencies and execute code during application startup, without the application needing to explicitly take a dependency or call any methods. This feature can be used to enable certain environments to “light-up” features unique to that environment without the application needing to know ahead of time.

In ASP.NET Core 2.0, this feature is used to automatically enable Application Insights diagnostics when debugging in Visual Studio and (after opting in) when running in Azure App Services. As a result, the project templates no longer add Application Insights packages and code by default.

For information about the status of planned documentation, see the GitHub issue.

25.14 Automatic use of anti-forgery tokens

ASP.NET Core has always helped HTML-encode your content by default, but with the new version we’re taking an extra step to help prevent cross-site request forgery (XSRF) attacks. ASP.NET Core will now emit anti-forgery tokens by default and validate them on form POST actions and pages without extra configuration.

For more information, see Preventing Cross-Site Request Forgery (XSRF/CSRF) Attacks in ASP.NET Core.

25.15 Automatic precompilation

Razor view pre-compilation is enabled during publish by default, reducing the publish output size and application startup time.

25.16 Razor support for C# 7.1

The Razor view engine has been updated to work with the new Roslyn compiler. That includes support for C# 7.1 features like Default Expressions, Inferred Tuple Names, and Pattern-Matching with Generics. To use C# 7.1 in your project, add the following property in your project file and then reload the solution:

<LangVersion>latest</LangVersion>

For information about the status of C# 7.1 features, see the Roslyn GitHub repository.

25.17 Other documentation updates for 2.0

25.18 Migration guidance

For guidance on how to migrate ASP.NET Core 1.x applications to ASP.NET Core 2.0, see the following resources:

25.19 Additional Information

For the complete list of changes, see the ASP.NET Core 2.0 Release Notes.

If you’d like to connect with the ASP.NET Core development team’s progress and plans, tune in to the weekly ASP.NET Community Standup.

26 Choose between ASP.NET and ASP.NET Core

No matter the web application you are creating, ASP.NET has a solution for you: from enterprise web applications targeting Windows Server, to small microservices targeting Linux containers, and everything in between.

26.1 ASP.NET Core

ASP.NET Core is an open-source, cross-platform framework for building modern, cloud-based web applications on Windows, macOS, or Linux.

26.2 ASP.NET

ASP.NET is a mature framework that provides all the services needed to build enterprise-class, server-based web applications on Windows.

26.3 Which one is right for me?

ASP.NET Core ASP.NET
Build for Windows, macOS, or Linux Build for Windows
Razor Pages is the recommended approach to create a Web UI with ASP.NET Core 2.0. See also MVC and Web API Use Web Forms, SignalR, MVC, Web API, or Web Pages
Multiple versions per machine One version per machine
Develop with Visual Studio, Visual Studio for Mac, or Visual Studio Code using C# or F# Develop with Visual Studio using C#, VB, or F#
Higher performance than ASP.NET Good performance
Choose .NET Framework or .NET Core runtime Use .NET Framework runtime

26.4 ASP.NET Core scenarios

<!– update link to Razor Pages mvc movie series when done –>

26.5 ASP.NET scenarios

26.6 Resources

27 Getting Started with ASP.NET Core 1.1

[!NOTE]
These instructions are for ASP.NET Core 1.1. Looking for the latest version? See the current version of this tutorial.

  1. Install the .NET Core SDK Installer for SDK 1.0.4 from the .NET Core 1.0.5 & 1.1.2 SDK 1.0.4 downloads page.

  2. Create a folder for a new .NET Core project.

On macOS and Linux, open a terminal window. On Windows, open a command prompt.

terminal mkdir aspnetcoreapp cd aspnetcoreapp

  1. If you have installed a later SDK version on your machine, create a global.json file to select the 1.0.4 SDK.

json { "sdk": { "version": "1.0.4" } }

  1. Create a new .NET Core project.

terminal dotnet new web

  1. Restore the packages.

    dotnet restore
  2. Run the app.

The dotnet run command builds the app first if needed.

terminal dotnet run

  1. Browse to http://localhost:5000

<!– H3 to avoid a single-entry internal TOC –>

27.0.1 Next steps

For getting-started tutorials, see ASP.NET Core Tutorials

For an introduction to ASP.NET Core concepts and architecture, see ASP.NET Core Introduction and ASP.NET Core Fundamentals.

An ASP.NET Core app can use the .NET Core or .NET Framework Base Class Library and runtime. For more information, see Choosing between .NET Core and .NET Framework.

28 Get Started with ASP.NET Core

[!NOTE]
These instructions are for the latest version of ASP.NET Core. Looking to get started with an earlier version? See the 1.1 version of this tutorial.

  1. Install .NET Core.

  2. Create a new .NET Core project.

On macOS and Linux, open a terminal window. On Windows, open a command prompt.

```terminal
dotnet new razor -o aspnetcoreapp
```
  1. Run the app.

    Use the following commands to run the app:

    cd aspnetcoreapp
    dotnet run
  2. Browse to http://localhost:5000

  3. Open Pages/About.cshtml and modify the page to display the message “Hello, world! The time on the server is @DateTime.Now”:

    [!code-htmlMain]

  4. Browse to http://localhost:5000/About and verify the changes.

28.0.1 Next steps

For getting-started tutorials, see ASP.NET Core Tutorials

For an introduction to ASP.NET Core concepts and architecture, see ASP.NET Core Introduction and ASP.NET Core Fundamentals.

An ASP.NET Core app can use the .NET Core or .NET Framework Base Class Library and runtime. For more information, see Choosing between .NET Core and .NET Framework.

29 Introduction to ASP.NET Core

By Daniel Roth, Rick Anderson, and Shaun Luttin

ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications. With ASP.NET Core, you can:

  • Build web apps and services, IoT apps, and mobile backends.
  • Use your favorite development tools on Windows, macOS, and Linux.
  • Deploy to the cloud or on-premises
  • Run on .NET Core or .NET Framework.

29.1 Why use ASP.NET Core?

Millions of developers have used (and continue to use) ASP.NET to create web apps. ASP.NET Core is a redesign of ASP.NET, with architectural changes that result in a leaner and modular framework.

ASP.NET Core provides the following benefits:

  • A unified story for building web UI and web APIs.
  • Integration of modern client-side frameworks and development workflows.
  • A cloud-ready, environment-based configuration system.
  • Built-in dependency injection.
  • A lightweight, high-performance, and modular HTTP request pipeline.
  • Ability to host on IIS or self-host in your own process.
  • Can run on .NET Core, which supports true side-by-side app versioning.
  • Tooling that simplifies modern web development.
  • Ability to build and run on Windows, macOS, and Linux.
  • Open-source and community-focused.

ASP.NET Core ships entirely as NuGet packages. This allows you to optimize your app to include just the NuGet packages you need. The benefits of a smaller app surface area include tighter security, reduced servicing, and improved performance.

29.2 Build web APIs and web UI using ASP.NET Core MVC

ASP.NET Core MVC provides features that help you build web APIs and web apps:

29.3 Client-side development

ASP.NET Core is designed to integrate seamlessly with a variety of client-side frameworks, including AngularJS, KnockoutJS, and Bootstrap. See Client-side development for more details.

29.4 Next steps

For more information, see the following resources:

30 Introduction

31 Getting Started

31.1 Create a Web app

31.2 Create a Web API

32 Tutorials

32.1 Create a Razor Pages web app on Windows

32.1.1 Getting started with Razor Pages

32.1.2 Adding a model

32.1.3 Scaffolded Razor Pages

32.1.4 SQL Server LocalDB

32.1.5 Updating the pages

32.1.6 Adding search

32.1.7 Adding a new field

32.1.8 Adding validation

32.1.9 Uploading files

32.2 Create a Razor Pages web app on a Mac

32.2.1 Getting started with Razor Pages

32.2.2 Adding a model

32.3 Create a Razor Pages web app with VS Code

32.3.1 Getting started with Razor Pages

32.3.2 Adding a model

32.4 Create an MVC web app on Windows

32.4.1 Getting started

32.4.2 Adding a controller

32.4.3 Adding a view

32.4.4 Adding a model

32.4.5 Working with SQL Server LocalDB

32.4.6 Controller methods and views

32.4.7 Adding search

32.4.8 Adding a New Field

32.4.9 Adding Validation

32.4.10 Examining the Details and Delete methods

32.5 Create an MVC web app on a Mac

32.5.1 Getting started

32.5.2 Adding a controller

32.5.3 Adding a view

32.5.4 Adding a model

32.5.5 Working with SQLite

32.5.6 Controller methods and views

32.5.7 Adding search

32.5.8 Adding a New Field

32.5.9 Adding Validation

32.5.10 Examining the Details and Delete methods

32.6 Create an MVC web app with VS Code

32.6.1 Getting started

32.6.2 Adding a controller

32.6.3 Adding a view

32.6.4 Adding a model

32.6.5 Working with SQLite

32.6.6 Controller methods and views

32.6.7 Adding search

32.6.8 Adding a New Field

32.6.9 Adding Validation

32.6.10 Examining the Details and Delete methods

32.7 Data access - MVC with EF Core

32.7.1 Getting started

32.7.2 Create, Read, Update, and Delete operations

32.7.3 Sorting, filtering, paging, and grouping

32.7.4 Migrations

32.7.5 Creating a complex data model

32.7.8 Handling concurrency conflicts

32.7.9 Inheritance

32.7.10 Advanced topics

32.8 Data access - Razor Pages with EF Core

32.8.1 Getting started

32.8.2 Create, Read, Update, and Delete operations

32.8.3 Sorting, filtering, paging, and grouping

32.8.4 Migrations

32.8.5 Creating a complex data model

<!–

–>

32.9 Creating backend services for mobile apps

32.10 Building Web APIs

32.11 Create a Web API

32.11.1 ASP.NET Core Web API Help Pages using Swagger

32.11.2 Creating backend services for native mobile applications

33 Fundamentals

33.1 Application Startup

33.2 Dependency Injection (Services)

33.3 Middleware

33.4 Working with multiple environments

33.5 Configuration

33.6 Logging

33.6.1 Logging with LoggerMessage

33.7 Error handling

33.8 Routing

33.9 File Providers

33.10 Working with static files

33.11 Hosting

33.12 Session and application state

33.13 Servers

33.13.1 Kestrel

33.13.2 ASP.NET Core Module

33.13.3 HTTP.sys

33.14 Globalization and localization

33.14.1 Configure Portable Object localization with Orchard Core

33.15 Request Features

33.16 Open Web Interface for .NET (OWIN)

33.17 WebSockets

33.18 Microsoft.AspNetCore.All metapackage

33.19 Choose between .NET Core and .NET Framework runtime

33.20 Choose between ASP.NET Core and ASP.NET

34 MVC

34.1 Razor Pages

34.1.1 Razor syntax

34.1.2 Route and app convention features

34.2 Model Binding

34.2.1 Model validation

34.3 Views

34.3.1 Razor syntax

34.3.2 View compilation

34.3.3 Layout

34.3.4 Tag helpers

34.3.4.1 Authoring tag helpers

34.3.4.2 Using tag helpers in forms

34.3.4.3 Built-in tag helpers

34.3.4.3.1 Anchor tag helper
34.3.4.3.2 Cache tag helper
34.3.4.3.3 Distributed Cache tag helper
34.3.4.3.4 Environment tag helper
34.3.4.3.5 Image tag helper

34.3.5 Partial views

34.3.6 Dependency injection into views

34.3.7 View components

34.4 Controllers

34.4.1 Routing to controller actions

34.4.2 File uploads

34.4.3 Dependency injection into controllers

34.4.4 Testing controllers

34.5 Advanced

34.5.1 Working with the Application Model

34.5.2 Filters

34.5.3 Areas

34.5.4 Application parts

34.5.5 Custom Model Binding

34.5.6 Custom formatters

34.5.7 Formatting response data

35 Testing and debugging

35.1 Unit testing

35.2 Integration testing

35.3 Testing controllers

35.4 Remote debugging

35.5 Snapshot debugging

36 Working with Data

36.1 Getting started with Razor Pages and Entity Framework Core using Visual Studio

36.2 Getting started with ASP.NET Core and Entity Framework Core using Visual Studio

36.3 ASP.NET Core with EF Core - new database

36.4 ASP.NET Core with EF Core - existing database

36.5 Getting Started with ASP.NET Core and Entity Framework 6

36.6 Azure Storage

36.6.1 Adding Azure Storage by using Visual Studio Connected Services

36.6.2 Get started with Blob storage and Visual Studio Connected Services

36.6.3 Get Started with Queue Storage and Visual Studio Connected Services

36.6.4 Get Started with Table Storage and Visual Studio Connected Services

37 Client-Side Development

37.1 Using Gulp

37.2 Using Grunt

37.3 Manage client-side packages with Bower

37.4 Building beautiful, responsive sites with Bootstrap

37.5 Knockout.js MVVM Framework

37.6 Using AngularJS for Single Page Apps

37.7 Using JavaScriptServices for Single Page Apps

37.8 Styling applications with Less, Sass, and Font Awesome

37.9 Bundling and minification

37.10 Building Projects with Yeoman

38 Mobile

38.1 Creating Backend Services for Native Mobile Applications

39 Hosting and deployment

39.1 Hosting

39.1.1 Host on Windows with IIS

39.1.1.1 ASP.NET Core Module Configuration Reference

39.1.1.2 Development-time IIS support in Visual Studio for ASP.NET Core

39.1.1.3 IIS Modules with ASP.NET Core

39.1.2 Host in a Windows service

39.1.3 Host on Linux with Nginx

39.1.4 Host on Linux with Apache

39.1.5 Host in Docker

39.1.5.1 Building Docker Images

39.1.5.2 Visual Studio Tools for Docker

39.1.5.3 Publish to a Docker Image

39.2 Deployment

39.2.1 Publish to Azure with Visual Studio

39.2.2 Publish to Azure with CLI tools

39.2.3 Continuous deployment to Azure with Visual Studio and Git

39.2.4 Continuous deployment to Azure with VSTS

39.2.5 Publish profiles in Visual Studio

39.2.6 Directory structure

40 Security

40.1 Authentication

40.1.1 Community OSS authentication options

40.1.2 Introduction to Identity

40.1.3 Configure Identity

40.1.4 Configure Windows Authentication

40.1.5 Configure primary key type for Identity

40.1.6 Custom storage providers for ASP.NET Core Identity

40.1.7 Enabling authentication using Facebook, Google and other external providers

40.1.7.1 Facebook authentication

40.1.7.2 Twitter authentication

40.1.7.3 Google authentication

40.1.7.4 Microsoft authentication

40.1.7.5 Other authentication providers

40.1.8 Account Confirmation and Password Recovery

40.1.9 Enabling QR Code generation in ASP.NET identity

40.1.10 Two-factor authentication with SMS

40.1.12 Azure Active Directory

40.1.12.1 Integrating Azure AD Into an ASP.NET Core Web App

40.1.12.2 Calling a ASP.NET Core Web API From a WPF Application Using Azure AD

40.1.12.3 Calling a Web API in an ASP.NET Core Web Application Using Azure AD

40.1.13 Securing ASP.NET Core apps with IdentityServer4

40.1.14 Securing ASP.NET Core apps with Azure App Service Authentication (Easy Auth)

40.2 Authorization

40.2.1 Introduction

40.2.2 Create an app with user data protected by authorization

40.2.3 Razor Pages authorization

40.2.4 Simple Authorization

40.2.5 Role based Authorization

40.2.6 Claims-Based Authorization

40.2.7 Custom Policy-Based Authorization

40.2.8 Dependency Injection in requirement handlers

40.2.9 Resource-based authorization

40.2.10 View-based authorization

40.2.11 Limiting identity by scheme

40.3 Data Protection

40.3.1 Introduction to Data Protection

40.3.2 Getting Started with the Data Protection APIs

40.3.3 Consumer APIs

40.3.3.1 Consumer APIs Overview

40.3.3.2 Purpose Strings

40.3.3.3 Purpose hierarchy and multi-tenancy

40.3.3.4 Password Hashing

40.3.3.5 Limiting the lifetime of protected payloads

40.3.3.6 Unprotecting payloads whose keys have been revoked

40.3.4 Configuration

40.3.4.1 Configuring Data Protection

40.3.4.2 Default settings

40.3.4.3 Machine-wide policy

40.3.4.4 Non-DI aware scenarios

40.3.5 Extensibility APIs

40.3.5.1 Core cryptography extensibility

40.3.5.2 Key management extensibility

40.3.5.3 Miscellaneous APIs

40.3.6 Implementation

40.3.6.1 Authenticated encryption details

40.3.6.2 Subkey Derivation and Authenticated Encryption

40.3.6.3 Context headers

40.3.6.4 Key Management

40.3.6.5 Key Storage Providers

40.3.6.6 Key Encryption At Rest

40.3.6.7 Key Immutability and Changing Settings

40.3.6.8 Key Storage Format

40.3.6.9 Ephemeral data protection providers

40.3.7 Compatibility

40.3.7.1 Sharing cookies between applications

40.3.7.2 Replacing <machineKey> in ASP.NET

40.4 Enforcing SSL

40.5 Safe storage of app secrets during development

40.6 Azure Key Vault configuration provider

40.7 Anti-Request Forgery

40.8 Preventing Open Redirect Attacks

40.9 Preventing Cross-Site Scripting

40.10 Enabling Cross-Origin Requests

41 Performance

41.1 Caching

41.1.1 In-Memory Caching

41.1.2 Working with a Distributed Cache

41.1.3 Response Caching

41.1.4 Response Caching Middleware

41.2 Response Compression Middleware

42 Migration

42.1 ASP.NET to ASP.NET Core 1.x

42.1.1 Configuration

42.1.2 Authentication and Identity

42.1.3 Web API

42.1.4 HTTP Modules to Middleware

42.2 ASP.NET to ASP.NET Core 2.0

42.3 ASP.NET Core 1.x to 2.0

42.3.1 Authentication and Identity

43 API Reference

44 2.0 release notes

44.1 1.1 Release notes

44.2 Earlier release notes

44.3 VS 2015/project.json docs

45 Contribute

46 Contributing to the ASP.NET documentation

This document covers the process for contributing to the articles and code samples that are hosted on the ASP.NET documentation site. Contributions may be as simple as typo corrections or as complex as new articles.

46.1 How to make a simple correction or suggestion

Articles are stored in the repository as Markdown files. Simple changes to the content of a Markdown file can be made in the browser by selecting the Edit link in the upper right corner of the browser window. (In narrow browser windows you’ll need to expand the options bar to see the Edit link.) Follow the directions to create a pull request (PR). We will review the PR and accept it or suggest changes.

46.2 How to make a more complex submission

You’ll need a basic understanding of Git and GitHub.com.

  • Open an issue describing what you want to do, such as change an existing article or create a new one. Wait for approval from the team before you invest much time.
  • Fork the aspnet/Docs repo and create a branch for your changes.
  • Submit a pull request (PR) to master with your changes.
  • If your PR has the label ‘cla-required’ assigned, complete the Contribution License Agreement (CLA)
  • Respond to PR feedback.

For an example where this process led to publication of a new article, see issue 67 and pull request 798 in the .NET repository. The new article is Documenting your code.

46.3 Markdown syntax

Articles are written in DocFx-flavored Markdown, which is a superset of GitHub-flavored Markdown (GFM). For examples of DFM syntax for UI features commonly used in the ASP.NET documentation, see Metadata and Markdown Template in the .NET repo style guide.

46.4 Folder structure conventions

For each Markdown file there may be a folder for images and a folder for sample code. For example, if the article is fundamentals/configuration.md, the images are in fundamentals/configuration/_static and the sample application project files are in fundamentals/configuration/sample. An image in the fundamentals/configuration.md file is rendered by the following Markdown.

![description of image for alt attribute](configuration/_static/imagename.png)

All images should have alt text.

Markdown file names and image file names should be all lower case.

Internal links should use the uid of the target article with an xref link:

[link_text](xref:uid_of_the_topic)

See DocFX Cross Reference for more info.

46.6 Code snippets

Articles frequently contain code snippets to illustrate points. DFM lets you copy code into the Markdown file or refer to a separate code file. We prefer to use separate code files whenever possible, to minimize the chance of errors in the code. The code files should be stored in the repo using the folder structure described above for sample projects.

Here are some examples of DFM code snippet syntax that would be used in a configuration.md file.

To render an entire code file as a snippet:

[!code-csharp[Main](configuration/sample/Program.cs)]

To render a portion of a file as a snippet by using line numbers:

[!code-csharp[Main](configuration/sample/Program.cs?range=1-10,20,30,40-50]
[!code-html[Main](configuration/sample/Views/Home/Index.cshtml?range=1-10,20,30,40-50]

For C# snippets, you can reference a C# region. Whenever possible, use regions rather than line numbers, because line numbers in a code file tend to change and get out of sync with line number references in Markdown. C# regions can be nested, and if you reference the outer region, the inner #region and #endregion directives are not rendered in a snippet.

To render a C# region named “snippet_Example”:

[!code-csharp[Main](configuration/sample/Program.cs?name=snippet_Example)]

To highlight selected lines in a rendered snippet (usually renders as yellow background color):

[!code-csharp[Main](configuration/sample/Program.cs?name=snippet_Example&highlight=1-3,10,20-25)]
[!code-csharp[Main](configuration/sample/Program.cs?range=10-20&highlight=1-3]
[!code-html[Main](configuration/sample/Views/Home/Index.cshtml?range=10-20&highlight=1-3]
[!code-javascript[Main](configuration/sample/Project.json?range=10-20&highlight=1-3]

46.7 Test your changes with DocFX

Test your changes with the DocFX command-line tool, which creates a locally hosted version of the site. DocFX doesn’t render style and site extensions created for docs.microsoft.com.

DocFX requires the .NET Framework on Windows, or Mono for Linux or macOS.

46.7.1 Windows instructions

  • Download and unzip docfx.zip from DocFX releases.
  • Add DocFX to your PATH.
  • In a command-line window, navigate to the appropriate folder that contains the docfx.json file (aspnet for ASP.NET content or aspnetcore for ASP.NET Core content) and run the following command:

docfx --serve

  • In a browser, navigate to http://localhost:8080.

46.7.2 Mono instructions

  • Install Mono via Homebrew - brew install mono.
  • Download the latest version of DocFX.
  • Extract to \bin\docfx.
  • Create an alias for docfx:

```
function docfx {
mono $HOME/bin/docfx/docfx.exe
}

function docfx-serve {
mono $HOME/bin/docfx/docfx.exe serve _site
}
```

  • Run docfx in the Docs\aspnet or Docs\aspnetcore directory to build the site, and docfx-serve to view the site at http://localhost:8080.

46.8 Voice and tone

Our goal is to write documentation that is easily understandable by the widest possible audience. To that end we have established guidelines for writing style that we ask our contributors to follow. For more information, see Voice and tone guidelines in the .NET repo.

46.9 Redirects

If you delete an article, change its file name, or move it to a different folder, create a redirect so that people who bookmarked the article won’t get 404s. Add redirects to the master redirect file.

46.10 Microsoft Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct.
For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

47 ASP.NET Docs

This project provides the source for docs.microsoft.com/aspnet. You can learn more about ASP.NET Core at the Home repo. See the Contributing Guide and the issues list if you would like to help out.

API PR’s ( api/autoapi/… ) should not be made here. Changes to API documentation should be made in the source repository against the triple slash /// comments.

This project has adopted the Microsoft Open Source Code of
Conduct
.
For more information see the Code of Conduct
FAQ
or
contact
with any additional questions or comments.

© https://gittobook.org, 2018. Unauthorized use and/or duplication of this material without express and written permission from this author and/or owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to this site, with appropriate and specific direction to the original content.
Table