.NET Разработчик
6.53K subscribers
442 photos
3 videos
14 files
2.12K links
Дневник сертифицированного .NET разработчика. Заметки, советы, новости из мира .NET и C#.

Для связи: @SBenzenko

Поддержать канал:
- https://boosty.to/netdeveloperdiary
- https://patreon.com/user?u=52551826
- https://pay.cloudtips.ru/p/70df3b3b
Download Telegram
День шестьсот шестьдесят третий. #DeveloperPath
Проект «Путь Разработчика»
Наконец-то! Я добрался до разработки проекта, обещанного ещё летом. Теперь официально объявляю о запуске! Периодически буду выпускать на канале новости проекта.

Краткое описание идеи можно прочитать здесь.

Поскольку стоит задача параллельно изучить Azure и всё, что с этим связано (борды, пайплайны, и т.п.), я решил попробовать вести проект в Azure DevOps.

Поэтому все желающие, добро пожаловать!

https://dev.azure.com/sbenzenko/DeveloperPath

Проект открытый, посмотреть его могут все желающие, даже без авторизации. Авторизованные через аккаунт Microsoft или GitHub могут оставлять комментарии или добавиться в команду. Пока не знаю, как это делается, буду изучать по ходу))) Надеюсь, там для вас будет специальная кнопка. Если нет, пишите сюда, будем разбираться, как вас добавить.

Описание проекта есть на главной странице. В разделе Boards я создал пока 3 задачи (они же обсуждения):
- Description and UX/UI - описание того, что будет собой представлять сайт с точки зрения пользователя.
- Domain design - создание сущностей домена.
- Architecture design - разработка архитектуры.

Советую для начала ознакомиться с описанием на главной и с описанием в Description and UX/UI, чтобы примерно представлять, что будем создавать.

За основу взят шаблон «Clean Architecture» (ссылка на шаблон и ресурсы с информацией о нём в задаче Architecture design). В проект добавлен репозиторий, но в нём пока только «голый» шаблон и Readme с описанием проекта.

В общем, как уже писал раньше, приглашаются все желающие: архитекторы, разработчики, тестировщики, дизайнеры… Все, кто хочет изучить что-то новое или внести вклад в развитие сообщества. Особого уровня подготовки и навыков не требуется (это всё-таки учебный проект, все будем учиться потихоньку). Единственное, желательно бы немного знать английский. Общаться будем на русском, но подавляющее большинство источников информации (об архитектуре, .NET5, Azure и т.п.) англоязычные.

Жду вас на проекте!

UPD
: Добавиться в команду, судя по всему, можно только по приглашению. Пишите email, по которому авторизуетесь в комментарии или в личку, я вас добавлю.
День шестьсот семьдесят первый. #DeveloperPath
Новости проекта «Путь Разработчика»
О проекте

Спасибо всем, кто присоединился. Итак, что мы имеем на сегодняшний день.

1. Исходный код
Во-первых, и в главных, хочу обратить внимание, что исходный код проекта находится в GitHub https://github.com/sbzenenko/DeveloperPath

Изначально планировалось импортировать код прямо в проект в Azure DevOps, однако, как оказалось, при этом создаётся не ссылка на GitHub, а клон репозитория в Azure. Привязать исходный репозиторий на GitHub, видимо, нельзя. В принципе, это не страшно, я убрал раздел репозиториев из проекта, чтобы они не вводили в заблуждение. Настроить пайплайны, тесты и релизы всё равно можно будет, используя репозиторий на GitHub.

2. Проблемы с доступом
У некоторых возникли проблемы с доступом на проект https://dev.azure.com/sbenzenko/DeveloperPath/ (ошибка 401). Пока эту проблему решить не удаётся. Написал об этом в саппорт https://developercommunity.visualstudio.com/content/problem/1268521/some-invited-members-get-401-error.html. Там выложили несколько вариантов, что можно попробовать, но не похоже, что они помогают. Будем решать.

В любом случае, даже если у вас не получается присоединиться к проекту на Azure, вы можете:
- просматривать его в режиме только для чтения (проект открытый),
- клонировать репозиторий https://github.com/sbzenenko/DeveloperPath с GitHub, следить за изменениями и вносить свои через Pull requests,
- оставлять предложения и замечания в GitHub Issues https://github.com/sbzenenko/DeveloperPath/issues.

3. Что сделано за неделю
Я скопировал шаблон Clean Architecture, обновил его до .NET 5 и начал работу над сущностями домена https://dev.azure.com/sbenzenko/DeveloperPath/_workitems/edit/6/.

Решение собирается и запускается. Только для этого вам потребуется поставить Node.js (если у вас его нет), т.к. на данный момент клиентская часть там на Angular. В будущем она будет переписана на Blazor.

Описывать собственно структуру и работу шаблона можно очень долго. Вот здесь внизу есть полезные ссылки для изучения https://dev.azure.com/sbenzenko/DeveloperPath/_wiki/wikis/DeveloperPath.wiki/3/Architecture Извините, только на английском. Если кто найдёт русскоязычные источники, с удовольствием добавлю.

Несколько комментариев для тех, кто захочет запустить проект у себя. То, с чем столкнулся сам:
1) Для запуска потребуется Visual Studio 2019 (v16.8) с модулем разработки Node.js и .NET 5 SDK.
2) По умолчанию в проекте используется InMemory база. Это можно изменить, установив UseInMemoryDatabase в false в src/WebUI/appsettings.json
3) Если кто-то захочет перейти на реальную базу, имейте в виду, что миграции и изменения в базу нужно запускать из проекта src/Infrastructure/, указывая при этом стартовый проект /WebUI/:

dotnet ef --startup-project ..\WebUI\ migrations add <NAME>
dotnet ef --startup-project ..\WebUI\ database update

Не знаю, зачем сделано так, если кто знает, подскажите.
4) Клиентская часть пока работает только с сущностями из шаблона (TodoItems и TodoLists). На их основе создаются сущности проекта. Сущности проекта можно посмотреть в Swagger https://localhost:5001/api/ Он их генерирует автоматически по созданным контроллерам и моделям. С ним у меня мало опыта работы. Знаю, что он позволяет документировать и тестировать API, автоматически выводит комментарии к конечным точкам и параметрам. Немножко его поковырял и добавил некоторые комментарии. По мере разработки буду изучать и описывать на канале.
5) На сайте есть шаблон Identity. Данные для входа находятся в файле src/Infrastructure/ApplicationDbContextSeed.cs

Если у кого-то возникнут вопросы, пишите в чат или в личку.
День семьсот семьдесят восьмой. #DeveloperPath
Новости проекта «Путь Разработчика»
О проекте

Наивно полагал, что новости проекта буду писать каждую неделю. Но немножко задержался (почти на 4 месяца). Однако за это время проект не только не умер, но и вполне себе развивался.

1. UI проект заменён на Blazor. Никаких больше node модулей! Всё собирается и запускается гораздо быстрее.
2. Основная часть API допилена и работает (можно потестить через Swagger UI).
3. Сергей Трофимов @trofimov_serhii разрабатывает Identity в отдельном проекте.
4. Проект «выложен» на Azure, и сайт даже можно открыть здесь https://developerpath.azurewebsites.net Правда, ничего полезного вы там всё равно не увидите)))

С выкладыванием возникла проблема. Поскольку опыта в развёртывании у меня примерно никакого, я пошёл самым простым путём. В Deployment Center можно было просто привязать репозиторий GitHub, и Azure через GitHub Actions как-то автоматом мог сайт развернуть. Оказалось, что не всё так просто. Решение вроде как даже скомпилировалось в dll-ки и выложилось. Но по ссылке показывается только стандартная страница. В общем, срочно нужен девопс помочь правильно «развернуться».

Однако задачи найдутся для самых разных специалистов. Если кто-то хочет поковыряться в .NET 5, C#9, Blazor, паттерне CQRS, или даже веб-дизайне, милости просим.

Проект всё также на Azure DevOps:
https://dev.azure.com/sbenzenko/DeveloperPath/
Он открытый, поэтому посмотреть, почитать можно и без регистрации. Авторизованные через аккаунт Microsoft или GitHub могут оставлять комментарии или добавиться в команду. Если вы ещё не в команде, пишите в личку или в комментарии свой e-mail, я вас приглашу.

Я добавил «парочку» тасок, которые можно посмотреть здесь. Все они делятся на:
- Epic (с короной) - глобальные задачи.
- Task (с жёлтой галочкой) – простые задачи на разработку.
- Issue (с зелёной планшеткой) – по задумке должны быть чем-то средним между Epic и Task. Пока особо не используются, считайте их теми же, что Task.

Задачи Epic представляют глобальные направления в разработке проекта: Архитектура, API, UI, Развёртывание, Документация, Тесты и т.п. Они «содержат» в себе задачи Task и Issue. Поэтому, кому интересно поучаствовать, можете присмотреть задачу по душе из тех, что в статусе «To Do» и взять её на себя.

Задачи помечены тегами по направлениям:
- Architecture – разработка проектов и модулей,
- Development – разработка отдельных фич,
- Design – разработка пользовательского интерфейса,
- Deployment – всё, что связано с развёртыванием,
- Bug – исправление ошибок или недоделок,
- Testing – все вопросы тестирования,
- Documentation – создание документации (как описание проекта, так и заметки по особенностям установки или работы).

Помимо этого, вы, конечно, можете просто взять код проекта на GitHub и предложить что-то своё.

По всем вопросам добро пожаловать в комментaрии сюда, либо в проект на Azure DevOps.
День восемьсот двадцать пятый. #DeveloperPath
Новости проекта «Путь Разработчика»
О проекте

Очередная серия новостей проекта.
1. Релиз наладили, даже кое-какое CI/CD прикрутили.
2. Проект выложен, и даже получил домен https://www.developer-path.com/
Пока там ничего особо нет, только краткое описание и форма входа. Постепенно будем пилить UI. Так что, если есть веб-дизайнеры, желающие присоединиться, нарисовать лого, айдентику, интерфейс, вот это всё, будем очень признательны.
3. API тоже доступно публично, пока тут https://developerpathapi.azurewebsites.net/index.html
Пожалуйста, не ломайте ничего :)

Как уже писал раньше, задачи найдутся для самых разных специалистов. Если кто-то хочет поковыряться в .NET 5, C#9, Blazor, паттерне CQRS или веб-дизайне, милости просим.

Проект всё также на Azure DevOps: https://dev.azure.com/sbenzenko/DeveloperPath/
Он открытый, поэтому посмотреть, почитать можно и без регистрации. Авторизованные через аккаунт Microsoft или GitHub могут оставлять комментарии или добавиться в команду. Если вы ещё не в команде, пишите в личку или в комментарии свой e-mail, я вас приглашу.

Задачи можно посмотреть в Azure DevOps.

Помимо этого, вы, конечно, можете просто взять код проекта на GitHub и предложить что-то своё.

По всем вопросам добро пожаловать в комментарии сюда, либо в проект на Azure DevOps.