推薦文章

安裝 Visual Studio 2022 Preview 開發 .NET MAUI 跨平台應用

.NET 6 去年 11/8 正式發佈至今已經屆滿半年,而在今年的 Build 大會上也正式發佈 .NET MAUI (a.k.a. 下一代的 Xamarin.Forms,原 Xamarin.Forms 會持續維持在 5.x.x)。

而正常來說 GA 後的技術都會加到 Visual Studio 的 "Release Channel" 當中,但稍微弔詭的地方是 .NET MAUI 仍是被放在 "Preview Channel" 的 Visual Studio 當中。

發文的今天,微軟也正好發布 Visual Studio 2022 v17.3 的正式版🙈。

 

所以…

要使用 .NET MAUI 的話,必須安裝 Visual Studio 2022 Preview 的版本來使用。

...繼續閱讀 »
on jamestsai

[小菜一碟] 在前端使用 JavaScript 操作 Canvas 來合併/縮放/裁切圖片

在我剛學習網頁程式設計的那個年代,要在前端網頁上對圖片做除了顯示/隱藏/放大/縮小以外的處理,大都是丟到後端處理完後再丟回來,拜網頁設計技術進步所賜,生出了 Canvas 這個東西,讓我們可以利用客戶端的運算資源執行繪圖的工作,甚至要搞出一個純前端的小畫家是完全沒有問題的。

...繼續閱讀 »
on supershowwei

[小菜一碟] 在 JavaScript 如何讓註冊給事件(Event)的方法只被觸發一次?

這篇文章是一個知識的分享,主要分享給不知道的朋友,我們用 JavaScript 設計一個互動的網頁,一定會用到事件(Event),舉凡像是按鈕的點擊、滑鼠的捲動、選項值的改變、...等等,這些都會需要事件來輔助,但是有時候我們會希望註冊給事件的方法只被觸發一次。

...繼續閱讀 »
on supershowwei

[小菜一碟] 善用 SQL Server 唯一條件約束(UNIQUE Constraints)來避免因併發產生重複的唯一值

講到資料庫的唯一值,第一個我們會想到就是主索引鍵(Primary Key),那同一個資料表內除了主索引鍵之外會不會有其他的唯一值?我之前遇過的一個需求就有,它是一個部落格的功能,讀者可以收藏文章,同一篇文章不能重複收藏,而讀者可以對已收藏的文章進行任意的排序,所以「讀者 ID + 文章 ID」就成了資料表的主索引鍵,而「讀者 ID + 序號」就是資料表中的另一組唯一值。

...繼續閱讀 »
on supershowwei

.NET Core 實做連接 SAP 並部署到 App Service

  • 209

前言

最近工作上需要串接 SAP,但是因為現在專案都改用 .NET Core 了,官方的 SAP Connector for Microsoft .NET 主要是支援 .NET Framework,因此就在 NuGet 上面找了幾個套件,經過測試之後,huysentruitw/SapNwRfc 這一個套件,它的使用方式我比較喜歡,而且可以支援強型別的 Model ,使用上會比較順手,另外也需要將程式部署到 App Service 執行,因此也把可能會遇到的問題記錄一下。 

...繼續閱讀 »
on anyun

[食譜好菜] 在 Windows 安裝 Flutter in Android Studio 到成功開啟範本 App 的過程記錄

Flutter 做為一個跨平台解決方案,從 2017 年橫空出世之後,短短幾年的時間便能夠在市場佔有一席之地,除了背後有 Google 的支援之外,其號稱一份原始碼就能夠在 Android、iOS、Windows、macOS、Linux、Web 上建置執行,頗有一統江湖的氣勢,這篇文章記錄我在 Windows 上,從安裝 Flutter in Android Studio,到建置並成功執行範本 App 的過程。

...繼續閱讀 »
on supershowwei

如何使用 Swagger / OpenAPI Specification 先行的開發流程

以往,在 ASP.NET Fx / ASP.NET Core 我會先寫好 Controller(Server Code) 再搭配 NSwag、Swashbuckle.AspCore 產生 Swagger / OpenAPI Specification Doc,一旦要修改它(Spec.)就必須要重新編譯專案,只是要改文件的錯字,也沒有動到 Server Code 的邏輯,卻要重新 Build Server,幾次下來發現這樣似乎不是很聰明。也常常發生過於關注 Server Code 忽略 Specification ,導致兩邊跟不一致。

現在,我先寫 Specification,然後再透過它產生 Controller (Server Code) 讓 Specification 不再強制依賴 Server Code,解除強依賴關係,編寫規範時再也不需要重新建置專案,目前運作起來挺順暢的,接下來,我分享我是怎麼做的

...繼續閱讀 »
on yc421206

邀請一般 Email 用戶(已是微軟帳號) 加入 Teams 成為公司/組織/團隊的來賓帳號 (透由團隊連結)

由於近期線上工作、會議、課程的需求激增,要讓公司/組織/團體在 Teams 當中加入外部的來賓帳號(就是大眾常用的免費 email 服務帳號,如: gmail、outlook/hotmail、yahoo...等),來一起加入協同工作、會議或課程,該怎麼辦呢?

而如果使用時其實是可以透過各款主流的網頁瀏覽器,登入 "微軟帳號" 後進入到受到邀請的團隊,就可以直接使用 Teams 服務了。

如果要直接在瀏覽器使用 "微軟 Teams 服務",可透過下面連結:
https://www.microsoft.com/zh-tw/microsoft-teams/log-in

or

https://teams.microsoft.com/

...繼續閱讀 »
on jamestsai

透過 API Management 管理 OAuth 授權

  • 144

前言

現在許多主流的 API 服務的驗證都是透過 OAuth 來實做,而為了安全性許多服務針對取得的 Access Token 也都會有授權的期限,因此在實做存取 API 的時候大部分人第一個卡關的點就是 OAuth 取得 Access Token,後續則是實做快取 Token 和重新取得 Access Token,而這些每一個不同的 API 服務都要再重新寫一次,實在是太費時了,我們應該把時間留給在真正呼叫 API 的時候,而不是一直花在取得授權這一段重複的工,本文就來介紹透過 API Management 來協助我們管理這些 OAoth 授權。

...繼續閱讀 »
on anyun

如何使用 AWS S3 (MinIO) 模擬器進行本地端應用程式開發

若我們直接存取雲端資源,將面臨到帳單的問題;若隔離雲端資源,那隔離的成本將會大大的增加,也不利於整合測試,因此有很多的開源專案模擬出了這些網路服務,只要在本地開發環境安裝模擬器,就可以盡情的享受開發的樂趣,大大的降低雲端費用,好好地善用它們吧,搜尋關鍵字 AWS S3 Simulation/Emulation、Local S3,就可以找到不少資源。

...繼續閱讀 »
on yc421206

在 Windows 11 上遇到的怪事: EZ100 PU 讀卡機無法使用...

隨著作業系統的升級或發展過程,在當前安全威脅日益高張的年代,當然作業系統的相關的安全性與設計也會隨之強化。

硬體的驅動程式是會跟作業系統 (OS) 直接作動的,所以從安全性的角度來看,隨著時間的推進而造成一些外部裝置的驅動程式過於老舊,沒有跟著新版作業系統的安全性設計而改版,產生與新版作業系統發生不相容問題,也不難理解。

EZ100 PU 晶片卡讀卡機驅動程式載入錯誤

但是就這樣把問題都推給微軟,說通通都是 Windows 11 的錯,這就很難令人理解了🤔

反觀果粉就不會有這種心態…很妙😏

...繼續閱讀 »
on jamestsai

Skype 點數回復教學 (因超過 180 天未使用而暫時停用點數的帳戶)

Skype 這個服務在網路開始能利用語音通訊後,就在剛進入 Y2K 年代左右時奇蹟般地出現在大眾的眼前,別忘了在網路頻寬還不夠大、網路速度還不夠快、通話載具也不是這麼便利的時代,要雙方都直接用網路進行語音通訊,根本還沒辦法很簡便的進入到平常大眾的使用範疇中。

但 Skype 的服務在當時,並不冀求雙方都是利用網路進行語音通話,而是從 Skype 端撥打語音通話到電話當中,甚至是能透過電話回撥到 Skype 端的部分。

而透過收取比一般撥電話還便宜的費用,來做為 Skype 服務的營利基礎。

在那個年代要進行一通跨國通話,基本上雙邊都由各國的電信業者把持,所費不貲(就算是現在國際電信通話費也仍不便宜…)。

...繼續閱讀 »
on jamestsai

[廚餘回收] 在 SQL Server 中新增大量資料後又刪除的副作用

這天客戶跑來跟我說「資料庫壞了,無法新增資料!」,出現了下面這段錯誤訊息:

Could not allocate space for object 'dbo.XXX'.'PK_XXX' in database 'YYY' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

很明顯,這段訊息告訴我們是儲存空間已滿,可是我前幾天才維護過,按照資料增加的速度,不會那麼快才對,來問問看使用者做了什麼事?

...繼續閱讀 »
on supershowwei

[廚餘回收] 解決 Gmail 不支援應用程式或裝置透過簡易郵件傳輸通訊協定(SMTP)傳送電子郵件

有一天 Jenkins 不再寄發建置結果通知信,追查原因是因為 Google 更新了一項安全性政策

為保護您的帳戶安全,自 2022 年 5 月 30 日起,如果第三方應用程式或裝置只要求您以使用者名稱和密碼登入 Google 帳戶,Google 將不再支援這些應用程式或裝置。

不過這也不是沒有退路,我們可以改使用應用程式密碼登入帳戶

...繼續閱讀 »
on supershowwei

在 Windows 10/11 當中將容量大於 32GB 的隨身碟格式化為 FAT32 格式...

  • 42

很久沒有用隨身碟,近日赫然發現 Windows 10/11 無法將格式化容量大於 32GB 的隨身碟為 FAT32 格式…
 


後來查了一下,透過 Windows 本身的 GUI 介面不行,但還是可以使用 Windows 內建的命令提示字元/PowerShell來下指令 format 來完成,不需要仰賴第三方程式。

但因為有些硬體設備還是會需要使用到 FAT32 的磁碟格式才能運作(且單一使用檔案不會超過 4GB),但又不想要額外安裝第三方程式到自己的 Windows 電腦上,所以還是研究了一下。

...繼續閱讀 »
on jamestsai

進修課程