【问题标题】:Converting ASP.NET MVC Project to ServiceStack.Razor将 ASP.NET MVC 项目转换为 ServiceStack.Razor
【发布时间】:2013-07-27 10:01:33
【问题描述】:

我有一个现有的 ASP.NET MVC 4 项目,它已经将 ServiceStack 用于 REST 服务,我刚刚阅读了有关 ServiceStack.Razor 的所有内容,并且很想将整个项目移到 ServiceStack 上。现在除了内置的 AccountController 之外,只有一个控制器和视图,并且该控制器只是返回视图,而视图实际上只是 HTML;其他一切都是 HTML/CSS/JS + ServiceStack REST。

这里唯一真正的遗留限制是这个新应用仍然需要使用 SimpleMembership。目前我正在使用自定义身份验证提供程序对 SimpleMembership 进行身份验证,我希望能够继续这样做。

那么,实现这一目标的最佳推荐路径是什么?我可以通过删除一些引用来修改现有项目来获得我想要的东西,还是应该从一个空的 ASP.NET 应用程序重新开始并将旧的东西移入其中?我可以拥有 SimpleMembership 而不引入会跨过 ServiceStack.Razor 的依赖项吗?

【问题讨论】:

    标签: servicestack


    【解决方案1】:

    如果您只使用 servicestack 来启动一个新的解决方案,那么 MVC 将永远不会妨碍您。 我使用 servicestack.razor 并且喜欢它。在我看来,它比 MVC 简单得多。将所有内容移至新解决方案几乎就是复制和粘贴,因为您所拥有的内容有效。我不会犹豫,迟早会采取行动。最后,您没有从 MVC 中获得任何东西。您只能使用 servicestack。对我来说重要的是自托管并最终转向单声道。

    【讨论】:

      【解决方案2】:

      这个问题会根据意见给出答案,所以我怀疑你会收到一些。我没有亲自执行过这样的迁移,所以这只是意见,但我将如何处理它。但是,我推荐的方法是:

      1. 保留现有应用程序/鉴于其当前的简单性,创建新应用程序并将现有项目移入其中似乎没有必要。
      2. 您应该能够通过 SimpleMembership 使用现有的身份验证解决方案并使用 ServiceStack.Razor。我会照此进行,但它确实取决于您可能使用的其他 ServiceStack 功能,哪些可能会导致冲突。 ServiceStack 专家可以对此发表更多评论。即使确实发生了这种情况,您也可以相对轻松地解决它。在最坏的情况下,实现一个简单的处理程序可以从身份验证的角度解决几乎所有问题。
      3. 使用不同的剃须刀引擎相对容易,您可以通过几行代码使用/启用/禁用现有或新的构建引擎。有关示例,请参阅here。这应该可以减轻对其他内置或自定义引擎的依赖关系的任何担忧。
      4. 考虑查看 ASp.Net 4.5.1/VS 2013(因为您的项目还处于早期阶段),因为它增强了对成员的支持,并且正在通过 Owin 堆栈Asp.Net 4.5.1 and VS 2013 转向更“不那么依赖”的组件模型. Katana 是一个微软项目,它还提供了一些基于 Owin 的身份验证组件 see herehere,您现在可以使用它们,这将消除很多依赖关系,并使您能够相对轻松地迁移其他框架。缺点是 Katana/Owin 有一点加速时间/学习曲线。同样,鉴于您的项目正处于形成阶段,我建议您研究一下 Katana 和 ASP.Net vNext 的东西,因为这会让您更轻松,并且意味着您不必在新版本发布后迁移到它。

      【讨论】:

      • 谢谢你,很多有用的建议。我仍然不清楚的一件事是如何防止 ASP.NET MVC 路由与 SS.Razor 路由冲突。是否像删除 RouteConfig 中的 routes.MapRoute() 调用一样简单?如果我根本不使用 ASP.NET MVC 路由,是否可以删除通常需要放入其中以防止与 ServiceStack /api 路由冲突的 IgnoreRoute() 调用?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多