Курсовые - Разработка книжного интернет-магазина

ОБОСНОВАНИЕ ВЫБОРА ТЕХНОЛОГИИ

2.1 Технологии программирования

 

Существует огромное количество технологий программирования, из которых сложно выбрать ту самую, которая больше всего подойдет. Этот проект был написан с помощью технологии ASP.NET Core на языке С# совместно html и css файлов для работы с front-end.

ASP.NET Core – свободно-распространяемый кросс-платформенный фреймворк для создания веб-приложений с открытым исходным кодом.

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

С одной стороны, ASP.NET Core является продолжением развития платформы ASP.NET. Но с другой стороны, это не просто очередной релиз. Выход ASP.NET Core фактически означает революцию всей платформы, ее качественное изменение.

Разработка над платформой началась еще в 2014 году. Тогда платформа условно называлась ASP.NET vNext. В июне 2016 года вышел первый релиз платформы. А в декабре 2019 года вышла версия ASP.NET Core 3.1, которая собственно и будет охвачена в текущем руководстве.

ASP.NET Core теперь полностью является opensource-фреймворком. Все исходные файлы фреймворка доступны на GitHub.

ASP.NET Core может работать поверх кросс-платформенной среды .NET Core, которая может быть развернута на основных популярных операционных системах: Windows, Mac OS, Linux. И таким образом, с помощью ASP.NET Core мы можем создавать кросс-платформенные приложения. И хотя Windows в качестве среды для разработки и развертывания приложения до сих пор превалирует, но теперь уже мы не ограничены только этой операционной системой. То есть мы можем запускать веб-приложения не только на ОС Windows, но и на Linux и Mac OS. А для развертывания веб-приложения можно использовать традиционный IIS, либо кросс-платформенный веб-сервер Kestrel.

Благодаря модульности фреймворка все необходимые компоненты веб-приложения могут загружаться как отдельные модули через пакетный менеджер Nuget. Кроме того, в отличие от предыдущих версий платформы нет необходимости использовать библиотеку System.Web.dll.

ASP.NET Core включает в себя фреймворк MVC, который объединяет функциональность MVC, Web API и Web Pages. В предыдущих версии платформы данные технологии реализовались отдельно и поэтому содержали много дублирующей функциональности. Сейчас же они объединены в одну программную модель ASP.NET Core MVC. А Web Forms полностью ушли в прошлое.

Кроме объединения вышеупомянутых технологий в одну модель в MVC был добавлен ряд дополнительных функций.

Одной из таких функций являются тэг-хелперы (tag helper), которые позволяют более органично соединять синтаксис html с кодом С#.

ASP.NET Core характеризуется расширяемостью. Фреймворк построен из набора относительно независимых компонентов. И мы можем либо использовать встроенную реализацию этих компонентов, либо расширить их с помощью механизма наследования, либо вовсе создать и применять свои компоненты со своим функционалом.

Также было упрощено управление зависимостями и конфигурирование проекта. Фреймворк теперь имеет свой легковесный контейнер для внедрения зависимостей, и больше нет необходимости применять сторонние контейнеры, такие как Autofac, Ninject. Хотя при желании их также можно продолжать использовать.

В качестве инструментария разработки мы можем использовать последние выпуски Visual Studio, начиная с версии Visual Studio 2015. Кроме того, мы можем создавать приложения в среде Visual Studio Code, которая является кросс-платформенной и может работать как на Windows, так и на Mac OS X и Linux.

Для обработки запросов теперь используется новый конвейер HTTP, который основан на компонентах Katana и спецификации OWIN. А его модульность позволяет легко добавить свои собственные компоненты.

Если суммировать, то можно выделить следующие ключевые отличия ASP.NET Core от предыдущих версий ASP.NET:

  • Новый легковесный и модульный конвейер HTTP-запросов
  • Возможность развертывать приложение как на IIS, так и в рамках своего собственного процесса
  • Использование платформы .NET Core и ее функциональности
  • Распространение пакетов платформы через NuGet
  • Интегрированная поддержка для создания и использования пакетов NuGet
  • Единый стек веб-разработки, сочетающий Web UI и Web API
  • Конфигурация для упрощенного использования в облаке
  • Встроенная поддержка для внедрения зависимостей
  • Расширяемость
  • Кроссплатформенность: возможность разработки и развертывания приложений ASP.NET на Windows, Mac и Linux
  • Развитие как open source, открытость к изменениям

Эти и другие особенности и возможности стали основой для новой модели программирования.

 

 Сразу после создания проекта, предлагается выбрать шаблон проектирования (рис.2.2), который сильно облегчит задачу программисту и сэкономит уйму времени, в моём же случае был выбран пустой шаблон, чтобы понять как происходит создание веб-приложения с помощью технологии MVC с самостоятельным добавление всех необходимых пакетов и библиотек.

 

Рисунок 2.2 – Выбор шаблона проектирования

 

После создания проекта выходит не совсем пустой проект, прописаны некоторые универсальные и используемые везде файлы и классы. И в начальном классе, с которого стартует весь проект, Startup.cs, где мы как раз и подключаем технологию MVC в функции Configure() (рис.2.3)

 

Рисунок 2.3 — Функция Configure()

         После подключения основных зависимостей связанных с самой технологией MVC потребуется подключение различных пакетов (рис.2.4) для работы со статическими файлами, с базой данных и прочими мелочами.

 

Рисунок 2.4 – Все подключаемые пакеты в проект

        

2.2    Реализация ООП технологий

 

Для парадигмы ООП характерно, что программист рассматривает программу в виде набора взаимодействующих объектов, в то время как, например, в функциональном программировании программа представляется в виде последовательности вычисления функций. Процедурное программирование или, как его еще называют, классическое операциональное, подразумевает написание алгоритма для решения задачи; при этом ожидаемые свойства конечного результата не описываются и не указываются. Структурное программирование в основном придерживается тех же принципов, что и процедурное, лишь немного дополняя их полезными приемами.

Парадигмы непроцедурного программирования, к которым можно отнести объектно-ориентированную парадигму, имеют совершенно другие идеи. Определение Гради Буча гласит: “Объектно-ориентированное программирование — это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса (типа особого вида), а классы образуют иерархию на принципах наследуемости”. Важно подметить, что, по определению, программа считается объектно-ориентированной, только если выполнены следующие требования:

  1. объектно-ориентированное программирование использует в качестве основных логических конструктивных элементов объекты, а не алгоритмы;
  2. каждый объект является экземпляром определенного класса;
  3. классы образуют иерархии.

Идеологически ООП — подход к программированию как к моделированию информационных объектов, решающий на новом уровне основную задачу структурного программирования: структурирование информации с точки зрения управляемости, что существенно улучшает управляемость самим процессом моделирования, что, в свою очередь, особенно важно при реализации крупных проектов.

Другим фундаментальным понятием является класс. Класс – это шаблон, на основе которого может быть создан конкретный программный объект, он описывает свойства и методы, определяющие поведение объектов этого класса. Каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса.

Следующими важнейшими принципами (технологиями) ООП являются:

  1. Инкапсуляция – это механизм, объединяющий атрибуты и методы и охраняющий их от внешнего вмешательства (рис.2.5);

 

Рисунок 2.5 — Пример инкапсуляции в курсовой работе

 

  1. Наследование – это механизм расширения классов, который позволяет использовать уже существующие классы для описания новых (рис.2.6);

 

 

Рисунок 2.6 — Пример наследования в курсовой работе

 

  1. Полиморфизм – концепция ООП, которая означает, что рожденные объекты обладают информацией о том, какие методы они должны использовать в зависимости от того, в каком месте цепочки (дерева классов) они находятся, иными словами – это концепция, реализующая "множество методов в одном интерфейсе".
  2. Абстракция – выделение наиболее важных характеристик и информации об объекте.
  3. Модульность – это такая организация объектов, когда они заключают в себе полное определение их характеристик, никакие определения методов и свойств не должны располагаться вне его, это делает возможным свободное копирование и внедрение одного объекта в другие (рис.2.7).

 

Рисунок 2.7 — Пример модульности в курсовой работе

 

Общими ключевыми понятиями, с которыми работает любой объектно-ориентированный язык являются:

  • Объект – сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса;
  • Метод – функция класса;
  • Свойство – переменная, определяемые в классе;
  • Спецификаторы доступа: public, private, protected – определение доступа к методам или свойствам класса;
  • Абстрактный класс – класс, от которого нельзя создать объект, предназначен только для дальнейшего наследования;
  • Финальный класс – класс, от которого нельзя наследоваться, предназначен только для создания объектов, но не для дальнейшего наследования;
  • Конструктор – метод, вызываемый в момент создания объекта;
  • Деструктор – метод, вызываемый в момент уничтожения объекта;
  • Константа – неизменное свойства класса;
  • Интерфейс – это класс, в котором все методы являются абстрактными и открытыми и задаются только имена методов и их параметры, а реализованы они могут быть позже;

Имплемент – это класс, реализующий методы интерфейса.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться