Архитектура приложения Silverlight - PullRequest
3 голосов
/ 15 июля 2009

Я только начал изучать Silverlight, и меня интересует типичная архитектура приложения Silverlight и рабочий процесс в приложении (я использую Silverlight 2, но скоро перейду на 3).

В моем тестовом приложении у меня в настоящее время есть только два проекта по умолчанию - MyProject и MyProject.Web. Я знаком с шаблоном MVVM и организовал свой код, используя это. Однако у меня возникают проблемы с пониманием того, что происходит на клиенте, а что на сервере - и как мне это определить? Я предполагаю, что слой ViewModel находится на клиенте - связь с уровнем Model находится на сервере. Но как они будут общаться? Используете WCF? Должна ли серверная часть моего приложения быть определена в отдельном проекте? И должна ли клиентская часть иметь ссылку на это?

Я столкнулся с проблемами, когда хотел настроить модель для взаимодействия с SQL Server с использованием LINQ to SQL. Элементы «LINQ to SQL» не разрешены в проектах Silverlight, и если я добавлю это в отдельный проект библиотеки классов, я не смогу ссылаться на этот проект из своего проекта Silverlight как; Msgstr "Вы можете добавлять в проект ссылки только на другие проекты Silverlight".

Любая информация, которая может просветить мое понимание архитектуры и рабочего процесса, очень ценится. Спасибо.

1 Ответ

2 голосов
/ 15 июля 2009

Windows Communication Foundation (WCF) - это способ Silverlight для связи с сервером. Вы также можете взглянуть на инфраструктуру RIA , которая в настоящее время находится в техническом предварительном просмотре, которая добавляет слой между клиентами Silverlight и WCF веб-службами для проверки данных, позволяя совместно проверочный код (среди прочего).

Прямые подключения к базам данных невозможны из Silverlight - вместо этого вам нужно использовать службу WCF через веб-сервер для доступа к вашим данным. Если вы используете старый стиль веб-службы ASP.NET , Silverlight , то при обращении к этим службам они будут упакованы в WCF-подобные оболочки.

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