Moq API:Verifiable() & Verfiy()
Docker:在Windows上安裝WSL2並建立MS SQL Server Container
在Windows上安裝WSL2並建立MS SQL Server Container
Docker:再Linux Ubuntu上建立MS SQL Server Container
Linux Ubuntu安裝Docker Engine來跑MS SQL Server
從無到有建立一個前後端分離的新專案(Angular + .Net Core WebAPI + PostgreSQL)
- 783
- 0
- 後端開發(.Net Core)
- 2024-04-15
最近工作剛好有個自己從無到有建置一個專案的機會,自己也是第一次從無到有的自己建置一個專案,機會難得,紀錄一下整個過程,大致會有下列幾個主要步驟:
- 建立後端.Net Core WebAPI新專案
- 建立Angular新專案,並安裝Angular Material & Bootstrap
- 建立資料(Repository)層
- 後端API權限設定
- Angular呼叫後端WebAPI & CORS處理
.Net Core 加入Windows驗證功能
- 582
- 0
- 後端開發(.Net Core)
- 2024-03-18
雖然現在的WebAPI大部分採用Token方式來驗證,但企業內部的話,大部分還是會直接採用Windows驗證。
最近開發新專案,剛好有使用到身分驗證的相關功能,趁這次機會把.Net 的身分驗證相關問題紀錄一下。
.Net Core WebAPI 傳值到後端Controller的方法
- 865
- 0
- 後端開發(.Net Core)
- 2023-10-20
網頁功能最常用的就是資料間的傳遞,不管事表單資料傳送到後台,或者是輸入查詢資料後,由後端DB回傳資料。這之間都少不了傳輸資料到後台。
在以前MVC的時候,可以透過Razor語法的HTML Helper的BeginForm,在Submit之後,會透過ModelBinding把資料傳到後端Controller。
或是在View直接把整個Form序列化(serilizeArray)後再傳給後端。
現再寫前後分離(Angular + .Net 6 WebAPI)採用WebAPI來開發,剛完成第一個前後分離專案,順便把資料傳送到Controller的方式記錄下來。
DI & IoC_什麼是IoC & 實作DI注入
上篇跟大家簡單的介紹了什麼是耦合,其中有提到依賴反轉原則(D.I.P.),其中有一點是說高層次的模組不應該依賴於低層次的模組,兩者都應該依賴抽象介面。
從頭建置一個MSTest單元測試專案
之前工作時就有接觸到單元測試(Unit Test),但僅限於使用別人寫好的單元測試而已。目前工作上剛好有機會能自己寫單元測試,就把整個從建立但撰寫到執行單元測試的過程記錄下來。
使用的單元測試框架為.Net Core內建的MS Test。
再開始寫單元測試前,介意先看一下保哥寫的單元測試系列文,建立一些對於單元測試的觀念=>保哥-單元測試相關系列文章
DI & IoC_何謂相依性&耦合性
控制反轉(Inverse of Control, IoC)是一種設計模式,相依性注入(Dependency Injection)則是實踐IoC的一種方式,為什麼要IoC? 先來看看物件導向S.O.L.I.D.原則裡面的D.,依賴反轉原則(Dependency inversion principle,DIP)有下列特性:
- 高層次的模組不應該依賴於低層次的模組,兩者都應該依賴於抽象介面。
- 抽象介面不應該依賴於具體實現。
- 而具體實現則應該依賴於抽象介面。
.Net Core使用FromSqlRaw()直接下SQL撈取資料,並存放到自定義類別
- 1353
- 0
- 後端開發(.Net Core)
- 2023-01-31
撈取DB資料時,如果是單一資料來源的話,直接使用EF Core是很方便。但更多時候資料來源是多張表單,Join完之後又要Group By,好了之後再把結果拿去Join其他表,或是再做子查詢。像這種時候如果沒有寫成View而是直接用Lambda或是LinQ語法來兜的話,實在是寫得很痛苦。以我來說,只要是查詢語法比較複雜的話我都習慣直接下SQL語法,再用自定義類別來接查詢結果。
記得以前在.Net Framework的時候,做法好像沒有這麼複雜,.Net Core會比較複雜一點,以下是使用PostgreSQL來實作,但使用MS SQL應該也不會差太多。
另外附上以前.Net Core3使用ADO.Net的方式
利用Docker Desktop on Windows建立MS SQL Server Container
公司筆電因為權限問題,安裝MS SQL時都會一直報錯,無法安裝,但有些功能還是MS SQL使用比較習慣。
後來決定自己在VirtualBox上架個Linux的VM(不選Windows是因為不想花錢買序號)在裡面架設MS SQL SERVER,但步驟又有點複雜,且架好之後,本機又會連線不到VM環境的SQL SERVER,也沒那麼多時間去研究環境問題,於是就放棄了。
後來又在Azure上架了一台MS SQL Server,雖然步驟不複雜,也可以成功連線,但試用期過後每個月都要扣錢,對於只是用來做些測試功能的我來說,實在是不划算。
後來想說自己也沒有接觸過Docker這個東西,就趁這個機會,架了一個SQL SERVER服務,結果也能成功連線,就順便把整個過程記錄下來。
透過postMessage完成兩個分頁之間資料互相傳輸
最近有個需求
大概是主要畫面為輸入表單(母頁面),輸入完成後,會把資料存放到List,要查看時就透過Modal彈跳視窗顯示(子頁面)。
但User有新需求為想要邊編輯表單資料又可以同時看到資料List,那麼就不能用Modal彈跳視窗的方式來完成。
因為Modal彈跳視窗其實是個遮罩,會造成遮罩後的頁面功能無法使用。
勢必要用兩個分頁來處理,但主.次頁面之間會有資料互相傳遞,這時就能透過postMessage這個API來處理
Visual Studio的Angular範本專案ng serve沒有反應
這問題我也不知道怎麼發生的
最近剛開始學習angular
亂裝了一堆套件之後
也不知道做了什麼事情就把專案的angular搞壞了
下ng serve後都沒有任何反應,也沒有任何錯誤訊息
試了一天後
才終於問題解決掉
.Net 5建立Angular範本專案
- 60
- 0
- 後端開發(.Net Core)
- 2023-10-20
.Net 5建立Angular範本專案
MVC表單傳值時Model Binding注意事項
- 248
- 0
- 2023-10-27
表單傳值給Action時,ModelBinding要注意的東西,用不好可是會Binding到天荒地老都還接不到參數阿。
HttpUtility.HtmlDecode後的" "並非真正的空白字串!
- 628
- 0
- 後端開發(.Net Framework)
- 2023-04-21
HttpUtility.HtmlDecode後的"& n b s p ;"並非真正的空白字串!
眼前看到的空不是空
分頁功能開發時的注意事項
- 387
- 0
- 後端開發(.Net Framework)
- 2023-04-21
分頁功能看起來不難,主要資料只要有資料總筆數. 當前頁數. 每頁資料筆數,有了上述資料即可進行相關功能開發,但其實當中還有一些眉眉角角要注意的地方。
Form表單自動帶值也可以透過ViewData取得
- 1527
- 0
- 2023-10-27
表單Post後,要把表單輸入的值重新填回表單,常用的方式除了透過ViewModel自己做ModelBinding外,其實也可以透過ViewData來進行填值
AJAX把表單資料POST到後端Action快速教學版本
- 1527
- 0
- 後端開發(.Net Framework)
- 2023-10-27
既然要求快速,那就連描述都省略吧,直接進入重點!
XSS攻擊範例以及避免方法
這幾天看到XSS攻擊的相關文章,想說手邊剛好有個範例剛好可以給大家演示一下XSS攻擊
不使用jquery.validate.unobtrusive進行送出表單前進行簡易驗證
如果不使用jquery.validate.unobtrusive,只想做些簡單的驗證的話,可以用下面兩種方法來進行表單送出前驗證
AJAX 加入 AntiForgeryToken
- 622
- 0
- 後端開發(.Net Framework)
- 2023-04-21
為了防止CSRF攻擊,我們可以在MVC的Controller加上ValidateAntiForgeryToken這個標籤來進行Token的驗證,通常在前端的Form裡面也會加上@Html.AntiForgeryToken()來產生要跟後端驗證的Token,但如果有時候只是要透過AJAX來進行資料異動(ex:刪除資料)這種沒有表單的動作時,我們要把@Html.AntiForgeryToken()加在哪裡才不會打AJAX時老是出現500的回應呢?
JQuery如何把特殊符號(ex:< . >)當成純字串顯示
今天上班時遇到個問題,我有一個表單是允許輸入特殊符號的(ex:'<'. '>')。表單輸入完後要把輸入的資料組合成tr. td字串append到我的<table>後面,但卻遇到了個問題。只要我輸入的表單欄位有包含'<'或是'>',render出來的畫面都會怪怪的,雖然知道應該是特殊符號的問題導致HTML變的怪怪的,但之前都是有遇到問題才去找答案,為節省日後時間,就趁這次機會做個筆記記錄下來。
使用Unobstrusive-AJAX來執行AJAX
Unobstrusive-AJAX是為微軟的一個Js套件,你可以再HTML標籤裡加上一些特定的屬性,不用自己寫$.ajax類似的Js程式碼,即可完成以前的AJAX效果。其實優點我也不是很懂,google一下是說可以不用在前端cshtml裡面寫太多的javascript吧,可以把大部分的Js程式移到外部js檔,讓html跟Js切分得更乾淨。
ASP.Net MVC實作表單送出功能(使用Html.BeginForm)
- 3558
- 0
- 後端開發(.Net Framework)
- 2023-10-27
Form表單的資料傳到後端是網頁一個很重要的功能,除了直接使用Form Post. Get外,也可以透過Ajax的方式把前端的資料傳遞到後端。
ASP.Net MVC實作資料列裡面的Input欄位資料傳遞到Controller的方法
- 1266
- 0
- 後端開發(.Net Framework)
- 2023-10-27
工作實務中很常遇到這種情境,資料列裡面的Input資料post到Controller的方法。這邊演示一下如何處理處理這種常見的問題。
下載檔案時,瀏覽器出現Not allowed to load local resource的解決方法
- 2655
- 0
- 後端開發(.Net Framework)
- 2023-04-21
今天在寫ASP.Net MVC前端時,客戶要求新增訂單後,可以在檢視模式上傳過的附件加上下載的連結,方便檢視自己上傳過的檔案,但連結放上去後卻一直無法下載…
jQuery Validation Plugin + jQuery.validate.unobtrusive + AJAX,不透過form submit來做網頁表單驗證
表單驗證是網頁很常用的功能,通常是submit會觸發驗證流程(會把jQuery.validator.unobtrusive.parse("#form1"); 會把檢核觸發寫在submit button裡)。但今天收到個需求,網頁因為某些因素不想透過submit 表單post資料到後台,想要透過ajax的方式來post資料,但validator又一定需要把要驗證的<input>包在<form>裡面的情況下(如果把<form>拿掉,就不會有驗證效果),要如何觸發表單驗證?
防止瀏覽器存取快取的方式
防止瀏覽器存取快取的方式
介面(Interface). 抽象(Abstract). 虛擬(Virtual)的差異
這個問題記得面試時碰過兩. 三次,要你說出介面跟抽象類別兩者之間的差異,我只知道其中相似之處就是要讓子類別來實作其內容,其他也說不出來有什麼相異之處。直到最近工作常會接觸到介面,這個問題又被我想起來了。