Хорошо, люди, вот еще один для ya'll:
Я начинаю в мире приложений n-уровня. Я проделал некоторое чтение по этой теме, и общие рекомендации заключаются в том, что целью приложений n-уровня является абстрактная функциональность между слоями. Итак, на основе этого, в n-уровневом приложении, обычная модель:
Data Access -> Business Layer -> Presentation
Поскольку я являюсь разработчиком .NET, я думал, что для улучшения интеграции с несколькими типами клиентов (Silverlight, веб-приложение или даже клиент WinForms) я должен использовать WCF (Windows Communication Foundation) в качестве служб данных на бизнес-уровне, поэтому клиенты могут общаться с ним независимо от его типа. Кроме того, я большой поклонник NHibernate как ORM. Поэтому моя структура выглядит следующим образом:
Data Access (NHibernate) -> Business Layer (WCF) -> Presentation (WPF, ASP.NET, WinForms
Хорошо, так это настройка. Я новичок в этом подходе, поэтому я подумал, что могу опубликовать здесь запрос на консультацию по этой настройке. Кроме того, я очень смущен тем, как настроить это в VS-решении, мне нравится разделять слои в разных проектах, но как насчет абстракции объектов данных (например, Customer, Order и т.д.)? Я помещаю их в отдельную библиотеку? А как насчет WCF? Я знаю, что программист-грех переносит классы данных по проводу клиенту. Какой профессиональный способ достичь этого?
Спасибо, любой совет будет очень оценен.