當需存放多筆「數值」於 app.config 中時,最簡單的作法就是使用特殊符號將字串分開,後續再從程式碼中以切割字串方式轉換為陣列;但有時會需要存放「物件形式」陣列資料,例如設定單筆伺服器可能就會包含名稱、位置、參數等資訊,而此時就可以透過自定義 ConfigurationSection 來實現。
[效能調教] 建立非同步射後不理 LOG 寫入機制
面對大量且重要性低的 LOG 紀錄需求(如:統計功能使用量),可以考慮套用非同步射後不理機制來節省 Web API 被占用的時間,把資源留給其他更重要的項目;文末並針對 SynchronizationContext 議題進行探討,由於在這種情境下會有 context 消失問題存在,因此需設定 ConfigureAwait(false) 來讓後續作業順利進行。
[效能調教] 正確關閉 NanoProfiler 追蹤,避免非同步操作 DB 的效果失效
測試過程中發現若使用 ProfiledDbConnection 包裝原本 DB 連線後,預期的非同步效果就會消失,感覺似乎在每筆 DB 查詢後都立即 await 獲得資料,因此在上線時除了關閉 NanoProfiler 結果頁外,也要記得調整回系統原本的 DB 連線方式。
[效能調教] 使用 Async / Await 非同步機制加快 Web API 回應時間
在 Web API 執行過程中可能需要一次對資料庫提出數個操作需求,當這些查詢彼此沒有順序相依性時,就可以善用非同步的機制讓所有查詢盡可能一次送出,而最終只需花費單一最長查詢所需要的時間即可獲得所有查詢的結果,對於效能的提升相當有幫助。
[效能調教] 使用 NanoProfiler 監看特定程式區塊效能及 DB 回應時間
當面對回應緩慢的 Web API 時,當下最想了解的莫過於各項行為對於時間的消耗,此時我們可以透過 nanoprofile 幫我們記錄下這些資訊,特別是在操作 DB 所耗費的時間,更是不費吹灰之力的自動逐條詳列,並可重現當下呼叫 SP 所傳入的參數值,確實是調教效能的好幫手阿!
[效能調教] 使用 JMeter 作為網站效能參考指標
效能調教首先就是需要一個近乎真實狀態的可重現情境來做為衡量依據,本文透過 JMeter 靈活的腳本設計方式來針對單個負載測試情境進行介紹。
[C#] 排除無須納入交易的查詢,避免產生不必要的分散式交易 (Distributed Transaction)
當不小心啟用分散式交易機制時,且環境設定不允許時,就會產生【已停用分散式交易管理員 (MSDTC) 的網路存取。請使用元件服務系統管理工具啟用 DTC,以使用 MSDTC 安全性設定中的網路存取】錯誤訊息,此時可以透過 new TransactionScope(TransactionScopeOption.Suppress)
排除不需要納入交易的部分,避免分散交易的情境產生。
[ASP.NET] 多台 Web 伺服陣列透過 SQL Server 保存共同工作階段狀態 (session state)
ASP.NET 網站預設 session state 只存活在對應 web server 的 IIS 中,也就是說在多台 web server 服務或具有 failover 機制下,當切到另一台 web server 的時候喪失所有 session state 資訊,因此可以考慮將 session state 存放在 SQL Server 中,讓所有 web server 共享相同 session state 資訊。
[Vue] 跟著 Vue 闖蕩前端世界 - 09 路由超連結產生器 router-link
vue-router 為了方便我們連結特定路由,因此提供 router-link 組件供我們使用;其原理就是透過設置,將這些傳入的 path 或路由名稱轉換為 a 元素,並且在路由匹配時給予 router-link-active class 於元素中,標記目前正在該連結點中。
[Vue] 跟著 Vue 闖盪前端世界 - 08 網站路由 vue-router
先前的介紹都針對單頁面功能進行說明,但網站是透過許多頁面組件相疊而成,需要一個規則讓用戶訪問到確切目標,本篇就針對 vue-router 路由設定進行介紹。
[Vue] 跟著 Vue 闖蕩前端世界 - 07 組件溝通 event bus
我們都知道 vuex 可以幫助我們統一管理狀態,但是若情況沒有這麼複雜或專案規模不大的時候,是可以考慮使用 event bus 來作為組件溝通的橋樑。
[Vue] 跟著 Vue 闖蕩前端世界 - 06 父子組件溝通 pass props / emit event
Vue 與 React 的概念都是先針對頁面拆分組件化來進行開發,最後再將所有組件合成為我們所需的功能,而組件溝通存在許多種方式及淺在問題,開發人員可以依照需求自行搭配使用,而本篇來研究一下基本的父子上下層的基礎溝通方式。
[Vue] 跟著 Vue 闖蕩前端世界 - 05 基礎 Vue 語法介紹
到目前為止真的只是利用 vue-cli 建立個前端開發環境,先前花了幾篇文章說明前端種種機制 webpack, eslint, npm .... 等,接著我們就來一同了解 Vue 相關所需具備的基本知識吧!
[Vue] 跟著 Vue 闖蕩前端世界 - 04 加入 toastr 統一資訊輸出訊息
透過 toastr 統一訊息輸出方式
讓系統訊息顯示具有美觀及一致性的呈現
[Vue] 跟著 Vue 闖蕩前端世界 - 03 加入 Bootstrap 美化頁面
了解如何套入 Bootstrap 至前端開發環境
從 webpack 的 Entry Point 引入 Bootstrap js 及 scss 資源模組
[Vue] 跟著 Vue 闖蕩前端世界 - 02 使用 Vue-cli 建構專案
透過 Vue-cli 建構專案
略過相關套件(webpack, ESLint, babel)繁雜的設定過程
[Vue] 跟著 Vue 闖蕩前端世界 - 01 前端開發環境建立
前端世界到此時此刻為止可說是三足鼎立,就是 React、Angular 及 Vue 三套相當熱門優秀的前端框架,而隨著 Vue 2.0 的發布及各項考量後,這次就選擇 Vue 來闖蕩前端世界吧
[Windows Service] 使用 Topshelf 搭配 Quartz.Net 解決所有排程工作
- 6229
- 0
- Windows Service
利用 Topshelf 簡化 Windows Service 開發偵錯作業,並且搭配 Quatz.Net 強大靈活的工作排程功能,解決所有需要撰寫週期性或特定時間觸發作業的需求。
[C#] 使用 Fast Koala 在開發時期依據組態轉換檔獲得對應 Web.config 設定值
面臨複雜的開發測試環境,常需要切換參數來進行本機/測試機的偵錯模式測試
但偏偏組態轉換檔只有在發行時才會對 Web.config 發揮作用
這時可以透過 Fast Koala 來實現建置時期 Web.config 資訊轉換之願望
[SQL] 使用 PIVOT 扭轉資料,由直列轉為橫向資料
面對數筆有意義資料要匯總成橫式資料時,可以考慮使用 PIVOT 來扭轉資料,讓資料呈現上更貼近人性。