Комментарии 5
Чем больше типов, вложенности и il кода, тем медленнее ПО, так как jit`у сложнее оптимизировать программу. Поэтому подобного рода строгая типизация приведет к серьезным тормозам в проекте.
В дотнете структура вида
struct Wrapper<T>
{
public T Value {get; set;}
}
эквивалентна по производительности манипуляциям со значениям напрямую, JIT в итоге генерирует такой же ассемблерный код. Но придётся уйти от иерархий наследования и потреблять интерфейсы посредством конструкций вида
interface IFoo
{
void Bar();
}
void Do(T x) where T : IFoo
{
x.Bar();
}
чтобы избежать боксинга.
просто заведите типы GroupId, UserId и так далее
Как к такому отнесётся EntityFramework скажем 6 и Core? Есть ли опыт работы, как усложнится работа с базой, какие-то наблюдения по удобству работы?
Мне вот тоже интересно, наверное появится слой мапинга где используя FluentApi прокинут свойства, или не дай бог там будут модели таблиц с неявным преобразованием из наших чудесных моделей в бд
Ну можно сделать memento и маппить на EF классы и обратно например. Или использовать backing fields, owned entites, value conversion.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Типизируйте уже наконец свой код