Size: a a a

2019 November 28

V

Vladimir in CODE BLOG / C#
источник

V

Vladimir in CODE BLOG / C#
Про кнопку читай
источник

V

Vladimir in CODE BLOG / C#
Только тебе свойство text нужно
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Ооо, парни
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Рас уж тут разговор зашёл о паттернах, вопрос есть
источник

T_

Trell _ in CODE BLOG / C#
Он завис
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Предстоит рефакторинг приложения в связи с переходом на нет кор, а именно серверной части для мобильных приложений.

И встал вопрос об организации кода программы. Нужно как от упростить добавление нового фунционала в код. Напишу сразу как есть и как предполагаю сделать. Может кто, что посоветует.

Как есть: есть один основной класс в котором создаются экземпляры остальных классов (классы работы с базой данных, классы работающие с подключениями, классы отвечающие за рассылку оповещений на мыло и PUSH). Они выполняют минимум только то, что их касается, а вот основная бизнес-логика располагается в в основном классе и к этому моменту она очень сильно разрослась.
К примеру, класс "сервер" получил от сокета данные, десериализовал их и пробросил их в основной класс, там прошла обработка согласно бизнеслогике, и вызвался метод другого класса (репозитория данных), что бы добавить запись в базу. После удачного добавления данных в базу - вызывается соответствующие событие. На это событие подписан только основной класс. В основном классе от этого события может зависеть куча других действий.

Как хочу/предполагаю сделать: есть основной класс в котором создаются все остальные классы (работа с сокетами, работа с базой, отправка оповещений). А код каждой отдельной логики действий и обработки на события раскидать по отдельным классам. Они будут наследоваться один базовый абстрактный класс, с помощью которого смогут получить доступ к классам созданным в основном классе, вызывать их методы и подписываться на события.

Вот ищу на сколько это правильное решение и есть ли какие либо паттерны для этого?
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Не тебе, но если подсказать сможешь тоже спасибо😀
источник

АГ

Александр Горелкин... in CODE BLOG / C#
Gennady Kurbesov
Предстоит рефакторинг приложения в связи с переходом на нет кор, а именно серверной части для мобильных приложений.

И встал вопрос об организации кода программы. Нужно как от упростить добавление нового фунционала в код. Напишу сразу как есть и как предполагаю сделать. Может кто, что посоветует.

Как есть: есть один основной класс в котором создаются экземпляры остальных классов (классы работы с базой данных, классы работающие с подключениями, классы отвечающие за рассылку оповещений на мыло и PUSH). Они выполняют минимум только то, что их касается, а вот основная бизнес-логика располагается в в основном классе и к этому моменту она очень сильно разрослась.
К примеру, класс "сервер" получил от сокета данные, десериализовал их и пробросил их в основной класс, там прошла обработка согласно бизнеслогике, и вызвался метод другого класса (репозитория данных), что бы добавить запись в базу. После удачного добавления данных в базу - вызывается соответствующие событие. На это событие подписан только основной класс. В основном классе от этого события может зависеть куча других действий.

Как хочу/предполагаю сделать: есть основной класс в котором создаются все остальные классы (работа с сокетами, работа с базой, отправка оповещений). А код каждой отдельной логики действий и обработки на события раскидать по отдельным классам. Они будут наследоваться один базовый абстрактный класс, с помощью которого смогут получить доступ к классам созданным в основном классе, вызывать их методы и подписываться на события.

Вот ищу на сколько это правильное решение и есть ли какие либо паттерны для этого?
Если переход на кор
То почему не влепить все это в DI
А бизнес логику не разбить на части по принципам солид
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Александр Горелкин
Если переход на кор
То почему не влепить все это в DI
А бизнес логику не разбить на части по принципам солид
*разбить?
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Вот тут в соседнем чате тоже подтолкнули на использование DI
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Просто до этого не работал с этим
источник

АГ

Александр Горелкин... in CODE BLOG / C#
Gennady Kurbesov
Вот тут в соседнем чате тоже подтолкнули на использование DI
Он освободит ваш класс от необходимости самому следить за объектами
источник

АГ

Александр Горелкин... in CODE BLOG / C#
Не надо мне писать
источник

АГ

Александр Горелкин... in CODE BLOG / C#
Gennady Kurbesov
Вот тут в соседнем чате тоже подтолкнули на использование DI
Вот тут есть простенький пример как работает di
Там же и разделённая бизнес логика
В WebApp
https://github.com/s207883/WebAPI-Sample-Project
+ тут, посложнее

https://github.com/securedevteam/Security-Doors
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Вижу написано ASP.NET, а если это не асп?
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Александр Горелкин
Вот тут есть простенький пример как работает di
Там же и разделённая бизнес логика
В WebApp
https://github.com/s207883/WebAPI-Sample-Project
+ тут, посложнее

https://github.com/securedevteam/Security-Doors
Или применимо и не к асп.нет?
источник

АГ

Александр Горелкин... in CODE BLOG / C#
Gennady Kurbesov
Или применимо и не к асп.нет?
Есть инструменты не только в нем
Кажется ninject
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Александр Горелкин
Есть инструменты не только в нем
Кажется ninject
Спасибо. И за пример тоже. Понравилась организация кода
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Я те исходник кидал, там всё есть, посмотри
источник