甚麼是 ODBC,維基百科這樣說
"ODBC(Open Database Connectivity,開放資料庫互連)提供了一種標準的 API( 應用程式編程介面)方法來訪問資料庫管理系統(DBMS)。ODBC 的運用形態通常是由應用程式經過一個稱之為 ODBC 管理器的工具,建立一個 DSN,指明需要呼叫的 ODBC 驅動程式,從而訪問對應的資料庫。"
簡單來說,可以透過 ODBC 來簡化連線字串的管理,最近工作上,需要用到它,趕緊趁無風無雨的颱風天,重新學習一下。
甚麼是 ODBC,維基百科這樣說
"ODBC(Open Database Connectivity,開放資料庫互連)提供了一種標準的 API( 應用程式編程介面)方法來訪問資料庫管理系統(DBMS)。ODBC 的運用形態通常是由應用程式經過一個稱之為 ODBC 管理器的工具,建立一個 DSN,指明需要呼叫的 ODBC 驅動程式,從而訪問對應的資料庫。"
簡單來說,可以透過 ODBC 來簡化連線字串的管理,最近工作上,需要用到它,趕緊趁無風無雨的颱風天,重新學習一下。
.NET Core 原生的組態設定是使用 appsettings.json 來讀取組態設定,要先產生出各個環境的組態設定 appsettings.Development.json、appsettings.Staging.json、appsettings.Production.json,再透過環境變數+Build,取代掉原本的值,要佈署的環境越多檔案就越多,每次的改動設定都要很小心,生怕一個不注意就弄壞了,我想要讓組態管理的行為變簡單一些…
前面分享的兩篇文章,分別介紹了 Microsoft.Bcl.TimeProvider 和 AutoFixture 的 AutoData
另外在寫測試時,可以使用 FakeTimeProvider 去做抽換,就可以設定時區、時間來完成測試情境的執行。
那麼是不是也可以用 AutoData 的特性,讓我們在寫測試的時候可以省下建立 FakeTimeProvider 的步驟呢?當然可以,不過需要先瞭解該怎麼做、可以怎麼做以及應該如何做。
經過好友 張少齊 的推薦得知了這一套 Mock Server,趁著無風無雨的颱風假把玩一下這一套工具,跟著官方文件一路啃到底。
這是一篇借花獻佛、拾人牙慧的文章,之前有寫過這麼一篇文章「單元測試使用 AutoFixture.AutoNSubstitute」
當時是使用了 AutoFixture.AutoNSubsititute 來減少測試類別裡相依類別的 Stub 建立步驟,用了很奇怪的方式來解決我當時的煩惱。
直到我進入到另一個團隊後,才知道可以藉由 AutoFixture.AutoData 做到更為簡單與彈性的解決方式,這篇就來簡單介紹怎麼做。
箕輪城位在東京西北邊,高崎市箕郷町中的一座平山城
目前僅有2016年修復的木造角馬出西虎口門外,並沒有留下其他任何的建築物
而城下町也保留了過去的氛圍,只可惜店家數量略少,整體環境幽靜。避開雨季前往即可
從本篇文章開始,百大名城攻略也加入了影片以及字幕解說,不想看文章想看影片的人,可以從這裡看看攻略箕輪城的影片
日本百大名城No.16,適合散步踏青的箕輪城,一個人的旅行
我想很多人看到標題後都會直接想
「程式裡直接用 DateTime 難道錯了嗎?」
「DateTime 用得好好的,為什麼要改用 Microsoft.Bcl.TimeProvider ?」
「我又不必寫測試,我就是要用 DateTime!」
我也管不著各位想怎麼用、想怎麼寫程式,只是看到很多有關於交易處理的程式都是跟時間判斷有關,而且有著種種原因而沒有寫測試,就讓人覺得那些產品妥當嗎?
而且一遇到 DateTime 的處理,就會卡在不知道如何寫測試。
所以就來寫這一篇簡單介紹 Microsoft.Bcl.TimeProvider
以往為了要測試 Oracle , 要弄 VM 來安裝 Linux , 然後再來使用相關指令安裝 Oracle , 現在利用 Docker 技術可以讓整個程序方便多了。
亞太技術年會 ( DevDays Asia 2024 ) 微軟專家針對 T-SQL 未來將支援 Regular Expressions 的測試與練習
在工作群組的環境下,如何設定檔案共用見證,讓叢集的仲裁可以正常運作
某一天我的同事提醒我說新版的 Rider,SpecFlow for Rider 上不能使用了,於是我暫緩更新了一段時間,現在已經有 Reqnroll 方案。這裡有 Reqnroll 誕生原因,From SpecFlow to Reqnroll: Why and How • Reqnroll,總結內容就是 SpecFlow 已經很長一段時間沒有更新,所以作者決定 Fork SoecFlow 專案,名為 Reqnroll,現在我要來體驗 Reqnroll 跟過往的 SpecFlow 有沒有甚麼不一樣
SQL Server 2016 含以後的版本 , 搭配 Windows Server 2016 以後的作業系統 , 可以在 Windows 環境下沒有 AD 也可以運行了
島原城又名森岳城、高來城,位在長崎縣島原市中。
其位置略為偏僻,但卻是非常特別的一座百大名城,島原城也受到著名的島原之亂事件部份的影響
從島原車站步行5到10分鐘即可到達,除去鐵道乘坐的時間,是個非常容易且高價值的地點
大野城位在福岡縣太宰府市,雖然位在許多遊客前往的太宰府旁,但是由於大野城本身是日本古代山城(也有稱之為朝鮮式山城),所以前往的人並不多。雖然也有設置了森林遊樂園區,但是由於地處不便,所以也很難成為一般遊客前往的景點
一般前往的方式不一定會開車,所以最好先作足準備,因為古代山城走起來真的頗累。前往的時間避開雨季與下雪的冬季即可
在 Windows 環境下如果啟用 Cmd 或者是 PowerShell , 因為中文問題容易造成無法出現游標或者是畫面字體不美觀 , 因此想要在 Windows Server 上安裝 Terminal 的應用程式
岡城位於日本九州的大分縣竹田市,是一座非常標準的日本山城
建築於標高325公尺天神山上的岡城,由於樣子很像是一隻牛臥倒的樣貌,所以又稱之為臥牛城。也是個非常適合在春天前往賞櫻的景點
「資安 ISSUE
」,此語一出,誰與爭鋒?約莫 15 年前,跟前輩在閒聊,說客戶那邊丟了一句「資安 ISSUE」,所以這個元件不准用、那個 SDK 不准裝,結果東西做好了,案子結不了案。時間回到今天,資安那邊丟了一個訊息:
appsettings.Development.json 裡面的 Server=(localdb)\MSSQLLocalDB;Database=dev;Integrated Security=true 這個連線字串有資安疑慮,請修正。
如果資料庫都隸屬於同一台伺服器,資料庫之間要 JOIN 彼此的資料表是相對容易的,在有權限的前提下,只要在資料表的前面加上「[資料庫名稱].[結構描述]
」,就能存取得到其他資料庫的資料表,就像這樣:[DB].[dbo].[Table]
。
但是在 Entity Framework Core 中,似乎沒有那麼容易,通常一個資料庫會建成一個 DbContext,當我們直接把隸屬於不同 DbContext 的 DbSet 拿來做 Join,我們得到以下的錯誤訊息:
Cannot use multiple context instances within a single query execution. Ensure the query uses a single context instance.
位在日本九州東邊的府內城,位在大分縣大分市的市中心中
除了被稱為府內城外,還被稱為大分城、荷揚城以及白雉城
由於是在市中心,所以前往府內城可說是幾乎沒有難度,任何時候都可以前往
OpenAI 陸續推出了 GPT4o 和 GPT4o-mimi 這兩個新的多模態模型,所謂多模態模型指的是這個模型可以同時處理文字和圖片的需求,過去在 Azure 上面會需要使用 GPT-4 Turbo with Vision 這個模型,透過結合 Azure AI Vision 來辨識圖片,現在新的多模態模型就不需要再透過額外的 Azure AI Vision 就可以支援了,後面就來介紹透過新介面的 Azure OpenAI Studio 來部署和實做程式串接。
微軟有一個 System.Net.Mail.SmtpClient 類別,被建議說不要在新開發的應用程式中使用,並且給了非常明確的指示「請改用 MailKit
」,MailKit 是建構在 MimeKit 上面的一個跨平台郵件發送套件,既然微軟爸爸都這麼說了,我們直接上手。
名護屋城位於日本九州的最西北方,由於非常靠近海港且地處偏遠
要前往的話除非自駕,不然交通工具的時刻表要特別小心與注意
另外,避開梅雨與冬季前往即可。另外也可以安排在春季前往,名護屋城也是個賞櫻的好地點
鹿兒島城位在南九州,是日本在南九州數一數二的大城市
雖然現在幾乎沒有遺跡保留下來,但重新改建的歷史博物館-黎明館內含資訊相當完整
不論何時都可以隨時前往
根據外部傳入參數,動態組裝資料庫查詢條件,這是一個很常見的需求,多數的程式設計師應該都有實作過,這天我在使用 Entity Framework Core 做動態條件組裝的時候,「OR
」條件讓我卡了一下。
前陣子 OpenAI 正式推出官方的 C# Library ,之前介紹微軟推出的 Azure OpenAI client library for .NET 也把版號進到 2.0.0 了,這時候就會有疑問是不是 OpenAI 要出來取代微軟之前推出的,試了一下發現並非如此,而是兩個 Library 是相輔相成的,後面就簡單來介紹跟說明如何使用吧。