跳過到頁腳內容
Iron Academy Logo
C# 應用程式
C# 應用程式

其他分類

C# 應用程式開發:完成「創建團隊」表單(第 14 課)

Tim Corey
51m 15s

在Tim Corey的C# From Start to Finish課程中的這個視頻課程中,Tim回到創建團隊表單以完成最後部分:創建團隊按鈕。 Tim解釋說,雖然大部分表單已經連接好,但實際上儲存團隊數據到資料庫的按鈕仍需實現。

C#(發音為'C sharp')是一種現代的、面向對象的程式語言,由微軟在2000年作為.NET框架的一部分創建。 C#廣泛用於構建各種應用程式,包括Windows應用程式、網路服務等,成為企業開發者的熱門選擇。

這節課深入介紹瞭如何構建Windows Forms應用程式,將其連接到SQL資料庫,並使用儲存過程實現CRUD操作。

Learning C# Fundamentals

掌握C#的基礎知識是任何希望構建健壯,可擴展且高性能的.NET應用程式的開發人員的基石。 作為一種面向對象的語言,C#使開發人員能夠創建各種解決方案,從桌面應用程序和網絡應用程序到移動應用程序甚至遊戲開發。 這種多功能性使C#成為現代軟件開發中的首選,允許開發者在多個平台和技術中探索和創新。

.NET生態系統提供廣泛的程式庫和工具,簡化.NET開發。 Visual Studio作為構建、調試和部署.NET應用程序的主要集成開發環境(IDE),而Visual Studio Code則提供輕量級、跨平台的代碼編輯器,適合快速開發並易於訪問基本功能。 無論您是針對Windows、macOS或Linux平台,.NET Core框架都能確保跨平台支援,使您的應用程序能無縫運行於各種設備和環境中。

對於企業級軟件和可擴展的應用程序,C#和.NET平台提供高性能和可靠性。 與C#一起工作的開發人員可以利用ASP.NET Core來構建現代化、跨平台的網路應用程式,並使用Razor Pages獲得簡化的網頁開發體驗。 隨著.NET MAUI的引入,現在比以往任何時候都更容易建立在多個平台上運行的移動應用程式,進一步擴展您的.NET項目的覆蓋範圍。

單個開發人員可以利用C#的力量來創建從簡單的代碼範例和控制台應用到複雜的企業級解決方案。 .NET平台的定期更新帶來性能改善、新功能和增強的安全性,確保您的應用程式與最新技術保持同步。 訪問包含教程、範例專案和代碼範例的大量程式庫和學習資料,使學習C#和快速開始構建真實世界的應用程序變得容易。

使用C#不僅減少錯誤,還提高代碼質量,這要歸功於其強類型化和現代編程功能。 無論您對網頁開發、建立桌面應用、還是探索移動和遊戲開發感興趣,C#和.NET框架都提供了成功所需的工具、資源和性能,以滿足當今快速變化的軟件開發環境。 使用C#,您可以自信地創建出滿足用戶和企業需求的可擴展、高性能的應用程式。

在編碼前了解資料庫結構

Tim首先強調在編寫任何代碼之前了解資料庫設計的重要性。 他展示了應用程式使用的兩個主要表:Teams和TeamMembers。 Teams表只包含TeamID和TeamName,而TeamMembers儲存TeamID和PersonID。

Tim解釋說數據插入順序很重要,因為應用程序必須先創建團隊,獲取其ID,然後使用返回的ID向該團隊添加成員。 這種設置在C#數據訪問層設計中是必要的,以確保應用程式保持一致和準確。

創建用于插入團隊的SQL儲存過程

為了正確將數據插入資料庫,Tim創建了兩個SQL儲存過程,這是資料庫程式設計和SQL Server開發中的常見最佳實踐。

SP_Teams_Insert

Tim創建了一個儲存過程,接受團隊名稱並使用SCOPE_IDENTITY()輸出新的團隊ID。 這種方法在SQL Server的儲存過程中常用於保持參考完整性。

INSERT INTO dbo.Teams (TeamName)
VALUES (@TeamName)

SELECT @Id = SCOPE_IDENTITY()

SP_TeamMembers_Insert

接下來,Tim創建了一個插入團隊成員的儲存過程。 它接受TeamID和PersonID並輸出新紀錄的ID。

INSERT INTO dbo.TeamMembers (TeamID, PersonID)
VALUES (@TeamID, @PersonID)

SELECT @Id = SCOPE_IDENTITY()

Tim警告不要複製和修改SQL代碼,因為小錯誤可能會造成大問題,這對於資料庫開發者來說是一個重要提示。

應該將CreateTeam設為單一方法還是兩個方法?

Tim接著討論了一個設計決策:應該將創建團隊和添加團隊成員由一個方法處理還是兩個單獨的方法? 他提到了單一責任原則(SRP),但他認為這個過程代表一個事務:創建一個團隊並分配成員。

Tim總結說將它們結合起來可以防止創建了團隊但未添加其成員的情況,導致數據不完整。 這一設計決定在軟體架構中是基本的,尤其是在C#企業應用程式中。 C#由於其安全性、可擴展性和可維護性,在企業軟體開發中廣泛使用。

在數據連接器接口中實現CreateTeam

Tim在數據連接器接口中添加了一個新方法:

TeamModel CreateTeam(TeamModel model);

他確保SQL連接器和文本連接器都實現了這個方法,展示了在C#中正確使用接口和乾淨的架構。 在C#應用程式開發中使用接口和乾淨架構的好處包括提高代碼的可維護性、更容易的測試以及在適應新要求時更大的靈活性。

SQL連接器的實現:插入團隊和成員

Tim通過複製現有範例構建SQL邏輯。 他進行以下操作:

  1. 插入團隊名稱並檢索TeamID。

  2. 遍歷每個成員並插入到TeamMembers中。

他指出PersonModel已經包含了PersonID,增加團隊成員是直觀的。 這是數據綁定和關聯資料庫操作的一個實際例子。

在Windows Forms中連接創建團隊按鈕

在表單代碼中,Tim創建了一個TeamModel對象並設置其屬性:

TeamModel t = new TeamModel();
t.TeamName = teamNameValue.Text;
t.TeamMembers = selectedTeamMembers;

t = GlobalConfig.Connection.CreateTeam(t);

這展示了Windows Forms事件處理以及如何將數據從用戶界面(UI)傳遞到數據訪問層,確保持流暢的用戶體驗。

Tim指出,創建團隊後,表單可以安全地關閉,因為團隊已經成功保存。

測試SQL資料庫插入

Tim通過創建團隊並驗證在SQL Server中的紀錄來測試表單。 他確認團隊正確地保存到了Teams中,並且成員存儲在TeamMembers中。 這是應用程式測試和驗證CRUD操作的一個關鍵步驟。

在文本文件儲存(文本連接器)中實施CreateTeam

Tim切換到文本文件儲存方法並解釋一個挑戰:團隊模型包含一個PersonModel列表,必須以CSV格式保存。

他創建了一個格式,其中包括以管道分隔的人員ID列表:

1,Team Name,1|3|5

這允許應用程式使用純文本文件來儲存複雜的數據結構,對於小型應用程式中的文件基礎儲存是有用的。

將文本文件數據轉換為團隊對象

Tim構建了ConvertToTeamModels方法,它讀取CSV文件並重建TeamModel對象:

  1. 用逗號分割每一行

  2. 提取團隊ID和名稱

  3. 用管道分割最後一列|)

  4. 在人員列表中查找每個人ID

  5. 將人員對象添加到團隊成員中

他選擇在人員ID缺失時拋出錯誤,以確保資料一致性。 這是在穩健的C#應用程式開發中的一個重要實踐。

將團隊儲存回文件中,使用管道分隔的成員

Tim創建了一個助手方法ConvertPeopleListToString來將團隊成員轉換為管道分隔的字符串。 他解釋了需要使用以下方法去除尾部管道:

output = output.Substring(0, output.Length - 1);

他還為空列表增加了安全檢查以防止錯誤,這是一個防禦性程式設計的實用例子。

最終測試與完成

Tim通過創建團隊並確認CSV文件正確生成來測試基於文本的儲存。 他總結說,創建團隊表單已經完成,並鼓勵觀眾繼續遵循將任務分解為更小步驟的模式。

Conclusion: Building a Complete C# Application

Tim在他的视频中總結說,即使是複雜的Windows Forms功能,也可以通過將工作分解為更小的部分並遵循一致的模式來完成。 他暗示下一個主要步驟是創建錦標賽表單,這將使應用程式接近完成。

這節課突出顯示了C#應用程序開發中的關鍵概念,包括Windows Forms UI、SQL儲存過程、數據訪問層、CRUD操作和基於文件的儲存,這些概念都通過Tim Corey的教學風格清楚地說明。

開發人員通常使用C#來構建各種應用程式,包括網頁應用、後端API、桌面軟體、移動應用和遊戲開發。 能夠在這些領域中使用C#顯示了其多功能性和廣泛的適用性。

C#具有龐大的全球生態系統,並且繼續隨著新功能和性能改進而演變。 它在各行各業中仍然是一種可靠、現代且需求量高的語言。

Hero Worlddot related to C# 應用程式開發:完成「創建團隊」表單(第 14 課)
Hero Affiliate related to C# 應用程式開發:完成「創建團隊」表單(第 14 課)

通過分享您所愛的東西賺得更多

您是否在為使用.NET、C#、Java、Python或Node.js的開發者創建內容?將您的專業知識轉化為額外收入!

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我