前言:
在ASP.NET Core 1.0時,曾折騰過一次,后因發現不了System.Data而停止。
更因VS2015提示過期Delete掉VS了,其實主要還是筆記本的硬盤空間吃緊。
快雙十一了,本想過重新買台筆本來折騰.NET Core。
睡覺時,莫名腦袋一轉,格了系統重來吧,然后就省下一台筆記本的錢了。
花了半天,終於把VS2015環境都裝好了,終於又開始作了。
VS環境安裝過程:
1:Win7系統,要裝SP1,才能安裝VS2015(安裝后6-7個G大小)
2:下載安裝VS2015(安裝后快10個G了)
3:安裝:Visual Studio 2015 Update 3
4:安裝:.NET Core 1.0.1 - VS 2015 Tooling Preview 2
5:安裝:.NET Framework 4.6.2
把東東都裝齊,一天就過去了。
VS編繹的過程:
目標:編繹一個CYQ.Data的Core版本類庫。
結果:只完成了10%。
下面分享作騰的過程:
新建了一個類庫項目:

裝完VS2015,發現只有Web Application(.NET Core),新建還是空的,無語!
后來到處下東西裝了半天,才出來。
安裝了4.6.2,發現.NET Framework下拉里也沒出來?
好吧,就這樣吧,反正能用。
建好項目之后,問題就一個接一個來了:
1:VS環境問題:
想要:用上篇文章可視化調試工具里的技巧,通過復制項目的解決方案,來引用同一個位置的文件。
結果:走不通。
原因:AssemblyInfo.cs 這個文件有點不一樣。
.NET Core的是簡化版,而且說明和版本號,都移值到project.json里去了。

解決方法:只有悲催的復制一份代碼過去,編繹。
悲催的另一個功能:包含或排除項目文件:

只有隱藏和顯示,悲催的是,隱藏掉的,也會被編繹,無語問蒼天。
結果:只能Delete掉才能避開編繹錯誤。
2:API缺少的問題:
一編繹,幾百上千個錯誤,嚇死小伙伴了,經過一夜的努力,還有100多Error。

下面說說一些API的缺少,以及曲線救過的方法:
1:關於引用。
發現我已經不懂怎么用了,因為:


好在,代碼提示里還能引用:


就這樣,引入了兩個System.Data、System.Data.Common:

2:關於不支持的API
1:System.Data.OleDb
2:System.Data.OracleClient
3:System.Runtime.Serialization.Formatters.Binary
4:System.Web
5:System.Configuration
6:System.Runtime.Cache
7:Winform或WPF系列。
太多了,數不過來,還有一些雖然有名稱空間,但是缺少方法或屬性。
目前的處理方式:
1:將不支持的功能,用部分類分離到單獨的一個文件夾:
以下像引用到Winform或序列化的,直接單獨到Extension,后續引到.NET Core時,直接刪除這個文件夾。

2:將不支持,但有代替方法的,用擴展方法,或者定義相似方法來替代:
如:
public class AppDomain
{
public class CurrentDomain
{
public static string BaseDirectory
{
get
{
return AppContext.BaseDirectory;
}
}
}
}
3:將不支持,也沒有代碼方法的,只有重寫功能了:
比如:Cache,雖然MemoryCache,但原有的文件依賴功能卻沒有了。
二進制序列化:ToJson容易,從Json回來就還有大量事情要處理了。
4:沒有System.Web
剛發現在Microsoft.AspNetCore.Http下,大部分類是相似的。
5:沒有DataTable,DBDataReader也沒有GetSchemaTable()方法。
6:另外還發現有數不清的不同:
就不一一詳述了。
其它:
.NET Core 的開源地址:https://github.com/dotnet/corefx
從源碼的提供提交日期看,還是保持着經常性的更新的。
.NET Core 的使用文檔:https://docs.asp.net/en/latest/intro.html
補充內容:
.NET Core 微軟官方的源碼查看:https://source.dot.net
剛掃了一下,看出來了,微軟官方的源碼比Github上的新,而且一些臨臨散散的API也都補了或正在補中。
所以,還是可以期待下一個版本的。
總結:
總體而言:在目前階段,要想把原有的類庫遷移到.NET Core,工作量是相當的大啊!!!
而且好多功能得自己腦補,得曲線實現相關的功能,這門檻就大大的提高了!!!
不過總要有前人努力,后人才能乘涼,大伙都還是可以努力一下的!!!
