Статья:

АНАЛИЗ РАБОТЫ ASP.NET MVC

Конференция: XV Студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки»

Секция: 3. Информационные технологии

Выходные данные
Сорокин А.А. АНАЛИЗ РАБОТЫ ASP.NET MVC // Молодежный научный форум: Технические и математические науки: электр. сб. ст. по мат. XV междунар. студ. науч.-практ. конф. № 8(15). URL: https://nauchforum.ru/archive/MNF_tech/8(15).pdf (дата обращения: 22.11.2024)
Лауреаты определены. Конференция завершена
Эта статья набрала 0 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

АНАЛИЗ РАБОТЫ ASP.NET MVC

Сорокин Алексей Александрович
студент 3 курса, кафедра ИТ, ДИТИ НИЯУ МИФИ, РФ, Ульяновская область, г. Димитровград
Ильмушкин Георгий Максимович
научный руководитель, проф., д-р пед. наук, канд. физ.-мат. наук, ДИТИ НИЯУ МИФИ, РФ, Ульяновская область, г. Димитровград
 

ASP. NET MVC — это фреймворк для веб-разработки, основанный на платформе Microsoft. NET, который предоставляет разработчикам возможность создавать хорошо структурированные веб-приложения. Представленная как альтернатива Web Forms платформа ASP. NET MVC приобрела значительную популярность с момента первой публичной демонстрации ее предварительной версии в 2007 году, и на сегодняшний момент большое количество крупных веб-приложений создано посредством использования данной технологии.

Несмотря на то, что Microsoft разрабатывал инструменты и фреймворки для веб-разработки на протяжении уже довольно длительного периода, ASP.NET MVC стала прорывом, поскольку, в отличие от предыдущих разработок, делает упор на чистый код, концепцию разделения и тестируемость.

Данная технология активно внедряется и применяется в современных коммерческих проектах. Концепция MVC не молода, но одним из факторов её растущей популярности на сегодняшний момент является появление ASP. NET MVC. В чем же её особенность? Почему её рекомендуют разработчики и хвалят многие специалисты?

Целью данной работы является анализ технологии ASP. NET MVC на реальном примере приложения, выявление её преимуществ и недостатков.

В качестве реального примера были взяты фрагменты кода из разрабатываемого сайта гос. услуг.

Рассмотрим основной подход MVC. Вся действующая архитектура приложения делится на три основные части: модель, представление и контроллер. Эти компоненты в программе связаны, но внутренне полностью изолированы друг от друга, то есть модель не может быть частью представления или иметь общую часть с представлением.

Концепция MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента:

1.  Модель (Model) — хранилище данных и методов для работы с ними, структура, на основе которой строится приложение. Модель представлена в виде классов, описывающих интерфейсы и объекты.

2.  Представление (View) — внешнее представление интерфейса приложения. Представление обычно является результирующей разметкой, которую фреймворк передает веб-браузеру, как например, HTML-разметка, представляющая страницу.

3.  Контроллер (Controller) — координатор, который обеспечивает связь между представлением и моделью. Контроллер отвечает за обработку входных данных, оказывающих влияние на работу модели, и решает, какое действие должно выполняться, к примеру, передача представления или перенаправление на другую страницу. К примеру, в разрабатываемом сайте гос. услуг контроллер занимается извлечением из БД перечня услуг и передает его в представление.

 

Рисунок 1. Компоненты MVC

 

Рассмотрим простой пример: разработка странички настройки сайта, где выводится список пользователей зарегистрированных на сайте. Схема следующая: администратор переходит по адресу: ../../Administrate/Users/List, тем самым обращаясь к методу List(), который описан в контроллере с именем UsersController.cs. В контроллере выполняется метод List(), имеющий следующий код:

public ActionRezult List()

{

List<UsersView> userList = new List<UsersView>();

try

{userList = db.UsersView.OrderBy(u=>u.Name).List();}

catch(Exception){}

return View(userList)

}

Метод View(userList) передает модель данных userList в представление. В данном случае название представления явно не указывается. Приложение само ищет представление List.chtml в директории Views/User/.

Моделью данных является объект класса UsersView, которая представляет собой запись из БД. Одной из преимуществ ASP.NET MVC является движок представления Razor, который позволяет при помощи языка программирования генерировать разметку. Взглянем на фрагмент представления List. chtml:

@model List<UsersView>

@(Html.Kendo().Grid(Model)

.Name("Users")

.Columns(columns =>{

columns.Bound(p=>p.name).Title(«Имя пользователя»).Filterable(true).Sortable(true);

columns.Bound(p=>p.snils).Title(«СНИЛС»).Filterable(true).Sortable(true);

columns.Bound(p => p.inn).Title(«ИНН»).Filterable(true).Sortable(true);

columns.Bound(p => p.fasetItemID).Title(«Тип пользователя»).EditorTemplateName("fasetItemList").Filterable(true).Sortable(true).
ClientTemplate("#:fasetItemName#");

columns.Bound(p=>p.act).Title(«Активность»).Filterable(true).Sortable(true).ClientTemplate("# if(act) {#<a href=\"javascript:switching()\"><img src=\"../../Images/details/act.png\" alt=\ «Пользователь включен» \/></a>#} else {#<a href=\"javascript:switching()\"><img src=\"../../Images/details/not_act.png\" alt=\"Пользователь выключен\"/></a>#} #").Width(50).HtmlAttributes(new {style = "text-align:center;"});

columns.Command(p => {p.Destroy().Text(«Удалить»).HtmlAttributes(new {style = "margin:5px;"}); p.Edit().Text(«Изменить»); }).Title(«Действия»);})

ToolBar(toolbar => {toolbar.Custom().Text(«Добавить пользователя»).HtmlAttributes(dic);

toolbar.Custom().Text(«Добавить роль»).HtmlAttributes(new {href = "javascript:select();"});})

.Editable(editable => editable.Mode(GridEditMode.InLine))

.Selectable().Sortable().Filterable().Pageable().DataSource(dataSource => dataSource

.Ajax().PageSize(10).ServerOperation(false).Events(events => events.Error("error_handler"))

.Model(model =>{model.Id(p => p.id);

model.Field(users => users.act).Editable(false);})

Update(update => update.Action("Edit", "Users", new { area = "Administrate" }))

.Destroy(destroy => destroy.Action("Destroy", "Users", new { area = "Administrate" }))))

В выше приведенном примере применяется библиотека компонентов Kendo UI ASP. NET MVC, придающая интерфейсу приятный вид и немалые функциональные возможности. На рис. 2 показано страница представления List. chtml.

Технология ASP. NET MVC разрабатывалась специально для работы в шаблоне MVC, и вследствие своего бурного развития(на данный момент вышла уже версия ASP. NET MVC 6) стала незаменимым инструментов в разработке веб-приложений.

 

Рисунок 2. Страница с сайта госуслуг

 

В ходе разработки сайта были выделены основные «плюсы» технологии ASP. NET MVC:

1.  Четкая и строгая структура приложения: модель, представление и контроллер.

2.  Программист имеет возможность полностью контролировать выдаваемые данные пользователю, в отличие от ASP. NET Web Forms, который поддерживает сохранения состояния формы.

3.  Удобные и автоматизированные средства тестирования приложения.

4.  Очень мощная маршрутизация (упрощенная структура URL).

5.  Полезные и эффективные возможности платформы, такие как аутентификация, мастер-страницы, управление пакетами с помощью NuGet, улучшенная технология Ajax и т. д.

6.  Особо стоит выделить возможность редактировать код и разметку представления во время выполнения приложения.

Из недостатков можно отметить разве, что сложную архитектуру самого приложения для начинающего изучать технологию ASP. NET MVC и невозможность отступить от концепции MVC, если нужно, например, просто загрузить небольшую страничку не требующую никакой серверной обработки.

В качестве заключения стоит отметить важный момент: данная технология будет эффективна для разработки масштабных и сложных веб-приложений, над которыми трудится группа людей, потому что, во-первых, практически исключается вероятность появления неустранимых ошибок на стадии разработки, которые способны загнать проект «тупик», во-вторых, простым приложениям ни к чему сложная архитектура MVC, в то время как сложные приложения MVC упрощает за счет четкого разделения логики приложения от логики представления.

 

Список литературы:
1.    Сандерсон С. ASP. NET MVC Framework с примерами на C# для профессионалов — Пер. с англ. — М.: ООО «И.Д. Вильямс», 2010. — 560 с.
2.    Чедвик Дж. И др. ASP. NET MVC 4: разработка реальных веб-приложений с помощью ASP. NET MVC (Programming ASP.NET MVC 4: Developing Real-World Web Applications with ASP.NET MVC). — Пер. с англ. — М.: ООО «И.Д. Вильямс», 2013. — 432 с.