Alıştırma - Bir değişikliği paketinize gönderme

Tamamlandı

Bu noktada iki işlem hattınız vardır. Biri Models paketini Azure Artifacts'de, diğeri de Space Game web uygulaması için yayımlar. Web uygulamasının derleme yapılandırması model sınıflarına erişebilmesi için Models paketine başvurur.

Burada Modeller paketini güncelleştirme ve bu değişikliği web uygulamasından kullanma alıştırması yapacaksınız.

Bunu yapmak için, model sınıflarından birine bir özellik ekleyerek başlayacak ve ardından paket sürümünü çarpacaksınız. Ardından, işlem hattının paketi oluşturup Azure Artifacts'de yayımlaması için değişikliği GitHub'a göndereceksiniz.

Ardından eklenen özelliği kullanabilmesi için web uygulamasını Models paketinin daha yeni sürüm numarasına başvuracak şekilde güncelleştireceksiniz.

Dal oluşturma

Çalışmalarımızı tutması için bir dal oluşturarak başlayalım. dalı temel alan main adlı add-game-stylebir dal oluşturun.

Bu noktada, biri Tailspin.SpaceGame.Web.Models projesi, diğeri de Space Game web uygulaması projesi Tailspin.SpaceGame.Web için olmak üzere iki Visual Studio Code kopyası açık durumdadır. Burada Tailspin.SpaceGame.Web.Models projesinin kopyasıyla çalışacaksınız.

  1. Visual Studio Code'da tümleşik terminali açın.

  2. terminalden adlı add-game-stylebir dal oluşturmak için aşağıdaki git checkout komutu çalıştırın.

    git checkout -B add-game-style
    

Models paketine bir özellik ekleme

Puanın ilişkilendirildiği oyun stilini (veya zorluğu) sağlayan model sınıflarından birine adlı Scorebir özellik ekleyin.

Burada Tailspin.SpaceGame.Web.Models projesi için Visual Studio Code kopyasından çalışacaksınız.

  1. Visual Studio Code'da Tailspin.SpaceGame.Web.Models/Models/Score.cs dosyasını açın. Aşağıdaki vurgulanmış özelliği zaten orada bulunan özellikler listesine ekleyin.

    using System.Text.Json.Serialization;
    
    namespace TailSpin.SpaceGame.Web.Models
    {
        public class Score : Model
        {
            // The ID of the player profile associated with this score.
            [JsonPropertyName("profileId")]
            public string ProfileId { get; set; }
    
            // The score value.
            [JsonPropertyName("score")]
            public int HighScore { get; set; }
    
            // The game mode the score is associated with.
            [JsonPropertyName("gameMode")]
            public string GameMode { get; set; }
    
            // The game region (map) the score is associated with.
            [JsonPropertyName("gameRegion")]
            public string GameRegion { get; set; }
    
            // The game style (difficulty) the score is associated with.
            [JsonPropertyName("gameStyle")]
            public string GameStyle { get; set; }
        }
    }
    

    Dekont

    Sürüm numarasını nerede artırdığınızı göstermek için projedeki bir dosyada değişiklik yapıyorsunuz. Ancak web uygulamasını yeni özelliği kullanacak şekilde güncelleştirmeyeceğiz.

  2. Dosyayı kaydedin.

  3. Çalışmanızı doğrulamak için projeyi derleyin:

    dotnet build --configuration Release
    

    Uygulamada testleri çalıştırma veya yeni paketi kullanan bir uygulamayla test etme gibi ek doğrulama adımları gerçekleştirebilirsiniz.

Paketi derleme ve yayımlama

Sınıfına yeni özelliği ekleyip proje derlemelerini başarıyla doğruladığınıza Score göre paketin sürümünü güncelleştirebilirsiniz. Ardından Azure Pipelines'ın güncelleştirilmiş paketi oluşturup yayımlayabilmesi için değişikliğinizi GitHub'a gönderebilirsiniz.

  1. azure-pipelines.yml dosyasını açın, öğesini olarak 01değiştirin minorVersion ve dosyayı kaydedin.

    minorVersion: '1'
    

    Burada, değişikliği net hale getirmek için sürümü 1.0.0'dan 1.1.0'a çıkaracağız. Pratikte, üzerinde çalıştığınız paket türü için sürüm oluşturma düzenini izlersiniz.

    Örneğin AnlamSal Sürüm Oluşturma'ya göre ikincil sürümü 1 'e (1.1.0) çarpmak, paketin bu paketin 1.0.0 sürümünü kullanan uygulamalarla geriye dönük olarak uyumlu olduğunu başkalarına bildirir. Paketi kullananlar daha sonra uygulamalarını yeni özelliklerden yararlanacak şekilde değiştirebilir.

    Popüler açık kaynak projeleri, her sürümde yapılan değişiklikleri ve bir ana sürümden diğerine nasıl geçirildiğini açıklayan bir değişiklik günlüğü biçiminde belgeler sağlar.

  2. Değişikliklerinizi hazırlama, işleme ve gönderme:

    git add .
    git commit -m "Add GameStyle property"
    git push origin add-game-style
    
  3. Microsoft Azure Pipelines'da Tailspin.SpaceGame.Web.Models projesine gidin ve derlemenin çalışmasını izleyin.

  4. Yapıtlar sekmesini açıp yeni sürümü not edin. Merak etme; eski sürümünüz hala başvuruda olan tüm projeler için oradadır.

    A screenshot of the package in Azure Artifacts, showing version 1.1 of the package.

  5. Daha önce yaptığınız gibi, sonraki ünite için yeni sürümü not edin.

Models paketinin yeni sürümüne başvurma

Şimdi Tailspin.SpaceGame.Web projesini Tailspin.SpaceGame.Web.Models paketinin yeni sürümünü kullanacak şekilde değiştirin.

Burada, Space Game web uygulaması projesi Tailspin.SpaceGame.Web için Visual Studio Code kopyasından çalışacaksınız.

  1. Visual Studio Code'da Tailspin.SpaceGame.Web.csproj dosyasını açın ve Azure Artifacts'te oluşturduğunuz Tailspin.SpaceGame.Web.Models paketinin sürüm numarasına geçinPackageReference. Ardından dosyayı kaydedin.

    Bir örnek aşağıda verilmiştir:

    <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.1.0-CI-20210528-202436" />
    

    Visual Studio Code sizden paketleri geri yüklemenizi isterse, güvenle bu iletiyi yoksayabilirsiniz. Kısa olması açısından web uygulamasını yerel olarak derlemeyeceğiz.

  2. Terminalde değişiklikleri hazırlayın, işleyin ve gönderin.

    git add .
    git commit -m "Bump Models package to 1.1.0"
    git push origin models-package
    
  3. Azure Pipelines'dan mslearn-tailspin-spacegame-web projesine gidin ve derlemenin çalışmasını izleyin.

    Derleme çıkışında en son bağımlılığı aldığını, uygulamayı derlediğini ve web uygulaması için yapıtı yayımladığını görürsünüz.