Определение надежной архитектуры SIlverlight 4 - PullRequest
2 голосов
/ 11 апреля 2010

Это мой первый вопрос по SO. Я знаю, что было много тем о Silverlight и архитектуре, но не нашел ответов, которые меня устраивали. Я являюсь разработчиком ASP.NET MVC и работаю над архитектурами, построенными на основе передового опыта (слабая связь с DI и т. Д.)

Теперь я сталкиваюсь с новым проектом Silverlight 4 и хотел бы быть уверен, что я делаю лучший выбор, поскольку у меня нет опыта. Основные функции, необходимые для приложений, следующие:

  • использовать существующую базу данных SQL Server, но с возможностью перехода в облако.
  • с использованием EF4 для доступа к данным с SQL Server.
  • exitensibility: добавление новых модулей без смены основного хоста.
  • слабая связь.

Я просматривал различные веб-трансляции (Taulty и т. Д.), Блоги о Silverlight и придумал следующую архитектуру.

  • EF 4 для доступа к данным (как указано в требованиях)
  • Службы RIA WCF для промежуточных уровней, контролирующие доступ к данным для запросов и обеспечивающие сквозную поддержку проверки данных, аутентификации и ролей.
  • MEF Поддержка включения модулей.
  • Unity 2.0 для DI.

Проблема в том, что я не знаю, как определить надежную архитектуру, где все эти элементы хорошо сочетаются друг с другом. Должен ли я использовать рамки вместо Prism или Caliburn? Но пока я не уверен, какие сценарии они поддерживают.

Как лучше всего использовать Unity в Silverlight? Раньше я использовал IoC в ASP.NET MVC для связывания циклов и других вещей, таких как перехват для ведения журнала аудита. Похоже, что для Silverlight Unity не поддерживает перехват. Я хотел бы использовать его для обеспечения слабой связи и, при необходимости, для перехода в облако.

Заранее спасибо за помощь.

1 Ответ

2 голосов
/ 12 апреля 2010

Лучшая практика в Silverlight на самом деле (IMO) немного миф. По определению «передовая практика» относится к методам, которые в целом дают наилучшие результаты (быстрое продвижение на рынок, быстрая итерация версий, небольшое количество ошибок и т. Д.) Однако Silverlight 4 еще даже не запущен в производство, поэтому на самом деле невозможно точно определить, что в итоге оказалось «Лучшей практикой».

Вдобавок к этому сам Silverlight и технологии, которые его окружают, были очень гибкими и очень новыми. Имея это в виду, вот мои 2 пенса.

Сервисы EF и WCF RIA наиболее точно будут фигурировать в вашей архитектуре, если вы создаете LOB-приложение. (Хотя NHibernate вместо EF может стоить посмотреть, я склонен склоняться к компонентам MS, если только что-то не выбивает его из парка).

MEF, безусловно, заслуживает дальнейшего изучения, если вы занимаетесь DI. Это та область, которая сейчас наиболее изменчива. Я не удивлюсь тому, что Unity и Prism эволюционируют, чтобы более широко использовать MEF для доставки своих различных шаблонов. MEF особенно хорош в слабой связи, о которой вы говорите.

...