0%

前情提要

上篇介紹完Dart語言開發環境與第一支Hello World程式後,這篇要來介紹資料型別與變數,筆者就以官方Dcoument文件中的Language>Tour為主,參考其介紹方式,解釋各個資料型別,此篇主要介紹Numbers這個資料型別。

閱讀全文 »

前情提要

筆者因公司正打算將公司產品App改用Flutter實作,希望能當先鋒隊,因此自己私下參加讀書會,藉此熟悉一下Flutter的開發方式,屆時公司需要實作時,就可以直接上場大戰啦。

大概在幾年前因同事閒聊聊到Flutter,那時好奇有寫過一篇介紹文,因那時屬自己私底下研究性質,很容易就半途而廢,當然學習下場不是很好,大概兩週就放棄了,這一次藉由讀書會,找到一群熱愛技術的同好督促,才會學得久,學得好。

閱讀全文 »

前情提要

筆者的系列文章:Typescript101,上一篇介紹文中提到的簡單地hello.ts檔案,透過tsc指令將其編譯成javascript檔案,算滿簡單易懂的,這次則建立typescript專案,真正在撰寫應用程式時透過這種方式居多,不妨跟著筆者實作看看吧。

閱讀全文 »

前情提要

筆者公司使用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撰寫風格。

閱讀全文 »

前情提要

筆者這邊有一個需求是,pdf檔案在上傳時就判斷好是否有加密,避免後面流程中需要解析pdf檔案時,遇到解密的問題,因此為避免後面流程複雜去防呆,直接於上傳檔案時築一道防線擋掉,是最佳解。筆者在搜尋了一下c# detect password protected pdf的關鍵字時,基本上會跳出使用iTextSharp的解法,筆者就參考此解法寫一個Extension,主要都是參考StackOverFlow的解法,程式碼本身沒甚麼變動,此篇以解釋為準。

閱讀全文 »

前情提要

筆者這篇主要是以CleanArchitecturetemplate架構,因template產出之專案結構包含Identity Server,還有前端頁面等不需要的專案,因此筆者想要仿照該template架構,自己手動建立純API架構,順便熟悉一下其Clean Architecture的專案結構,才能知己知彼,百戰百勝阿。此篇就以筆者手動建立的過程,筆者懶得截圖,主要以指令碼的方式進行相關建置作業。

閱讀全文 »

前情提要

一個應用程式,尤其是前端少不了alert訊息啦,網頁系統,基本上就可以使用alert方法可以跳出提示訊息,純網頁應該是不會有違合感,但想像一下以PC App的形式來說,直接跳網頁的那種alert訊息,似乎不太搭,通常一個系統一定會搭配一套toastr的套件,將成功、失敗訊息顯示於左上、右上、左下、右下角,清楚地告訴使用者,他的操作是否成功或失敗。

筆者認為toastr的基本要素就是至少要有成功失敗樣式可以選擇,以及剛提到的訊息置於左上、右上、左下、右下角等選項,再則進階一點就是訊息內容本身要支援,html格式訊息一般文字訊息,才可以靈活運用。這篇的前提條件跟前幾篇一樣,筆者想要找到一個Vanilla jsToastr套件,這篇主要是要介紹筆者挑到在使用的https://apvarun.github.io/toastify-js/

閱讀全文 »