Nikolay
Вообще, из-за чего это возникло, Фридрих предлагал использовать фабрику, как я понимаю как-то так:
public class WriteService
{
public IDataFactory<DbContext> DataFactory { get; }
public WriteService(IDataFactory<DbContext> dataFactory)
{
DataFactory = dataFactory;
}
public void CreateUser(User user)
{
using (var context = DataFactory.GetDataSource())
{
...
}
}
}
Так ок?
Просто не понятно, как жить, если нужно внутри этого же сервиса, вызвать какой-то метод, которому надо прокинуть контекст из CreateUser, разве что через приватную функцию, типа:
private void ResetPassword(DbContext, int idUser)
{
}
public void ResetPassword(int idUser)
{
using (var context = DataFactory.GetDataSource())
{
ResetPassword(context, idUser);
}
}
Nikolay
Так как-то делать надо в идеале?
Vladislav
Vladislav
Сервисами надо
Nikolay
Снаружи то оно выглядит без контекста
Vladislav
Nikolay
В любом случае, помоему идея с DataFactory неплохая, по крайней мере, можно быть уверенным, что всё диспозится
Nikolay
А не надеятся на контейнер
Ayrat
Ayrat
https://azure.microsoft.com/en-us/services/data-factory/
Ayrat
Ayrat
аккуратнее с датафактори, она тебя съест
Nikolay
Ну вот, придумал датафактори, а майкрософт уже украли идею :(
Vladislav
Я все ещё не понял что за задача у тебя
Nikolay
Vladislav
Roman
Все эти блядские сервисы, репозитории, дб контексты от лукавой идеи все на свете запихать в объекты
Vladislav
Vladislav
Типо
Nikolay
public static DbContext Датабаза { get; } = new DbContext();
Vladislav
Di
Vladislav
Все
Ayrat
Пацаны, тут майкрософт свои стримы написали
https://github.com/Microsoft/trill
с ебаным API на C#)
Ayrat
выглядит вырвиглазно как и DataFlow
Andrew
Ayrat
там екзамплы есть
Ayrat
надо может навернуть поверх F# и юзать
Vasily
На первый взгляд выглядит не оч
Ayrat
там есть киллер фичи
Ayrat
персистенс (не ин мемори)
Ayrat
если нода отказывает, агрегация не прерывается
Ayrat
ну точнее ты там чекпоинты задавать можешь
Vasily
Ну надо читать
Ayrat
https://github.com/Microsoft/Trill/blob/master/Documentation/HighAvailability.pdf
Ayrat
фп на C# выглядит уёбищно, да
Ayrat
особенно когда дженерики кругом
Ayrat
можете накидать плюсов
https://github.com/Microsoft/Trill/issues/21
Ayrat
может сделают
Ayrat
я б поюзал
Ayrat
Эта херота их инхаус разработка для стрим аналитики в ажуре
Ayrat
они её открыли миру
Ayrat
т.е. она давно в продакшне в хайлоаде крутится
Ayrat
поэтому она НЕ говно. А вот апи к ней на C# выглядит страшно
Ayrat
торчат уши датафлоу отовсюду, у меня прям флешбеки из вьетнама
Vasily
Ну ваще похоже, да
Igor
Ayrat
var container1 = new QueryContainer()
var input1 = container1.RegisterInput(OnCompletedPolicy.EndOfStream())
var query = ...
var output1 = container1.RegisterOutput(query1)
императивненько
Vladislav
Ayrat
ну т.е. никаких пайплайнов, всё какими-то стейтментами делается.
СОЗДАТЬ ИНПУТ
ЗАРЕГИСТРИРОВАТЬ АУТПУТ
ВЫПОЛНИТЬ ЗАПРОС
ПОДОЖДАТЬ
НА ОШИБКЕ ГОУ ТУ НАЧАЛО
Ayrat
поэтому я и говорю что датафлоу пахнуло
Vasily
@fvnever в райдере можно параметры командной строки для дебага указать?
Dr. Friedrich
Vasily
Да вообще
Dr. Friedrich
Ну вообще можно
Vasily
Я просто с наскока не нашел
Vasily
Тогда вопрос
Vasily
ГДЕ
Dr. Friedrich
Щас покажу
Vasily
Я подозреваю, что через ж
Vasily
Но надеюсь, лезть надо не очень глубоко
Vasily
Ох, блять, запрятали
Vasily
Нашел
Dr. Friedrich
Vasily
Ну да
Vasily
Я просто привык по студии, что это в свойствах проекта
Vasily
А потом ВСПОМНИЛ
Dr. Friedrich
Ну вот run подсистема у нас сильно отличается от студии
Dr. Friedrich
Хотя с современными launch settings они накрутили ещё пуще и неочевиднее
Vasily
Ну согласен, да
Hog
Srtp?
да, когда inline и типы с крыжиками
Vladislav
Странно
Hog
Странно
да чо-то неохота было разбираться - передал 3 "лишних" \ примитивных
Vladislav
Romɑn
Romɑn
А в райдере это вся подсветка?
Hog