Я начал работать с Microsoft .NET Core Framework. В частности, ASP.NET Core. Обычно я работаю с Javascript, с NodeJS или React, но хотел попробовать Microsoft .NET Core Framework. Исследуя, с чего начать, я столкнулся с более старой версией ASP.NET для веб-разработки.

В чем разница между ASP.NET и ASP.NET Core?

ASP.NET — это среда веб-разработки только для Windows; его первый выпуск был 17 лет назад. Гораздо более новый ASP.NET Core также является средой веб-разработки. Однако он является кроссплатформенным и работает намного быстрее, чем старые приложения ASP.NET.

Что такое LMS — система управления библиотекой?

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

Это позволяет им отслеживать книги, чтобы узнать, доступны ли они в другом филиале/магазине. Кроме того, ведение записей о том, есть ли у их членов/подписчиков какие-либо непогашенные платежи и книги, которые они одолжили.

Почему я решил сделать LMS?

Я искал проект для своего портфолио, который был бы хорошим проектом для портфолио.

База данных

Этот проект позволяет мне работать с SQL. Как разработчик NodeJS, стандартной базой данных является MongoDB (NoSQL). Работа над этим проектом требует от меня манипулирования данными в разных таблицах.

Шаблон проектирования

ASP.NET Core обычно использует шаблон/архитектуру проектирования MVC (Model-View-Controller). MVC также является тем же шаблоном проектирования, который используется в Express для NodeJS.

Я также использовал шаблон проектирования репозитория, который я упомяну позже в разделе «Что я наконец узнал?».

Чистый код

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

.NET и .NET Core Framework

Знакомство с платформой .NET открывает перед разработчиком программного обеспечения множество возможностей. Многие разработчики начинают разработку с помощью Javascript. Тем не менее, я чувствую, что веб-разработка сама по себе не так уж и интересна, и именно к этому вас приводит большинство вакансий JS. Принимая во внимание, что .NET Framework является бесплатным, с открытым исходным кодом, поддерживается Microsoft и, как известно, делает больше.

Где я нахожусь с LMS?

Я бы сказал, что прошел треть пути. На данный момент работает только контроллер библиотеки. Тем не менее, я опубликую части 2 и 3 этой серии для контроллера Subscribers and Branches.

Просмотреть код на GitHub: https://github.com/samsonnagamani/LMS

Наконец, чему я научился?

Подключение к SQL Server и любому серверу базы данных может вызвать затруднения

Когда я начал этот проект, я провел большую часть трех дней, выясняя, как подключиться к SQL Server и взаимодействовать с ним. Первые пару руководств, которые я смотрел, использовали код, который, казалось, плохо масштабировался. Однако, изучив больше, я начал использовать инъекции зависимостей, которые очень масштабируемы.

Шаблон проектирования репозитория

Шаблон проектирования, который я изучил при создании LMS, — это шаблон проектирования репозитория. Не буду вдаваться в подробности, но если говорить простым языком, то это три файла.

  1. Модель.cs
  2. IModel.cs
  3. MockModel.cs

В Model.cs вы определяете модель.

IModel.cs — это интерфейс для модели, определяющий, как вызываются методы, что они возвращают, и каковы его входные параметры.

В MockModel.cs хранится вся бизнес-логика проектов. В моем случае я ввел контекст БД в этот файл, чтобы иметь функциональность CRUD с записями базы данных.

Фин!

Это все, что у меня есть, на данный момент я продолжу работу над этим проектом и, надеюсь, выпущу часть 2 для контроллера веток и часть 3 для контроллера подписчиков.

Проверьте мой репозиторий GitHub, код здесь: https://github.com/samsonnagamani/LMS

И мы очень ценим любую конструктивную критику и аплодисменты.