ASP.NET Razor: Difference between revisions

Content deleted Content added
No edit summary
 
(100 intermediate revisions by 72 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 (programming language)|C#]], [[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 web page]]s with the [[C Sharp (programming language)|C#]] or [[Visual Basic .NET|VB.NET]] programming languages. Razor was in development in June 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 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 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>
==Introduction==
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 <code><%= %></code> 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.
 
== Advantages of RazorDesign==
The Razor syntax is a template markup syntax, based on the C# programming language, that enables the programmer to use an HTML construction workflow.{{clarify|date=June and is based on the C# programming language.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>
* Supports Intellisense[[IntelliSense]] – (statement completion support)
* Supports "layouts" – an alternative to the "master page" concept in classic [[ASP.NET Web Forms|Web Forms]] (.aspx)
* [[Unit testing|Unit Testabletestable]]
 
== See also ==
* Is not a new language (no major changes to learn)
{{Portal|Free and open-source software}}
* Supports Intellisense (statement completion support)
* [[Blazor]]
* [[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 57 ⟶ 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}}
{{Web frameworks}}
 
[[Category:ASP.NET|Razor]]
[[Category:Template2010 enginessoftware]]
[[Category:WebFree applicationand frameworksopen-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 frameworks]]
[[Category:Windows-only free software]]