前情提要
上篇介紹完Dart
語言開發環境與第一支Hello World程式後,這篇要來介紹資料型別與變數,筆者就以官方Dcoument
文件中的Language>Tour
為主,參考其介紹方式,解釋各個資料型別,此篇主要介紹Numbers
這個資料型別。
筆者公司使用Angular
開發應用系統,使用了也已經有兩三年了,雖兩三年的Angular
撰寫經驗,但筆者自認為只能算是一個半個前端,因開發的是內部系統,比較沒有艱深的功能要實現,且筆者公司買現成的Template
版型來套用,滿習慣且熟悉Template
版型提供的撰寫結構及相關套件,趁這一次轉換工作空檔,就先把Typescript
底子打好吧。
Typescipt
本身是Javascript
的超集,完全相容Javascript
現有語法,加上型別系統
,前端程式寫起來,猶如寫後端程式一樣,加上Angular2
開始,透過DI
取得所有服務,筆者平常後端使用Dotnet Core
,因Dotnet Core
框架也是內建DI機制,因此對筆者來說特別熟悉感。:
筆者這邊會參考
統整上述網站內容,整理成自己理解的版本。
筆者公司使用NLog
當作Log
工具,相當簡單易用,但用到現在會有一個困擾,畢竟為方便測試,到處埋Info
等級的Log
於程式中,為方便偵錯及追蹤,可能連傳入的資料都會記錄於文字檔中,變成正式環境也會有同樣的效果,因為這個Nlog.Config
又加入於版控中,要嘛就是在release
分支那邊將Nlog.config
調整成正式環境符合的設定,也是頗麻煩。
筆者這篇主要是解決上述問題,解決方式也頗簡單,將Nlog.config
製作多個帶有Environment
的檔名,NLogBuilder
註冊時套用不同的NLog.Config
檔案即可解決。基本上若為預設的NLog.config
則不需特別註冊也有效,因要針對不同環境,套用不同的config
檔案,必須宣告NLogBuilder
註冊。
筆者這篇主要是想寫實體產生器的進階版本,怎麼會說是進階版本呢,若有用過EFCore的dotnet ef dbcontext scaffold
指令會知道,預設會是符合C#
命名規則,即Pascal Case
,每個英文單字連在一起,每個單字的第一個字為大寫。scaffold
指令還特別開放options:-use-database-names
,即可保留其資料庫中的命名。
筆者當初也沒有特別注意這些細節,因為是有踩過一些雷,例:製作前端使用ViewModel
時,從上述scaffold
指令產出的Entities
複製其對應的屬性宣告,再補一些額外的屬性,然後透過Dapper
套件Binding屬性時發現,怎麼有些屬性明明資料庫就有回傳,怎麼沒有binding成功,仔細一看,資料庫端是使用下底線,到C#端時scaffold
會把下底線去掉,因此直接從Entities
中複製貼上則會是不一樣的屬性名稱,自從那一次後,就注意到該細節。
講到此篇主題,剛好手邊新專案,資料庫使用MySQL
,筆者想保持資料庫命名規則,主要是有兩點
另一方面,筆者透過SqlSugarCore
提供的實體產生相關API產生相關實體時,又想保持C#命名規則,最好是跟EFCore scaffold一樣可以保有複數機制,這為此篇主要解決目的。
以上篇[DotnetCore]CleanArchitecture手做系列-建立專案實作完成後,得到一個有整潔架構的方案,筆者在這篇以webapi template
所產生的WeatherForecast API
查詢作業轉成MediatR
風格的架構,筆者主要參考https://github.com/jasontaylordev/CleanArchitecture專案預設範本所產生的撰寫風格,擷取筆者要的部份,ORM
部份則改用SqlSugarCore
實作資料庫操作行為,此篇以webapi template
所產生的WeatherForecastController
改寫成Clean Architecture
撰寫風格。
筆者這篇主要是以CleanArchitecture的template
架構,因template
產出之專案結構包含Identity Server
,還有前端頁面等不需要的專案,因此筆者想要仿照該template
架構,自己手動建立純API
架構,順便熟悉一下其Clean Architecture
的專案結構,才能知己知彼,百戰百勝阿。此篇就以筆者手動建立的過程,筆者懶得截圖,主要以指令碼的方式進行相關建置作業。
一個應用程式,尤其是前端少不了alert
訊息啦,網頁系統,基本上就可以使用alert方法可以跳出提示訊息,純網頁應該是不會有違合感,但想像一下以PC App
的形式來說,直接跳網頁的那種alert
訊息,似乎不太搭,通常一個系統一定會搭配一套toastr
的套件,將成功、失敗訊息顯示於左上、右上、左下、右下角
,清楚地告訴使用者,他的操作是否成功或失敗。
筆者認為toastr
的基本要素就是至少要有成功
或失敗
的樣式
可以選擇,以及剛提到的訊息置於左上、右上、左下、右下角
等選項,再則進階一點就是訊息內容本身要支援,html格式訊息
或一般文字訊息
,才可以靈活運用。這篇的前提條件跟前幾篇一樣,筆者想要找到一個Vanilla js
的Toastr
套件,這篇主要是要介紹筆者挑到在使用的https://apvarun.github.io/toastify-js/。