顯示具有 Visual Studio 標籤的文章。 顯示所有文章
顯示具有 Visual Studio 標籤的文章。 顯示所有文章

2020年4月20日 星期一

使用 Visual Studio 建立 Contoso University 資料庫

使用 Visual Studio 建立 Contoso University 資料庫教學

在這篇文章,將會說明如何透過 Visual Studio 2019 來建立一個本機 localdb 的資料庫,在這裡將會使用 Contoso Unsiver 這個範例資料庫做為說明。

建立本機開發用的資料庫

  • 首先,打開 Visual Studio 2019 開發工具
  • 確認功能表的 [檢視] > [SQL Server 物件管理員] 選項有勾選
  • 此時,將會看到 [SQL Server 物件管理員] 視窗出現
  • 展開 [SQL Server 物件管理員] 節點 [SQL Server] > [(localdb)\MSSQLLocalDB...] > [資料庫]
  • 滑鼠右擊該 [資料庫] 節點,選擇 [加入新的資料庫]
  • 當 [建立資料庫] 對話窗出現的時候,請在 [資料庫名稱] 欄位內輸入 [ContosoUniversityCore]
  • 完成後,點選 [確定] 按鈕
  • 從 [SQL Server 物件管理員] 視窗內,將會看到 [ContosoUniversity] 資料庫已經建立好了
  • 此時可以從 [SQL Server 物件管理員] 內看到 [ContosoUniversity] 資料庫顯示出來了
  • 滑鼠右擊該資料庫節點,選擇 [新增查詢]
  • 當看到 [SQLQuery1.sql] 視窗出現之後,輸入這裡 Contoso Unsiver 所看到的 SQL 指令,完成後,點選左上方的 綠色三角形,執行這些 SQL 指令
  • 現在,請重新整理該資料庫節點,便會看到這個 [ContosoUniversity] 資料庫節點內的 資料表 節點內,已經有產生出相關資料表了。



2020年4月8日 星期三

在 Visual Studio 內,指定特定的 NuGet 套件安裝來源作法

在 Visual Studio 內,指定特定的 NuGet 套件安裝來源作法

當在進行專案開發的時候,可以將團隊需要用到的各種常用 API,設計到類別庫內,接著,可以將該類別庫打包成為一個 NuGet 套件,而該 NuGet 套件便可以散發到網路上,提供其他開發團隊的成員,在 Visual Studio 內來設定該 NuGet 套件來源,取得所需要的套件。通常,開發者會打開他們的 Visual Studio,點選功能表 [工具] > [選項] > [NuGet 套件管理員] > [套件來源]
NuGet 可用套件來源
當看到 [可用套件來源] 對話窗出現之後,便可以在這個對話窗中,輸入想要新增的額外 NuGet 來源與名稱,這些 NuGet 的來源可能是公司內部的某個檔案伺服器的路徑、公司內部的私有 NuGet 伺服器、外部其他廠商提供的私有 NuGet 伺服器。
在這篇文章中,我已經將一些授課或者寫書會用到的常用 API,設計成為一個 類別庫,並且打包成為 NuGet 檔案,最後,上傳到 https://www.myget.org/ 網站上;當對於這些 API 有興趣者,只要輸入這個 URL https://www.myget.org/F/course-lab/api/v3/index.json 到 NuGet 來源設定中,便可以取得這些套件。
不過,問題來了,若在某台電腦上的 Visual Studio 已經設定了這個 NuGet 來源,對於使用其他電腦的開發者,一旦打開了這個正在開發的專案,則會因為那台電腦上沒有設定相關 NuGet 來源,而造成無法順利建置該專案;又或者是你自己的電腦重新安裝作業系統或者換了一台新電腦,也會遇到需要重新進行設定的困境。
現在可以使用 [nuget.config] 設個檔案,定義該專案要使用的其他 NuGet 來源,一旦設定好了之後,這些 NuGet 來源,便會跟著該專案跑,也就是說,當這個專案在別台電腦上打開之後,在這台電腦上,就已經會看到這些額外設定的 NuGet 來源。
這個說明專案的原始碼為 CustomNuGetSource

建立練習專案

  • 在這裡將會建立一個 Console 類型的專案來做為說明
  • 當該專案建立之後,請在該方案總管的節點上,使用滑鼠右擊 [加入] > [新增資料夾]
  • 對於該新的方案資料夾,輸入 nuget
  • 完成之後,滑鼠右擊 [nuget] 這個資料夾,選擇 [加入] > [新增項目]
  • 當新增項目對話窗顯示之後,在 [一般] 標籤頁次內的中間區域,會看到 [XML檔] 這個選項
  • 請點選 [XML 檔]這個選項,在下方的名稱欄位中,輸入 : nuget.config
  • 最後,請將底下內容,填入到這個檔案內
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="course-lab" value="https://www.myget.org/F/course-lab/api/v3/index.json" />
  </packageSources>
</configuration>

檢查 NuGet 來源是否已經綁定專案了

  • 請先關閉 Visual Studio ,並且重新開啟 Visual Studio
  • 滑鼠右擊該專案的 [參考] 節點,選擇 [管理 NuGet 套件]
  • 當管理NuGet套件視窗出現之後,可以點選該視窗右上方的 [套件來源] 下拉選單
  • 此時,將會看到一個新的 NuGet 套件來源選項,這就是剛剛設定的 NuGet 套件來源,而該套件來源,將會跟著該專案跑。
    NuGet 套件
  • 另外,點選 Visual Studio 功能表 [工具] > [選項]
  • 當選項對話窗出現之後,展開 [NuGet 套件管理員] > [套件來源],也會看到這個新增的套件來源項目
    Visual Studio 可用套件來源

設計測試專案原始碼

在 [Program.cs] 檔案中,使用底下程式碼替代
    class Program
    {
        static void Main(string[] args)
        {
            var foo = Vulcan.ServiceSample.MonkeyData.Monkeys;
            foreach (var item in foo)
            {
                Console.WriteLine($"{item.Name}");
            }


            Console.WriteLine("Press any key for continuing...");
            Console.ReadKey();
        }
    }



2019年6月3日 星期一

如何在 Visual Studio 2019 中針對 .NET Core 原始檔進行偵錯

如何在 Visual Studio 2019 中針對 .NET Core 原始檔進行偵錯

有些時候,想要知道 .NET BCL 中的程式碼究竟做了甚麼事情,此時,可以依照這篇文章的教學步驟說明,先進行 Visual Studio 2019 的相關設定,以便建立的專案可以針對 Base Class Library 的 API 進行偵錯;在這裡將會建立一個 .NET Core 2.2 版本的主控台應用程式專案來展示相關過程。
首先,打開 Visual Studo 2019
從 Visual Studio 2019 功能表來點選 [工具] > [選項]
在選項對話窗開啟之後,點選 [偵錯] > [一般]
請勾選 [啟用 .NET Framework 原始碼逐步偵錯]
此時,會有一個警告對話窗出現,啟用 .NET Framework 原始碼逐步偵錯時會自動停用 Just My Code ,請直接點選 [確定] 按鈕
在選項對話窗開啟之後,點選 [偵錯] > [符號]
請勾選 [符號檔 (.pdb) 位置] 標籤下方的 [Microsoft 符號伺服器] 選項,並且在下方的 [快取此目錄中的符號] 標籤下方的文字輸入盒,輸入一個目錄將要用來儲存從網路下載的 符號檔 Symbol File .pdb 檔案。
最後,點選 [確定] 按鈕
現在,可以建立一個 .NET Core 2.2 的主控台應用程式,並且填入底下程式碼。
在 list.Add("123"); 行敘述上設定一個中斷點
開始執行這個專案,此時,因為是第一次執行 .NET 原始碼逐步偵錯,所以,會下載相關符號檔,所以,需要花些時間,之後程式就會停在剛剛設定的中斷點上。
按下 [F11] 或者點選 [逐步執行] 工具列按鈕,就會到底下的內容,現在 Visual Studio 切換 List.cs 這個視窗中的 Add 方法上,這些程式碼就是 .NET BCL 上的原始碼。
而在剛剛設定的 下載的 符號檔 Symbol File .pdb 檔案 目錄中,將會看到成功下載的符號檔案
C Sharp / C#
class Program
{
    static void Main(string[] args)
    {
        List<string> list = new List<string>();
        list.Add("123");
        Console.WriteLine("Hello World!");


        Console.WriteLine("Press any key for continuing...");
        Console.ReadKey();
    }
}




2019年2月3日 星期日

打包 Xamarin.Forms 使用的 C# 程式碼片段成為 Visual Studio 2017 的擴充功能

打包 Xamarin.Forms 使用的 C# 程式碼片段成為 Visual Studio 2017 的擴充功能

在過去幾年中,由於從事於 Xamarin.Forms 專案開發與教學的工作,因此,累積了許多開發上使用的程式碼片段,這些程式碼片段大約有27個;而每次進行教學課程的時候,都會要求 Xamarin.Forms 上課學員可以把這些程式碼片段安裝起來,以便可以加快練習專案的開發。然而,幾乎都經常會有許多學員對於使用 Visual Studio 2017 程式碼片段管理員,把這些程式碼片段檔案安裝到 Visual Studio 開發環境上遇到問題,雖然,我都有提供相關作法文件與操作較學影片,不過,還是會有學員設定與使用上發生了問題。
有鑑於此,想說何不自己開發出一個 Visual Studio 擴充功能,如此,可以讓上課學員可以安裝這個擴充功能之後,便可以把這些好用的程式碼開發片段安裝到他們的 Visual Studio 2017 開發環境上;在這裡,我已經做好這個擴充功能,並且上架到 Visual Studio Marketplace 上,有興趣的人可以自行安裝 Xamarin.Forms Snippet for Prism

建立擴充功能專案

那麼,要如何把自己開發的程式碼片段打包成為 Visual Studio 程式碼片段呢?首先,請打開 Visual Studio 2017 ,從功能表中點選 [檔案] > [新增] > [專案],當 [新增專案] 對話窗顯示出來之後,請選擇 [已安裝] > [Visual C#] > [Extensibility] > [VSIX Project] 這個項目,最後,請在對話窗的下方,輸入這個專案的名稱,並且點選 [確定] 按鈕,以便完成建立這個專案。

建立程式碼片段資料夾與設定檔案屬性

請使用滑鼠右擊這個專案,建立底下階層的資料夾 [Snippets] > [CSharp] > [XamarinPrism] ,最後一個資料夾 XamarinPrism 的名稱,您可以依據您的喜好,選擇一個適合的名稱。
此時,您可以把這些程式碼片段,加入倒 [XamarinPrism] 資料夾內,不過,此時,請特別注意要進行底下的設定動作,否則,會有問題產生。
請將這個 Visual Studio 專案內的所有程式碼片段節點全選起來,並且在屬性視窗內,請先選擇這些程式碼片段檔案的 [建置動作] 屬性為 [內容],接著,請設定 [Include in VSIX] 這個屬性為 [True]。

建立與設定機碼內容

請在這個專案內,加入一個 XamarinPrismSnippet.pkgdef 文字檔案,這個檔案的名稱您可以自行設定,並不一定要叫做 XamarinPrismSnippet,接著,請在這個文字檔案內,填入底下內容。
在這裡,我們要設定當這個 Visual Studio 擴充功能在使用者電腦上安裝成功之後,需要在他的電腦上新增底下描述的機碼,在第二行的等號左邊的名稱,將會出現在程式碼片段管理員中的分類名稱,因此,您可以依據您的需要,自行調整與變更成為您需要的名稱。
[$RootKey$\Languages\CodeExpansions\CSharp\Paths]
"XamarinPrism"="$PackageFolder$\Snippets\CSharp\XamarinPrism"

修正 source.extension.vsixmanifest

現在,請在專案中,找到 source.extension.vsixmanifest 節點,使用滑鼠雙擊這個節點,便會看到一個視窗內容,請點選 [Assets] 標籤頁次;接著,請點選右方的 [New] 按鈕。
現在會看到一個 [Add New Asset] 對話窗,請在 [Type] 欄位中,選擇 [Microsoft.VisualStudio.VsPackage],接著在 [Source] 欄位中,選擇 [File on filesystem] 這個選項。
此時,會出現一個新的 [Path] 欄位,我們可以將剛剛建立好的 XamarinPrismSnippet.pkgdef 這個文字檔案名稱,輸入到 [Path] 欄位中 [XamarinPrismSnippet.pkgdef] ,完成後,請點選 [OK] 按鈕。
請在這個視窗的最右上方,看到有兩個欄位,分別是 [Author] 與 [Version] ,請適當修正這兩個欄位值。

進行測試

好的,現在我們可以開始進行這個擴充功能的除錯執行與測試了,現在,請點選工具列上的 Current Instance [Visual Studio Enterprise 2017] 這個項目 (我的電腦上安裝的 Visual Studio 2017 是屬於 Enterprise 版本),現在,將會出現一個獨立環境的 Visual Studio。
請在這個獨立測試環境的 Visual Studio 中,打開程式碼片段管理員對話窗,此時,您應該可以從 CSharp 程式碼片段群組內看到 XamarinPrism 這個選項,那就表示這個擴充功能專案已經正常設計好了。