Александр Ланский

Сайт на ASP.NET для начинающих — первые шаги

ASP.NET позволяет создавать сложные и многофункциональные веб-приложения. Эта статья является вводным курсом по созданию сайта на ASP.NET.

40749

ASP.NET — платформа от Microsoft для создания и развёртывания сайтов, веб-приложений и сервисов. По данным SimilarTech, около 2 000 000 сайтов используют эту платформу. В этой статье описаны первые шаги создания сайта на ASP.NET.

Для разработки будем использовать Visual Studio.

Создание ASP.NET проекта

Откройте Visual Studio Installer и нажмите «Изменить» на нужной среде разработки. Перед вами откроется список всех нагрузок. В категории Веб-разработка и облако нужно включить ASP.NET и разработка веб-приложений. После этого нажмите на кнопку Изменить в нижнем правом углу и дождитесь установки нагрузки.

Перейдите в Visual Studio и создайте новый проект, выбрав тип Веб-приложение ASP.NET (.NET Framework). Потом нужно выбрать необходимую модель приложения:

  • Веб-формы — можно легко создавать динамические веб-сайты, используя сотни элементов управления и компонентов.
  • MVC — эффективный, основанный на шаблонах способ создания динамических сайтов. Предоставляет полный контроль над разметкой для гибкой разработки.
  • Веб-API — позволяет легко создавать HTTP службы для широкого диапазона клиентов. Идеальная платформа для сборки REST-приложений.
  • Приложение SPA — одностраничное веб-приложение, которое загружает HTML-страницу и динамически обновляет её при взаимодействии с пользователем.

Выберете модель Веб-формы и завершите создание проекта.

Внутренняя структура проекта

В проекте сайта уже загружены некоторые библиотеки, необходимые для комфортного старта: CSS-фреймворк Bootstrap, JS-фреймворк jQuery, MSAjax и некоторые другие.

После создания тут уже присутствуют 3 страницы: Default, About и Contact. Каждая страница состоит из 3 файлов:

  • Page.aspx — содержит в себе HTML-разметку конкретной страницы;
  • Page.aspx.cs — отвечает за логику работы конкретной страницы;
  • Page.aspx.designer.cs — является мостом между Page.aspx и Page.aspx.cs.

Вот так выглядит About.aspx:

			<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" 
CodeBehind="About.aspx.cs" Inherits="TutWebApplication.About" %>


    

<%: Title %>.

Your application description page.

Use this area to provide additional information.

Как видно, этот файл содержит лишь контент конкретной страницы. Вся общая разметка находится в Site.Master и Site.Mobile.Master.

Чтобы проверить и запустить проект, нажмите IIS Express или же традиционную клавишу F5. После этого все файлы скомпилируются и сайт откроется по адресу http://localhost:4400 в браузере по умолчанию. Номер порта может отличаться.

Создание веб-формы

Чтобы создать новую страницу, в контекстном меню проекта выберите Добавить→Веб-форма. После этого автоматически сгенерируются и заполнятся все 3 файла.

Примечание Веб-формы можно создавать с помощью встроенного графического конструктора веб-форм. Что бы открыть его, в контекстном меню нужной веб-формы нажмите на Открыть в конструкторе. Все необходимые элементы можно достать из Панели Элементов (Вид→Панель элементов). Но если вам нужна максимальная гибкость и функциональность — лучше разрабатывать формы вручную в коде.

Потом можно добавить ссылку на новую страницу в панель навигации в Site.Master:

Примечание Обратите внимание, что в ссылке указывается название страницы без расширения.

Если вы откроете новую страницу, то заметите, что вся общая вёрстка отсутствует. Это потому, что в новой странице не подвязывается разметка из Site.Master. Чтобы исправить это, нужно в новой форме вместо сгенерированной вёрстки вставить это:

			<%@ Page Title="News" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" 
CodeBehind="News.aspx.cs" Inherits="WebApplication.News" %>

    

		

Во всех упоминаниях нужно заменить News на название вашей страницы. Теперь форма будет отображаться вместе с общей вёрсткой.

***

Для интеграции значений в вёрстку из aspx.cs используют специальный тег <%: %>:

			

<%:SomeVar%>

В этом случае SomeVar должен быть публичным полем. Если нужно выполнить какой-либо код для присвоения значения этой переменной, то выполнить его нужно в сгенерированном методе Page_Load.

***

Получение значений параметров из URL производится через статический класс Request, в котором хранятся и прочие данные о запросе:

			int id = int.Parse(Request.QueryString["id"]);
		

Изучить все возможности веб-форм можно в официальной документации.

Движок представлений Razor

Razor позволяет делать вставки C# кода прямо в HTML разметке. Для этого нужно создать отдельный файл .cshtml (Контекстное меню проекта→Добавить→Страница представления MVC 5 (Razor)). Разметка в этом файле ничем не отличается от обычной HTML-вёрстки.

По умолчанию языком Razor является HTML. Для перехода с вёрстки на C# используют символ @, а сам блок кода помещается в фигурные скобки.

			

Тут идёт ваша вёрстка

@{ // Тут идёт код на C# SomeMethod(); }

Тут снова идёт вёрстка

В Razor также можно выполнять неявные выражения прямо в HTML разметке:

			

@DateTime.Now

Тут есть привычные для ЯП конструкции, которые могут значительно облегчить вёрстку. Вот некоторые из них:

			@for (var i = 0; i < people.Length; i++)
{
    var person = people[i];
    

Имя: @person.Name

}
			@if (value % 2 == 0)
{
    

Это значение чётное.

} else if (value >= 1337) {

Это значение нечётное и больше либо равно 1337.

} else {

Это значение нечётное и меньше, чем 1337.

}
			@try
{
    throw new InvalidOperationException("Вы сделали что-то не то.");
}
catch (Exception ex)
{
    

Сообщение исключения: @ex.Message

} finally {

Итоговый блок.

}

Также всегда будет полезным просмотр open source проектов. Там вы найдёте не только лучшие практики по ASP.NET, но и просто решение популярных задач.

Следите за новыми постами по любимым темам

Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.

Для начинающих
Веб-разработка
C#
Asp.NET
40749
Что думаете?
2 комментария
Сначала интересные
Аватар пользователя Олег Питковский
Сообщения про 1337 неправильные
Аватар пользователя Александр Ланский
Олег Питковский, Спасибо, исправили!