Bug 14515

Summary: Создание тестовой версии веб-приложения на ASP.NET CORE
Product: [Сторонние программы (Other programs)] Прочее Reporter: Алексей Герасимов <alexger97>
Component: ОбщееAssignee: Алексей Герасимов <alexger97>
Status: DEFERRED --- QA Contact: Vitaly Lipatov <lav>
Severity: minor    
Priority: P4    
Version: не указана   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 14514    

Description Алексей Герасимов 2020-03-24 18:27:07 MSK
Задача по созданию тестовой версии веб приложения на ASP.NET.CORE для того, 
чтобы : 
1. Получить информацию о различных способах реализации веб приложения на данной платформе
2. Создать первые веб-представления.
На данный момент я считаю необходимо разработать :
   1. Представление - один врач организации;
   2. Представление - список врачей;
   3. Представление для Терминала записи к врачу с логикой по дальнейшей записи к 
   врачу;
   4. Представление - информация о пациенте;
   5. Представление - авторизация Оператора ИС;
   6. Представление - окно работы врача (список  очереди на прием, небольшая логика по началу, завершению приема);
   7. Представление - информация о конкретном пациенте (небольшая статистика).

   .....
3. Разработать модели :
   1. Пациент;
   2. Врач;
   3. BindingModel's для форм;
...
4. В качестве ORM предлагаю использовать хорошо мне знакомый EF Core.
5. В качестве БД пока буду использовать sqlite.
6. Научится использовать (лично для меня) различные JS скрипты для предварительной  обработки информации в браузере, плюс наладить взаимодействие    с логикой ASP.NET.CORE 

Главное на данном этапе : сформировать базовое понимание возможной  реализации веб части проекта, проанализировать правильное построение backend
Comment 1 Алексей Герасимов 2020-03-24 19:05:11 MSK
Создал первое тестовое приложение, в котором пока только успел реализовать небольшую часть из задуманного

https://gitlab.eterfund.ru/alexger97/Test-ASP.NET.CORE/tree/master/WebApplication1

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

На  данный момент, эта просто вью с формой, которая получает данные от пользователя и передает их в контроллер для дальнейшей обработки.
Comment 2 Алексей Герасимов 2020-03-26 17:12:34 MSK
Изучал вопрос реализации в Asp.Net.Core мнговенного взаимодействия клиента и сервера в режиме реального времени.

Оптимальное решение использование open source SignalR.

Документация:
https://docs.microsoft.com/ru-ru/aspnet/core/signalr/introduction?view=aspnetcore-3.1

Очень полезная лекция об основах:
https://www.youtube.com/watch?v=n5SFKAAbIhk


Начал реализацию тестововой функциональности -  прежде всего это  актуально в процессе обработки информации при окончании приема, приглашении нового пациента и оповещении на Табло.
Comment 3 Алексей Герасимов 2020-03-31 22:00:31 MSK
Использую разработанную View для врача, ведущего прием, осваивал на практике взаимодействие с Razor-движком, использовал рализные типовые приемы, которые изучал ранее и  сегодня.

Получил представление о том, как лучше использовать Razor-page или же обычные представления нацеленные на MVC.

В следующих планах освоить более тщательно всю модель взаимодействия с сервером и начать практиковаться с SignalR
Comment 4 Алексей Герасимов 2020-04-06 17:15:51 MSK
Была проделана следующая системная работа над проектом :
Прежде всего - создание правильной структуры и разделение логики  между частями решения.
Создал несколько библиотек:
1. TestSystem.Data
2. TestSystem.Models
3. TestSystem.Service
По названию не трудно догадаться за что будет отвечать каждая из них.

Более детально расписал  модели чущностей, проделал различные манипуляции по работе с БД (дорабоал класс, отвечающий за сохранение контекста данных)

Удалось продвинуться в создании Razor-pages, прежде всего, это касается свзяки с вью и модели. 

Довольно много мелочей, на изучение и правку которых пришлось  тратить внимание
Comment 5 Алексей Герасимов 2020-04-06 17:16:56 MSK
Начал работу над созданием новых страниц по добавлению пользователей системы : докторов, администраторов и операторов.

Добавил понятие очереди и создал  предварительно логику по созданию очереди и обработку результата приема. 

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

Данная работа направлена прежде всего на создание каркаса системы и для того, чтобы в полседующем написанные View - имели полный набор возможностей для общения с уровнем логики

Неспеша продолжаю работу
Comment 6 Алексей Герасимов 2020-04-07 20:16:46 MSK
Сегодня : доделал и наладил тестовую версию данных для дальнейшей работы:

Пациенты, 
Документы,
Очереди.

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

Скоро сделаю коммит со всеми измененими
Comment 7 Алексей Герасимов 2020-04-10 10:46:14 MSK
Делаю коммит. На данный момент  готов базовый уровень логики, сохранения данных, вью для добавления пользователей в систему.

Для этого пришлось внимательно изуть правила валидации, построения модели, таг-хелперы и т.д.

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

К сожалению, из-за недостатка опыта имеено в веб разработки есть пару затыков по адекватной реализации некоторых аспектов, но дело поправимое
Comment 8 Алексей Герасимов 2020-04-12 21:20:03 MSK
Небольшие доработки по внешнему виду и валидации даты на страницах добавления пользователей, также начал разбираться с Jquery и JavaScript.

Хочу сказать, что в данной области у меня мало знаний, так что смотрю мнго курсов по данному направлению, чтобы понимать всю картину работы.
Comment 9 Алексей Герасимов 2020-04-13 21:15:16 MSK
Использую Razor-pages добавлил View для просмотра списка пользователей (операторы и врачи).
Также перешел к тому, чтобы в полной мере сделать авторизацию и аунтетификацию для операторов системы : написал в Razor-pages страницу для входа пользователя, в процессе окончания написания правильной логики по аутеницикации на основе куки
Comment 10 Алексей Герасимов 2020-04-16 09:34:29 MSK
Сделал : авторизацию на основе куки.
Теперь для доступа к определенном функционалу системы необходиом пройти аутентификацию и авторизацию на сайте. При обращении к закрытым сегментам происходит автоматическое перенапавление на страницу авторизации.

Также начал работу над личным кабинетом врача откуда можно будет смотреть и выбирать прием (начинать и вести его в соответствие с очередью), смотреть статитстику приема врача.

Также доработал в некоторых моментах уровень сервиса. Продолжаю изучать JS  и частичные представления в ASP NET CORE
Comment 11 Алексей Герасимов 2020-04-16 22:01:03 MSK
Сегодня продолжал работу над личным кабинетом, также произовдил измения шаблона мастер страницы в целях улучшения верхнего меню.

При изучении новых возможностей ASP.NET.CORE 3.1 наткнулся на новую возможность, которая недавно появилась в этом выпуске.

ASP.NET Core Blazor.

Среди заявленных возможностей данной технологии:

1. Создание многофункциональных интерактивных пользовательских интерфейсов на C# вместо JavaScript;
2. Совместное использование серверной и клиентской логик приложений, написанных с помощью .NET;
3. Отображение пользовательского интерфейса в виде HTML-страницы с CSS для широкой поддержки браузеров, в том числе для мобильных устройств.

Лично мне очень понравилась та концепция, которая представлена в описании. Мне кажется, они в конечном итоге хотят получить что-то подобное,  как в XAML. Чтобы без обновления страниц измененения на клиенте происходили из C# кода, особенно в связке с SignalR. Добраться до SignalR мне в прямую не удается, так как считаю, что нужно доделать логику до момента, где она нужна будет.


Начал активное изучение данной технологии, чтобы добавить функциональность с нею в тестовое приложени. Но стоит сказать, что данная технология еще в довольно не стабильной версии, скорее всего в следующей версии Core будет реализована ее более уверенная применимость
Comment 12 Алексей Герасимов 2020-04-20 20:37:22 MSK
Работал над изучением темы по использованию Blazor.
Прежде всего, установил необходимые пакеты обновил среду разработки.

Далее - используя туториалы с сайта Microsoft разбирался над тем, как устроена логика по подключению, настройке Blazor. 
Стоит сказать, что хоть Blazor основан на Razor и использует его синтаксис, но там реализована своя логика по работе функциями С# кода и т.д.

Используя стандартный шаблон от Ms приложения на Blazor пытался внедрить в разрабатываемое тестовое приложение Blazor-представление. Удалось настроить и внедрить, но возникла проблема с маршуртизацией при доступе к представлению. Пока не решил.

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

Но между тем в свободное время буду по-возможности продолжать работу над данным проектом
Comment 13 Алексей Герасимов 2020-06-26 10:02:26 MSK
Думаю, стоит отметить, как отложенную =(
Comment 14 Алексей Герасимов 2020-06-26 10:03:01 MSK
Отмечаю, как отложенную