将ASP.NET MVC项目转换为ServiceStack.Razor

时间:2013-07-25 22:00:18

标签: servicestack

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

这是一个基于意见的答案,所以我怀疑你会得到一些答案。我没有亲自进行过这样的迁移,所以这只是意见,但我会如何处理它。但是,我推荐的方法是:

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