2017-03-01 230 views
1

我正在从ASP.NET 4/Webforms迁移到ASP.NET Core/MVC。我是MVC的新手,但理解这个概念。然而,我已经遇到了处理ASP.NET Core的一个问题。我有几个问题。从ASP.NET 4迁移到.NET核心1.1

随着我的遗产(ASPNET4)项目中,我写了一个“助手”库,为我的网站项目提供了基本的功能: - 数据库处理(连接,清理,错误捕获,缓冲,分页,装订等)

  • 杂项功能(视图状态压缩,日期/时间函数,等)

  • 存储管理(会话,饼干等)

  • 插件(的Twitter,Facebook,谷歌INT egrations)

  • 身份管理,与其他系统的工作原理(自定义标识)

  • 我想你明白了吧...

多年来,我已经开发了这个框架,同时不断更新和错误修复。它变得非常快速和稳定 - 它甚至可以处理任何你想要扔到它的数据库!

在研究时,我发现.NET Core使我很难完成相同的任务。首先,CORE似乎只支持对象关系映射器(实体,小巧等)。我完全满意于ADO.NET,并了解它们之间的差异。我真的不想使用实体框架或Dapper。我可以从.NET Framework迁移大部分代码。但是看起来ADO.NET在.NET Core中并不完全支持。是这样吗?

我的下一个问题出现在数据库支持之后。我发现难以管理像类库中的会话/ cookies /等事情。也许我误解了这些概念,或者找不到合适的文档,但看起来似乎几乎不可能在外部库中管理Session/Cache/etc。是这样吗?或者我需要研究创建自定义中间件?

基本上,我需要从库中,所以我可以用我自己的代码来处理之类的东西会话,数据管理完全访问的网站等

是MVC的ASP.NET唯一可用的选项?

最后,看起来Visual Studio 2015在处理.NET Core应用程序方面非常糟糕且缓慢。这对我来说是一个重大的转折,从界面到NuGet的所有内容看起来都很慢并且很糟糕。

任何关于我应该去哪里或从.NET核心开始的建议或建议都非常感谢,我花了几个星期阅读文档和试验,但没有取得真正的进展。我真的想离开webforms!

回答

1

下周二(3/7/17)Visual Studio 2017将发布,它已完全集成了对.NET Core的支持。 VS15现在有预览工具,这会导致很多您遇到的问题。因为.NET Core 1.1比1.0.1更友好(在我看来,因为没有project.json),所以你可能还想考虑现在转换到VS17 RC。

至于数据库交互,实体框架背后的想法是,在程序之上有一个DAL或另一个数据库服务层是一个巨大的改进。通过EF Core的Middleware/DbContext,所有数据库交互都可以使用原始SQL或LINQ(或两者)完成。通过这种交互,实际上并不需要拥有DAL/ADO层。

实体框架建立在ADO.NET之上,与其他实体关系库相比是一个巨大的改进。请参阅下面的维基百科ADO.NET上的梅森评论,以便更好地了解这一点。

至于cookie /会话,我对这类信息并没有太多的经验,但您可能想要考虑的一件事是用户信息和会话的ASP.NET身份。 IdentityServer 4是另一种选择。

+1

ADO.NET(大部分)仍然在.NET Core中。 EF仍然建立在它之上。看看[源代码](https://github.com/aspnet/EntityFramework/blob/dev/src/Microsoft.EntityFrameworkCore.SqlServer.Design/Internal/SqlServerDatabaseModelFactory.cs)。 – mason

+0

哎呀,我的术语对那些东西来说真的很糟糕。我会更新我的答案以获得更好的用法。谢谢! –

+0

不用担心你的术语。我读了很多Entity框架的性能评估,并没有给我留下深刻的印象。我只是更喜欢ADONET,但我想我应该开始学习过程。 很高兴知道由于预览工具,一切都很糟糕。我已经与VS17 RC搞混了,但是它造成了VS15的问题。尽管这是几个月前的事情,但我还是要再去一次。谢谢! – mackhax0r