我在asp.net论坛上提出了这个问题,但似乎没有人知道我在说什么。我不确定为什么会这样,但我想在这里问问是否有人有一些见解。
早些时候,MVC2发布时包含了一个示例AccountController,用可测试的接口和服务包装了内置的Membership和FormsAuthentication类。我读了很多关于这个的文章,因为Membership和FormsAuthentication类不容易进行测试,所以这被认为是一件好事。
最近,我使用我的最新环境(SP1、MVC3、工具更新等)生成了一个新的示例项目,发现AccountController现在简单得多。接口、MembershipService和FormsAuthenticationServices都消失了,示例现在直接调用Membership和FormsAuthentication类。
我想知道这是何时发生的,为什么会这样?可测试的接口不再被认为是正确的吗?改变这种做法是否有技术原因?
我能想到的最好的解释是,这是为了消除在传递返回URL时可能存在的漏洞而进行的更改。
有什么见解吗?
SqlMembershipProvider
,只是新模型直接调用Membership.ValidateUser
,而在ASP.NET MVC 2中,它们使用了一个抽象。 - Darin DimitrovFormsAuthentication
)更紧密地耦合。也许是为了使代码更短。实际上,应用TDD的人并不关心默认的ASP.NET MVC项目。他们只是简单地进行TDD。对于其他所有人(对我来说,这些人占大多数),他们决定提供一些易于理解的模板,并在没有太多麻烦的情况下运行一些应用程序。好吧,麻烦稍后会成为SO问题 :-) - Darin Dimitrov