- C#大學實用教程
- 匡松 張淮鑫編著
- 435字
- 2018-12-30 06:33:38
第1章C# 簡介
本章主要了解什么是 .NET Framework、什么是C#,并簡要介紹Visual Studio 2008和如何學習C#語言。

1.1 什么是.NET Framework
介紹C#之前,必須了解C#運行的環(huán)境.NET Framework。
在Windows之前的時代,DOS或者UNIX,都只是提供普通的函數編程接口,所有應用程序都直接調用操作系統(tǒng)的函數接口。Windows剛剛發(fā)布的時候,也是通過Windows API提供系統(tǒng)函數調用,當時編寫Windows應用程序時也需要緊密研究Windows API。
但這種軟件開發(fā)的方法屬于面向過程的結構化程序設計方式,伴隨面向對象程序設計開發(fā)技術的成熟,在Windows API上提供一套面向對象程序設計類庫,使得編寫Windows應用程序變得更為簡單。
一時間,Windows上的開發(fā)工具,Visual Basic、Visual C++、Delphi、Visual FoxPro、PowerBuilder等都各自提供了一套開發(fā)庫。雖然這些開發(fā)庫大大簡化了應用程序的編寫,我們只需要拖放控件即可實現應用程序的界面設計,但這些開發(fā)庫各自成為一個體系,相互之間差異頗大,各有特長,應用程序設計人員在開發(fā)不同的應用程序時,需要使用不同的開發(fā)工具,這就需要重新學習一套庫的使用,既浪費時間,也使得項目開發(fā)的進度變慢。
如圖1-1所示,聰明的工程師們便想到,吸收這些控件庫的優(yōu)點,開發(fā)出一套中間庫,讓所有的開發(fā)語言都調用一套相同的庫,各種開發(fā)語言都使用統(tǒng)一的開發(fā)庫,這樣可以簡化開發(fā)語言的設計和應用程序的編寫。這就是 .NET Framework這套面向對象應用程序庫開發(fā)的最初目的。

圖1-1 .NET Framework所處的中間位置
同時,這套庫屏蔽了應用程序和操作系統(tǒng)之間的直接連接,操作系統(tǒng)可以根據自己的需要進化,變得更加穩(wěn)定、強壯和安全,這樣操作系統(tǒng)的開發(fā)也可以從這套庫的運行中得益。
并且,在開發(fā)這套 .NET Framework時充分考慮到未來發(fā)展的需要,只要新出現一種開發(fā)模式,便在庫中添加新的應用程序開發(fā)模式即可。這幾年,Web網站成為一個火熱的新課題,人們就可以輕松地通過ASP.NET運行庫,編寫差不多的網絡類應用程序。這使得人們發(fā)現,伴隨 .NET Framework而生的C#語言,既能編寫控制臺應用,又能編寫Windows應用,還能編寫ASP.NET網站類應用,幾乎是一種全能語言。學習好了C#,就可以輕松進入各個領域,這大大減輕了程序員的學習難度,提升了他們的技能空間。
所以,吸收了多種開發(fā)語言優(yōu)點的C#,以非常快的速度普及了。
1.2 什么是C#
21世紀初,Microsoft推出了新一代程序開發(fā)環(huán)境Visual Studio.NET。為了配合 .NET應用程序的開發(fā),促進 .NET戰(zhàn)略的發(fā)展,Microsoft同時推出了該環(huán)境下的主要編程語言C#(讀作C Sharp)。C#語言是針對 .NET框架平臺開發(fā)的一種新型編程語言,完全建立在.NET框架平臺基礎之上。Microsoft宣稱,C#是開發(fā).NET框架應用程序的最好語言。
1.2.1 C#概述
C#是Visual Studio.NET中包含的一種全新的開發(fā)語言。它從C/C++語言發(fā)展而來,具有與C/C++語言相似的語法,繼承和發(fā)揚了C/C++語言的優(yōu)點。同時,由于是Microsoft公司的產品,它又同Visual Basic一樣簡單,在創(chuàng)建圖形用戶界面和事件驅動的應用程序方面的容易程度可以媲美Visual Basic。對于Web開發(fā)而言,C#又像Java/C++語言一樣,具有強大的功能和靈活性,使用起來更加方便和直觀。
C#語言雖然從C/C++語言發(fā)展而來,但是它摒棄了C/C++語言中容易出錯的指針、多重繼承等概念,是一種完全面向對象、類型安全的語言,與使用新的.NET框架的其他許多語言兼容,允許與具有C/C++語言風格的需要傳遞指針類型參數的API進行交互操作,允許C#語言組件與其他語言組件間的交互操作。C#是一種完全建立在.NET框架平臺之上的高級語言,其所有類型都是從 .NET Framework提供的統(tǒng)一類庫中派生的,并且所有的功能實現都依賴于這個類庫。C#中沒有多重繼承并且沒有模塊類。C#中的簡單類型僅僅是底層數據類型的直接映射。C#中的類型不是由語言本身確定的,而是由公共類型系統(tǒng)確定的。例如,在C#中,枚舉、屬性和事件都已內建到語言中,雖然所有面向 .NET Framework的語言都可以使用該框架,但C#是完全針對這個框架的,它可以充分使用這個框架所提供的類、接口和對象。
延伸學習──C#與Java比較
C#語言與Java語言有諸多相似之處,只是在細節(jié)上有一些差別。實際上,C#與Java的主要區(qū)別不是在語言本身,而是所執(zhí)行的平臺。Java程序需要一個運行環(huán)境JRE(Java Runtime Environment)來執(zhí)行代碼,但JRE只限于在Java語言中使用。C#語言也需要一個運行環(huán)境CLR(Common Language Runtime),但是CLR提供了對多種語言的支持。Java源代碼可以被編譯成字節(jié)代碼的一種中間狀態(tài),然后由已提供的虛擬機來執(zhí)行這些代碼。C#代碼也被編譯成一種中間代碼,稱為中間語言(IL)。但是IL代碼則被傳輸到由CLR管理的執(zhí)行進程上,然后通過CLR的JIT編譯器編譯成本地代碼執(zhí)行。另外,C#語言還提供了一些Java語言中沒有的功能,如運算符重載、封箱和裝箱以及方法隱藏等。
由于C#語言一開始就是完全按照面向對象的思想來設計的,而且使用的全部是 .NET Framework定義的語法格式,不存在考慮與.NET之前版本兼容的問題。同時,C#語言作為一種高級語言標準,其基本的內部實現形式是公開的,容易被更多種平臺接受。因此,C#語言給人的感覺是結構清晰、語法簡潔、方便直觀和應用廣泛。
1.2.2 C#的主要功能
C#是一種最新的、面向對象的編程語言,使得程序員可以快速地編寫各種基于Microsoft .NET平臺的應用程序,Microsoft .NET提供了一系列的工具和服務,來最大程度地開發(fā)利用計算與通信領域。正是由于C#面向對象的卓越設計,使它成為構建各類組件的理想之選——無論是高級的商業(yè)對象還是系統(tǒng)級的應用程序。
C#的功能主要表現在以下幾方面:
⊙ 設計Windows應用程序。
⊙ 自定義Windows控制庫。
⊙ 設計控制臺應用程序。
⊙ 設計智能設備應用程序。
⊙ 設計ASP.NET Web應用程序。
⊙ 設計ASP.NET Web服務。
⊙ 設計ASP.NET移動Web應用程序。
⊙ 自定義Web控件庫。
ASP.NET正是以C#為基礎所開發(fā)出來的控件、標記。在中間語言的領域里,C#是最具親和力的一種語言,它擁有C語言和Java語言的主要特點,同時擁有功能強大的函數庫和方便的模板等,是目前最理想的語言之一。
1.2.3 C#的主要特點
C#語言幾乎綜合了目前高級語言的優(yōu)點,具有以下主要特點。
(1)簡潔的語法
C#語言與Java語言一樣,使用了統(tǒng)一的操作符,淘汰了C++語言中復雜的表達式和偽關鍵字,使用最簡單、最常見的形式進行描述。
(2)卓越的面向對象設計
C#語言完全按照面向對象的思想來設計,因此具有面向對象所應具有的一切特性,即:封裝性、繼承性和多態(tài)性。
C#語言只允許單繼承,即一個類不會有多個基類,從而避免了類型定義的混亂。在C#語言中,每種類型都是一個對象,因此不存在全局函數、全局變量和全局常數等概念。所有常量、變量、屬性、方法、索引和事件等都必須封裝在類中,從而使代碼具有更好的可讀性,也減少了發(fā)生命名沖突的可能。
(3)與Web的緊密結合
在C#中,對于復雜的Web編程和其他網絡編程更像是對本地對象進行操作,從而簡化了大規(guī)模、深層次的分布式開發(fā)。用C#語言構建的組件能夠方便地為Web服務,并可以通過Internet被運行在任何操作系統(tǒng)上的任何語言所調用。
(4)完全的安全性和錯誤處理
語言的安全性和錯誤處理能力是衡量一種語言是否優(yōu)秀的重要依據。C#語言可以消除許多軟件開發(fā)中的常見錯誤,并提供了包括類型安全在內的完整的安全性能。
在默認情況下,從Internet和Intranet下載的代碼都不允許訪問任何本地文件和資源;C#語言不允許使用未初始化的變量,并提供了便捷檢查和溢出檢查等功能。內存管理中的垃圾回收機制大大減輕了開發(fā)人員對內存管理的負擔。
(5)版本處理技術
C#語言內置了版本控制功能,如對函數重載和借口的處理方式以及特性支持等,從而保證方便地開發(fā)和升級復雜的軟件。
(6)靈活性和兼容性
在托管狀態(tài)下,C#語言不能使用指針,而是用委托(Delegate)來模擬指針的功能。如果確實需要在類或者類的方法中使用指針,只需要聲明這些內容為非安全即可。另外,雖然C#語言不支持類的多繼承,但是可以通過繼承接口來實現多繼承。
兼容性是指C#語言允許與具有C/C++語言風格的需要傳遞指針類型參數的API進行交互操作,允許C#語言組件與其他語言組件間的交互操作。
(7)商業(yè)過程和軟件實現的更好對應
企業(yè)的商業(yè)計劃要付諸現實,必須在抽象的商業(yè)過程和實際的軟件實現之間建立緊密地對應。大多數語言都很難做到這點。
C#語言允許類型定義的、擴展的元數據。這些元數據可以應用于任何對象。項目構建者可以定義領域特有的屬性并把他們應用于任何語言元素,如類、接口等。
總之,C#是一種現代的面向對象語言,使程序員可以快速、便捷地創(chuàng)建基于Microsoft .NET平臺的解決方案。這種框架使C#組件可以方便地轉化為XML網絡服務,從而使任何平臺的應用程序都可以通過Internet調用它。C#增強了開發(fā)者的效率,同時也致力于消除編程中可能導致嚴重結果的錯誤。C#使C/C++程序員可以快速進行網絡開發(fā),同時也保持了開發(fā)者所需要的強大性和靈活性。
1.3 Visual Studio 2008簡介
Visual Studio 2008是一套完整的開發(fā)工具集,其中的C#是使用最廣泛的開發(fā)語言,用于開發(fā)ASP.NET Web應用程序、XML Web Services、桌面應用程序和移動應用程序。Visual Basic、Visual C++、Visual C#和Visual J#都使用相同的集成開發(fā)環(huán)境(Integrated Development Environment,IDE),方便用戶快速有效地建立應用程序。
1.3.1 環(huán)境要求
Visual Studio 2008是一個比較龐大的系統(tǒng)軟件,它對計算機的要求較高。下面給出了安裝和運行Visual Studio 2008的系統(tǒng)需求。
⊙ 處理器:配備1.6 GHz或速度更快的處理器。
⊙ 內存:384 MB或更大內存(Windows Vista至少需要768 MB)。
⊙ 硬盤空間:完全安裝Visual Studio 2008大致需要4 GB的硬盤空間,再加上用戶開發(fā)的項目文件占用的空間,最小需要5 GB以上的硬盤空間。
⊙ 顯示設備:1024×768及以上的分辨率,16位顏色。
⊙ 光驅:在安裝Visual Studio 2008時,DVD光驅是必需的。如果需要的所有組件都已安裝在硬盤上,在開發(fā)過程中可以不再使用光驅。
⊙ 操作系統(tǒng):建議使用Windows XP或更新版本的操作系統(tǒng)。
1.3.2 安裝步驟
下面主要介紹在Windows Vista操作系統(tǒng)下安裝Visual Studio 2008的步驟。在其他操作系統(tǒng)中安裝Visual Studio.NET的過程大致相同。
(1)將Visual Studio 2008的安裝光盤放入DVD光驅,自動出現如圖1-2所示的界面。選擇第1項“安裝Visual Studio 2008”,安裝程序將對Windows組件進行更新。因為將要安裝的Visual Studio 2008的組件與原有的Windows組件不匹配,系統(tǒng)要求進行更新,以便進行Windows的升級工作。

圖1-2 “Visual Studio 2008安裝程序”對話框
(2)組件安裝過程如圖1-3所示。當升級完畢,單擊“下一步”按鈕,進行Visual Studio 2008的安裝。

圖1-3 Microsoft Visual Studio 2008安裝界面
(3)單擊“Visual Studio 2008”,出現如圖1-4所示的界面。在指定的文本框中輸入產品的密鑰(Product Key),即本軟件的使用密碼,用戶可以從軟件商提供的資料中找到。

圖1-4 “Microsoft Visual Studio 2008安裝程序-起始頁”對話框
(4)選中“我已閱讀并接受許可條款”復選框,單擊“下一步”按鈕,進入下一界面,如圖1-5所示。在這里,可以通過“自定義”模式選擇需要安裝的項目。如果硬盤空間有限,可以不安裝MSDN Documentation。如果硬盤空間足夠大,建議用戶完全安裝。在該界面中,安裝程序允許選擇安裝路徑,Visual Studio 2008默認的安裝路徑是“C:\Program Files\Microsoft Visual Studio 9.0\”。

圖1-5 “Microsoft Visual Studio 2008安裝程序-選項頁”對話框
(5)設置完畢,單擊“安裝”按鈕,開始安裝,如圖1-6所示。

圖1-6 “Microsoft Visual Studio 2008安裝程序-安裝頁”對話框
(6)安裝完成后,可選擇重新啟動計算機,安裝結束。
1.3.3 Visual Studio 2008新功能介紹
Visual Studio 2008比早期版本新增了許多功能,下面進行簡要介紹。
(1)設置遷移
如果在同一臺計算機上安裝了Visual Studio 2005和Visual Studio 2008,在首次啟動Visual Studio 2008時,可以遷移Visual Studio 2005中的大多數設置。
(2)社區(qū)組件
在使用Visual Studio 2008創(chuàng)作社區(qū)組件時,可以通過對ContentVersion元素使用新值來指定安裝組件是為了與Visual Studio 2008一起使用,還是與Visual Studio 2005和Visual Studio 2008一起使用。
(3)類設計器對Visual C++代碼的支持
在早期版本的Visual Studio中,類設計器僅支持托管語言(Visual C#和Visual Basic)。在Visual Studio 2008中,類設計器添加了對本機C++代碼的有限支持,可用于可視化和文檔。
(4)窗口管理和常規(guī)用戶元素
若干用戶界面(UI)元素已更新。這些功能包括:
⊙ IDE導航器:改進后的界面使在各項之間進行切換更輕松。
⊙ 對窗口停靠目標經過了改進,使停靠工具窗口更輕松。
⊙ 通用對話框:Visual Studio 2008使用Windows標準對話框,而不是自定義對話框,使導航體驗與Windows中的導航體驗更加一致。
⊙ 提供了新選項“環(huán)境字體”。
(5)項目設計器對Windows Presentation Foundation(WPF)應用程序的支持
Windows Presentation Foundation(WPF)應用程序已經添加到Visual Studio 2008中。有以下4種WPF項目類型:WPF應用程序(.xaml和.exe),WPF瀏覽器應用程序(.exe和.xbap),WPF自定義控件庫(.dll),WPF用戶控件庫(.dll)。
如果在IDE中加載了WPF項目,可以通過項目設計器頁的用戶界面指定特定于WPF應用程序的屬性。
(6)項目設計器多目標支持
通過使用多目標功能,可以使代碼面向特定的.NET Framework版本:① .NET Framework 2.0,隨Visual Studio 2005提供;② .NET Framework 3.0,隨Windows Vista提供;③ .NET Framework 3.5,隨Visual Studio 2008提供。
(7)WPF設計器
通過使用WPF設計器,可以在IDE中創(chuàng)建WPF應用程序和自定義控件。WPF設計器不僅具有XAML實時編輯功能,還可以改善用戶的圖形設計時體驗。
以下功能是WPF設計器的新增功能:
⊙ 使用SplitView,可以調整圖形設計器中的對象并立即查看對基礎XAML代碼所做的更改;同樣,對XAML代碼所做的更改將立即反映在圖形設計器中。
⊙ “文檔大綱”窗口允許查看XAML并在其中移動,而且所做的選擇在設計器、文檔大綱、XAML編輯器和“屬性”窗口之間完全同步。
⊙ XAML編輯器中的IntelliSense實現了快速代碼錄入。IntelliSense現在支持已定義的類型。
⊙ 可以在設計器中向網格添加網格線,以便輕松地根據網格放置控件。
⊙ 通過使用對齊線,可輕松地將控件與文本對齊。
⊙ 設計器支持加載已定義的類型,包括自定義控件和用戶控件。
⊙ 可以取消加載大型XAML文件。
⊙ 設計器擴展性支持設計模式和屬性編輯器。
(8)語言集成查詢(LINQ)
語言集成查詢(LINQ)是Visual Studio 2008中的一組新功能,可以將強大的查詢功能擴展到C#和Visual Basic的語法中。LINQ引入了標準的、易于學習的查詢和轉換數據模式,并且可以進行擴展,以便潛在支持任何類型的數據源。Visual Studio 2008包括LINQ提供程序的程序集,借助這些程序集,可以啟用.NET Framework集合(LINQ to Objects)、SQL數據庫(LINQ to SQL)、ADO.NET數據集(LINQ to ADO.NET)和XML文檔(LINQ to XML)的語言集成查詢。
(9)新報表項目
Visual Studio 2008包括用于創(chuàng)建報表應用程序的兩個新項目模板。在“新建項目”對話框中有“報表應用程序”模板,在“新建網站”對話框中有“ASP.NET報表網站”模板。當創(chuàng)建新的“報表應用程序”項目時,Visual Studio將提供一個報表(.rdlc)和一個窗體(.vb/.cs),并將ReportViewer控件綁定到報表上。對于ASP.NET報表網站項目,Visual Studio將創(chuàng)建一個網站,該網站包含一個報表(.rdlc)、默認的ASP.NET頁(.aspx)(ReportViewer控件已綁定到報表)以及Web配置文件(.config)。
創(chuàng)建報表項目時,將啟動新報表向導。然后,可以使用該向導生成報表,或者可以關閉向導并手動生成報表。
(10)報表向導
Visual Studio 2008引入了一個報表向導,該向導將指導完成創(chuàng)建基本報表的步驟。用戶可選擇報表數據源、定義數據集、選擇報表類型(表格或矩陣格式)以及報表應用樣式。在完成向導之后,可以使用報表設計器來增強報表。
創(chuàng)建新報表應用程序項目或ASP.NET報表網站時,將自動啟動報表向導。
1.4 如何學習C#語言
C#語言自C/C++演變而來,但是它更具有現代、簡單、完全面向對象和類型安全等特點。它簡化和現代化了C++在類、名字空間、方法重載和異常處理等領域,摒棄了C++的復雜性,更易用,更少出錯。C#語言包括底層的 .NET類庫,還包括封裝在Visual Studio 2008開發(fā)工具中的一些組件,為學習者更快地開發(fā)應用程序提供了很好的幫助。那么,如何更好地學習C#呢?
① 了解C#的相關概念,如 .NET框架和C#語言的關系、C#與C++的異同之處。
② 認識C#的開發(fā)環(huán)境。幾乎所有的開發(fā)人員都知道Microsoft的開發(fā)工具Visual Studio系列,如Visual Studio 2008是一套完整的開發(fā)工具集,用于開發(fā)ASP.NET Web應用程序、XML Web Services、桌面應用程序和移動應用程序。Visual Basic、Visual C++、Visual C#和Visual J#使用相同的集成開發(fā)環(huán)境(Integrated Development Environment,IDE),方便用戶快速、有效地建立應用程序。
③ 熟練掌握基礎語法知識,如基本符號、基本元素、語句和函數等。
④ 掌握面向對象的程序設計方法,如對象、類、繼承性、封裝性、多態(tài)性和消息傳遞等。
⑤ 掌握數據結構和常用算法,如標準數據類型和高級數據類型、遞歸算法、迭代算法、窮舉算法和貪婪算法等。
⑥ 模仿教材實例,親自動手完成各種類型應用程序的編寫。上機實踐是學好任何一門編程語言最好的方法。
⑦ 充分利用網絡資源,開闊視野,擴充知識面,以提高自身的編程效率,達到熟練運用C#語言開發(fā)出高質量應用程序的目標。
1.5 小結
本章主要介紹了Microsoft .NET平臺各主要部分的功能、.NET框架的概念和C#語言的主要功能及特點,并介紹了最新C#語言版本的功能、Visual Studio 2008的系統(tǒng)需求及安裝過程,還介紹了Visual Studio 2008的新增功能;同時,針對如何學習C#語言,提供了幾點學習建議。通過本章的學習,讀者可了解什么是.NET框架,什么是C#語言以及Visual Studio 2008的主要功能,為學習C#語言打下基礎。
延伸學習──.NET Framework類庫
.NET Framework類庫是一個與公共語言運行庫緊密集成的可重用的類型集合。該類庫是面向對象的,并提供托管代碼可從中導出功能的類型。這不但使 .NET Framework類型易于使用,而且減少了學習 .NET Framework新功能所需要的時間。此外,第三方組件可與 .NET Framework中的類無縫集成。例如,.NET Framework集合類實現一組可用于開發(fā)集合類的接口。用戶自定義集合類將與 .NET Framework中的類無縫地混合。
.NET Framework類型能夠完成一系列常見編程任務(包括字符串管理、數據收集、數據庫連接以及文件訪問等任務)。除這些常見任務之外,類庫還包括支持多種專用開發(fā)方案的類型。例如,可使用 .NET Framework開發(fā)下列類型的應用程序和服務:
⊙ 控制臺應用程序。
⊙ Windows GUI應用程序(Windows窗體)。
⊙ Windows Presentation Foundation(WPF)應用程序。
⊙ ASP.NET應用程序。
⊙ Web服務。
⊙ Windows服務。
⊙ 使用Windows Communication Foundation(WCF)的面向服務的應用程序。
⊙ 使用Windows Workflow Foundation(WWF)的啟用工作流程的應用程序。
練習 1
一、選擇題
1.C#語言主要面向____開發(fā)環(huán)境進行編程。
A.DOS
B..NET
C.Windows
2..NET開發(fā)的語言無關性依賴于其運行庫的執(zhí)行環(huán)境,稱為____運行庫。
A.CLR
B.JIT
C.COM
D.Linux
D.C#
3.下面關于C#語言的說法中,不正確的是____。
A.C#語言完全支持面向對象編程
B.C#從C/C++發(fā)展而來,但更具優(yōu)勢,如開發(fā)Web應用程序和NT服務等
C.C#語法簡單,編程靈活,但功能有限,不適合開發(fā)Windows應用程序
D.C#擁有對 .NET基類庫的完全訪問權,并易于訪問Windows API
二、填空題
4..NET Framework的另一個主要組件是類庫,它是一個綜合性的面向對象的可重用類型集合,可以使用它開發(fā)多種應用程序,包括傳統(tǒng)的命令行或 【A】 應用程序,也包括基于 【B】 所提供的最新創(chuàng)新的應用程序(如Web窗體和XML Web Services)。
5.____把Microsoft的所有語言的開發(fā)環(huán)境統(tǒng)一起來,所有語言使用同一套工具,在同一個集成開發(fā)環(huán)境中進行開發(fā),并且改進了環(huán)境中所包含的各種工具。
6.C#語言雖然從C/C++語言發(fā)展而來,但是它摒棄了C/C++語言中容易出錯的指針、多重繼承等概念,是一種 【A】 、 【B】 的語言。
三、問答題
7.C#語言有何主要特點?
8.C#語言有何主要功能?
9.簡述安裝Visual Studio 2008的系統(tǒng)要求和操作步驟。
- Boost程序庫完全開發(fā)指南:深入C++”準”標準庫(第5版)
- Java Web開發(fā)學習手冊
- Mastering AWS Lambda
- ASP.NET Core 5.0開發(fā)入門與實戰(zhàn)
- 小創(chuàng)客玩轉圖形化編程
- C和C++安全編碼(原書第2版)
- Python神經網絡項目實戰(zhàn)
- Windows Presentation Foundation Development Cookbook
- Node.js Design Patterns
- UVM實戰(zhàn)
- 計算機應用基礎案例教程
- OpenStack Networking Essentials
- HTML5移動前端開發(fā)基礎與實戰(zhàn)(微課版)
- 網頁設計與制作
- Building a Media Center with Raspberry Pi