Backend/C_shape
2024-05-06 14:05:05 +08:00
..
ASPNET up 2024-04-20 16:01:32 +08:00
img 1 2024-04-22 12:50:25 +08:00
WEBAPI 身分驗證 2024-05-06 14:05:05 +08:00
README.md README 2024-04-22 12:52:18 +08:00

.NET

介紹

目前都以.NET6去做開發有以下特點

  • 簡化的開發:非常容易上手。 C# 10中的新語言功能可減少您需要撰寫的程式碼數量。 對 Web 堆疊和最少 API 的投資,可讓您輕鬆快速寫入較小且更快速的微服務。
  • 效能較佳:.NET 6 是最快的完整堆疊 Web 架構,如果在雲端中執行,則可降低計算成本。
  • 極致生產力:.NET 6 和 Visual Studio 2022 會提供熱重新載入、新 Git 工具、智慧型程式碼編輯、強固診斷和測試工具,及更好的小組共同作業。

講建立專案的部分前先看過Enity Framework core 與 LinQ

Enity Framework core

是一個ORM框架可以大幅減少使用SQL語法且透過強型別取得與操作物件資料

建立連線

 private readonly SqlContext _context;
 public Test_0612_01Controller(SqlContext context)
        {
            _context = context;
        }


新增資料

_context.表名稱.Add(遇新增的資料);

刪除資料

_context.表名稱.FindAsync(id);

儲存變更

_context.SaveChangesAsync();

搜尋資料

全部資料
_context.表名稱.ToListAsync();
指定資料
_context.表名稱.FindAsync(id);
條件式資料
_context.表名稱.Where(L=>L.條件式);

一種數據查詢語言被廣泛應用於C#中

對做API來說常常需要針對不同資料做提取這邊使用LinQ會方便很多

查詢表名稱內所有資料

from c in _context.表名稱
select c

查詢表名稱符合條件A的資料

from c in _context.表名稱
where 條件A
select c

查詢表名稱內所有資料並由小至大

from c in _context.表名稱
orderby 欄位名
select c

VS2022

安裝 下載連接

下載後若單純架設網站選擇ASP.NET 與 Node.js(之後寫Vue會用到)

若需要維護Winform 或是WPF 則選擇.NET桌面開發

若需要快速建立則直接使用我提供的DEMO去做開發

ASPNET

建立新專案

選擇版本 (這邊以.NET6做教學 目前最新的.NET8)

啟動

安裝套件包(NuGet)

設定資料庫連線

於appsettings.json 中加入

//連接MYSQL
  "ConnectionStrings": {
    "tarefasConnection": "server=140.125.21.65;port=3307;uid=VIP125;pwd=@VIPvip125;database=VIP125"
  }

於Program.cs中加入設定

	builder.Services.AddDbContext<SqlContext>(opt =>
{
    string connectionString = builder.Configuration.GetConnectionString("tarefasConnection");
    var serverVersion = ServerVersion.AutoDetect(connectionString);
    opt.UseMySql(connectionString, serverVersion);
});

建立與資料庫table的連線

創建Model

建議將創建的Model名稱第一個字大寫資料庫內部資料表名用小寫這樣較好對比
Model內容需要跟資料表的欄位名稱相對應

創建Services

Haskey指的是不會重複的
像是身份證字號這種的就不會重複

創建控制器

創建出來的頁面

WEBAPI

建立新專案

基本上都與ASPNET相同就這部分要注意

連接資料庫的方式都與ASPNET一樣這邊只是將ASPNET中的MVC去除View去更專注在後端這邊建立控制器的方式也有點不同

其餘的就好好看先前提到的ORM框架與LINQ去構建出API即可

運行之後: