2009-07-14 2 views
3

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

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

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

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

ответ

2

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

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

+0

Thx! Это действительно прояснило концепции для меня. Итак, у меня обычно есть отдельный проект WCF? Будет ли это удерживать всю модельную часть шаблона MVVM для меня? Я помещаю ViewModel на стороне клиента - в проекте Silverlight? Я вижу, что проект WCF нельзя ссылаться на проект Silverlight, но мне кажется, мне не нужна прямая связь между ними? Все сообщения через звонки REST? – stiank81

+0

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

+0

Service Reference - я вижу. Ну, теперь я знаю достаточно, чтобы копаться дальше. Thx для того, чтобы все было ясно для меня! – stiank81

Смежные вопросы