WPF + WCF + MVC + EF Web / Настольное приложение - PullRequest
3 голосов
/ 22 ноября 2011

Я планирую приложение, которое будет иметь веб-компонент и клиентский компонент рабочего стола.В основном я планирую создать веб-компонент с использованием ASP.NET MVC3 & Entity Framework в качестве обычного веб-сайта, управляемого данными, однако я также планирую создать настольный клиент, который расширит функциональность веб-сайта, для меня это новая территорияи я несколько смущен.Я знаю, что лучший способ создать приложение, которому требуется доступ к центральной базе данных, - это использовать WCF, однако я раньше не использовал WCF, но слышал, что его легко интегрировать с Entity Framework.

.знаю, что то, что я хочу сделать, безусловно, возможно, я просто ищу руководство о том, как отдельные компоненты этого приложения должны склеиваться, и т. д. Должен ли я сначала работать с WCF и Entity Framework?Или я должен завершить веб-компонент перед работой с WCF?

Спасибо, Алекс.

Ответы [ 2 ]

6 голосов
/ 22 ноября 2011

Есть много способов сделать это, и все эти способы имеют различный уровень сложности. Например, вы можете просто создать свое веб-приложение с использованием Entity Framework, в том же веб-приложении вы предоставляете службу OData (служба данных WCF), которая предоставляет RESTful-сервис, который ваше приложение WPF может использовать для доступа к базе данных. Это довольно просто, поскольку службы данных WCF очень хорошо работают с Entity Framework. Это в основном двухминутная работа (если вы не делаете ничего особенного). В этом случае ваше приложение WPF имеет в основном тот же тип доступа к базе данных, что и ваше веб-приложение. В конфигурации по умолчанию служба данных WCF просто представляет EF ObjectContext и разрешает операции с ним того же типа. Я бы порекомендовал вам попробовать и убедиться в том, что он соответствует вашим требованиям.

Но этот подход в основном является ярлыком, позволяющим настольному приложению получить доступ к вашей базе данных. Что в большинстве случаев вполне нормально. Если вы хотите приложить некоторые усилия, вы можете смоделировать уровень обслуживания, который использует либо источник данных Entity Framework, либо источник данных OData. С этого момента, это все о шаблонах дизайна. Который приходит по цене; разделение слоев - трудная вещь, если вы хотите сделать это правильно. Учитывая, что мир .NET несколько изменился, чтобы «выполнить работу», хорошо собрать эти кусочки и получить работающее приложение в кратчайшие сроки.

Следует также учитывать, что MVVM в WPF и MVC в веб-приложении имеют принципиальные отличия; где приложение MVC просто извлекает «снимок» из базы данных, приложению WPF может потребоваться больше усилий и асинхронное программирование, чтобы чувствовать себя естественно.

Я могу дать вам несколько советов по конкретным задачам, например, как отделить WCF Data Service и Entity Framework, но по моему опыту, накладные расходы на "правильное выполнение" огромны. Если вы чувствуете себя комфортно без сервисного уровня, у вас будет прекрасный опыт работы с EF и OData.

2 голосов
/ 22 ноября 2011

Лучше начать с веб-компонента, сначала интегрированного с wcf, вы можете использовать Entity Framework, но я бы порекомендовал использовать сам T-Sql, если у вас есть база данных с большим объемом данных, и она дает вам много возможностей для производительности.Я бы порекомендовал вам построить модель приложения, используя шаблон MVP, поскольку он позволяет легко переключаться с настольного компьютера на веб-приложение, а также соответствовать вашим требованиям по его расширению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...