В последнее время я разрабатывал довольно много приложений для Windows Forms (приложения для ввода данных, интеграция офисов и т. Д.), И хотя я всегда проектировал с учетом логических уровней, уровень бизнес-логики «среднего уровня» всегда размещены на настольном ПК (т. е. физический клиент-сервер).
По мере приближения к более сложным приложениям я стремлюсь к физическому среднему уровню, а клиент настольного компьютера передает запросы обратно на сервер приложений для обработки бизнес-логики (которая может регулярно изменяться) и интерфейсов. Такое ощущение, что я упускаю такие факторы, как масштабируемость и ремонтопригодность, которые более характерны для веб-приложений.
Мне любопытно узнать, как далеко продвинулись другие разработчики WinForms на среднем уровне:
- Сколько обработки (если есть) вы выполняете на сервере среднего уровня?
- Какой метод связи вы используете - WCF, удаленное взаимодействие, веб-сервисы и т. Д.?
- Насколько сильно влияет производительность, и как часто вы обращаетесь к серверу туда и обратно?
Есть ли преимущество в переносе бизнес-логики на отдельный уровень или более практично размещать компоненты локально на ПК (и просто убедитесь, что у вас есть хорошая модель развертывания для выпуска обычных выпусков при изменении бизнес-правил)
В качестве альтернативы, следует ли мне полностью отвлекать клиентов от WinForms, если в них вовлечены эти факторы? С альтернативами, такими как Silverlight и даже ASP.NET с AJAX, причины выбора клиента WinForms, похоже, сокращаются.