ASP.NET Razor: Difference between revisions

Content deleted Content added
Twburger (talk | contribs)
mNo edit summary
No edit summary
 
(110 intermediate revisions by 77 users not shown)
Line 1:
{{Short description|Programming syntax for ASP.NET}}
{{Userspace draft|source=ArticleWizard|date=July 2011}}
{{Infobox software
| name = Razor
| logo =
| screenshot =
| caption =
| author = [[Microsoft]]
| developer = [[.NET Foundation]]
| released = {{Start date and age|2010|06}}
| latest_release_version = 3.2.7
| 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]]
| 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>
| website = {{URL|http://www.asp.net/web-pages}}
}}
{{Infobox file format
| name = Razor file formats
| icon =
| logo =
| extension = <code>.razor</code>, <code>.cshtml</code>, <code>.vbhtml</code>
| mime = text/html
| magic =
| owner = [[Microsoft]]
| released = <!-- {{Start date|YYYY|mm|dd|df=yes/no}} -->
| latest release version =
| latest release date = <!-- {{Start date and age|YYYY|mm|dd|df=yes/no}} -->
| genre =
| container for =
| contained by =
| extended from =
| extended to =
| standard =
| free =
| 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 [[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==
''Overview''
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 behind Razor is to provide an optimized syntax for HTML generation using a code-focused templating approach, with minimal transition between HTML and code.<ref name=MVC3rve>{{cite web|url=http://www.asp.net/mvc/videos/mvc-3/mvc-3-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, and enables a more fluid coding workflow by not requiring explicitly denoted 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>
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 WebMatrix tool set<ref name="RazorsyntaxSupport" />.
* 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 testable]]
 
==Introduction See also ==
{{Portal|Free and open-source software}}
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 the code-block.
* [[Blazor]]
 
== Advantages of Razor==
 
The idea of Razor was to create an optimized syntax for HTML generation using a code-focused templating approach that minimizes the number of characters and keystrokes required and enables a fast, 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 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 28 ⟶ 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]]
* [https://docs.microsoft.com/en-us/aspnet/core/mvc/overview Overview of ASP.NET Core MVC] at [[Microsoft Docs]]
** [https://docs.microsoft.com/en-us/aspnet/mvc/ ASP.NET MVC] at [[Microsoft Docs]]
* {{GitHub|aspnet/Razor}} (archived). Current development is held at {{GitHub|dotnet/aspnetcore}}
 
{{.NET Framework}}
{{Microsoft FOSS}}
{{Web frameworks}}
 
[[Category:ASP.NET|Razor]]
<!--- Categories --->
[[Category:Computer2010 Programmingsoftware]]
[[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 frameworks]]
[[Category:Windows-only free software]]