2017-03-01 244 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