最近再使用Except()時,遇到個問題。明明他的功能就是要幫我們找出a有b沒有的資料,但結果卻一直跑出a已經有了,b也有的重複資料,研究了一下發現問題還蠻有趣的,也可以順便回憶一下reference type跟value type的相關知識喔~
LINQ Except()使用時的注意事項
- 242
- 0
- 後端開發(.Net Core)
最近再使用Except()時,遇到個問題。明明他的功能就是要幫我們找出a有b沒有的資料,但結果卻一直跑出a已經有了,b也有的重複資料,研究了一下發現問題還蠻有趣的,也可以順便回憶一下reference type跟value type的相關知識喔~
我們在寫程式時,通常會把設定寫在appsettings.json裡面,但是不同的開發環境會有不同的設定值(例如:檔案產出路徑…etc)。.Net預設會使用appsettings.json這個檔案的設定值,但如果我們有不同的組態設定檔時(例如:DEV. SIT. UAT. PRD)。我們就要分別先新增appsettings.DEV.json, appsettings.SIT.json,appsettings.UAT.json,appsettings.PRD.json,其中的DEV.SIT.UAT會對應到不同的環境變數(appsettings.{環境變數}.json),有了不同環境的設定檔後,下面會來教大家要如何在本機開發環境切換不同的設定檔來進行測試。
當前端網頁開發完成後,接著就是實際放到iis上了(不然就只能一直再本機上面執行),過程中可能會遇到一些問題(CORS. 路徑設定…etc),趁著這次剛好有機會時做整個過程,就順便把整個過程做個紀錄。
最近在寫單元測試時,Setup一個Function之後,明明使用Verifiable()檢查確認Function有時被執行
Moq API:Verifiable() & Verfiy()
在Windows上安裝WSL2並建立MS SQL Server Container
Linux Ubuntu安裝Docker Engine來跑MS SQL Server
最近工作剛好有個自己從無到有建置一個專案的機會,自己也是第一次從無到有的自己建置一個專案,機會難得,紀錄一下整個過程,大致會有下列幾個主要步驟:
雖然現在的WebAPI大部分採用Token方式來驗證,但企業內部的話,大部分還是會直接採用Windows驗證。
最近開發新專案,剛好有使用到身分驗證的相關功能,趁這次機會把.Net 的身分驗證相關問題紀錄一下。
網頁功能最常用的就是資料間的傳遞,不管事表單資料傳送到後台,或者是輸入查詢資料後,由後端DB回傳資料。這之間都少不了傳輸資料到後台。
在以前MVC的時候,可以透過Razor語法的HTML Helper的BeginForm,在Submit之後,會透過ModelBinding把資料傳到後端Controller。
或是在View直接把整個Form序列化(serilizeArray)後再傳給後端。
現再寫前後分離(Angular + .Net 6 WebAPI)採用WebAPI來開發,剛完成第一個前後分離專案,順便把資料傳送到Controller的方式記錄下來。
上篇跟大家簡單的介紹了什麼是耦合,其中有提到依賴反轉原則(D.I.P.),其中有一點是說高層次的模組不應該依賴於低層次的模組,兩者都應該依賴抽象介面。
之前工作時就有接觸到單元測試(Unit Test),但僅限於使用別人寫好的單元測試而已。目前工作上剛好有機會能自己寫單元測試,就把整個從建立但撰寫到執行單元測試的過程記錄下來。
使用的單元測試框架為.Net Core內建的MS Test。
再開始寫單元測試前,介意先看一下保哥寫的單元測試系列文,建立一些對於單元測試的觀念=>保哥-單元測試相關系列文章
撈取DB資料時,如果是單一資料來源的話,直接使用EF Core是很方便。但更多時候資料來源是多張表單,Join完之後又要Group By,好了之後再把結果拿去Join其他表,或是再做子查詢。像這種時候如果沒有寫成View而是直接用Lambda或是LinQ語法來兜的話,實在是寫得很痛苦。以我來說,只要是查詢語法比較複雜的話我都習慣直接下SQL語法,再用自定義類別來接查詢結果。
記得以前在.Net Framework的時候,做法好像沒有這麼複雜,.Net Core會比較複雜一點,以下是使用PostgreSQL來實作,但使用MS SQL應該也不會差太多。
另外附上以前.Net Core3使用ADO.Net的方式
公司筆電因為權限問題,安裝MS SQL時都會一直報錯,無法安裝,但有些功能還是MS SQL使用比較習慣。
後來決定自己在VirtualBox上架個Linux的VM(不選Windows是因為不想花錢買序號)在裡面架設MS SQL SERVER,但步驟又有點複雜,且架好之後,本機又會連線不到VM環境的SQL SERVER,也沒那麼多時間去研究環境問題,於是就放棄了。
後來又在Azure上架了一台MS SQL Server,雖然步驟不複雜,也可以成功連線,但試用期過後每個月都要扣錢,對於只是用來做些測試功能的我來說,實在是不划算。
後來想說自己也沒有接觸過Docker這個東西,就趁這個機會,架了一個SQL SERVER服務,結果也能成功連線,就順便把整個過程記錄下來。
最近有個需求
大概是主要畫面為輸入表單(母頁面),輸入完成後,會把資料存放到List,要查看時就透過Modal彈跳視窗顯示(子頁面)。
但User有新需求為想要邊編輯表單資料又可以同時看到資料List,那麼就不能用Modal彈跳視窗的方式來完成。
因為Modal彈跳視窗其實是個遮罩,會造成遮罩後的頁面功能無法使用。
勢必要用兩個分頁來處理,但主.次頁面之間會有資料互相傳遞,這時就能透過postMessage這個API來處理
這問題我也不知道怎麼發生的
最近剛開始學習angular
亂裝了一堆套件之後
也不知道做了什麼事情就把專案的angular搞壞了
下ng serve後都沒有任何反應,也沒有任何錯誤訊息
試了一天後
才終於問題解決掉
.Net 5建立Angular範本專案
表單傳值給Action時,ModelBinding要注意的東西,用不好可是會Binding到天荒地老都還接不到參數阿。
HttpUtility.HtmlDecode後的"& n b s p ;"並非真正的空白字串!
眼前看到的空不是空
分頁功能看起來不難,主要資料只要有資料總筆數. 當前頁數. 每頁資料筆數,有了上述資料即可進行相關功能開發,但其實當中還有一些眉眉角角要注意的地方。
表單Post後,要把表單輸入的值重新填回表單,常用的方式除了透過ViewModel自己做ModelBinding外,其實也可以透過ViewData來進行填值
既然要求快速,那就連描述都省略吧,直接進入重點!
這幾天看到XSS攻擊的相關文章,想說手邊剛好有個範例剛好可以給大家演示一下XSS攻擊
如果不使用jquery.validate.unobtrusive,只想做些簡單的驗證的話,可以用下面兩種方法來進行表單送出前驗證
為了防止CSRF攻擊,我們可以在MVC的Controller加上ValidateAntiForgeryToken這個標籤來進行Token的驗證,通常在前端的Form裡面也會加上@Html.AntiForgeryToken()來產生要跟後端驗證的Token,但如果有時候只是要透過AJAX來進行資料異動(ex:刪除資料)這種沒有表單的動作時,我們要把@Html.AntiForgeryToken()加在哪裡才不會打AJAX時老是出現500的回應呢?
今天上班時遇到個問題,我有一個表單是允許輸入特殊符號的(ex:'<'. '>')。表單輸入完後要把輸入的資料組合成tr. td字串append到我的<table>後面,但卻遇到了個問題。只要我輸入的表單欄位有包含'<'或是'>',render出來的畫面都會怪怪的,雖然知道應該是特殊符號的問題導致HTML變的怪怪的,但之前都是有遇到問題才去找答案,為節省日後時間,就趁這次機會做個筆記記錄下來。
Unobstrusive-AJAX是為微軟的一個Js套件,你可以再HTML標籤裡加上一些特定的屬性,不用自己寫$.ajax類似的Js程式碼,即可完成以前的AJAX效果。其實優點我也不是很懂,google一下是說可以不用在前端cshtml裡面寫太多的javascript吧,可以把大部分的Js程式移到外部js檔,讓html跟Js切分得更乾淨。
Form表單的資料傳到後端是網頁一個很重要的功能,除了直接使用Form Post. Get外,也可以透過Ajax的方式把前端的資料傳遞到後端。
工作實務中很常遇到這種情境,資料列裡面的Input資料post到Controller的方法。這邊演示一下如何處理處理這種常見的問題。
今天在寫ASP.Net MVC前端時,客戶要求新增訂單後,可以在檢視模式上傳過的附件加上下載的連結,方便檢視自己上傳過的檔案,但連結放上去後卻一直無法下載…