無名之路2

C# 標準庫html

把跨 runtime 的玩意直接做對比 (ASP.NET MVC on .NET Framework runtime VS ASP.NET Core Razor Pages on .NET Core runtime ) 是沒有意義的

先學 JavaSE 再學 JavaEE 
https://www.zhihu.com/question/31455874/answer/62609703

聊一聊 2個 runtime 通用的 BCL 是很好的,如今就是不想去管 2個 runtime 的差別 (更不用去管 OpenJDK 提供的某個特殊的類,Oracle JDK 提供的某個特殊的類) 

這就是 C# 標準庫阿(對標 JavaSE),不須要聊 哪一個 runtime (就像 不須要聊是 OpenJDK 仍是 Oracle JDK) 

各類 ASP.NET MVC 是對標 JavaEE 

用類庫,先看 它的 runtime 。若是是通用的 runtime ,那麼 它就是 JavaSE (對標 .NET Standard 2.0)
位於 BCL 上層的應用特定的庫(例如 ASP.NET)並不能在全部 .NET 實現中使用:OpenJDK 提供的某個函數 不併在 Oracle JDK 裏使用。
https://docs.microsoft.com/zh-cn/dotnet/standard/framework-libraries

標準庫python

第三方庫linux

  • 各類 Java 第三方庫
  • JavaEE
  • C# FCL
  • 各類 python 第三方庫

編程語言的執行web

https://docs.microsoft.com/zh-cn/dotnet/csharp/getting-started/introduction-to-the-csharp-language-and-the-net-framework

標準庫裏的好玩的:正則表達式

  • packages 1
  • 實用工具 API 1
  • 數據結構 容器類 1
  • 文本處理
  • IO
  • 下載 122
  • 排序
  • 正則表達式
  • 常識 類庫的組織1、 IDisposable 接口1 2
C# 標準庫在2個runtime上通用 
C# 標準庫是 OOP 的形勢,有不少類,也叫作類庫
C# 標準庫也就是通用性很大的類庫
用 「適配了幾個 runtime 」 來判斷一個組件是 BCL 仍是 FCL ,是錯誤的。有一些 FCL 僅僅是 已經適配完成了而已,它不會因 適配完成 而 從 FCL 變成 BCL 。

通常人先學的應該是 BCL ,而後是 已經適配了幾個 runtime 的 FCL (通用性強的 FCL),最後是 某一個 runtime 的 FCL (通用性弱的 FCL)

有的 FCL 會適配幾個 runtime ,好比:
Microsoft.Extensions.DependencyInjection 組件

有的 FCL 永遠不會適配幾個 runtime ,好比:
System.Web.Routing 組件
是典型的 通用性弱的 FCL 

System.Web.Routing 組件 這就是僅僅適用於 .NET Framework runtime 的類庫。

一些 C# 庫在某些方面,沒法抹殺2個runtime的差別,好比 FCL

一些 C# 庫在某些方面,沒法抹殺2個runtime的差別,好比 BCL

這樣的說法是能夠的:C# 標準庫抹殺了2個runtime的差別的方面,也叫作 BCL 基礎類庫。System.Web.Routing 就是 FCL ,它僅能在 .NET Framework runtime 上使用,沒法在 .NET Core runtime 上使用的。ASP.NET Core 它僅能在 .NET Core runtime 上使用的,沒法在 .NET Framework 上使用。或者 WPF (做爲一個 FCL) 能在 .NET Framework runtime 上使用、能在 .NET Core runtime on Windows 上使用,不能在 .NET Core runtime on linux 上使用

注意:
1 FCL 即便已在2個runtime上通用,它也是 FCL ,而後,這樣的 FCL 在使用上,給人的感覺,wow 就是 BCL 阿!
2 FCL 即便已被適配的 runtime 再多,它也是 FCL ,由於若是微軟新出了一個 runtime ,FCL 被實現的優先級確定是在 BCL 以後的。
3 其餘編程語言的 「標準庫」 應該是對標 C# BCL ,並不包括(通用性強或弱的) FCL 
4 把跨 runtime 的玩意直接做對比 (ASP.NET MVC on .NET Framework runtime VS ASP.NET Core Razor Pages on .NET Core runtime ) 是沒有意義的 ... 

典型的 FCL
System.Web.Routing 
WPF, WinForms
ADO.NET
ASP.NET
ASP.NET Core 
EF
EF Core

參考 
https://www.cnblogs.com/makesense/p/6237939.html
https://stackoverflow.com/questions/807880/bcl-base-class-library-vs-fcl-framework-class-library

At Microsoft, I believe the CLR team (of responsiblity of different runtime) owns the BCL, while many teams (of responsiblity of different runtime) own different parts of the FCL.
https://stackoverflow.com/questions/807880/bcl-base-class-library-vs-fcl-framework-class-library
相關文章
相關標籤/搜索