【问题标题】:Migrate Existing Web Form Application to ASP.Net MVC Single Page Application将现有的 Web 表单应用程序迁移到 ASP.Net MVC 单页应用程序
【发布时间】:2014-01-01 15:54:19
【问题描述】:

我有一个内置于 ASP.Net WebForms 和 Silverlight 的应用程序。 我的应用程序的 silverlight 部分可以访问另一个 WCF 服务应用程序。

现在我必须在 MVC 单页应用程序 (SPA) 和 WCF 中重新创建整个应用程序,因为现在我需要 Web API。

想到的初始解决方案是将 Web api 项目添加到 wcf 服务应用程序中,并开始在那里创建 Web 方法并从那里调用 wcf 方法(如果该功能已经存在)。

对于 webform,从头开始使用 mvc 项目创建一个新的 spa,并使用 durandal 或任何其他 spa 客户端框架(编码地狱)。

任何有用的解决方案/建议?因为我正在寻找简单。

我四处搜索并found 一些问题,但实际上并没有帮助,因为它们是关于与现有应用程序合并的。

注意:应用程序是一个具有很多功能的大型应用程序

【问题讨论】:

标签: asp.net asp.net-mvc asp.net-web-api durandal asp.net-spa


【解决方案1】:

您必须确定您的团队对客户端框架的信心程度。单页应用程序的开发一开始可能并不容易,但您很快就会习惯。为您的团队提供正确的培训非常重要。

在我看来,Durandal 是构建企业级 SPA 的最简单、最优雅和最完整的框架。了解淘汰赛、requre 和 durandal 的路由器和组合如何工作非常重要。对于以数据为中心的应用程序,我会使用微风在客户端操作和缓存数据,并从服务器端请求它。 Breeze 在服务器端与 Entity Framework 配合使用效果最好,但这不是必需的。如果您可以使用 Entity Framework,它将简化您的开发,因为它可以轻松地生成数据库结构的元数据。如果实体框架不是一个选项,则可以手动编写元数据。

我会让服务器端尽可能薄。使用带有您选择的 ORM 和一些 cshtml 页面的 web api 提供数据库中的数据。

Durandal Get Started 是一个很好的起点。

Durandal Auth是一个非常好的企业级SPA模板。它可能并不完全适合您,但您可以将其用作构建应用程序不同模块的指导。

Breeze samples我建议你考虑使用微风。有很多关于复数视力的好课程。

Knockoutjs 接受过良好的数据绑定培训。

【讨论】:

  • 我能有你的 durandal 模块化方法的 cmets 吗?如何在服务器端模仿它。您提到服务器端应该很薄,我同意这一点,但是我们可以制作一个像 orchard CMS 或 Sharepoint 或 wordpress 这样的系统,允许根据需要插入模块,我如何在 SPA 中做到这一点。
  • 您可以将您的插件模块构建为widgets。然后,您可以从 web api 读取用户内容设置并使用 durandal 的 Composition 模块Composition module。使用动态合成,您可以有选择地显示您的小部件。
猜你喜欢
  • 1970-01-01
  • 2018-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
  • 2013-12-30
  • 1970-01-01
相关资源
最近更新 更多