.NET Presentation Tier体系结构/业务线系统蓝图

时间:2010-07-22 08:30:25

标签: .net silverlight asp.net-mvc-2 prism

我们正在重新审视我们的表示层架构,作为未来新的和重写的业务系统(只是表示层)的蓝图,使用Microsoft技术堆栈。

我们有大约30个.NET系统(2,3和3.5),其中约60%是基于Web的(CWAB + Web窗体)和40%的智能客户端(使用CAB / SCSF,WinForms) 所有系统都通过ASMX或WCF集成到后端SOA堆栈中(即“后端”系统架构很常见)

目标是

  • 如果可能的话,尽量保持代码库在Web,Windows和Mobile之间尽可能“共同”(目前没有在Web和WinForms之间重用MVP / MVC)。
  • 将越来越需要支持移动设备
  • 我们的大多数系统都是笨拙的业务系统 - 功能比美学要求更重要
  • 绝对倾向于转向WPF
  • 即使没有表示层重用,也要在客户端之间保持一致的体系结构(MVC / MVP / MVVM等)
  • 保持主流!

有些想法在

之间摇摆不定
  • 用于Web +的ASP.NET MVC 2 + jQuery等?用于Smart Client的Prism / WPF VS
  • 所有人的棱镜(智能客户端和Silverlight) VS
  • Sharepoint Web部件(门户架构) VS
  • 离开Web / Winforms并等待尘埃落定更多;)

未来的HTML5如何影响您的思考?

对这样一个开放式问题抱歉,但是真的很重视SO社区对此的建议和经验!

提前致谢!

1 个答案:

答案 0 :(得分:1)

我们处于类似的情况,并对这个问题给予了相当多的考虑。对我们来说,出于几个原因我们排除了Sharepoint Web Parts。对于某些人来说,这可能是一条有效的道路,但价格昂贵。

我们正在将MVC用于面向外部的用户界面,其中包含一些Silverlight模块,以满足需要更丰富用户交互的特定需求。

对于面向内部的用户界面,我们使用Silverlight / Prism / MVVM作为新模块,现在,使用浏览器控件在现有的WinForms Smart Client系统中托管新的Silverlight模块。我们已经能够在现有的智能客户端代码和Silverlight模块之间创建所需的交互,但却很麻烦。这适用于我们的系统,但您的里程可能会有所不同。我相信,我们使用的简单应用程序框架代替了Smart Client的更通用但更复杂的CAB框架,有助于简化集成。

在未来的某个时刻,我们将旧模块从WinForm升级到Silverlight,因为不再需要它们而放弃它们,或者重写它们以适应重大的业务变化。然后我们将重做宿主应用程序,完全接受Silverlight / Prism / MVVM环境并删除所有WinForm代码。这种方法的明显优势在于我们不必一次重做所有UI。

到目前为止,它对我们来说效果很好。不管你选择什么路线都祝你好运。