# 北科大專題課程-3 C#基礎與 .Net Core專案實作 ##### 2020/10/13 ###### 黃豊凱KevinHuang --- # 什麼是C# --- ### 什麼是C# **基於.Net框架的物件導向程式語言** - 物件導向程式設計 - .Net框架 --- ### 物件導向程式設計 參考網站: - 物件導向介紹+特性1.封裝: - [什麼是OO?物件導向與封裝](https://medium.com/%E7%A8%8B%E5%BC%8F%E6%84%9B%E5%A5%BD%E8%80%85/%E4%BB%80%E9%BA%BC%E6%98%AFoo-%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91%E8%88%87%E5%B0%81%E8%A3%9D-80379c24e62) - 物件導向特性2.繼承: - [什麼是OO?物件導向與繼承](https://medium.com/%E7%A8%8B%E5%BC%8F%E6%84%9B%E5%A5%BD%E8%80%85/%E4%BB%80%E9%BA%BC%E6%98%AFoo-%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91%E8%88%87%E7%B9%BC%E6%89%BF-6955239576af) - 物件導向觀念補充-介面與抽象: - [物件導向中的介面與抽象類別是什麼 ?](https://medium.com/%E7%A8%8B%E5%BC%8F%E6%84%9B%E5%A5%BD%E8%80%85/%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91%E4%B8%AD%E7%9A%84%E4%BB%8B%E9%9D%A2%E8%88%87%E6%8A%BD%E8%B1%A1%E9%A1%9E%E5%88%A5%E6%98%AF%E4%BB%80%E9%BA%BC-1199804ccc5f) - 物件導向特性3.多型: - [什麼是OO?物件導向與多型](https://medium.com/%E7%A8%8B%E5%BC%8F%E6%84%9B%E5%A5%BD%E8%80%85/%E4%BB%80%E9%BA%BC%E6%98%AFoo-%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91%E8%88%87%E5%A4%9A%E5%9E%8B-30690aa3934c) --- ### 什麼是 .Net 框架 由微軟發明的框架 目前有兩個 .Net Framework 與 .Net Core Windows系統自帶 .Net Framework 並且 .Net Framework 也依賴於Windows --- ### C#入門教學資料 - [C#入門指南](http://kaiching.org/pydoing/cs-guide/index.html) - [搭配影片觀看](https://www.youtube.com/watch?v=EqtRHs1DsJo&list=PL9OF2bYpo7BPQj7ltIoEQ74L9rpdWtnoC&ab_channel=PYDOING) --- ### 網頁系統架構 > 前端、後端、資料庫 --- ### 前端後端=前台後台? --- ### 前端後端=前台後台? ### *錯!* - 前台:使用者操作的介面 - 後台:管理者操作的介面 - 前端:系統架構中負責畫面、使用者操作 - 後端:系統架構中負責邏輯運算、存取資料 --- ### 前端、後端、資料庫 ###### 流程與各自的語言與框架 ![](https://i.imgur.com/Sh6BtUn.png) --- ### 前端、後端、資料庫 ###### 更簡單的理解方法 ![](https://i.imgur.com/RAQE2C2.png) --- ### 程式開發架構 > MVC --- ### MVC - Model(資料模型對應) - View(前端視圖) - Controller(流程控制器) - Service(邏輯運算服務) --- ### MVC ![](https://i.imgur.com/1YAlibl.png) --- ### 框架 > .Net Framework vs. .Net Core --- ### .Net Framework vs. .Net Core #### 兩者都是.Net的框架 ![](https://i.imgur.com/hEpLLfV.png) --- ### 什麼是前後端分離?API又是什麼? --- ### 什麼是前後端分離?API又是什麼? ![](https://i.imgur.com/Y7qdcia.png) --- ### 什麼是前後端分離?API又是什麼? ![](https://i.imgur.com/DoHifil.png) --- ### Restful API-Http Method [參考連結](https://progressbar.tw/posts/53) ![](https://i.imgur.com/KrerRBN.png) --- ### Http Method 範例 ![](https://i.imgur.com/FrvM592.png) --- ### Restful API [可參考資料](https://github.com/twtrubiks/django-rest-framework-tutorial/tree/master/RESTful-API-Tutorial) ![](https://i.imgur.com/Eu2KKjv.png) --- ### Restful API 範例 [可參考資料](https://github.com/twtrubiks/django-rest-framework-tutorial/tree/master/RESTful-API-Tutorial) ``` - GET /api/files/ 得到所有檔案 - GET /api/files/1/ 得到檔案 ID 為 1 的檔案 - POST /api/files/ 新增一個檔案 - PUT /api/files/1/ 更新 ID 為 1 的檔案 - PATCH /api/files/1/ 更新 ID 為 1 的部分檔案內容 - DELETE /api/files/1/ 刪除 ID 為 1 的檔案 ``` --- ## 開始實作 --- ### 1.建立專案 ![](https://i.imgur.com/MQ4Q1zj.png) --- ### 2.建立資料庫與資料表 ![](https://i.imgur.com/yHSaiZp.png) --- ### 3.安裝EF Core套件 ![](https://i.imgur.com/NYRGK6K.png) --- ### 4.初始化資料模型對應 ![](https://i.imgur.com/QXnP9er.png) --- ### 5.新增Service資料夾 ![](https://i.imgur.com/lnk25h0.png) --- ### 6.建立第一個API Controller ![](https://i.imgur.com/oOJegss.png) --- ### 7.Controller呼叫Service ![](https://i.imgur.com/vyATbZt.png) --- ### 8.Service引入DBContext並查詢資料 - EF Core 使用的是LinQ語法,而不是SQL指令 - [EF Core LinQ官方參考文件](https://docs.microsoft.com/zh-tw/ef/core/querying/basic) ![](https://i.imgur.com/lab36T6.png) --- ### 10.Controller回傳資料 ![](https://i.imgur.com/25MIVd1.png) --- ### 11.透過網頁測試Get API ![](https://i.imgur.com/sn3fsoQ.png) --- ### 12.透過PostMan測試API ![](https://i.imgur.com/v8wLE3i.png) --- ### 完成剩餘API實作-TodoList專案 - 「已完成」查詢所有Todo API - 新增Todo - 用ID查詢單一Todo API - 變更Todo狀態API(完成/未完成) - 刪除Todo API --- ### 額外練習:會員系統 [參考資料](https://blog.johnwu.cc/article/ironman-day12-asp-net-core-restful-api.html) - 查詢所有會員資料 - 查詢單一會員資料 - 新增會員資料 - 修改會員資料 - 刪除會員資料 --- ### 複習與深入了解資源 - [ASP.Net Core MVC進化之路](https://ithelp.ithome.com.tw/users/20111879/ironman/1749) - [ASP.NET Core 從入門到實用](https://ithelp.ithome.com.tw/users/20107461/ironman/1372) --- ##### 學程式不只是學習某個語言或框架, ##### 更重要是學習怎麼自學更多 ![](https://i.imgur.com/dhYvv2w.png)
{"metaMigratedAt":"2023-06-15T14:05:34.892Z","metaMigratedFrom":"YAML","title":"北科大專題課程-3 C#基礎與 .Net Core專案實作","breaks":true,"contributors":"[{\"id\":\"51ff12a4-2c72-4ebf-8d92-b365963be44a\",\"add\":5165,\"del\":931}]"}
    1765 views