1. .NET 是什麼?
.NET Framework 是微軟的開發與執行平台,不是程式語言,而是一組類別庫框架。支援 C#、VB.NET、J#、JScript、Managed C++ 等語言,可開發 ASP.NET 網站、Windows 應用程式、主控台程式、行動應用等。C# 是 .NET Framework 主力開發語言。
2. ASP.NET、.NET 與 C# 三者關係
- .NET Framework:基礎執行環境與類別庫
- ASP.NET:.NET 環境下的動態網頁技術(B/S 架構,WebForm)
- WinForm:.NET 環境下的桌面應用技術(C/S 架構)
- C# / VB.NET 等:開發語言,編譯為 IL,由 CLR 執行
- Visual Studio:整合開發環境 (IDE)
流程:原始碼 → 編譯為 IL → IIS + .NET Framework 執行時期編譯 (JIT) → 機器碼執行
3. .NET 支援哪些語言?
官方提供:C#、VB.NET、J#、JScript、Managed C++。宣稱支援 20+ 語言,但實務上以 C#、VB.NET 為主流。
4. 為何多數選擇 C#?
- 微軟為 .NET 量身設計,語法基於 C/C++,物件導向
- 無指標、具垃圾回收(GC)自動釋放記憶體
- 不需 C 基礎即可入門,有 C 經驗則事半功倍
- 基本型別與 C++ 相似:int, long, float, double, char, string, array, struct, class
5. ASP.NET 環境安裝要點
- 作業系統:Windows 2000 / XP SP3 / 2003(Linux/Unix 支援持續發展中)
- 執行環境:下載最新 .NET Framework(向下相容)
.NET 2.0 / 3.5 / 4.0 官方下載連結
- 安裝順序:MDAC → SDK(耗時較久請耐心等待)
- 驗證安裝:撰寫簡單 ASP.NET 程式測試執行
6. Bin 資料夾下的 DLL 是什麼?
- 自動產生,無需手動新增
- 包含專案參考的所有類別庫、伺服器控制項等組件
- DLL = Dynamic Link Library(動態連結程式庫)
7. .NET 主要優勢
- 跨語言互操作:不同語言開發的組件可透過繼承重用
- 跨平台潛力:IL + JIT 編譯實現異構平台互操作
- 型別安全:CLR 管理資源與型別安全
- 開放標準支援:HTTP、XML 等標準實現異構網路服務存取
8. ASP.NET vs ASP 差異
| 項目 | ASP | ASP.NET |
| 語言 | VBScript/JScript(弱型別、結構化) | C#/VB.NET 等(強型別、物件導向) |
| 程式碼與 HTML | 混雜難維護 | 邏輯與呈現分離(Code-behind) |
| 重用性 | 差 | 高(繼承、多型、封裝) |
| 錯誤處理 | 缺乏完善除錯 | 完整除錯/偵錯體系 |
| 底層功能 | 需 COM 元件 | 框架內建豐富類別庫 |
9. 專案資料庫選擇建議
- SQL Server 2000:輕量、指令列快速啟動、學習足夠
- SQL Server 2005:功能完整、安裝較繁、啟動較慢
- SQL Server 2008:功能更強,建議 2005 使用者升級
- Access:體積小、免啟動服務、部署簡單
10. 常用 ASP.NET 伺服器控制項
Label:顯示文字,不接收輸入
TextBox:顯示/輸入資料
Button:觸發 Click 事件
ListBox/ComboBox:選單選擇,不允許輸入
11. .NET 開發工具
- 主流:Visual Studio 2005/2008/2010(標準版、專業版、Team System)
- 企業級:C# Builder(支援 VS 不支援的企業功能)
- 免費:Web Matrix(自動感應弱、適合程式與 HTML 混寫)、SharpDevelop、MonoDevelop
- 高手:記事本 + 命令列編譯
12. 為何 .NET 程式第一次執行較慢?
.aspx 頁面首次存取需編譯(JIT),後續受惠於快取機制速度正常。
13. C# 命名慣例
| 項目 | 慣例 | 範例 |
| 類別 | Pascal | ProductType |
| 列舉 | Pascal | ColorEnum(不含 Enum 後綴) |
| 委派 | Pascal | OnClickHandler |
| 介面 | I + Pascal | IComparable |
| 方法 | Pascal | CalculateTotal |
| 命名空間 | Pascal | ExcelQuicker.Framework |
| 屬性 | Pascal | FirstName |
| 參數 | Camel | userName |
| 常數 | 全大寫 | MAX_COUNT |
| 區域變數 | Camel | strUserName |
| 資料成員 | m + Pascal | mProductType |
Pascal:單字首字母大寫;Camel:首字母小寫,其餘大寫
14. 如何判斷專案是否開源/有原始碼?
- 專案目錄包含
.cs 或 .vb 檔案
- 存在專案檔
.csproj / 方案檔 .sln
- Bin 目錄下的 DLL 皆有對應原始碼