2020年12月19日 星期六

Deserialize注意事項 - 動態型別(Dynamic)屬性為物件時

程式開發一段時間,對於序列化各個眉角,沒碰過一萬應該也有一千(誤),累積了不少經驗;

應該大部分情境也都能分出注意事項,逢凶化吉~,但這次dynamic 情境算是上了一課,

凡事還是小心為妙,別一昧的依賴經驗。在開始說明前先對於 dynamic 整理一點點資訊。


2020年10月13日 星期二

資料表應用效能比較

最近比較頻繁的與TSQL 為伍,在讚嘆前人的花式語法之餘,有時也思考某幾個用法之間的差異,

或能區分相關的使用情境,這次針對泛暫存表的效能差異來比較一下。

2020年9月27日 星期日

C# 7.3 泛型條件約束增強

又往前推進了一個版本,這次來到 C# 7.3 ,而這小改版有一個地方讓我非常有感,

那就是「泛型的條件約束」,所以來特別來介紹,以前在設計泛型的時候,很常使用到「列舉」

,但就是無法直接使用關鍵字 Enum,需要轉念一下,原來是要使用 struct 關鍵字...

2020年9月26日 星期六

T-SQL Insert 語法選型參考

觀察很多人寫 tsql insert 的習慣,慢慢拿捏出幾種風格的好處,以及在多變的情境下,

應該會採取的策略及相關注意事項。

連接的資料庫伺服器不支援從 uniqueidentifier 到 int 的轉換

這篇名字有點長,這是無意間發現的狀況,好奇心作祟筆記一下;實務上不可能將既有運作中的資料

表隨意的轉換型別,更不用說兩者類型所儲存的內容天差地遠,轉換也沒意義;

2020年9月20日 星期日

C# 7.2

這系列進展到 7.2 了,微軟敏捷運作下週期推出新的更新,這幾天技術圈真是熱鬧,

不僅 .NET 5 RC 版推出,差異可先參考官網介紹,另外vue.js 3.0 也推出了正式版

(one piece),相關介紹也可以參考官網,好吧,我們趕快把這系列完結。

2020年9月19日 星期六

解決Visual Studio 建置錯誤 - Packages 缺少檔案

踩到這系列的雷,以往都是看別人解決,終於發生在自己身上,順手紀錄一下;

情境是抓了某個版控的專案,一抓下來,執行build就炸掉...

2020年9月13日 星期日

單元測試前之本質學能

我認為單元測試主要用來驗證程式設計邏輯與系統功能正常運作的技法,期望哪些情境下,確保我們的設計都有考量到,

並且滿足需求,另外再未來擴充與修改系統功能下,依然能 維持既有的測試案例(不會改東壞西),

增加對軟體的信心度。但,再開始之前,

2020年9月12日 星期六

C# 7.1

來到C# 7.1 介紹,實際上這個版本的推出與7.0 版本在官方記載,兩者似乎只差2 個

多月的時間,經過實際使用可以理解為何需要這麼快推出,因為這點改進才可以讓撰寫上

手感一致...

2020年9月10日 星期四

SQL Server 使用FOR XML 合併多筆欄位的值

這個語法之前一直沒有相對必要的實際應用,若真需要列表分群,覺得使用表格呈現較好閱讀,但若僅是單純的文字

表達作為備註欄位,覺得是個不錯的解法...

2020年9月6日 星期日

C# 7.0

C# 7.0 持續追加feature,撰寫的自由度越來越高且狂,第一次看到時驚為天人,手感上有種慢慢偏動態語言的錯覺,

另外,在「模式比對」這一塊,有種遊戲使用「外掛」,看到黑影就可以開槍打中的錯覺,世界已經不是慢慢轉動,是跳耀式進展...

2020年9月5日 星期六

C# 6.0

 .net 發展至今,隨著.net core 3.1 的發佈,武器庫是越來越兇狠,新的語法支援可以更快速產出,編譯器也會

幫我們編出高效率的中繼碼,但實務還上還是有人不知道,這邊列出自己實務上很常使用的語法並且搭配應用情境,

另外,C# 6.0 其實在 VS2015 就已經支援了。

單元測試 - Fake 模擬系統環境參數

有時測試會需要模擬系統環境參數,而Fake 是其中的選項之一,但其限制Visual Studio Ultimate版本才支援,其中還有一些眉角..

2020年9月3日 星期四

Reflection (反射) 小技巧

 

Reflection 很常使用,雖不是專案標配,但一年之內總會有使用它的地方,實務上往往與多型搭配起來完成動態實例化物件的技法;

但現實中既有程式難以捉摸,不一致的撰寫風格,或意指相同事務,但文字與設計方式卻充滿弔詭。這次遇上了,

還好C# 內建函式可以幫忙解決。


2020年8月29日 星期六

GitHub Gist 初體驗

GitHub Gist 是github 的子服務,可以用來分享簡單的檔案內容(一至多個),同樣支援公開或私有的分享層級;檔案有提供嵌入連結,所以有人拿來當部落格的資源存放。

2020年8月22日 星期六

CTE 筆記

若在較複雜的查詢,有時會使用到暫存表,但又太想建立暫存表,此時就可以搭配CTE來實作,

而CTE的出現,造成當時一波風潮,如不CTE 母寧死的鐵血捍衛...,接著我們來看看相關應用與實作。


2020年8月21日 星期五

使用T-SQL 實作資料分頁查詢

使用t-sql 實作分頁也算顯學,使用CTE (後續也打算補上筆記) 搭配OFFSET 與FETCH NEXT,

也算是手到擒來,但若Sql Server 屬於滿清時代的 2008 以下版本,就需要另外語法,

這邊展示一下。

2020年8月17日 星期一

使用LinqPad 快速產出POCOs

在沒有使用EF 的情況下,使用tsql 操作資料,大都需要自己手動建立類別,如何能快速建立對應的類別 ,這邊可借助LinqPad 工具。

2020年8月7日 星期五

T-SQL 動態排序欄位注意事項

實務上確實有可能讓使用者決定資料的排序,在資料量不小的情境下,不太可能將資料全部撈出在用程式過濾,

搭配原本實作分頁的邏輯(亦可參考黑哥文章),將動態排序需求加入其中。

2020年7月21日 星期二

使用NPOI 如何正確取得Excel 中有公式儲存格的值

標題有點饒舌,久違了再次使用NPOI 套件來操作Excel,轉換到 EPPlus 已有一段時日,對於能夠快速指定到Cell 就能直接取值的手感,再次體會NPOI 已望塵莫及。

2020年7月1日 星期三

jQuery .attr() vs .prop()

雖然已經習慣 vue.js 的雙向綁定,但難免要維護與救火,把一些東西慢慢筆記起來,之後就丟文章請接手的人自己看搂(誤~)。


2020年4月24日 星期五

WebSocket 筆記 - WebSocketSharp

有時候Server 需要與Client 建立長連線,例如廣播機制,這時websocket 可以嘗試看看。

websocket 它是一個全雙工的機制,且建立一次連線就會一直存在,除非 server 斷掉;
當然我們也可以手動刻畫這個機制,網路上也有相關參考,但我們還是借用第三方套件比較省時。

2020年4月21日 星期二

Autofac 筆記2 -- WebApi 註冊之生命週期類型

在使用Autofac 的時候,我們註冊若干類別到容器中,而物件的生成也由容器幫我們處理;這時就需要探究一下,
究竟生成的物件是來自同一個參考,還是都是各自獨立的?這類的議題,牽扯到實際應
用時該使用哪種的生命週期註冊物件,並且物件會有我們預想要得表現。

2020年4月20日 星期一

Autofac 筆記1 -- 初探

在物件導向設計原則,有一項是「相依注入」,描述著若物件有強耦合的相依性,要想減少此特性,
除了使用 Interface 抽象化之外,若該物件一定會使用到某個 Implement ,那就透過注入的方式,

2020年4月14日 星期二

非同步任務取消及逾時 -- Task

當非同步任務執行時,使用者突然改變心意了,該怎麼取消任務,同樣的若處理時間過久,
是否可以設定逾時機制,自動取消?

非同步利器 Task 初體驗

.NET 多執行緒走到現今這個現況,讓後來接觸的人,沒事多非同步,非同步沒事,讓.NET的
非同步世界,如同喝水呼吸般的輕鬆自在,遙想以前都要全集中呼吸~,接下來紀錄一下手感


2020年4月12日 星期日

Redis 初探(一)

之前有一點介接 Redis 的經驗,慢慢整理一些資訊;大概是簡單的安裝以及 .NET Lib 的使用。

2020年4月3日 星期五

Asp.Net Core DI Container(二):注入客製化設定檔

有時設計系統會擴充既有的 appsettings.json ,有時也會另外拉自訂的 json 檔案,針對自訂的部分就需要註冊。

2020年4月2日 星期四

Asp.Net Core DI Container(一):注入自訂服務

在 asp.net core 使用IoC/DI 已是內建基因,無法逃避,且有內建 DI 容器,開出對應不同生命週期的注入方法,方便使用。


2020年3月29日 星期日

Asp.Net Core Filters

asp.net core 同樣有 filter,可以幫助在 action 執行前或後加入一些判斷。
這邊同樣實作幾個 filter 看一下實際執行順序。


2020年3月28日 星期六

Asp.Net Core 出現502.5 運行錯誤

今天開啟專案,發現怎麼樣都無法正常運作專案,解決過程有點小挫折,簡單紀錄一下;
再使用範本建立專案後,直接 ctrl + f5 出現以下錯誤,頓時驚慌失措,焦慮~


2020年3月15日 星期日

GitHub Page 設定靜態網站

因最近實作口罩地圖,想將成果放到網上,由於內容單純所以想簡單的處理,故想起了,有人提過 github page 可以放靜態的資源,故把程式調整了一下,就放去了,運作上還不錯,順手來紀錄一下相關設定。


2020年3月14日 星期六

NLog 基本使用

之前有紀錄 elmah 的使用方法,倒是NLog 一直沒有下筆,寫個筆記吧。

官網其實有豐富相關資源,還是個開源專案,可以下載源碼來閱讀 ,其中在Getting started


2020年3月2日 星期一

使用Postman 工具測試幾個POST情境

開發Webapi 必備的Postman 工具,真的是一個神兵利器,大大提升效率。有時候同事會來請教,自己有時也會失智,就來整理紀錄一下幾個情境,方便日後查找。