我正致力于从ASP.NET 4 / Webforms迁移到ASP.NET Core / MVC。我是MVC的新手,但理解这个概念。但是,我遇到了一个关于获取ASP.NET Core处理的问题。我有几个问题。
通过我的遗产(ASPNET4)项目,我写了一个"帮助"为我的Web项目提供基本功能的库: - 数据库处理(连接,清理,错误捕获,缓存,分页,绑定等)
其他功能(视图状态压缩,日期/时间功能等)
存储管理(会话,Cookie等)
插件(Twitter,facebook,google集成)
身份管理(与其他系统一起使用的自定义标识)
我认为你明白了......
多年来,我在不断更新和修复错误的同时开发了这个框架。它变得非常快速和稳定 - 它甚至可以处理你想要投入的任何数据库!
在研究时,我发现.NET Core让我很难完成相同的任务。首先,看起来CORE只支持对象关系映射器(实体,小巧等)。我非常满意ADO.NET,并了解其中的差异。我真的不想使用实体框架或Dapper。我可以从.NET Framework迁移大部分代码。但看起来在.NET Core中并不完全支持ADO.NET。是这种情况吗?
我的下一个问题出现在数据库支持之后。我发现很难从类库中管理会话/ cookie /等内容。也许我误解了这些概念,或者没有找到适当的文档,但似乎几乎不可能在外部库中管理Session / Cache / etc。是这样的吗?或者我是否需要研究创建自定义中间件?
基本上,我需要从库中完全访问网站,这样我就可以使用自己的代码处理会话,数据管理等内容。
MVC是ASP.NET唯一可用的选项吗?
最后,看起来Visual Studio 2015在处理.NET Core应用程序时非常麻烦和缓慢。这对我来说是一个很大的转折点,从界面到NuGet的一切似乎都很慢而且很糟糕。
我非常感谢有关我应该去哪里或从.NET核心开始的任何建议或建议,我花了数周时间阅读文档和试验,但没有取得任何实际进展。我真的想摆脱网络形态!
答案 0 :(得分:1)
下周二(2017年3月7日)Visual Studio 2017将发布,它完全集成了对.NET Core的支持。 VS15现在有预览工具,这会导致您遇到很多故障。你可能还想考虑转换到VS17 RC,如果你在这个过程的早期,因为.NET Core 1.1比1.0.1友好得多(在我看来,因为没有project.json)。
至于数据库交互,实体框架背后的想法是,它比在程序之上拥有DAL或其他数据库服务层有了极大的改进。通过EF Core的Middleware / DbContext,可以使用原始SQL或LINQ(或两者)完成所有数据库交互。通过这种交互,实际上不需要拥有DAL / ADO层。
Entity Framework基于ADO.NET构建,是对其他实体关系库的重大改进。请参阅下面关于维基百科上ADO.NET的mason评论,以便更好地了解这一点。
至于cookies / sessions,我对这类信息并不十分熟悉,但您可能想要研究的一件事是用于用户信息和会话的ASP.NET标识。 IdentityServer 4是另一种选择。