chromimon, Лучшее не по качественным признакам, а эксплуатационным. Ладу вам могут починить почти в любой деревне, а вот Майбах даже в столицах сложно.
awesomer, Даже слабо разбираясь можно предположить, что лучше использовать, что-то массовое. А это предположение выстроить из опроса претендентов как они планируют разработку.
"На чем писать - это вопрос разработчика." вот это точно нельзя пускать на самотек. Сейчас полно желающих использовать все самое последнее и модное (Angular 5, Web Components 2 и т.п.). Начнут это использовать, потом им надоест и бросят (процентов на 80%-и) или допилят только до старта, и останется заказчик с проектом который поддержать смогут только единицы с заоблачными окладами, а бюджет уже иссяк.
Андрей, Вам не нужно менять данные в SQL запросе, вам лучше произвести конвертацию данный на уровне View написав Converter, что позволит в будущем менять формат преставления просто изменив шаблон в параметре конвертера. Как создавать конвертеры написано в https://www.wpftutorial.net/valueconverters.html
Mozzarella, ReadStreamCallback - это делегат, который может принадлежать обьекту, что в себе хранит любые необходимые данные о клиенте. Так что для того чтобы узнать кто послал запрос пробегаться по списку нет нужды.
А создание любого потока, это выделение минумум 1 мб данных для стека потока.