定义可靠的SIlverlight 4架构

时间:2010-04-11 16:51:21

标签: silverlight architecture mvvm inversion-of-control silverlight-4.0

这是我关于SO的第一个问题。我知道有很多关于Silverlight和架构的主题,但没有找到满足我的答案。我是ASP.NET MVC开发人员,习惯于使用最佳实践构建的体系结构(与DI的松散耦合等)。

现在我面对新的Silverlight 4项目,并希望确保我做的最好,因为我没有经验。应用程序所需的主要功能如下:

  • 使用现有的SQL Server数据库,但有可能迁移到云端。
  • 使用EF4与SQL Server进行数据访问。
  • 可退出性:在不更改主要主机的情况下添加新模块。
  • 松耦合。

我正在观看不同的网络广播(Taulty等),关于Silverlight的博客,并提出了以下架构。

  • 用于数据访问的EF 4(符合要求)
  • WCF RIA服务,用于控制对查询数据的访问,并为数据验证,身份验证和角色提供端到端支持。
  • MEF支持启用模块。
  • Unity 2.0 for DI。

问题在于我不知道如何定义一个可靠的架构,其中所有这些元素可以很好地协同工作。我应该使用像Prism或Caliburn这样的框架吗?但是现在我不确定他们支持哪些场景。

Silverlight中Unity的最佳用法是什么?我曾经在ASP.NET MVC中使用IoC进行loos耦合以及其他诸如拦截审计日志记录之类的事情。似乎Silverlight Unity不支持拦截。我想用它来启用松散耦合,并在需要时启用移动到云端。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

Silverlight中的最佳实践实际上(IMO)有点神话。根据定义,“最佳实践”指的是总体上产生最佳结果的实践(快速上市,快速迭代版本,低错误数等)。然而,Silverlight 4甚至尚未投入生产,因此它实际上无法确定最终结果是“最佳实践”。

除此之外,Silverlight本身及其周围的技术非常流畅,而且非常新颖。考虑到这一点,这是我的2便士。

如果您正在构建LOB应用程序,那么EF和WCF RIA服务绝对会在您的架构中体现出来。 (虽然NHibernate而不是EF可能值得一看,但我倾向于偏向于MS组件,除非有其他东西将它撞出公园)。

如果你进入DI,MEF绝对值得进一步调查。它的这个区域现在最流行。看到Unity和Prism进一步发展以更多地使用MEF来提供各种模式,我不会感到惊讶。 MEF特别适合您所说的松散耦合。