C Sharp 基礎知識系列- 16 開發工具篇

2020-12-10 程式設計師小高學習筆記

0. 前言

這是C# 基礎知識系列的最後一個內容講解篇,下一篇是基礎知識-實戰篇。這一篇主要講解一下C#程序的結構和主要編程工具。

1. 工具

工欲善其事必先利其器,在實際動手之前我們先來看看想要編寫一套C#程序需要做哪些準備吧。

1.1 選擇

C# 的sdk在之前的某個時間點分為了三個方向:

.net framework 4.X.net coremonoUWP有人可能問了,.net和C#是什麼關係。首先需要明確一個概念,C#是一門程式語言,.net是一個CLR,即公共語言運行庫。這部分概念比較抽象,不過我這麼說大家可能會理解裡面的關係了:C#是.net支持的一門語言,於此同時.net還支持F#,Visual C++等。也就是說,.net是一個平臺,而C#是運行在這個平臺上的語言。

不過,通常上因為.net支持的其他語言並不如C#出名,所以很多人就忽略了兩者之間的區別,有時候也用.net代指C#了。

講了這麼多廢話,回到之前。.net分了三個方向,第一個方向是沿用之前版本,繼續深耕Windows環境。.net core是微軟為了跨平臺戰略而開發的,目前支持 Windows/Linux/Mac等系統。後續的文章也將基於.net core進行。Mono是早期在Linux環境中支持.net framework的一套SDK,後來微軟把這項技術合併到了.net發展戰略裡了,現在支持Android、Mac應用開發。最後一個是UWP,通用Windows平臺,據說是為了物聯網研究的。

嗯,因為我的工作方向是 BS,也就是做網站開發的,再加上需要接觸一些Linux的系統,所以整體就在.net core這個框架下進行後續開發和工作了。換句話說,整個C# 系列都是在.net core上運行的。

1.2 開發工具

在選擇了.net core之後,我們就要選擇一個適合我們的開發工具了。

1.2.1 Visual Studio

先放一張Visual Studio 2019的圖。

這是到目前(2020年05月05日)為止,微軟開發的最強大的編譯器。在編譯器界,Visual Studio有著「宇宙第一編譯器」的美名。當然最早是因為其安裝包十分巨大,動則2~3G的全量安裝,再加上其昂貴的正版授權價格,所以被稱為第一編譯器。後來隨著微軟更改了安裝方式,改為在線安裝然後模塊化安裝,讓程式設計師可以用哪些裝哪些,減少了安裝包的大小,同時進一步增強了作為編譯器的功能,添加了Community版本(社區版,免費的)之後,第一編譯器就成了名副其實的美名。

下圖是 Visual Studio支持的功能:

具體的安裝就不演示了,這部分網上教程也比較多。如果有疑問的話,可以留言或者私信我哦。

當然了,即使是旗艦版,Visual Studio2019在網上也有很多激活碼 ,不過對於公司的話,這部分可能會有法律風險。個人學習研究的話,沒事。笑XD

1.2.2 Visual Studio Code

嗯,Code是微軟開發的另一個神器,憑藉著其輕量、開源和免費這幾大特性迅速佔領了開發者們的內心。再加上其豐富的插件支持,更是讓人慾罷不能。

Code支持跨平臺,Windows/Linux/Mac都支持。下圖是示意圖:

1.2.3 Jetbrains Rider

這是捷克一家軟體公司開發的編譯器,支持跨平臺。語言的智能提示比VS好一點,而且也輕一點。這是它功能特定的宣傳圖:

可以說功能非常強勁,當然了也是收費的。目前市面上沒有很穩定的科學方法。咳咳,我啥也沒說。

1.2.4 總結

如果是初學者,我建議使用Visual Studio ,不愧與第一編譯器的美名。如果是在Linux環境的話,初學者建議試試Rider。

當然了,對於極客或者Linux環境但預算不高的小夥伴可以試試VS Code,搭配好插件功能也不比另外的編譯器差到哪裡去。

註:Rider單個軟體的訂閱是 139美元一年(首年),不過據說有免費的方式。

關於選擇編譯器的問題,如果是Linux環境,需要事先安裝 .net core sdk。這部分內容請參照微軟的官方,搜索關鍵詞:net core

這個頁面點進去就行,如果在安裝過程中有疑問歡迎留言,私信我。

對於Visual Studio則沒有這部分煩惱了,只需要在安裝過程中選中 net core開發支持即可。

當然,還有更究極的開發方式:使用文本編輯器,然後用命令行dotnet執行。嗯,這樣很牛但是挺累的,我就不推薦給你們了。

2. 項目類型

這是在.net core上支持的一些通用的項目類型,我們常用是 console類型(一個控制臺程序)、mvc(asp.net core版的mvc項目)、web (一個網站項目)等。

具體的項目情況會在後續的篇幅中介紹,記住net core支持這些類型的項目即可。

3. 總結

這一篇稀裡糊塗的介紹完了,之後還有一個實戰系列。完結之後,C#的基礎知識系列就暫時告一段落了,不過後續還有可能會針對單個知識點的深入講解,按照計劃如果知識點比較大將會新開一個系列,比如之前的多線程和任務那一章,其實是C# 並發編程系列的開篇 。不過下一個系列應該是 C# 數據訪問系列。這個系列講解如何通過ADO.net、EF、Nhibernate等框架操作資料庫。

那麼,敬請期待第一個實戰篇吧,親愛的小夥伴們。

最後的最後,有問題可以隨時回復或私信。當然了,我寫的有錯誤或者不嚴謹或遺漏的地方也請指出哦。

相關焦點

  • CSharp 基礎知識系列-IO篇 流的操作
    前言繼續之前的C# IO流,在前幾篇小短片中我們大概看了下C# 的基礎IO也對文件、目錄和路徑的操作有了一定的了解。這一篇開始,給大家演示一下流的各種操作。以文件流為例,一起來看看如何操作吧。使用流適配器普通的流讀取和寫入都是使用字節數組,這在實際開發中非常不方便,所以C#又在流的基礎上開發了流適配器。C#中流適配器是指XXXReader或者XXXWriter,這種類在初始化的時候傳入一個流作為操作對象,然後對這個流進行一定的封裝,簡化了其操作方法。
  • C Sharp 基礎知識系列- 2 字符串
    String的常見方法String 變量的聲明方式C#中字符串常見的聲明有兩種:直接使用字面值 即String s = "12321";使用構造器,即String s = new String("12321");string 的特點String(字符串)在大多數開發語言中屬於不可變量,任何針對String
  • CSharp 基礎知識系列- 3 集合數組
    主要集合C#/.NET Framework 提供了很多很有意思的集合類,數組、列表、鍊表、Set、字典等一系列的類。其中數組是語言的一部分,個人認為嚴格意義上不屬於集合類這一部分。C#開發中常用的集合有數組、 List類、Set接口、Dictionary類、Queue類、LinkedList類等,其他的出鏡率不高。
  • C#學習路線(看完不惑系列)
    Visual Studio 2017下載路徑:https://visualstudio.microsoft.com/zh-hans/downloads/本篇文章剩餘部分主要是介紹利用微軟C#官方文檔和網上資源學習。
  • 第十七文:編譯基礎知識之cmake第一篇
    聲明:寫這篇文章是因為筆者發現身邊很多小夥伴由於不怎麼需要關心編譯鏈路問題,所以對於編譯的一些基本知識還是不是很了解。
  • CSharp 基礎知識系列- 8 Linq最後一部分查詢表達式語法實踐
    1 前言之前的幾篇文章介紹了Lambda和Linq的一些支持方法。這一篇我嘗試通過模擬具體的業務場景來描述一下Linq的兩種查詢方式的使用。注意,本篇內容需要先看過 《C# 基礎系列-7》,並有一定的對象和集合的基礎。1.1 數據準備:因為這篇內容會涉及到多個數據源,所以這裡需要準備一些類和數據,以下數據純屬虛構,不涉及到現實。
  • Arduino入門參考教程(1)基礎知識與開發環境篇
    Arduino學習筆記(1)   基礎知識與開發環境篇下面為大家介紹本文的食用指南。本文適用於10歲-沒上限年齡段的人食用。    Arduino IDE作為Arduino開發板的開發環境,Arduino開發板的程序需要在其開發環境中編寫,並要求滿足一定的語法規則,但大致還是跟隨C語言的語法規則。
  • 《基礎篇Ⅰ》網點紙的基礎知識及專用工具
    《職業漫畫技法教程》基礎篇 I日本寶貝豆漫畫研究社編著網點紙的基礎知識及專用工具網狀網點紙和漸變網點紙是最常用到的兩種網點紙,特別是第61號色網狀網點紙是漫畫製作的基礎款,使用它的頻率最高,通常在漫畫中作為陰影使用。
  • C Sharp 基礎知識系列 - 15 異常處理
    這時候就要求程式設計師在開發過程中,對一些可能出現的場景進行預估,然後預先處理這些錯誤。而異常處理機制使得程式設計師更加簡單方便的處理這些錯誤。1. 異常類C#中,所有異常都繼承自System.Exception類,Exception類定義了C#異常應該具有的信息和方法。
  • CSharp基礎知識-面向對象
    那麼封裝有什麼好處呢:對外隱藏實現,防止外部篡改引發安全問題減少不必要的關聯,被調用方需要調用方提供參數,但除此之外調用方只需要靜待被調用方返回結果就行打包一系列的操作,防止中間發生變故不過很多人對擴展方法褒貶不一,有人認為擴展方法極易破壞繼承鏈,導致一些不必要的麻煩;有人認為擴展方法就跟工具方法一樣,而且可以優化調用方式,統一使用風格。不過我看來,擴展方法利大於弊。因為擴展方法可以在不修改原有類的基礎上增加功能,同時它也是一個工具類,跟普通的方法是一致的。
  • 玩轉Mysql系列 - 第6篇:select查詢基礎篇
    這是Mysql系列第6篇。環境:mysql5.7.25,cmd命令中進行演示。DQL(Data QueryLanguage):數據查詢語言,通俗點講就是從資料庫獲取數據的,按照DQL的語法給資料庫發送一條指令,資料庫將按需求返回數據。DQL分多篇來說,本文屬於第1篇。
  • 基於R語言的shiny網頁工具開發基礎系列-03
    appShiny 小部件widgets 從用戶手裡收集值,當用戶改變小工具的時候,值也會變控制小部件如圖有各種小部件,shiny有一系列的小部件,每個都可以用直白命名的R函數創建,例如函數actionButton 用來創建 動作按鈕 (Action Button),函數 sliderInput
  • C 語言程序設計---入門篇
    從本篇文章開始,我將分享 C 系列,將 C 語言的方方面面,從最基礎的語法帶領大家入門
  • 基於R語言的shiny網頁工具開發基礎系列-05
    l5-更複雜的反應app創建一個更複雜的依賴R腳本和額外數據的有靈魂的(能反應的)app使用R腳本和數據此篇旨在展示如何載入數據,R腳本,包,用來構建app。當用戶與小工具交互,並改變他們的值,shiny會重新運行R表達式,分配給每個依賴於被改變的小工具的值的反應對象,如果用戶足夠活躍,這些表達式會運行很多很多次。
  • Android開發環境搭建【Android基礎第1篇】
    上一篇講了Android的一些基本概念,我們知道了什麼是Android,什麼是APK,知道了Dalvik、ART和Android SDK,以及Android的特點和學習Android需要具備的一些Java基礎知識等
  • 獨立站推廣 - 如何開發新資源(工具篇)
    國內現在做亞馬遜的基本上人手一套品牌獨立站,給亞馬遜產品導導流量,提供精準流量,賺點聯盟佣金;又或者加入購物車,接些c端和b端的客戶。 但是獨立站會面臨一個流量的問題。 一個新的獨立站,初始階段會涉及到開發的完整性(網站優化之SEO開發標準),網站SEO基礎優化完成之後需要開始導流。
  • Angular 發布組件開發工具包 可更輕鬆添加通用交互模式
    Angular 團隊推出了一個新的組件開發工具包 (Component Development Kit),這是一個用於 Material
  • 搭建C語言開發環境,其實只需要兩個工具就行了!
    工欲善其事必先利其器,對於c語言學習來說,重要的不是看了多少本書,而是打了多少行代碼。在手打代碼之前,我們當然要先搭建自己的開發環境,對於c語言的學習來說,其實只需要兩個工具就行了,那就是文本編輯器和c編譯器了。
  • AE系列課程【基礎篇】
    -基礎篇【課程試聽】因為是基礎課程,截圖不那麼炫酷,無法讓大家了解這個課程的質量到底如何。教程022:AE表達式基礎-時間表達式教程023:AE的透視濾鏡和風格化濾鏡教程024:AE的時間工具教程025:時間工具實戰應用案例教程026:AE製作國畫效果教程027:AE轉場效果教程028:AE製作倒計時教程029:實戰片頭案例(上)教程030:實戰片頭案例(下)
  • Windows漏洞利用開發 - 第1部分:基礎知識
    歡迎來到Windows漏洞利用開發系列文章的第1部分。