Содержание
ASP.NET (Active Server Pages .NET) — это бесплатная веб-платформа, созданная специалистами Microsoft для проектирования интерактивных веб-приложений, которые работают на платформе .NET.
Этот фреймворк предоставляет множество инструментов для разработки веб-приложений, включая:
Свое начало платформа ASP.NET берет на заре интернета — в 1990-х годах. Первые веб-страницы сугубо информативными и поэтому статическими. Но довольно быстро возникла необходимость добавлять в них интерактивные элементы. Например, формы для отправки данных на сервер, чаты или корзины для покупок.
Тогда Microsoft начали разрабатывать инструменты для проектирования динамических веб-страниц. Как результат, в 1996 году компания выпустила первую версию Active Server Pages (ASP). Это была серверная платформа для создания динамических веб-страниц на языке скриптов VBScript или JScript.
Сначала первая версия ASP была довольно популярной, но спустя несколько лед устарела и перестала удовлетворять современным (на то время) требованиям веб-разработки. Поэтому в 2000 году Microsoft начали работу над новой версией технологии. Работа над очередным релизом ASP началась с переименования проекта в ASP+.
ASP+ вышел более быстрым и масштабируемым, а также в нем исправили проблемы, связанные с безопасностью, управлением состояния и развертыванием.
Но главным нововведением в ASP+ стала поддержка языка C#, представленного компанией Microsoft в 2000 году. Более того, C# стал основным инструментом создания веб-приложений на платформе .NET.
Начать учить C# можно у наших партнеров — IT-школы Hillel. Базовый курс C# включает 16 занятий и стартует уже в апреле 2023 года.
В 2002 году ASP.NET выпустили вместе с платформой .NET Framework 1.0. Он предоставлял разработчикам мощный инструментарий, включая такие новые инструменты, как:
ASP.NET стал популярным и востребованным среди веб-разработчиков, потому что был гибким. Он позволял создавать сложные веб-приложения, которые могли обрабатывать большие объемы данных и работать с разными внешними источниками, включая базы данных.
Развивая проект ASP.NET, в 2016 году Microsoft выпустила новую версию платформы под названием ASP.NET Core. Разработчики обеспечили более высокую производительность, меньший размер приложения, а также совместимость с разными операционными системами, включая Linux и macOS.
Одно из ключевых изменений в ASP.NET Core — переработка архитектуры и базовых концепций. Вместо использования Application Domain, ASP.NET Core использует пространства имен и сборки для организации и управления кодом приложения.
Кроме того, ASP.NET Core предоставляет интегрированную поддержку для создания микросервисных приложений и API. Это открывает разработчикам возможность проектирования масштабируемых приложений.
В основе работы ASP.NET лежит принцип клиент-серверной архитектуры и протокол HTTP:
Дальше платформа поддерживает состояние между запросами и ответами, такие как использование куков (cookies) или сессий (sessions). Состояние может использоваться, например, для сохранения информации о пользователе, чтобы избежать повторной аутентификации при каждом запросе.
Если возникают ошибки в ходе обработки запроса, ASP.NET может создавать специальную страницу ошибок. Эта страница разработчикам разобраться с ситуацией: понять, что произошло и как исправить ошибку.
Для координации работы с базами данных в ASP.NET используется технология ADO.NET (ActiveX Data Objects .NET), которая является частью .NET Framework.
ASP.NET поддерживает работу с такими базами данных (список не полный, перечислены основные БД):
Важно! Разработчик может использовать одинаковый код для работы с данными, вне зависимости от того, какая база данных задействована в проекте.
Это огромное преимущество ADO.NET, потому что так программист может сконцентрироваться на бизнес-логике приложения, а не на особенностях работы с конкретной базой данных.
Научиться работать не только с основами C#, но и системой ASP.NET, включая интеграцию технологии с базами данных, можно на курсе C# Advanced от Hillel.
Модели разработки в ASP.NET определяют, как приложение будет организовано.
Существует много разных моделей разработки, которые могут использоваться в ASP.NET в зависимости от задачи, которую нужно решить.
Ниже рассмотрим основные:
Одна из наиболее распространенных моделей разработки в ASP.NET.
Model-View-Controller (MVC) — это популярный шаблон проектирования, который разделяет приложение на три основных компонента: (1) модель, (2) представление и (3) контроллер:
MVC предназначена для разработки сложных веб-приложений с высокой степенью логики и обработки данных. Также модель часто выбирают для создания мобильных и одностраничных проектов.
Также очень распространенная модель разработки в ASP.NET, но она используется в основном в старых проектах.
В Web Forms приложение разрабатывается в виде набора веб-страниц, каждая из которых содержит разметку HTML и код на языке C# или VB.NET.
Веб-страницы могут быть связаны между собой с помощью элементов управления, таких как кнопки или ссылки.
В целом существует тенденция отказа от Web Forms в пользу ASP.NET MVC, которая является более продвинутой и предоставляет лучшие возможности для тестирования и управления HTML-разметкой.
Web API позволяет создавать RESTful веб-сервисы, которые будут обрабатывать HTTP-запросы и возвращать HTTP-ответы. С помощью Web API можно выполнять форматирование ответов (в JSON, XML и других форматах), конфигурировать маршрутизацию запросов, назначать фильтры действий и многое другое.
С помощью инструмента Web API можно создавать всевозможные веб-сервисы, например, сервисы авторизации или сервисы по обработке платежей, сервисы управления содержимым и многое другое. Он также может быть использован для создания мобильных приложений и других клиентских приложений, которые получают данные из веб-сервисов.
На курсе C# Advanced изучают много дополнительных технологий для того, чтобы работать с ASP.NET эффективно. В том числе курс включает модуль по Rest и API.
Появилась в последних версиях ASP.NET. Razor Pages обеспечивает простой и интуитивно понятный подход к созданию веб-страниц.
Она задействует упрощенный шаблон «модель-страница», где каждая страница имеет свою модель, которая содержит данные и логику страницы. Эта модель может быть связана с элементами на странице, такими как формы или кнопки:
Разница между MVC и Razor Page
Модель разработки Blazor используется как при создании SPA
В Blazor используется концепция компонентов, которые можно сравнить с пользовательскими элементами управления в других технологиях, таких как WPF и WinForms. Каждый компонент содержит свой логический код и пользовательский интерфейс.
Blazor поддерживает две реализации: (1) Blazor Server и (2) Blazor WebAssembly:
Код для создания простейшего веб-приложения в ASP.NET с использованием фреймворка MVC может выглядеть, например, так:
using System.Web.Mvc;
namespace MyWebApp.Controllers
{
public class HomeController : Controller
{
// Отображение домашней страницы
public ActionResult Index()
{
return View();
}
// Обработка информации, введенной в форму
[HttpPost]
public ActionResult FormSubmit(string name, string email)
{
// Действия с данными
return View("FormSubmitted");
}
}
} Мы добавили HomeController, который содержит два действия:
Index для отображения домашней страницы;FormSubmit для обработки данных из формы.Для отображения представлений (Views)Index может выглядеть так:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Демонстрация</title> </head> <body> <h1>Вас приветствует Highload Today!</h1> <form action="/Home/FormSubmit" method="post"> <label for="name">Имя:</label> <input type="text" name="name" id="name" required /> <label for="email">E-mail:</label> <input type="email" name="email" id="email" required /> <button type="submit">Отправить</button> </form> </body> </html>
Результатом будет простая HTML-страница с формой для ввода имени и адреса электронной почты:
FormSubmit контроллера HomeController.
Представление для действия FormSubmit выглядит как простое сообщение, которое отображается после успешной отправки формы:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Форма отправлена</title> </head> <body> <h1>Спасибо за отправку формы!</h1> </body> </html>
Результат:
Больше реальных примеров использования модели MVC на ASP.NET вы сможете увидеть и попробовать написать самостоятельно на курсе C# Advanced от Hillel.
Cинтаксис Razor впервые появился в ASP.NET MVC 3 и с тех пор стал основным синтаксисом для создания представлений в ASP.NET. Представления с использованием Razor должны выглядеть как HTML-страницы, но с возможностью добавлять динамические элементы (циклы, условные выражения и т.д).
Razor позволяет разработчикам легко создавать HTML-страницы, используя C# или VB.NET, и добавлять логику на стороне сервера в представлениях.
Пример создания HTML-страницы с использованием Razor:
<!DOCTYPE html>
<html>
<head>
<title>Пример Razor-страницы</title>
</head>
<body>
@if (DateTime.Now.Hour < 12) {
<p>Доброе утро!</p>
} else {
<p>Добрый день!</p>
}
</body>
</html> В этом примере кода условное выражение @if используется для вывода сообщения «Доброе утро!» или «Добрый день!», в зависимости от текущего времени. Код C# расположен внутри блока @if и автоматически интерпретируется и преобразуется в соответствующий HTML-код.
Рассмотрим пример, где создается класс MyModel, который содержит метод GetData для выполнения запроса к базе данных и получения данных из столбца ColumnName таблицы MyTable. Для подключения к базе данных используется класс SqlConnection из пространства имен System.Data.SqlClient.
Следующий код на C# демонстрирует, как ASP.NET позволяет легко подключаться к базам данных и работать с ними в коде приложения:
using System.Data.SqlClient;
namespace MyWebApp.Models
{
public class MyModel
{
private readonly string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;";
public string GetData()
{
string result = "";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT * FROM MyTable";
using (SqlCommand command = new SqlCommand(query, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
result += reader["ColumnName"].ToString() + "\n";
}
}
}
}
return result;
}
}
} Скорость работы ASP.NET зависит от ряда факторов. Среди них конкретная реализация приложения, конфигурация сервера, размер базы данных, объем трафика и т. д. При этом на сегодняшний день ASP.NET Core позиционируется как один из самых быстрых веб-фреймворков.
За счет чего это происходит?
С помощью ASP.NET создают разные веб-приложения и сервисы, включая:
Приходите на курс C# Advanced від Hillel, чтобы научиться разрабатывать все виды программ на ASP.NET.
У ASP.NET есть такие основные достоинства:
Но у ASP.NET есть и слабые стороны.
Самый очевидный минус платформы — сложность в использовании. Привычный подход, когда создается файл index.html, затем открывается в браузере и мгновенно отображается готовый результат в .NET не работает.
ASP.NET — это серверная технология, которая генерирует HTML-страницы на стороне сервера, а не клиента.
Поэтому ASP.NET сначала обрабатывает запросы от клиента, потом генерирует страницу на стороне сервера, и только затем отправляет ее клиенту в виде HTML-кода.
Высокий порог входа для работы с ASP.NET может стать настоящей проблемой для новичков, от которых требуется знание языка программирования C# или VB.NET и понимание принципов работы веб-приложений. Но с помошью менторов на курсе C# Basic от Hillel вы сможете освоить технологию гораздо быстрее.
Некоторая избыточность языка C# только усложнит процесс изучения технологии. Номинальная система типов в C# может иногда приводить к тому, что нужно писать больше кода, чем в динамических языках программирования, где система типов структурная.
С другой стороны именно номинальная система типов обеспечивает более жесткую типизацию. Это помочь предотвратить ошибки в программном коде на ранней стадии разработки.
Созданный проект изначально упорядочен. Его структура показана в окне Solution Explorer (с англ. «обозреватель решений»):
Microsoft.AspNetCore.Mvc.Analyzers.dll). В эту папку можно самостоятельно добавлять библиотеки, повышая функциональность веб-приложения.{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:8645",
"sslPort": 44311
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"mytest": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Код файла launchSettings.json описывает локальный сервер и содержит номер порта для работы сайта. Если запустить проект с помощью кнопки IIS Express, откроется пустая тестовая страница в браузере по адресу, прописанному в этом коде.
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
program.cs. Любое приложение C# должно иметь точку входа main и, если мы раскроем папку класса, то найдем как раз эту команду. Код этого файла по умолчанию выглядит так:using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace mytest
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}
С функции main начинается запуск нашего приложения, срабатывает функция CreateWebHostBuilder, создающая сам веб-хост, запускающая все классы и контроллеры проекта.
Startup.cs служит для дополнительных настроек, таких как, например, отслеживания URL-адресов. Пока вы работаете в режиме отладки, функция IsDevelopment будет возвращать значение true, благодаря чему будут отображаться все ошибки проекта:using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace mytest
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}
Когда ваш сайт будет готов к публикации, нужно изменить его свойства и включить другой режим, например, Production. Для этого в окне Explorer Solution выделите основную папку и нажмите ALT+Enter.
Выделите раздел Debug и в разделе переменных окружения (ASPNETCORE_ENVIRONMENT) измените значение Development на Production. В этом случае функция IsDevelopment будет возвращать значение false и результатом возможной ошибки будет страница 404.
ASP.NET – мощный и гибкий фреймворк для создания веб-приложений и сервисов, который обладает высокой производительностью.
Благодаря различным моделям разработки, программисты могут выбрать оптимальный подход для своих проектов и решать любые поставленные задачи, создавая масштабируемые и высокопроизводительные веб-приложения.
При этом использование платформы ASP.NET может быть сопряжено с рядом трудностей. Например, необходимо уверенное знание C#. Это основной язык для разработки на платформе .NET, и его использование позволяет получить доступ к большинству возможностей .NET Framework и .NET Core.
Изучить и усовершенствовать знания C# вы можете на курсах от Hillel: C# Basic и C# Advanced.
Также для работы с технологией необходимо:
В заключение мы рекомендуем вам ознакомиться с курсом по ASP.NET Core, где вас научат быстро и просто делать веб-приложения, а также использовать инструментарий платформы:
А если хотите пойти дальше и писать не только функционирующий, но и чистый и продуктивный код, посетите курс по алгоритмам и структурам данных от robot_dreams. Обучение стартует уже в апреле 2023 года.
На фоне роста спроса на ликвидность в бычьем рынке 2025 года, криптозаймы снова выходят на…
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…