none
关于架构选型的一些疑问。 RRS feed

  • 问题

  • 微软有着一系列的东西:Unity,SCSF,Enterprise Library,Prism。其实我的要求不多,只是需要有模块化、依赖注入、数据库映射、UI的分层控制。

    当然有些东西可以自己弄,可我不想自己去弄一套,有现有的干嘛不用?

    本来我想用SCSF(2008),可SCSF中的Unity好像还不是最新的吧,SCSF也不支持最新的Enterprise Library 5。

    不知道SCSF 对于2010的支持怎么样?

    根据我的4个要求,哪种选型最合适?

    或者直接选Prism?Prism还是比较活跃的,后续版本还在开发,SCSF好像已经没有什么后续了。

    2010年7月16日 1:35

答案

  • Enterprise Library 5.0 确实有很多新东西,比如 Unity 2.0 等。它是一套强大的类集合,其定位是开发企业级的,分布式的大型应用程序。

    Software Factory 是 patterns and practise 部门结合许多最佳实践后组成的自动化向导性 (Automated Guidance) 框架,针对不同的开发场景,有不同的模型。它更适合于快速开发以及中型项目,如 B2C 网站或者 IM 工具等。

    如果考虑到 FX 4.0 的话,其内置的 MEF (Managed Extensibility Framework) 就可以实现 IOC (Inverse of Control) 和 DI (Dependency Injection),模块化,UI 分层的话可以采用 MVC (Web) 或者 MVVM (Desktop) 设计模式 + MEF 来实现,数据库映射的话用 Entity Framework 或者 Linq to SQL,实现都不是很难的。


    Mark Zhou
    • 已标记为答案 floating 2010年7月16日 15:25
    2010年7月16日 8:50

全部回复

  • Spring.NET
    2010年7月16日 3:38
  • 呵呵,Springt.net,NHibernate之类的确实好用?目前还没在项目中使用过。
    2010年7月16日 3:53
  • 对于这种中间件选型的问题,比较复杂,需要从多角度来考虑:

    1) License 问题,如果是GNU 的License,有可能会被GNU License 要求公开源代码。即:使用了某个开源组件的项目仍然需要开放源代码;

    2) 项目组成员的情况, 要找一个大家都熟知的项目,这样才能提高效率;

    3) 问一下自己,你是真的需要吗? 对于几个页面的小网站,用ORM 组件简直就是大炮打蚊子,Spring.NET 也是有很大性能代价的;

    2010年7月16日 4:42
  • 微软有着一系列的东西:Unity,SCSF,Enterprise Library,Prism。其实我的要求不多,只是需要有模块化、依赖注入、数据库映射、UI的分层控制。

    当然有些东西可以自己弄,可我不想自己去弄一套,有现有的干嘛不用?

    本来我想用SCSF(2008),可SCSF中的Unity好像还不是最新的吧,SCSF也不支持最新的Enterprise Library 5。

    不知道SCSF 对于2010的支持怎么样?

    根据我的4个要求,哪种选型最合适?

    或者直接选Prism?Prism还是比较活跃的,后续版本还在开发,SCSF好像已经没有什么后续了。


    具体来说看你的需要了。

    如果你的需求简单,完全可以自己实现一个轻量的IoC框架。而数据库映射可以使用Entity Framework,UI分层可以使用ASP.NET MVC。将 ENT Lib作为辅助。

    不建议使用第三方的框架,因为他们的后期维护不是很确定。

    至于说现成的,未必就适合,配置、学习同样需要时间,功能复杂,不易查错和扩展也是要考虑的问题。 

    2010年7月16日 8:34
  • Enterprise Library 5.0 确实有很多新东西,比如 Unity 2.0 等。它是一套强大的类集合,其定位是开发企业级的,分布式的大型应用程序。

    Software Factory 是 patterns and practise 部门结合许多最佳实践后组成的自动化向导性 (Automated Guidance) 框架,针对不同的开发场景,有不同的模型。它更适合于快速开发以及中型项目,如 B2C 网站或者 IM 工具等。

    如果考虑到 FX 4.0 的话,其内置的 MEF (Managed Extensibility Framework) 就可以实现 IOC (Inverse of Control) 和 DI (Dependency Injection),模块化,UI 分层的话可以采用 MVC (Web) 或者 MVVM (Desktop) 设计模式 + MEF 来实现,数据库映射的话用 Entity Framework 或者 Linq to SQL,实现都不是很难的。


    Mark Zhou
    • 已标记为答案 floating 2010年7月16日 15:25
    2010年7月16日 8:50
  • 最终还是选用Prism 2.2,貌似比较符合我的要求。

    之所以选择Prism,首先包含了Enterprise Lib 5.0,Unity2.0,模块化,MVVM模式等,而且活跃性较高,目前看是微软主推的东西,短时间内不会半途而废。并且WPF也是将来的重点,Winform的东西慢慢的将会被人们所丢弃。

    而SCSF,好像从2007之后就没有什么更新了。只是针对不同VS做了一些改动。并且在VS2008SP1中模版还有些BUG,对2010还没有测试。

    因为是企业级应用,不得不考虑架构一些东西。如果只是做做简单的网站,谁会没事吃抱撑着搞那么复杂。

    感谢mazhou的解说。

    2010年7月16日 15:25
  • Smart Client Software Factory 目前已经有 2010 版本了,如果要试试的话,可以去 Visual Studio Gallery 去下载。
    Mark Zhou
    2010年7月19日 7:57