Здравствуйте, amironov79, Вы писали:
A>А maintainability это что? Чем проще код, тем лучше maintainability.
Смотря что включать в понятие "код".
Например, linq2db — адски сложен по сравнению с прямым использованием ADO.NET.
Там под капотом такое, что шуба заворачивается.
Когда в C# завозили linq, многие скептики выступали в том же ключе: дескать, там "хрен пойми, что происходит", "мало того, что надо знать SQL, так теперь надо ещё и знать, во что вся эта порнография развернётся", и "да я проще руками все эти джойны напишу".
При этом маинтейнить приложение, использующее linq2db, в разы проще, чем традиционные для начала 2000х DAL и CRUD-хранимки.
A>Вот, про что и разговор: неудобная обвязка, ограничение по версии рантайма, по версии языка. Думаю, есть проблемы, если сборка использует нативный код или кодогенерацию. И зачем все это?
Для того, чтобы ваше приложение обошло конкурентов
A>На сервере приложений ты свободен в выборе. Можно при необходимости с каждым приложением свой рантайм таскать, любая библиотека с nuget в твоем распоряжении, инструментальная поддержка близка к идеальной. Да, если будут проблемы с выборкой данных, всегда есть простор для оптимизации, хочешь средствами базы, хочешь кэшированием, хочешь избыточностью данных, хочешь расширением канала между сервером приложения и базы
.