我正在评估一套基于web的应用程序的技术、原型设计和潜在的应用程序架构,这些应用程序是使用ASP.Net WebForms、UIP、Unity、MVP和封装Entlib 3.1的自定义框架编写的。我们在当前工具包中遇到的一些问题是:
-
很难利用最新的客户端技术将渐进增强构建到表示层中。
-
用户控件本身就很难重复使用,而且生成服务器控件增加的复杂性阻碍了它们的大规模使用。
-
母版页概念不提供组织范围内的重用。无论如何,项目团队都需要对其进行大量定制。
-
生成可访问、兼容和跨浏览器兼容的HTML是非常困难的。
-
在产品组合中的应用程序之间拥有可重复使用的屏幕(视图)的机会很少或根本没有。
我们的关键需求之一是能够生成可配置/可组合的导航流。在当前的体系结构中,UIP应用程序块可以相对轻松地实现这一点。
我们正在评估ASP.Net MVC4在未来web应用程序中的使用情况。
我的问题是:
有人用ASP.Net MVC实现了UIP风格的可配置/可组合导航功能吗?
我发现PageFlow应用程序块:http://webclientguidance.codeplex.com/wikipage?title=Page%20Flow%20Application%20Block这是为了解决这个确切的问题。
我从wcsf contrib项目下载了PageFlow应用程序块,http://wcsfcontrib.codeplex.com/,但源代码甚至没有在VS2010上编译。有人使用过PageFlow应用程序块吗?此应用程序块是否不受支持,因此已过时?
如果您需要为向导式web应用程序提供可配置的导航功能,您会如何做到这一点?
很抱歉问了这么长的问题。我想提供尽可能多的上下文。
我已经能够使用Visual Studio 2010构建PageFlow Guidance包。源代码在codeplex站点上可用:http://wcsfcontrib.codeplex.com
不过也有一些怪癖。以下是我遵循的步骤:
-
将"PageFlow应用程序块(VSTS测试).sln"解决方案升级到VS2010
-
确保您根据最新的Web客户端指导包二进制文件中的Entlib和Unity框架版本构建解决方案:http://webclientguidance.codeplex.com/
-
一旦你建立了这个系统,你还可以升级和建立visx指导包-"页面流指导包(VSTS测试).sln">
-
确保您在visual studio 的副本上安装了GAT2010和GAX2010扩展
-
确保引用GAX2010 中的Microsoft.Practices.RecipeFramework*程序集
-
页面流包和Web客户端指南包之间有一个奇怪的依赖关系。这是:Microsoft.Practices.RecipeFramework.Extensions.dll。您必须从Web客户端指南包二进制文件中获取此程序集。
一旦您能够构建PageFlow应用程序块和PageFlow指导包,您就可以开始了。当与Asp.NetMVC结合使用时,PageFlowHttpModule功能中有几个错误。依赖于.aspx http扩展来确定何时使用该模块。这很容易解决。
这个应用程序块为您提供了两种在应用程序中配置页面流的潜在方法:
- 使用Workflow Foundation 3.0
- 使用XML配置概念,与UIP完全相同
这两者都有优缺点。我们希望远离WF3.0,因为它增加了对旧版本的Windows工作流和AppFabric的依赖。除非有人将其升级到WF4.0,否则使用它没有多大意义。
与此同时,PageFlow应用程序块、MVC4和Visual Studio 2010正在像魅力一样工作,并在导航方面做我们想做的一切。