2025年1月5日 星期日

關於C# 的IEnumerable & IEnumerator二三話

會用這個是MAUI的其中一個範例,
目標是對某個資料夾內的*.note.txt作讀取檔名的動作,因為存檔後,要有取檔的動作,而Windows系統的習惯是開類似檔案總管的模式,自行選擇要開啟的檔案。也有些程式會以固定的副檔名作為標的,先讀取後,再列清單給使用者取用,而這個範例就是後者。

但不得不說說,這個語法簡化到令人不易理解的程度。這個先用了類似TList的IEnumerable結構,又使用的C# 專用的=>Lambda運算子,不太容易理解為何這麼寫,就可以達到

 
// Get the folder where the notes are stored.
string appDataPath = FileSystem.AppDataDirectory;

// Use Linq extensions to load the *.notes.txt files.
IEnumerable<note> notes = Directory

      // Select the file names from the directory
      .EnumerateFiles(appDataPath, "*.notes.txt")

      // Each file name is used to create a new Note
      .Select(filename => new Note()
      {
          Filename = filename,
          Text = File.ReadAllText(filename),
          Date = File.GetLastWriteTime(filename)
      })

      // With the final collection of notes, order them by date
      .OrderBy(note => note.Date);

// Add each note into the ObservableCollection
foreach (Note note in notes)
    Notes.Add(note);

想把它改寫成比較容易理解的模式,畢竟還是要讓未來的自己看得懂這段在寫什麼,然後知道如何改成新的需求。

2024年9月14日 星期六

C#神話般的三元運算子

看到以下這段程式碼真是讓我矇了,

using var stream = assembly.GetManifestResourceStream("Maui.DataGrid.Sample.teams.json")
    ?? throw new FileNotFoundException("Could not load teams.json");

Google了一下,總算有熱心鄉民記錄了這個內容C#的?心得筆記

所以上面那一段程式碼可以解釋如下

using var stream1 = assembly.GetManifestResourceStream("Maui.DataGrid.Sample.teams.json");
if (stream1 == null)
{
    throw new FileNotFoundException("Could not load teams.json");
}

雖然理解了,但偶而會腦霧,想不起來。

2024年7月24日 星期三

台灣的MAUI文獻

關於MAUI,找到了一些台灣的文獻,但都是2022年的資訊。

看起來是專業的寫手(作者),只是就停留在2022年,.NET6的版本

看來MAUI專案是,夢想很美好,現實很骨感,雖然有微軟爸爸的支持,但還得再努力一段時間。

用Google搜尋的關鍵字是.net maui taiwan blog

MAUI -Levin's Blog-林壽山

初探.NET MAUI應用程式

目前.NET MAUI 已更新到版本8,隨著時間的推進也會有更成熟的版本出來,這就是寫軟體的工作了。不像之前WinXP,幾乎20年沒更新,這樣也有個好處,網路上幾乎都找得到,且也有大量範例程式可以參考。

想了解Stock-Keeping Unit(SKU)的前因

想說以前寫設備用的工業電腦都是用Windows系統,現在是否仍然一樣,然後就看到一個Key Word :Windows IOT(Windows Embedded)。喔~~!改名稱了。

然後就又看到研華的版本說明裡頭有個Key Word:SKU

5分鐘搞懂 Windows 10 & 11 IoT - 研華 (advantech.com)

其實大概知道是授權的意思,但又想更確定SKU的定義,所以找到了這個說明

給初學者:SKU(死雞屋,Stock Keeping Unit)生產什麼 | 電子製造,工作狂人(ResearchMFG)

話說以前工作時,為了節省購買Windows的成本,最終問到了有在販售微軟授權的研華公司,且不用自己安裝,省了不少工及$$。

那也是2014年前的事了,那時還在用Win7。物換星移,現在已經來到了Win11。那時用的Win7 Professional,現在改成Win11 IOT

2024年5月5日 星期日

.NET MAUI 名人堂

會記這個是想注意MAUI軟件架構的靈魂人物,但就像是我認識很多名人
(張忠謀、郭台銘、柯文哲...),但他們不認識我如此而已。

像前陣子OpenAI的執行長阿特曼(Sam Altman)被開除後,該公司演了一場戲,
畢竟軟件架構還是人想出來的,而這個主角也不太可能被換,若真的被換那就要留意該軟件的後續發展。

這篇內容著重在MAUI活躍的名人,所以應該會不定時更新

David Ortinau .NET MAUI 首席產品經理

James Montemagno 教學影片中常看到

JamesTsaiTW  .NET MAUI 的 Hands-on Lab 手冊的繁中譯者

Gerald Versluis微軟高級軟體工程師

2024年4月21日 星期日

使用.NET MAUI 開發程式之前,你需要知道的幾件事

 Starting .NET MAUI Development in 2024 - What You Need To Know

這是James Montemagno在2024/01/19所發佈影片

用於推廣MAUI,內容有提到一些免費工具的網站,也有付費的地方

目前看來工具有愈來愈多的趨勢,畢竟像我這般初級的開發者,既然都決心要開始學了,學一套工具程式,就可以在不同平台上執行,這個吸引力的確挺誘人。

學新東西有一些技巧,[筆記]跟[持續練習]。因為腦容量有限,記新的忘舊的,寫出來的程式內容是參考哪一個網站,還得再找一次。像最近想寫一個在圖片上標註的功能,就是沒找到完整的範例,有些網站看過了,又再重點進去看,花費不少時間,卻還沒完成想要的功能。

所以我打算用這個Blog來筆記,當成習慣,也可以複習。