博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017 .NET 開發者須知
阅读量:4632 次
发布时间:2019-06-09

本文共 2564 字,大约阅读时间需要 8 分钟。

筆記-Scott Hanselman 的 2017 .NET 開發者須知

转载http://blog.darkthread.net/post-2017-01-16-dotnet-dev-should-know-2017.aspx

Scott Hanselman 前兩天有篇文章-,我的工作(甚至生活)跟 .NET 息息相關,重量級人物的觀點自然不容錯過,整理筆記如下:

前言

  • Scott 之前整理過類似的 .NET 須知,結果被大家拿來當作面試時折磨新人的刑具…
  • 清單很長,但並不是每則都必須搞懂弄通,應視自己所需以及學習習慣取捨,有些知道名詞即可,有些應該深入了解。
  •  是 .NET 技術資源的新入口,首頁有個線上 C# 編譯器可以玩玩。

必備知識

  • ,分成 .NET Framework、.NET Core、Xamarin 三種 Runtime,底層是 .NET Standard…
    延伸閱讀:
  • .NET Framework - 用於 Windows 平台
  • .NET Core – 可通行於 Windows、Linux、Mac
  • Mono for Xamarin – 整合 .NET 與手機原生 API,可開發 iOS 及 Android App
  • 主要語言:C#、F#、VB.NET
  • 如何開始?
    •  下載 .NET Core 以及 Visual Studio Code
    •  文件入口
    •  Open Source 程式碼
  • 指可使用的 API 集合,例如:.NET 4.6 Framework、.NET Standard 等,有時會以 TFM 表示
  • Platforms 平台
    如 Windows、Linux、Mac、Android、iOS 等,還會進一步區分 x86、x64。
  • 用來表示平台版本的簡稱,例如 net462(.NET 4.6.2)、net35(.NET 3.5)、uap(Universal Windows Platform),指定 TPM 決定可以使用的 API 範圍。
  • .NET 愈來愈依賴透過 NuGet 下載必要程式庫及核心元件,許多東西不再預先安裝於本機,而是新起專案時才下載,這年頭 .NET 開發者不會 NuGet 恐怕混不下去。
    延伸閱讀:
  • Assembly 組件
    .NET 程式編譯後的產出,多以 DLL、EXE 方式存在,是部署、版本管理、重複利用以及權限控管的基本單位。
    .NET Core 的編譯結果則是一個 NuGet Package,包含組件以及額外的 Metadata。
  • .NET Framework 聚焦於 Windows 平台(桌機、平板、手機、XBOX),.NET Core 則可跨平台。

應該知道

  •   
    Common Language Runtime (CLR),執行 .NET Framework 的虛擬機器元件(for Windows)
  • .NET Core 用的 Runtime
  • Xamarin 及 Linux 系統用的 .NET Runtime
  • .NET Core 的 .NET 類別程式庫,部分程式碼與 Mono 共用。
  • C# 與 Visual Basic 編譯器,有開放讀、寫、分析程式碼的 API  可供延伸應用。
  • GC
    .NET 使用記憶體回收機制,免除開發者自行管理記憶體的負擔。延伸閱讀:.
  • "Managed Code"
    指使用 .NET 語言開發的程式,相對另一種是 Unmanaged Code,指用 C/C++/VB/Delphi 寫的程式、ActiveX、COM+元件。
  • .NET 編譯結果非機器碼,而是一種中間語言(Intermediate Language),執行時才由 Runtime JIT 編譯成機器語言。
    Scott 的比喻:C# 是蘋果,IL 是蘋果醬、JIT 及 CLR 再將它磨成磨成蘋果汁。
  • JIT
    Just in Time Compiler,即時將 IL 編譯成機器語言。
  • .NET Framework 的儲存位置在 C:\Windows\Microsoft.NET,而 .NET Core 在 C:\Program Files\dotnet,在 Mac 則為 /usr/local/share。但 .NET Core 允許把 Runtime 包進程式的 Package 一起部署,如此客戶端不需事先安裝 .NET Core Runtime,只要 xcopy 就可以部署(xcopy-deployable or bin-deployable),這種做法稱為:,反之則稱為 Shared Framework Apps。
  • async 與 await 指令可解決執行耗時動作(例如查詢資料庫,呼叫 Web API)程式卡住的問題。
  • 一種允許跨平台使用的「最大公約數」性質的共用程式庫,未來建議改用.NET Standard。
  •  
    由 、一組  以及一組 以及組成,這一切可由 取得。
    'dotnet' 程式可用於啟動 .NET Core 程式,它會選取並執行適當的 Runtime,提供組件載入原則並啟動程式,SDK 工具也是用相同方式啟動。

錦上添花

    • GAC
      Global Assembly Cache,完整版 .NET Framework 在 Windows 平台上保存與管理共用程式庫的地方,可使用"gacutil /l"查看清單
    • 組件載入與繫結的原理
    • 觀測 C# 或 .NET Core 程式碼執行狀況(記憶體用量、GC頻率等)效能,Visual Studio 有不少。
    • LINQ - (編按:我認為依其普遍性應足以列為 .NET 須知)
    • 定義 .NET 通用型別及通用語言規範
    • 未來 .NET 除了編譯成 IL,還可以編譯成原生機器語言,明顯提升效能及破解防護力。
    • 微軟制定的 2017 .NET 發展計劃
    • C# 7 值得一看的新特色
    • Reactive Extensions (Rx) 是一組使用 Observable Sequence 與 LINQ 式查詢的非同步與事件基礎程式庫,可用來建立複雜的事件基礎程式以及使用 LINQ 語法以非同步方式處理資料流。

转载于:https://www.cnblogs.com/luhe/p/6826286.html

你可能感兴趣的文章
多域名同一个IP在IIS环境下架设多个网站 主机头
查看>>
Python学习之路!!!之整数、字符串介绍
查看>>
Mysql授权远程登录
查看>>
java4中创建内对象的方法
查看>>
使用Docker Swarm搭建分布式爬虫集群
查看>>
脚踏实地学C#3-装箱和拆箱
查看>>
Dubbo定义及其作用
查看>>
APP技术演化的路
查看>>
HDU 1556
查看>>
js获取浏览器屏幕高度、宽度等
查看>>
javascript原型链
查看>>
环信 iOS SDK讲解
查看>>
[随想感悟] 面试时,问哪些问题能试出一个 Android 应用开发者真正的水平?【转自知乎】...
查看>>
ZOJ1969-Hard to Believe, but True!
查看>>
金花菜
查看>>
从MSN Messenger的Hand Writing开始
查看>>
微信支付v3发布到iis时的证书问题
查看>>
[NOI2015]软件包管理器
查看>>
jquery根据name属性查找
查看>>
清空表数据 mysql让主键从1开始
查看>>