Простенькие веб страницы ASP.NET для первого знакомства с грандиозной технологией создания веб-проектов от мала до велика. Не усложняя первые шаги рабочими каркасами WebForms, MVC, WebAPI создадим простые страницы с программным кодом на основе обработчиков представлений - ASPX и Razor. Обработчики кода, называемые еще механизмами визуализации или движками, предназначены для динамического создания веб-страницы путем замены программного кода сгенерированной HTML разметкой.
Исходные коды веб-проекта написаны на языке C#. Исходник сформирован как веб-сайт и позволяет прямым копированием разместить файлы проекта на сервере. Затем, непосредственно на сервере, можно с помощью любого текстового редактора производить занимательные опыты по изучению движков динамических страниц ASP.NET. Использование только текстового редактора даёт полезную гимнастику навыков написания кода C#.
Razor новый механизм визуализации программного кода в HTML странице, в котором гармонично сочетается простота и мощность. Razor - это интеллектуальный движок динамического создания HTML разметки. Имеет понятный синтаксис внедрения кода в веб-страницу. Razor использует минимальное количество символов для обозначения зоны программного кода. Для отличия программного кода от HTML кода использует, вообщем-то, один символ @ в сочетании с фигурными скобками и без скобок.
Ниже показан код веб страницы для обработчика внедренного программного кода Razor. Обратите внимание на гармоничное слияние html кода и выражений на языке C#. Движок Razor позволяет использовать html теги непосредственно внутри программного кода: интеллектуальная составляющая обработчика ловко отделяет html разметку от программного кода C#.
<!DOCTYPEhtml><htmllang="ru"><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><metacharset="utf-8"/><title>@namepage</title><linkrel="stylesheet"type="text/css"href="/css/style.css"/></head><body><h1>@namepage</h1><p><ahref="/">На главную</a></p>@Html.Raw(createLinks.GetLinks())<p>
Количество стобцов - @numberColumns<br/>
Количество строк - @numberRows</p><table><tr>@for(inti=0;i<numberColumns;i++){<th>Заголовок № @(i+1)</th>}</tr>@for(introw=0;row<numberRows;row++){<tr>@for(intcol=0;col<numberColumns;col++){<td>@(row+1)х@(col+1)</td>}</tr>}</table></body></html>
Движок ASPX - стандартная модель добавления кода на веб-страницу ASP.NET. ASPX использует блоки объявления типов, процедур и переменных <script runat="server"></script> и встроенный блок отрисовки HTML разметки <% … %>. Модель добавления программного кода ASPX с некоторыми изменениями перешла в ASP.NET из первой платформы ASP.
Движок ASPX требует заключения всех частей и частичек программного кода в блоки вида <% … %>. Типы, процедуры и переменные можно объявлять в блоке <script> runat="server"> … </script>. Атрибут runat="server" отличает данный блок от блока javascript и обозначает обработку кода в этом блоке непосредственно на сервере.
<!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><title><%Response.Write(namepage);// Далее конструкцию Response.Write("") будем заменять// альтернативным коротким кодом =выражение%></title><linkrel="stylesheet"type="text/css"href="/css/style.css"/></head><body><%// короткая конструкция не допускает внутри блока какого-либо другого кода%><h1><%=namepage%></h1><p><ahref="/">На главную</a></p><%=createLinks.GetLinks()%><p>
Количество столбцов - <%=numberColumns%><br/>
Количество строк - <%=numberRows%></p><%// В блоках внедренного кода ASPX недопускается html разметка,// только в качестве строк.%><table><tr><%for(inti=0;i<numberColumns;i++){Response.Write("<th>Заголовок №"+(i+1)+"</th>");}%></tr><%for(introw=0;row<numberRows;row++){%><tr><%for(intcol=0;col<numberColumns;col++){%><td><%=((col+1)+"x"+(row+1))%></td><%}%></tr><%}%></table></body></html>
Для исследования исходников веб-страниц рекомендуется MS Visual Studio .NET, но можно исследовать и в MS Visual Studio Code, WebMatrix. Сайт включает из три страницы: главная и две одинаковые динамические страницы создания таблиц на движках ASPX и Razor. Размерность таблицы можно задавать в строке запроса двумя параметрами. Надо сказать, что в принципе оба обработчика эффективно создают HTML разметку, но предоставляют разные комфорт и производительность работы.
Протестируйте движки в прикрепленных исходниках. Какой движок удобнее? В заключении хочется добавить, что для пользователя сайта, информация о том на каком движке работают веб-страницы не важна. Но программист, поработав с каждым обработчиком внедренного кода, наверняка сделает выбор в пользу Razor.