[筆記]Web Service 與 Web API 的區別
Web ServiceWeb Service 是一種基於 Web 技術的軟體系統,可以讓不同的應用程式之間進行互操作。Web Service 使用標準化的 XML 消息進行通訊,並支援跨平台的互操作性。它可以通過 HTTP、SMTP 或其他通訊協定來提供網路服務。Web Service 通常使用 SOAP 協議來處理請求和回應。最初是為了解決企業應用系統的互操作性問題而出現的,通常使用 XML 或 JSON 編碼進行消息的傳輸。Web Service 通常包含一組 WSDL(Web Services Description Language)文件,這個文件定義了 Web Service 所支持的方法、引數、傳輸協議等細節。
Web Service 是一個通用的、標準化的、可互操作的應用程式介面,可以讓不同的應用程式互相溝通。它主要使用 SOAP 協議進行消息傳輸,並且通常包含一組 WSDL 文件。Web Service 的優點是可靠性高、安全性好、支持跨平台等,缺點是效率較低。
Web Service 可以被用於不同的場合,例如:
集成不同平台的系統:Web Service 可以讓不 ...
[筆記]C# .NET 與 Net Framework
.Net.NET 是一個由 Microsoft 開發的跨平台框架,用於開發和執行各種應用程式。它提供了一個統一的編程模型,使開發人員可以使用不同的語言(例如 C#、VB.NET、F# 等)和工具(例如 Visual Studio、Visual Studio Code 等)來開發應用程式。.NET 還提供了各種庫和工具,使開發人員可以輕鬆地開發高品質、高效和安全的應用程式。
.NET 包括兩個主要部分:.NET Framework 和 .NET Core。.NET Framework 是 .NET 的最初版本,它運行在 Windows 平台上,支持使用 C#、VB.NET 等語言開發各種應用程式。.NET Core 是 .NET 的新一代版本,它是跨平台的,支持在 Windows、Linux 和 macOS 等平台上運行,同時也支持使用 C#、VB.NET、F# 等語言開發各種應用程式。.NET Core 還支持微服務架構、容器化部署和現代 Web 開發等新特性。
特色
跨平台支持:.NET Core 可以在 Windows、Linux 和 macOS 等多種平台上運行,這使得開發人員可 ...
【Git】- 何謂 Git Flow
Git Flow期初使用 Git 多人開發時候,常因為沒定義規則,遇到 Commit 集中一堆會造成後續維護很大困擾。因此於 2010年提出一套流程 【Git Flow】,而這套流程廣泛被應用。
五種分支Git Flow 使用主分支(master)和開發分支(develop)以及支援分支(feature)、修復分支(hotfix)、發布分支(release)分支類型,以適應不同的開發場景和需求。
主要 Branch通常會用來給 DevOps 或是程式碼集中點,不會輕易刪除掉 Branch 。
正式環境 (Master) : 代表著穩定的產品版本,只會從發布分支或熱修分支合併過來。
開發環境 (Develop): 代表著正在開發的下一個版本,所有的開發工作都在這個分支上進行。
次要 Branch
功能分支(feature):代表著新功能的開發分支,通常是由開發分支分出來的,完成後再合併回開發分支。
修復分支(hotfix):代表著緊急修復的分支,通常是由主分支分出來的,完成後再合併回主分支和開發分支。
發布分支(release):代表著發布準備的分支,通常是由開發分支分出來的,完成 ...
【Git】- 比較前後差異(一) git diff
近期遇到很多版本、程式更新總類、修改內容需要調資料,當中可以知道 git 可以從 UI看到差異性,同時有包含diff 這個指令到目前為止我都沒用過,因此來實際玩玩看就知道了。
git diff這功能主要是比對 Git Commit 之間的版本差異之外,也同樣可以跟資料與資料比對。依據任何情境下會使用不能的方式。
單一檔案比對 : 若有 script 或是 一些檔案透過資料夾備份管理 (無使用git管理),需要使用資料差異性確認差異。
版本差異比對 : 針對特定版本或是穩定版本查看差異性。
資料夾比對 : 這邊會偏向TFS沒有上git 版本可以考慮使用這個功能。
使用方式一、檔案比對這邊用簡單txt 檔案進行比較,可以看出diff不會因為檔案名稱不同判斷錯誤。
1git diff .\text1.txt .\text2.txt
以下範例 :
二、資料夾比較這功能主要以資料夾互相比較結果,以上兩點為離線版使用的指令,相當實用。 (如果有資料夾比對部分,裡面資料必須要相同不然就會遇到判讀問題)
1git diff text_1 text_2
三、Commit 比較這會由git comm ...
【Git】- 使用 remote 強制覆蓋 repository
前言這篇為記錄用途,但也強烈不推薦使用在 git 已經有良好版本時候使用這個招式,否則找不回來原本的版本。
local 加入到 remotegit remote 常見指令如下 :
加入遠端:git remote add <remote name> <url>
觀看遠端列表:git remote
觀看遠端列表(包含 rul):git remote -v
下載遠端:git clone <url>
從 local 匯入 remote 有兩種情況 “初始專案”、”離線開發”這種有機會用到這個東西。remote 是為了要上傳到 【github】、【gitlab】之類的 resp 。
一、取得 repository url首先,可以先把 repository 創建完畢並且取得 url 即可。
二、加入 remote1git remote add <remote name> <url>
三、Push 專案備註 : 因為是初始化專案,可以直接使用force,但不推薦有很多 history commits 情況下覆蓋。
1git push ...
【Git】- 如何使用 SSH 連線到 Git
前言這邊主要是針對使用SSH方式進行Git操作,因為有時候會遇到需要使用SSH方式進行操作,因此這邊紀錄一下。
什麼是 SSH(Secure Shell)SSH(Secure Shell)是一種網路協議,用於安全地在網絡上進行數據通信、遠程訪問和遠程管理。SSH 的目的是通過加密和認證機制來保護網絡通信的安全性,特別是在不受信任的網絡中進行數據傳輸。
遠程登錄(Remote Login):SSH 允許用戶從遠程位置(例如家中或辦公室之外)安全地登錄到遠程服務器或計算機上,並在遠程計算機上運行命令。
文件傳輸(Secure File Transfer):SSH 提供了安全的文件傳輸機制,允許用戶在本地計算機和遠程服務器之間傳輸文件,這種機制通常用於上傳或下載文件。
遠程管理(Remote Management):系統管理員可以使用 SSH 遠程管理遠程服務器或設備,包括配置、監控和維護。
安全性
加密(Encryption):SSH 使用加密算法對數據進行加密,使得數據在傳輸過程中無法被未經授權的第三方窺探或修改。
身份驗證(Authentication):SSH 使用公鑰加 ...
【Git】- 使用 git reset 復原及還原專案資料
專案有時因功能需求或是其他原因,會需要回復到之前的版本。通常會有兩種狀況不是專案壞掉、設定檔跑掉,初起可以先用以下做法來驗證。
還原方式一、還原最新的commit通常使用時機會是因為專案壞掉,或是設定檔跑掉,可以先還原最新的commit。
1git reset --hard HEAD
二、還原其他commit指令若發現還原最新的commit後,還是有問題,可以使用以下指令還原其他commit。
1git reset --hard <commit id>
補充.git 是git的版本控制資料夾,裡面存放了git的版本控制資料,如果刪除了這個資料夾,就無法使用git來控制版本了,但是這並不會影響到你的專案資料,只是無法使用git來控制版本。
相對,如果你只有取得一個.git是可以利用 git reset把資料還原回來,可以不必要打包太大資料給對方。
[筆記]C# - DI / IOC 差異
DI 依賴注入 (Dependency Injection)是 DI 的一種實現方式,它將對象的創建和生命週期管理交給 IoC 容器來處理。
1定義 : A物件程式內部需要使用B物件 , 則 B 物件中有依賴的成份。
IOC 控制反轉 (Inversion of Control)是一種軟體設計模式,指的是將對象創建和生命週期管理的責任轉移到 IoC 容器中,容器負責解析依賴關係,並將需要的對象注入到其它對象中。這樣做的好處是降低代碼的耦合性,增加代碼的靈活性和可測試性。
1定義 : A 物件與 B 物件控制權由第三方容器控制。
結論IoC 是一種設計模式,而 DI 則是 IoC 的一種具體實現方式。使用 DI 的好處是可以使代碼更加靈活和可測試,因為對象的依賴關係被轉移到了容器中,可以方便地模擬和測試各個對象。同時,使用 DI 還可以提高代碼的可讀性和可維護性,因為代碼中不再包含創建和管理依賴關係的代碼。
[筆記]C# Scaffold Entity Framework
Scaffold又可稱”鷹架”、”支架”。Scaffold 是可以解釋為程式碼產生器,可以透由指令產生出想要的檔案、專案,使用部分通常是透由指令方式呼叫、產生指令。dotnet.exe內也有提供scaffold概念。
專案Net Core SDK安裝時候會提供預先定義的 scaffold 範本(example: dotnet.exe)。 以下指令參考 :
展開 dotnet.exe 清單 : dotnet new --lists
求救指令 : dotnet new -h
Entity Framework CoreEF Core 使用方式與 EF 不同,EF Core 基於 Scaffolding 實體類型類別和 DbCoNtext 類別的程式。可以透由套件管理員主控台 (PMC):Scaffold-DbContext或是 NET 命令列介面 (CLI): dotnet ef dbcontext scaffold 產生出檔案。
注意事項
必須使用Microsoft.EntityFrameworkCore.Design NuGet 套件
需要安裝相關工具 :
套件管理員主控台 ...
[筆記]C# ORM 物件關係映像
物件關係映像 Object Relational Mapping是一種軟體開發技術,它將關聯式資料庫中的資料表映射到物件導向程式語言中的物件,從而實現程式語言與資料庫之間的無縫集成。
ORM 框架通常提供以下功能:
對象映射:ORM 框架會自動將資料庫表格映射到物件,開發人員可以像使用任何物件一樣使用這些物件。
關聯性映射:ORM 框架可以處理表格之間的關係,使開發人員可以輕鬆地編寫與關聯性相關的程式碼。
資料庫操作:ORM 框架提供了一套 API,使開發人員可以方便地對資料庫進行 CRUD 操作。
查詢語言支持:ORM 框架通常提供了一套自己的查詢語言,開發人員可以使用這些查詢語言方便地查詢資料庫。
ORM 框架的好處是可以減少對於 SQL 的依賴,減少了對於資料庫的複雜性,讓開發人員可以更專注於物件導向程式設計,並且可以提高開發效率。但是使用 ORM 框架也存在一些缺點,比如在效能上可能會有些影響,需要仔細選擇適合的 ORM 框架並進行優化。
結論物件關係映像是 “物件”與”資料庫”之間對應的一種技術,例如 : “Entity Framework”。特色是資料透過【物件方式】 ...