Developing Websites with ASP.NET Core Razor Pages — Visual Studio Magazine
Questions and answers
Q&A: Developing Websites with ASP.NET Core Razor Pages
Microsoft says developing Razor Pages in ASP.NET Core can make coding page-centric web development scenarios easier and more productive than using controllers and views built into another option: the Model approach. View Controller (MVC).
Specifically, the company’s documentation states, “Razor Pages is a page-based model. UI and business logic issues are separate, but within the page. Razor Pages is the recommended way to create new page or form-based applications for developers new to ASP.NET Core. Razor Pages provides an easier starting point than ASP.NET Core MVC.”
To help .NET-centric developers get started building web projects with this approach, Microsoft MVP Philip Japikse is hosting a mid-level and full-stack development session at the major Live!360 tech conference to be held in Orlando from November 13 to 18.
Attendees of the November 15 presentation titled Websites with ASP.NET Core Razor Pages will dig deeper into the details of display components, tag helpers, routing, and more in the 9:15-10:30 session.
We caught up with the renowned international speaker to get more details about the session in a short Q&A.
Visual Studio Magazine: Can you briefly explain the basics of ASP.NET Core?
Japan: ASP.NET Core is the next evolution of web development using the Microsoft stack. Based on .NET (Core), ASP.NET Core is a complete re-architecture and rewrite of the hugely popular ASP.NET framework. ASP.NET Core not only focuses on developer productivity, but also on performance. With each release of ASP.NET Core, benchmarks place the framework among the fastest available. With ASP.NET Core, you can develop RESTful services, web apps (using Razor Pages or the Model View Controller (MVC) pattern), and single-page apps (SPAs) using Blazor.
What are your favorite new features in ASP.NET Core Razor Pages?
For me, the reason I love Razor Pages is twofold. The first is Razor’s familiar view engine. If you’ve worked in MVC applications before, many of the features will come very naturally to you: page layout, templates (view and editor), and the benefit of being able to stay in markup with Razor. The second is the speed of web application development.
“Because Razor Page-based apps are page-centric and don’t use the MVC pattern, each page can stand alone. This creates a lower barrier to entry than its MVC counterpart, and I find that works great for small applications.”
Philip Japikse, Microsoft MVP, ASPInsider, MCSD, PSM II, PSD and PST
Because Razor Page-based apps are page-centric and don’t use the MVC pattern, each page can stand alone. The
Post routing methods and parameters are in the view’s code-behind file. It creates a lower barrier to entry than its MVC counterpart, and I find it works very well for small applications.
What new features would you like to see in ASP.NET Core Razor Pages?
The only part of Razor Page-based web applications that prevents us from using them at scale in large applications is the friction needed to achieve code reuse through inheritance. while you box technically creating a base page and inheriting from it into your Razor Pages, there isn’t the level of support and reuse that you get when developing an enterprise application using the MVC pattern.
What issues do developers typically encounter when getting started with ASP.NET Core Razor Pages?
If you’ve used ASP.NET MVC in the past, you’ll be very comfortable with the Razor View Engine. I think the biggest challenge will be getting back into a page-based routing system and getting used to code-behind files again. Code-behind files have a rather nasty legacy, and MVC developers will have to move past the history and embrace the new. Much care has been taken in Razor Pages to avoid code-behind file errors in ASP.NET Web Forms.
If you come from a Web Forms background, the Razor view engine is quite different from the Web Forms view engine. Although vastly improved, it will take some getting used to. While there are familiar patterns (like basic layout pages and a page-based routing engine), moving from Web Forms to ASP.NET Core is probably a bigger leap than moving from ASP.NET MVC to Razor Page based applications.
While Blazor caused a stir by allowing C# web development, what is the role of ASP.NET Core Razor Pages amid all the Blazor hype?
If you were to follow up your question with “which is better”, I would answer that Blazor and Razor Pages are very solid, even as new as Blazor WebAssembly. The best part of the discussion is that now, as a developer based on the Microsoft stack, you have many different choices on how to build your apps.