tag:blogger.com,1999:blog-7570343630768666632024-03-19T03:31:08.152+08:00mrkt 的程式學習筆記ASP.NET MVC, ASP.NET Web Forms (C#), jQuery ......<br>
<i>這裡的內容很另類又相當非主流,所以請再三斟酌並小心使用</i>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.comBlogger475125tag:blogger.com,1999:blog-757034363076866663.post-86887540783852070972018-08-07T20:00:00.000+08:002018-08-07T20:00:12.071+08:00在 ASP.NET Core 2.1 的 docker image 裡安裝 Node.js<p>這算是比較特殊的情境,但因為現在的應用程式除了跨平台之外,程式本身有時候也會需要跨越使用。目前手上一個專案就是這樣的情況,使用 ASP.NET Core 2.1 開發,之後正式運作是要使用 docker 運行,而應用程式會在執行某項功能時去使用某個 NPM 來產出結果。</p><p>面對這樣的需求(這需求還是我自己想的)原本覺得應該不是什麼大問題,但就在第一步就遇到了狀況,而這篇文章就記錄幾個安裝的方式。</p><hr>
<a href="http://kevintsengtw.blogspot.com/2018/08/aspnet-core-21-docker-image-nodejs.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-50366671026656831172018-07-09T08:30:00.000+08:002018-07-09T08:30:18.954+08:00ASP.NET Core 使用 NLog 將 Log 寫到 Elasticsearch - Kibana 顯示 log<p>接續前面兩篇文章,在 Kibana 裡顯示 Log</p><p><a href="http://kevintsengtw.blogspot.com/2018/07/docker-compose-elasticsearch-kibana.html" target="_blank">Docker-Compose 建立 Elasticsearch 與 Kibana 服務</a><br><a href="http://kevintsengtw.blogspot.com/2018/07/aspnet-core-nlog-log-elasticsearch.html" target="_blank">ASP.NET Core 使用 NLog 將 Log 寫到 Elasticsearch</a></p><p><br></p><hr>
<a href="http://kevintsengtw.blogspot.com/2018/07/aspnet-core-nlog-log-elasticsearch_9.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-1908177582273030702018-07-08T14:27:00.000+08:002018-07-08T19:03:28.185+08:00ASP.NET Core 使用 NLog 將 Log 寫到 Elasticsearch<p>前一篇「<a href="http://kevintsengtw.blogspot.com/2018/07/docker-compose-elasticsearch-kibana.html" target="_blank">Docker-Compose 建立 Elasticsearch 與 Kibana 服務</a>」說明了使用 Docker-Compose 建立了 Elasticsearch 和 Kibana 以及相關的服務,這一篇接續說明在 ASP.NET Core 網站裡使用 NLog 將 Log 寫到 Elasticsearch。</p><p><br></p><hr>
<a href="http://kevintsengtw.blogspot.com/2018/07/aspnet-core-nlog-log-elasticsearch.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-2817674356095425662018-07-01T12:34:00.000+08:002018-07-01T14:31:10.089+08:00Docker-Compose 建立 Elasticsearch 與 Kibana 服務<p>這邊簡單記錄一下使用 docker-compose 於開發環境建立 Elasticsearch 與 Kibana 服務,除了這兩個主要的服務之外也會一同建立幾個常見於操作管理 Elasticsearch 服務。</p><a href="http://kevintsengtw.blogspot.com/2018/07/docker-compose-elasticsearch-kibana.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-86219971805533661112018-01-28T23:47:00.000+08:002018-01-29T00:28:18.907+08:00測試 - 使用 AutoFixture 產生指定範圍的隨機數值 - Customize, ICustomization<p>接續前面兩篇文章的內容:</p><p><a href="http://kevintsengtw.blogspot.tw/2018/01/autofixture.html" target="_blank">測試 - 使用 AutoFixture 產生指定範圍的隨機數值</a><br><a href="http://kevintsengtw.blogspot.tw/2018/01/autofixture_28.html" target="_blank">測試 - 使用 AutoFixture 產生指定範圍的隨機數值 - 設定屬性名稱與範圍</a></p><p><br></p><p><hr>
</p><a href="http://kevintsengtw.blogspot.com/2018/01/autofixture-customize-icustomization.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-78904234780428464222018-01-28T12:21:00.000+08:002018-01-28T12:39:08.296+08:00測試 - 使用 AutoFixture 產生指定範圍的隨機數值 - 設定屬性名稱與範圍<p>接續上一篇「測試 - 使用 AutoFixture 產生指定範圍的隨機數值」的內容,讓我們可以在使用 LatitudeBuilder 和 LongitudeBuilder 時可以設定屬性名稱與範圍。</p><p><br></p><hr>
<a href="http://kevintsengtw.blogspot.com/2018/01/autofixture_28.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-91662941518259484842018-01-27T17:12:00.000+08:002018-01-27T23:45:08.076+08:00測試 - 使用 AutoFixture 產生指定範圍的隨機數值<p>這一篇的內容是取自課程「實務專案的測試」內容的一小部分,在寫測試程式時我會使用 AutoFixture 產生一個 Collection 的測試資料, AutoFixture 會依據類別裡屬性的各個型別隨機產生內容,但有時候會想要某些屬性的值要在一定的範圍內,這時候可以使用一些設定方法讓 AutoFixture 可以在指定的範圍裡隨機產生資料。</p><p><br></p><hr>
<a href="http://kevintsengtw.blogspot.com/2018/01/autofixture.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-11002548719035514992018-01-16T20:00:00.001+08:002018-01-16T20:00:37.144+08:00[練習題] ASP.NET Core WebAPI - 台北市 YouBike 公開資料<p>這算是個練習的題目,原本覺得應該是個簡單的應用,沒想到實做下去遇到了幾個進階的操作,還蠻有趣的,用的是 ASP.NET Core WebAPI,但如果要用在 ASP.NET WebAPI 專案裡也是可以的,程式的部分並不會有多大的差異。寫程式的過程中還發想出不少的延伸應用情境,所以之後會有幾篇文章跟這篇的內容有所關連。</p><p>這篇文章會提到的內容:GZipStream, JsonConvert, AutoMapper</p><p><br></p><hr>
<a href="http://kevintsengtw.blogspot.com/2018/01/aspnet-core-webapi-youbike.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-61870046256263425352018-01-07T17:25:00.000+08:002018-01-07T21:44:52.487+08:00Visual Studio 2017 擴充功能 - EF Core Power Tools<p>對於很多開發者與團隊、公司來說,以往開發 ASP.NET 專案要使用 Entity Framework 的 Code First 都各自有需要面對的問題與難度,所以很多人還是比較選擇使用 Database First 或是「來自資料庫的 Code First」,而在 ASP.NET Core 專案裡要使用 Entity Framework 就只有 Entity Framework Core 這麼一個選項,而且預設只能使用 Code First,對於已經對於 Code First 完全不熟的開發者來說,難道就只能硬著頭皮去使用 Code First,而資料庫管理比較嚴謹的團隊、公司就無法在 ASP.NET Core 專案使用 EF 了嗎?</p><p>Visual Studio Extension「<a href="https://marketplace.visualstudio.com/items?itemName=ErikEJ.EntityFramework6PowerToolsCommunityEdition" target="_blank">Entity Framework 6 Power Tools</a>」的作者「<a href="https://twitter.com/ErikEJ" target="_blank">Erik Ejlskov Jensen</a>」製作了對應 Entity Framework Core 的擴充功能「<a href="https://marketplace.visualstudio.com/items?itemName=ErikEJ.EFCorePowerTools" target="_blank">EF Core Power Tools</a>」,讓我們在開發 ASP.NET Core 專案時也可以有個操作介面功能可以建立、管理專案的 EF Core 模型。</p><p><br></p><hr>
<a href="http://kevintsengtw.blogspot.com/2018/01/visual-studio-2017-ef-core-power-tools.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-3769789807825789652017-06-04T20:03:00.000+08:002017-06-04T22:28:55.952+08:00Visual Studio 2017 - 從 JSON 產生 C# 類別檔案<p>在過去使用 Visual Studio 2013,2015 時,先將 JSON 內容複製起來後,然後使用 Visual Studio 裡的「選擇性貼上」功能就可以產生相對映 JSON 結構的 C# 類別檔,這功能相當方便,我在之前的文章裡也曾經有介紹過「<a href="http://kevintsengtw.blogspot.tw/2013/11/aspnet-mvc-part1.html" target="_blank">ASP.NET MVC 使用政府公開資料 Part.1</a>」。</p><p>但是在 Visual Studio 2017 裡怎麼好像這個功能不見了… 怎麼找都找不到要怎麼把這功能恢復的方法,最後乾脆就直接找其他的擴充功能來取代,這邊就介紹一個我用起來還不錯的給大家。</p><p><br></p>
<hr>
<a href="http://kevintsengtw.blogspot.com/2017/06/visual-studio-2017-json-c.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com6tag:blogger.com,1999:blog-757034363076866663.post-39243144207358639412017-04-30T12:05:00.000+08:002017-05-02T14:48:58.023+08:00twMVC #24 - 開發團隊的敏捷之路(未完成)<p>這一場的發表日期是在 2016-10-01,距今已經是七個月前的事情了,原本應該是在活動之後就會整理一篇文章說明,但因為工作繁忙以及懶惰的緣故,所以一直拖到今天才寫出來,這期間的 twMVC 研討會都已經來到 #27 了,然後在下個月(2017-05-13)也即將舉辦第 28 場囉。</p> <p>關於講題名稱,一開始公開的時候是有很多人誤會,所謂的「未完成」並不是說要講的內容尚未完成,而是在說明一個團隊的敏捷之路並沒有所謂的「完成」,敏捷是一直持續進行並且是持續改善的,沒有完成的一天,而我是以工作團隊在過去一年當中所帶領推動的一系列改變來做說明,希望可以作為其他團隊的借鑑。</p> <p> </p> <hr> <a href="http://kevintsengtw.blogspot.com/2017/04/twmvc-24.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-55868601102189616462017-04-23T22:27:00.000+08:002017-04-24T14:46:19.068+08:00關於「面試」…<p>三個多月沒有寫文章了,這段時間都把專注於公司的專案開發上,雖然現在專案仍然持續開發中(還看不到結束的那條線),但持續將近一年維持高張力的開發,開始發覺到已經逐漸往崩潰邊緣前去,所以必須做一些調節,而以前調節情緒與壓力的方式就是寫文章。</p> <p>先來寫一篇有關「面試」的主題,目前的工作內容除了在專案的開發之外,也會一起協同面試,主要是看前來面試者的技術,以及當面與面試者一起會談,藉這篇文章整理一下這段時間所看到的一些事情。</p> <p> </p> <hr> <a href="http://kevintsengtw.blogspot.com/2017/04/blog-post.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com5tag:blogger.com,1999:blog-757034363076866663.post-33406910643955041762017-01-24T20:00:00.002+08:002017-01-24T20:01:53.115+08:00Visual Studio 2015 Professional 測試的程式碼涵蓋範圍 - 使用 AxoCover<p>上一篇「<a href="http://kevintsengtw.blogspot.tw/2017/01/visual-studio-2015-professional.html" target="_blank">Visual Studio 2015 Professional 測試的程式碼涵蓋範圍 - 使用 OpenCover 和 OpenCover UI</a>」說明的是在 VS2015 Professional 裡使用 OpenCover UI 去執行 OpenCover 以得到測試涵蓋範圍的結果,但因為 OpenCover UI 的功能與操作有些陽春,另外在執行時會出現錯誤的狀況,讓我在使用上總是覺得不順手,不過另外一個擴充功能可以使用,那就是這篇要介紹的「AxoCover」。</p> <p> </p> <hr> <a href="http://kevintsengtw.blogspot.com/2017/01/visual-studio-2015-professional-axocover.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-28879894180061277412017-01-23T08:30:00.002+08:002017-01-23T11:43:34.167+08:00Visual Studio 2015 Professional 測試的程式碼涵蓋範圍 - 使用 OpenCover 和 OpenCover UI<p>相信很多人都會直覺認為在 Visual Studio 裡能夠使用到「程式碼涵蓋範圍」這個功能是很正常也不會覺得有任何異常的狀況,不管是之前的 VS2012, VS2013 或 VS2015,有寫測試的開發人員都會對於使用「程式碼涵蓋範圍」是日常開發工作理會經常去使用到的,但你們可知道正在使用的 Visual Studio 授權版本為何呢?</p> <p>一開始會這麼問各位,這是因為 Visual Studio 裡的「分析程式碼涵蓋範圍」功能是只有在 Ultimate 與 Enterprise 版本才有的,而如果使用的是 Professional 或 Community 版本則是沒有的,那麼使用 Professional 版本的開發者在寫測試時要如何知道測試程式的涵蓋範圍呢?</p> <p> </p> <hr> <a href="http://kevintsengtw.blogspot.com/2017/01/visual-studio-2015-professional.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-66161801932219996412016-11-28T08:30:00.000+08:002016-11-28T08:30:37.482+08:00使用 CodeTrack 分析你的 .NET 應用程式<p>在 twMVC#15 時,我以「<strong>開發的效能和效率</strong>」這個題目分享了幾個追蹤分析以及效能監控的工具,有些功能是 Visual Studio 本身就有提供,但是只有在 Ultimate 或 Enterprise 才有提供,而有些則是需要付費購買的第三方套件,看起來好像都需要先付出一筆費用之後才有辦法去做到詳細追蹤分析的事情,不過也並不是這樣,因為有很多人既使給他們用了最高開發等級的 Visual Studio,也還是有一堆功能根本不會用,而且可能還不知道有這些功能。</p> <p>這一篇文章將會介紹一套免費及操作簡便的 .NET 應用程式分析工具「CodeTrack」,希望能夠為各位的開發與系統維護時有所幫助。</p> <hr> <a href="http://kevintsengtw.blogspot.com/2016/11/codetrack-net.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-22867809918493303272016-11-21T08:00:00.001+08:002016-11-26T15:04:06.019+08:00Docker for Windows - Microsoft SQL Server on Linux 與 Visual Studio Code 操作<p>是的,在今年三月的時候微軟就已經宣佈要讓 SQL Server 放在 Linux 系統裡,而在前陣子的 Microsoft Connect(); 2016 大會裡發表了 Microsoft SQL Server for Linux v.Next,雖然離真正可以商業應用的階段可能還要一段時間,但是我想不久的將來微軟應該就可以完成這個目標,畢竟目前 Linux 系統的市佔率是節節升高,微軟以及使用微軟技術的工程師們必須正視這樣的轉變,也必須進早熟悉和因應。</p> <p><img alt="數位時代 配圖" src="http://img.technews.tw/wp-content/uploads/2016/03/SQL-Loves-Linux.jpg"></p> <p>這一篇文章將會簡單的介紹如何以 Docker 的方式讓 MS SQL Server for Linux 運行在 Docker for Windows 上。</p> <p> </p> <p> <hr> </p> <a href="http://kevintsengtw.blogspot.com/2016/11/docker-for-windows-microsoft-sql-server.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com6tag:blogger.com,1999:blog-757034363076866663.post-74888467438728685842016-11-20T14:36:00.001+08:002016-11-20T20:26:11.379+08:00Docker for Windows 與 ASP.NET Core - Part.2 使用指令碼建立 Image 和 Container<p>經過上一篇「<a href="http://kevintsengtw.blogspot.tw/2016/11/docker-for-windows-aspnet-core-part1.html" target="_blank">Docker for Windows 與 ASP.NET Core - Part.1 安裝與使用 Visual Studio 2015</a>」的環境建置與開發環境建立專案和使用 Visual Studio Tools for Docker - Preview 之後,這一次來嘗試使用指令碼的方式建立 ASP.NET Core 的 Image 和 Container 並且運行在 Docker 裡。</p> <p> </p> <hr> <a href="http://kevintsengtw.blogspot.com/2016/11/docker-for-windows-aspnet-core-part2.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com8tag:blogger.com,1999:blog-757034363076866663.post-35757941890580874242016-11-19T22:00:00.000+08:002016-11-20T20:22:22.318+08:00Docker for Windows 與 ASP.NET Core - Part.1 安裝與使用 Visual Studio 2015<p>目前容器技術已經成為主流,許多公司的資訊系統架構都已經轉向容器化,以往在 Windows 系統要使用 Docker 都會受到許多技術限制,雖然可以用許多方式來使用 Docker,但使用上還是不太順暢與便利,不過 2016年的下半年陸續由 Docker 發佈了 Docker for Windows 以及 Microsoft 發佈 Windows Container,前者可以讓開發人員可以在 Windows 環境裡架設及使用 Linux 基礎的 Docker,後者則是 Windows 版的 Container 技術,不管是哪一種版本都是開發人員必須要熟悉與認識,因為這是未來的一大趨勢。</p> <p>此篇文章會先介紹如何安裝 Docker for Windows,另外使用 Visual Studio 2015 建立 ASP.NET Core 專案以及安裝套件,然後使用這個 ASP.NET Core 專案建立 Docker image, container 以及執行。</p> <p>接下來會有幾篇文章會介紹 Docker for Windows 與 Windows Container 的文章,方便大家可以入門學習。</p> <hr> <a href="http://kevintsengtw.blogspot.com/2016/11/docker-for-windows-aspnet-core-part1.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com1tag:blogger.com,1999:blog-757034363076866663.post-52432266979607433862016-10-31T15:30:00.001+08:002016-11-20T20:35:44.503+08:00Repository 測試 - 使用 LocalDB - 範例程式碼 @ Github<p>將「Repository 測試 - 使用 LocalDB」這系列文章的範例程式碼給發佈到 Github 上面囉,完整的專案程式碼會比文章裡只有提到部分來得清楚(其實文章裡所提供的程式都已經是完整的內容),還是有很多開發者對於文字與部分程式的內容比較沒有感覺,所以有時間就把專案 Clone 一份下來看看。(還是有很多人習慣看程式,都已經把完整的專案公開了,就下載並且執行看看吧)</p> <p> </p> <hr> <a href="http://kevintsengtw.blogspot.com/2016/10/repository-localdb-github.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-44139229629403018172016-10-30T22:00:00.000+08:002016-11-20T20:34:40.706+08:00Repository 測試使用 LocalDB - Part.4<p>本來應該在 Part.3 這一篇就應該做個完結,但還是有一件事情要交代,所以又開了一篇來做說明,這一篇會有關於前陣子所發的文章「<a href="http://kevintsengtw.blogspot.tw/2016/10/repository-sql-script.html">準備 Repository 單元測試的測試資料 - 產生匯入資料的 SQL Script</a>」有關,在「<a href="http://kevintsengtw.blogspot.tw/2016/10/repository-localdb-part3.html" target="_blank">Repository 測試使用 LocalDB - Part.3</a>」裡面所使用的是 CSV 匯入測試資料,而接著就會說明使用 Insert SQL Command 的方式匯入測試資料的做法。</p> <p> </p> <hr> <a href="http://kevintsengtw.blogspot.com/2016/10/repository-localdb-part4.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-1636755031124777702016-10-26T00:30:00.000+08:002016-11-20T20:33:23.017+08:00Repository 測試使用 LocalDB - Part.3<p>接續上一篇「<a href="http://kevintsengtw.blogspot.tw/2016/10/repository-localdb-part2.html" target="_blank">Repository 測試使用 LocalDB - Part.2</a> 」的內容,在上一篇已經完成使用 Entity Framework 建立與移除 LocalDB 的類別和方法,在第一篇「<a href="http://kevintsengtw.blogspot.tw/2016/10/repository-localdb-part1.html" target="_blank">Repository 測試使用 LocalDB - Part.1</a> 」也說明了要受測試的目標類別與方法,另外也建立了要在單元測試裡所使用的測試資料。</p> <p>這一篇就要完成 Repository 的單元測試,會用到前面兩篇所建立的類別與資料,所以請各位要仔細看清楚囉。</p> <p> </p> <p> <hr> </p><a href="http://kevintsengtw.blogspot.com/2016/10/repository-localdb-part3.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com2tag:blogger.com,1999:blog-757034363076866663.post-63491909640669605422016-10-25T15:43:00.001+08:002016-11-21T11:05:04.124+08:00Repository 測試使用 LocalDB - Part.2<p>接續上一篇「<a href="http://kevintsengtw.blogspot.tw/2016/10/repository-localdb-part1.html" target="_blank">Repository 測試使用 LocalDB - Part.1</a> 」的內容,這一篇將會介紹如何透過 Entity Framework 的方法建立與移除 LocalDB。</p> <p> </p> <p> <p> <hr> </p> </p><a href="http://kevintsengtw.blogspot.com/2016/10/repository-localdb-part2.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com4tag:blogger.com,1999:blog-757034363076866663.post-1563047308968706932016-10-24T08:30:00.000+08:002016-11-20T20:29:05.978+08:00Repository 測試使用 LocalDB - Part.1<p>去年有寫過一篇關於在測試專案裡使用 LocalDB 的文章「<a href="http://kevintsengtw.blogspot.tw/2015/06/localdb-entity-framework.html" target="_blank">測試專案使用 LocalDB - 使用 Entity Framework 的情境</a>」,的確是一個可以執行的做法,但是在多人開發的專案或是多分支開發的專案裡,這樣的做法會帶來一些問題,另外在一些環境裡執行單元測試時會遇到權限不足的問題(例如登入使用者並不具有 Administrator 權限時)會造成測試執行失敗,以致於最後我不在使用那種方式。</p> <p>既然不用了也還是必須要有替代的方式去完成 Repository 的單元測試,於是我之後嘗試使用指令碼的方式在執行 Repository 測試前建立 LocalDB、執行測試後再移除 LocalDB,這樣的做法也真的可行,不過卻相當不穩定,當測試全部都執行正確時是不會有問題,但是一旦當一個錯誤發生問題時,建立的 LocalDB instance 就會被鎖住而無法正確釋放、移除,這樣的問題一直困擾著我很久。</p> <p>接下來的幾篇文章將會介紹一個穩定而且不會發生測試失敗就把 LocalDB 鎖住的方式,藉助 Entity Framework 所提供的類別與方法來完成 Repository 測試的 LocalDB 建立與移除,讓我們能夠以更為簡易的方式來完成 Repositoy 的單元測試。</p> <p> </p> <hr> <a href="http://kevintsengtw.blogspot.com/2016/10/repository-localdb-part1.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-30507553554921887872016-10-16T13:04:00.000+08:002016-10-16T22:12:15.891+08:00準備 Repository 單元測試的測試資料 - 產生匯入資料的 SQL Script<p>之前有介紹過一篇準備測試資料的文章「<a href="http://kevintsengtw.blogspot.tw/2016/08/csv-linqpad-automapper-csvhelper.html" target="_blank">輸出測試用資料的 CSV 檔案 - 使用 LINQPad, AutoMapper, CsvHelper</a>」,在大部分的情況下我蠻常使用這樣的操作方式來準備測試資料,但隨著單元測試的數量越來越多,而且因為在公司裡所開發的專案大部分還是使用 Dapper 來存取資料,所以 Repository 的單元測試就開始暴增,原本使用 CSV 檔案來匯入測試資料到 LocalDB 的前置作業就會成為讓整體測試作業執行時間緩慢的原因之一(有關怎麼使用 LocalDB 進行 Repository 單元測試與使用 CSV 檔匯入測試資料的內容,日後再寫篇文章來說明)。</p> <p>為了解決使用 CSV 檔案匯入測試資料會因為資料轉換而使得測試時間拉長的情況,所以乾脆使用 SQL Dumper 及 ApexSQL Script 工具匯出 SQL Script 來直接匯入測試資料。</p> <p> </p> <p> <hr> </p><a href="http://kevintsengtw.blogspot.com/2016/10/repository-sql-script.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0tag:blogger.com,1999:blog-757034363076866663.post-90837297990963096772016-09-16T18:19:00.001+08:002016-09-16T18:19:47.423+08:00練習題 - 使用 Fluent Assertions 驗證資料的排序<p>以往在針對方法的執行結果進行資料排序的驗證時,比較直接的做法就是取得 collection 的第一筆與最後一筆,然後再依據用什麼條件做排序去比較兩筆資料,例如使用日期為條件而且是由新到舊的排序,那麼第一筆資料必須要比最後一筆資料的日期還要新,大概是用這樣的方式做資料排序的驗證。</p> <p>不過這樣的做法還蠻土砲的,所以就用 Fluent Assertions 所提供的方法來處理吧。</p> <p> </p> <hr> <a href="http://kevintsengtw.blogspot.com/2016/09/fluent-assertions.html#more">閱讀更多 »</a>mrkt 的程式學習筆記http://www.blogger.com/profile/17962620480380791777noreply@blogger.com0