Если вы хотите сохранить простоту и ограничить свои потребности, вы всегда можете использовать типизированный набор данных, который вы передаете по WCF (или .Net Remoting).Однако вы быстро столкнетесь с проблемами, если ваше приложение станет более сложным или у вас много данных.
SqlServer будет отображать хранимые процессы поверх мыла, это может хорошо работать, если ваши приложения используют несколько хранимых процедур, которые не слишком болтливы..
Предоставление ваших данных с помощью WCF Data Services - вариант, если вам нужны простые операции CRAD.В противном случае вам нужно будет определить все методы, которые вам нужны в интерфейсах WCF.
Если вы не привязаны к WinForm, посмотрите на службы WCF RIA с Silverlight, поскольку это сделает большую часть тяжелой работы для вас с большинствомПриложения типа CRAD.Но вам нужно будет изучить Silverlight.
Проблема в том, что не существует простого и легкого решения «представить Интернет не в пути», а переход на трехуровневое приложение всегда сделает ваш кодболее сложный.3-уровневая архитектура может быть полезна для более сложных и требовательных приложений, но часто оказывается слишком сложной.
Также рассмотрите возможность написания 2-уровневого приложения WinForms и использования служб терминалов для предоставления его своим клиентам.по Интернету.Это часто является самым дешевым решением и имеет тенденцию приносить наименьшую боль системному администратору. Однако многие программисты почему-то считают, что это «обман».