ASP.NET Razor: Difference between revisions

Content deleted Content added
Twburger (talk | contribs)
m Added a inline link.
No edit summary
 
(105 intermediate revisions by 76 users not shown)
Line 1:
{{Short description|Programming syntax for ASP.NET}}
{{Infobox software
| name = Razor View Engine Information
| logo =
| screenshot =
| caption =
| developerauthor = [[Microsoft]]
| released developer = January[[.NET 2011Foundation]]
| latest_release_datereleased = {{startStart date and age|df=yes|2011|012010|1106}}
| latest_release_version = ASP.NET MVC 3.2.7
| latest_release_date = {{start date and age|df=yes|2011|01|11}}
| latest_release_date = {{Start date and age|2018|11|29}}<ref>{{cite web |title=Microsoft ASP.NET Razor |url=https://www.nuget.org/packages/Microsoft.AspNet.Razor/ |website=[[NuGet]]}}</ref>
| latest preview version = 4.0.0-rc1
| latest preview date = {{Start date and age|2015|11|18}}
| repo = {{URL|https://github.com/aspnet/Razor}}<br />{{URL|https://github.com/aspnet/AspNetWebStack}}<br />{{URL|https://github.com/dotnet/aspnetcore}}
| programming language = [[C_Sharp_C Sharp (programming_languageprogramming language)|C#]], [[Visual_Basic_Visual Basic .NET|VB.NET]], [[Html|HTML]]
| operating system = [[Microsoft Windows]]<ref>{{cite web |title=Introduction to Razor Pages in ASP.NET Core |url=https://learn.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-6.0&tabs=visual-studio |website=learn.microsoft.com | date=27 September 2024 |language=en-us}}</ref>
| genre = [[Web application framework]]
| license = [[Apache License 2.0]]<ref>{{cite web |url=https://github.com/aspnet/Razor/blob/master/LICENSE.txt |title=Razor/LICENSE.txt at master · aspnet/Razor · GitHub |work=GitHub|date=12 October 2022 }}</ref>
| license = [[Proprietary software|Proprietary]]
| website = {{URL|http://www.asp.net/web-pages}}
| programming language = [[C_Sharp_(programming_language)|C#]], [[Visual_Basic_.NET|VB]], [[Html|HTML]]
| operating system = [[Microsoft Windows]]
| website = {{URL|http://www.asp.net}}
}}
{{Infobox file format
| name = Razor Viewfile Engine File Formatformats
| icon =
| logo =
| extension = <code>.CSHTMLrazor</code>, or<code>.cshtml</code>, <code>.VBHTMLvbhtml</code>
| mime = text/html
| magic =
Line 34 ⟶ 39:
| url =
}}
'''Razor''' is an [[ASP.NET]] programming syntax used to create [[dynamic Webweb pagespage]]s with the [[C Sharp (programming language)|C#]] or [[Visual Basic .NET|VB.NET]] programming languages. Razor was in development in June of 2010<ref name="IntroducingRazor">[{{cite web|url=http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx]|title=ScottGu's Blog - Introducing "Razor" – a new view engine for ASP.NET|work=asp.net|date=3 July 2010 }}</ref> and was released for Microsoft [[Visual Studio]] 2010 in January of 2011 .<ref name="RazorsyntaxSupport">[{{cite web|url=http://blogs.msdn.com/b/webdevtools/archive/2011/01/12/how-to-get-razor-syntax-support-in-visual-studio-2010.aspx]|Razortitle=MSDN Blogs|publisher=Microsoft|work=msdn.com|access-date=2011-07-08|archive-url=https://web.archive.org/web/20120702131534/http://blogs.msdn.com/b/webdevtools/archive/2011/01/12/how-to-get-razor-syntax Support-support-in-visual-studio-2010.aspx|archive-date=2012-07-02|url-status=dead}}</ref>. Razor is a simple-syntax view engine and was released as part of [[ASP.NET Model View Controller (MVC)|MVC]] 3 and the [http://www.microsoft.com/web/webmatrix/ [WebMatrix]] tool set.<ref name="RazorsyntaxSupport" />.
 
Razor became a component of AspNetWebStack and then became a part of [[ASP.NET Core]].<ref>{{cite book |last1=Chadwick |first1=Jess |title=Programming Razor: Tools for Templates in ASP.NET MVC or WebMatrix |date=9 September 2011 |publisher="O'Reilly Media, Inc." |isbn=978-1-4493-1716-4 |url=https://books.google.com/books?id=z3QlDSjr0jYC&q=ASP.NET+Razor |language=en}}</ref>
'''Microsoft ASP.NET Razor View Engine'''
 
== Design==
Razor is an [[ASP.NET]] programming syntax used to create dynamic Web pages with the C# or Visual Basic programming languages. Razor was in development in June of 2010<ref name="IntroducingRazor">[http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx]|Introducing Razor</ref> and was released for Microsoft Visual Studio 2010 in January of 2011 <ref name="RazorsyntaxSupport">[http://blogs.msdn.com/b/webdevtools/archive/2011/01/12/how-to-get-razor-syntax-support-in-visual-studio-2010.aspx]|Razor syntax Support</ref>. Razor is a simple-syntax view engine and was released as part of ASP.NET Model View Controller (MVC) 3 and the [http://www.microsoft.com/web/webmatrix/ WebMatrix] tool set<ref name="RazorsyntaxSupport" />.
The Razor syntax is a template markup syntax, based on the C# programming language, that enables the programmer to use an HTML construction workflow and is based on the C# programming language.{{clarify|date=June 2013}} Instead of using the ASP.NET Web Forms (.ASPXaspx) markup syntax usingwith <code><%= %></code> blockssymbols to indicate code blocks the, Razor syntax starts of a code blockblocks with Razor using aan <code>@</code> character and does not require explicit closing of the code-block.
 
The idea ofbehind Razor wasis to createprovide an optimized syntax for HTML generation using a code-focused templating approach, usingwith a minimization ofminimal transition between HTML and code.<ref name=MVC3rve>[{{cite web|url=http://www.asp.net/mvc/videos/mvc-3/mvc-%E2%80%933-razor-view-engine]|title=MVC 3 - Razor View Engine|author=Jon Galloway|work=The Official Microsoft ASP.NET Site|date=19 February 2020 }}</ref>. The design reduces the number of characters and keystrokes required, and enables a more fluid coding workflow by not having torequiring explicitly denotedenoted server blocks within the HTML code.<ref name="IntroducingRazor" />. Other advantages that have been noted:<ref name=pro1>{{cite web|url=https://stackoverflow.com/questions/1451319/asp-net-mvc-view-engine-comparison|title=ASP.NET MVC View Engine Comparison|work=stackoverflow.com}}</ref>
==Introduction==
* Supports Intellisense[[IntelliSense]] – (statement completion support)
The Razor syntax is a template markup syntax that enables the programmer to use an HTML construction workflow and is based on the C# programming language. Instead of using the ASP.NET .ASPX markup syntax using <%= %> blocks to indicate code blocks the Razor syntax starts of a code block with Razor using a @ character and does not require explicit closing of the code-block.
* Supports "layouts" – an alternative to the "master page" concept in classic [[ASP.NET Web Forms|Web Forms]] (.aspx)
* [[Unit testing|Unit testable]]
 
== AdvantagesSee ofalso Razor==
{{Portal|Free and open-source software}}
 
* [[Blazor]]
The idea of Razor was to create an optimized syntax for HTML generation using a code-focused templating approach using a minimization of transition between HTML and code<ref name=MVC3rve>[http://www.asp.net/mvc/videos/mvc-3-%E2%80%93-razor-view-engine]|MVC 3 – Razor View Engine</ref>. The design reduces the number of characters and keystrokes required and enables a more fluid coding workflow by not having to explicitly denote server blocks within the HTML code<ref name="IntroducingRazor" />. Other advantages that have been noted:
 
* Is not a new language (no major changes to learn)
* Supports Intellisense (statement completion support)
* [[Unit_testing|Unit Testable]]
<ref name=pro1>[http://stackoverflow.com/questions/1451319/asp-net-mvc-view-engine-comparison]|ASP.NET MVC View Engine Comparison</ref>
 
==Criticism==
 
Using the Razor syntax could be awkward for programmers used to prior markup syntax and although it does cause complex views to be more readable there is minimum editing advantage for smaller views. The current ASP.NET MVC 3 does not yet support syntax highlight for Razor views<ref name=critic1>[http://geekswithblogs.net/mbridge/archive/2011/06/06/asp.net-mvc-3-hosting--understanding-razor-view-engine-asp.net.aspx]|ASP.NET MVC 3 Hosting :: Understanding Razor View Engine ASP.NET MVC 3 C#</ref>.
 
== References ==
Line 60:
 
== External links ==
{{Wikibooks|.NET Development Foundation}}
* [http://www.asp.net/webmatrix/tutorials/1-getting-started-with-webmatrix-and-asp-net-web-pages Getting Started with WebMatrix and ASP.NET Web Pages]
* [https://docs.microsoft.com/en-us/aspnet/core/razor-pages/ Introduction to Razor Pages in ASP.NET Core] at [[Microsoft Docs]]
* [http://www.asp.net/mvc ASP.NET Model View Controller]
** [https://docs.microsoft.com/en-us/aspnet/web-pages/ ASP.NET Web Pages] at [[Microsoft Docs]]
* [http://www.asp.net/mvc/videos/mvc-3-%E2%80%93-razor-view-engine Razor View Engine]
* [https://docs.microsoft.com/en-us/aspnet/core/mvc/overview Overview of ASP.NET Core MVC] at [[Microsoft Docs]]
* [http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx Introducing “Razor” – a new view engine for ASP.NET]
** [httphttps://wwwdocs.codeprojectmicrosoft.com/KBen-us/aspnet/RazorMaps.aspxmvc/ ASP.NET, MVC] 3,at the Razor View Engine and Google[[Microsoft MapsDocs]]
* {{GitHub|aspnet/Razor}} (archived). Current development is held at {{GitHub|dotnet/aspnetcore}}
 
{{.NET Framework}}
<!--- Categories --->
{{Microsoft FOSS}}
[[Category:ASP.NET]]
{{Web frameworks}}
[[Category:Template engines]]
 
[[Category:Web application frameworks]]
[[Category:ASP.NET|Razor]]
[[Category:2010 software]]
[[Category:Free and open-source software]]
[[Category:Free software programmed in C Sharp]]
[[Category:Microsoft application programming interfaces]]
[[Category:Microsoft free software]]
[[Category:Microsoft Visual Studio]]
[[Category:Software using the Apache license]]
[[Category:Template engines]]
[[Category:Web application frameworks]]
[[Category:Windows-only free software]]