2

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

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

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

4

2 回答 2

2

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

于 2013-07-27T02:01:33.847 回答
1

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

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