`
hulunberbus
  • 浏览: 859710 次
文章分类
社区版块
存档分类
最新评论

一种新的基于Windows Mobile平台的移动开发N层架构(第五部分)

 
阅读更多

一种新的移动N层体系结构(第5部分)

在这一系列的前面部分,我已经讨论了影响到架构设计的变化。现在是时候总结所有这些带来了什么样的架构智慧,我建议的架构应该是下面这个样子:

newarch大部分基础部件(三个层次,公共服务等),甚至许多更具体的(服务接口/代理,数据存取,商业实体等)实际上和Application Architecture for .NET完全一样,我已经在这一系列的博客帖子提到过。

请注意,一个重大变化是较低部分中间层(商业服务)和底层(数据服务)中的合并。正如我之前所述,这是业务逻辑和数据一个很好的混合称为业务域。通过LINQ到SQL技术和WCF,大多数(如果不是全部的话)数据服务层实际上是使用代码生成器创建的。这意味着,所做的针对不同来源(数据来源和服务)的任何更改可通过重新生成代码来捕获到。这种支持工具实际上正是为系统之间集成的演变而准备的,一个简单的“更新服务参考”菜单的选择就是我们所需要做的全部。

另一项类似的变化是明确区分服务接口和业务域。如果业务域有明确的职责来处理逻辑和数据的某些业务领域,服务接口(根据外观模式facade pattern设计)则有不同的职责。主要的区别是服务接口可能实现了特定部分的系统功能(用例)。另外,因为他们是“第一道防线”,他们应该处理像基本安全(认证,授权,加密等),以及可靠的编码技术(参数检查,防止SQL /代码注入等),压缩,交易,记录等这样的事情。这种和业务域的分离的一个自然的结果是服务可以被放在一个单独的程序集里。这是一件好事,因为一个服务接口有可能使用了一些业务域,也许(或也许不)存在于多个程序集中。

最后,用户界面部分已被更名为和使用MVC模式保持一致,在先前的文章已经提到,这将能更好地测试和使用相同的用户界面逻辑于不同的客户端(ASP.NET建立的瘦Web界面,WinForms构造的丰富的接口,WPF或Silverlight,当然还有使用.NET CF以及很快将会实现的Silverlight构造的移动客户端。

在接下来的帖子中,我将更多的讨论关于现代移动架构上变化的想法,当然会有一些代码示例,以在实践中阐明理论。敬请期待!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics