0%

前情提要

筆者公司其他同仁負責的專案有一個需求是,主動幫使用者的信件內容讀取,依照附件檔案中的檔案內容做不同的事情,而不用人工的方式到系統中上傳該附件檔案。這時候就該使出Reader系列文章的時候了,前置作業可能要靠其他Infra同仁設定好後將信件自動轉成EML檔案格式,放置於網路空間上,由EML Reader會去讀取該路經中的EML檔案,並做對應的事,該篇就以讀取EML檔案格式內容為主作呈現。

閱讀全文 »

前情提要

筆者寫Blog有一段時間了,去年買了自己的名字域名後,一直沒空去設定它,一直都使用github io預設的域名,上週終於有空來設定了。筆者買很夯的.me結尾的域名,剛好歐洲的一個小國家的代碼為me,筆者這邊買的自然就是https://eugenesu.me了。筆者這篇以整個設定到生效的過程一一介紹,若以筆者一樣使用hexo當blog生產工具,且想要將自己的github page掛上域名的,可以參考使用。

閱讀全文 »

前情提要

前提情要請參考[DotnetCore]泛型運用系列-Model設計篇,不過筆者還是在這邊再列一下會用到的技術觀念與套件:

  • AutoMapper:運用於將檔案內容對應的物件轉成EFCore的物件時
  • Generic Class/Method: 不想寫多個Service去處理多個檔案,設計成泛型形式以符合各種檔案類型
  • Attribute: 透過Description Attribute,註記其對應的Comlumn欄位順序
  • Coravel:透過該套件,將寫好的Service掛成排程任務
  • Extension Method:有一些通用的Method,不要落落等塞在一個Service中,因此轉換成可以共用的Extension Method
  • EFCore:資料存取用開發套件
閱讀全文 »

前情提要

前提情要請參考[DotnetCore]泛型運用系列-Model設計篇,不過筆者還是在這邊再列一下會用到的技術觀念與套件:

  • AutoMapper:運用於將檔案內容對應的物件轉成EFCore的物件時
  • Generic Class/Method: 不想寫多個Service去處理多個檔案,設計成泛型形式以符合各種檔案類型
  • Attribute: 透過Description Attribute,註記其對應的Comlumn欄位順序
  • Coravel:透過該套件,將寫好的Service掛成排程任務
  • Extension Method:有一些通用的Method,不要落落等塞在一個Service中,因此轉換成可以共用的Extension Method
  • EFCore:資料存取用開發套件
閱讀全文 »

前情提要

前提情要請參考[DotnetCore]泛型運用系列-Model設計篇,不過筆者還是在這邊再列一下會用到的技術觀念與套件:

  • AutoMapper:運用於將檔案內容對應的物件轉成EFCore的物件時
  • Generic Class/Method: 不想寫多個Service去處理多個檔案,設計成泛型形式以符合各種檔案類型
  • Attribute: 透過Description Attribute,註記其對應的Comlumn欄位順序
  • Coravel:透過該套件,將寫好的Service掛成排程任務
  • Extension Method:有一些通用的Method,不要落落等塞在一個Service中,因此轉換成可以共用的Extension Method
  • EFCore:資料存取用開發套件
閱讀全文 »

前情提要

筆者日前工作環境中要實作,從某個FTP位置下載檔案,下載到檔案後將檔案內容轉成物件清單,存進資料庫中,接著這些檔案依照屬性不同,拆成四分檔案,有共同欄位,也有各自的欄位,資料表則依照最大化原則,將所有檔案欄位最大化後設計成對應的欄位,當然設計一個識別欄位:EventType,識別是哪個檔案的資料。最後這個檔案內容轉換成資料表中的資料,要掛在排程上面做運作,筆者簡單列一下此一系列的實作需要用到的概念與套件如下:

  • AutoMapper:運用於將檔案內容對應的物件轉成EFCore的物件時
  • Generic Class/Method: 不想寫多個Service去處理多個檔案,設計成泛型形式以符合各種檔案類型
  • Attribute: 透過Description Attribute,註記其對應的Comlumn欄位順序
  • Coravel:透過該套件,將寫好的Service掛成排程任務
  • Extension Method:有一些通用的Method,不要落落等塞在一個Service中,因此轉換成可以共用的Extension Method
  • EFCore:資料存取用開發套件
閱讀全文 »

前情提要

筆者這邊遇到的問題是電腦環境中有多個sdk版本,需要指定比較舊的sdk版本來建立專案,筆者之前剛幫公司用基礎專案時遇到3.1LTS版本,因此有跟著升級,dotnet 5因不是LTS版本就沒有跟著升,就坐著等dotnet 6了。

依上述,筆者公司開發環境停留在3.1,但因前一陣子重灌電腦,重新安裝Visual Studio 2019後,預設安裝dotnet 5,筆者還特地下載dotnet core 3.1 sdk來安裝,因此環境中有兩個版本,但若沒有特別指定時,會以最新的sdk版本對應的範本產生,最後列出筆者電腦環境的sdk

1
2
3
4
dotnet --list-sdks
# 輸出內容
3.1.415 [C:\Program Files\dotnet\sdk]
5.0.403 [C:\Program Files\dotnet\sdk]
閱讀全文 »

前情提要

筆者工作環境中前端使用angular框架撰寫,model binding根本無敵阿,且typescript語言,對於筆者這種後端人員來說,上手速度是頗快的,扯遠了,筆者要強調的是能用angular或其他兩大框架寫前端根本就是一等公民,來到Electron專案,是有神者有做angular-electronvue-electron的版本,但筆者覺得自己前端實力不夠,怕handle不了,還是乖乖用純js撰寫其專案,根本就變回二等公民,這篇主要介紹其中需要modal功能時,挑選只有vanilla jsmodal套件來實作。

閱讀全文 »

前情提要

筆者這邊的主要遇到的情境是,因為要抓攝影鏡頭的視訊streaming到畫面中的Video tag上,但初始化需要一點時間,導致使用者尚未初始化完成前就去按下截圖按鈕,導致程式邏輯錯亂,筆者第一想到的就是加上loading效果,就如同前面幾篇講到的,electron環境,筆者這邊希望使用Vanilla js的解法,幸好有找到解法,此篇就以介紹這個解法為主,跟著筆者一起套上loading效果吧。

閱讀全文 »

前情提要

筆者與Electron淵源非常深,有一次筆者在上工之前的空檔,有認識的人介紹了一個硬體介接的軟體專案,要在樹梅派上面執行,當時筆者心目中有兩個選擇,一個是Python,一個是Electron,不過Python則需要再找一些UI framework來實作畫面部份,那時候對於Electron也是一份好奇,用html css就能調出畫面,還可以直接套用bootstrap,簡直完美,毅然決然決定使用Electron來開發,但開發過程有很多地方,尤其是硬體介接的部份,卡了很久,眼看上線時間快到,最終放棄作罷,最後使用Python+Tkinter完成該專案,實為可惜。

閱讀全文 »