Skip to content

Sdk stworzone przez firmę Soneta pozwalające automatycznie skonfigurować oraz uzupełnić projekty dodatków o niezbędne elementy potrzebne do współpracy z oprogramowaniem enova.

License

Notifications You must be signed in to change notification settings

danielignacak/Soneta.MsBuild.SDK

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Soneta.MsBuild.SDK

NuGet NuGet Build Status

Wstęp

SDK (Software Development Kit) jest to zestaw narzędzi dla programistów niezbędnych w tworzeniu aplikacji z danej biblioteki. Soneta.MsBuild.SDK jest zestawem narzędzi niezbędnym do tworzenie dodatków dla sytemu enova365. Pozwala automatycznie skonfigurować projekt oraz uzupełniać projekty dodatku o niezbędne elementy potrzebne do wsprółpracy z oprogramowaniem enova365. Do elementów konfiguracyjnych Soneta SDK zaliczamy następujące pliki wraz z ich przeznaczeniem:

  • Common.item.props -plik zapewnia automatyczną obsługę dołączania nowych plików do projektu. Między innymi pliki *.pageform.xml, *dbinit.xml zostaną automatycznie skonfigurowane jako EmbeddResource.
  • Sdk.props -plik zapewnia poprawne utworzenie referencji dla różnych typów projektów np. Dla projektu testowego zostaną załadowane biblioteki testowe.
  • Skd.targets -plik przechowuje informacje dotyczące procesu budowanie m.in. automatycznego uruchamiania generatora tworzenia definicji baz danych (*.business.cs). Podsumowując prostymi słowami, od teraz nie będzie trzeba się zastanawiać, którą wersję generatora powinniśmy podpiąć, ponieważ zostanie to wykonane automatycznie.

Pierwsze kroki

Zdefiniowanie wersji Soneta.sdk.

W celu zaimportowania Soneta.MsBuild.SDK do projektu dodatku w pliku "nazwaprojektu.csproj" edytujemy linię dotyczącą projektu:

   <Project Sdk="Soneta.Sdk/numerWersji">  

Po zapisie zmian zostanie wykonana automatyczna konfiguracja projektu.

W przypadku gdy w solucji znajduje się wiele projektów, by uniknąć konieczności zmian w każdym projekcie numeru wersji, istnieje możliwość stworzenia pliku nadrzędnego "global.json" (poza projektami) o zawartości:

   { 
     "msbuild-sdks": { 
        "Soneta.Sdk": "numerWersji" 
      }
   } 

Dzięki czemu w plikach ".csproj" wymagany będzie tylko wpis bez konieczności umieszczania numeru wersji. Najnowszą opublikowaną wersję dodatku Soneta.MsBuild.SDK znajdziemy tutaj

Zdefiniowanie wersji bibliotek

Powinniśmy także utworzyć plik "Directory.Build.props" o zawartości:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <PropertyGroup>
   <SonetaPackageVersion>1905.0.1</SonetaPackageVersion>
   <SonetaTargetFramework>net46</SonetaTargetFramework>
 </PropertyGroup>
</Project>

Plik „Directory.Build.props” zawiera informację o wersji bibliotek pobieranych przez Soneta.SDK. Dzięki temu nie musimy już manualnie dodawać referencji do bibliotek Sonety tylko globalnie definiujemy wersję bibliotek z której ma korzystać dodatek. Należy tutaj wspomnieć, że dzięki takiemu rozwiązaniu możemy łatwo zmienić wersję bibliotek, którą chcemy wykorzystać w naszym dodatku. Wersję bibliotek Sonety definiujemy za pomocą parametru "SonetaPackageVersion", który wskazuje na wersję paczki Soneta.Product.Modules . W pliku „Directory.Build.props” mamy także możliwość zdefiniowania własnych zmiennych, które mogą być później używane w naszych projektach.
Kolejnym ważnym elementem znajdującym się w pliku „Directory.Build.props jest wersja .NET, którą używamy w naszej solucji. Dzięki temu każdy plik ".csproj" może odwołać się do parametru SonetaTargetFramework zdefiniowanego w jednym miejscu. Poniżej przedstawiono zawartość pliku "*.csproj" wykorzystujący Soneta.MsBuild.SDK.

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Soneta.Sdk">
  <PropertyGroup>
    <TargetFramework>$(SonetaTargetFramework)</TargetFramework>
  </PropertyGroup>
</Project>

Informacje Ogólne

Soneta.sdk obsługuje 3 typy projektów, które można stworzyć. W zależności od rodzaju projektu pobierane są inne biblioteki. Możemy stworzyć takie projekty jak:

  • Projekt testowy, który w swojej nazwie będzie zawierał słowo "**Tests**"
  • Projekt interfejsu użytkownika kończacy się na wyrażeniu "***.UI**"
  • Projekt dodatku zawierający elementy logiki biznesowej

Istnieje możliwość stworzenia projektu testowego, który nie podąża za wyżej opisaną konwencją. Można to zrobić poprzez ustawienie w pliku .csproj flagi <IsTestProject>true</IsTestProject>.
Możemy także wykorzystać takie parametry jak:

  • AggregateOutput - przyjmuje true/false, domyślnie true. Kiedy jest ustawiony na true, to wszystkie projekty budują się do folderu bin, który będzie o poziom wyżej niż sam projekt. Dzięki temu prawie wszystkie projekty (z wyjątkiem testów) w solucji mogą budować się do zbiorczego folderu bin. Jeśli parametr jest ustawiony na false to folder bin będzie znajdował się FolderProjektu/bin/, a jeśli na false to FolderSolucji/bin/.
  • EnableDefaultSonetaPackageReferences – przyjmuje true/false, domyślnie true. Jeżeli parametr będzie ustawiony na false to Soneta.MsBuild.SDK nie będzie automatycznie dołączać referencji do bibliotek biznesowych.
  • UsingSonetaSdk- przyjmuje true/false, domyślnie true. Pozwala zdecydować czy dany projekt korzysta z Soneta.MsBuild.SDK
  • SonetaValueTuplePackageVersion, SonetaNUnitPackageVersion, SonetaNUnitTestAdapterPackageVersion- parametry opisujące wersję pakietów

Wraz z bibliotekami jest pobierana odpowiednia wersja generatora. Zadaniem generatora jest przekonwertowanie plików „.xml” na pliki „.cs”. Konwersja wykonywana jest podczas budowania dodatku.

Współpraca

W celu zaproponowania zmian należy stworzyć Pull Request do gałęzi develop. Po podjęciu decyzji o wydaniu nowej wersji branch develop zostanie zmergowany do mastera i dodatek zostanie automatycznie wydany.

  1. Po poprawnym zbudowaniu Sdk ustawiamy się w konsoli na ścieżce \bin\Release
  2. Wykonujemy push do naszego lokalnego folderu z paczkami:
dotnet nuget push nazwaPaczki.nupkg -s C:\Users....nuget\packages
  1. Dzięki powyższym czynnościom nasze SDK będzie widoczne dla naszych nowo utworzonych projektów.

Proces wydawania nowych wersji

Dokument instrukcja wydania szczegółowo opisuje potrzebne czynności zmierzające do wydania nowej wersji.

About

Sdk stworzone przez firmę Soneta pozwalające automatycznie skonfigurować oraz uzupełnić projekty dodatków o niezbędne elementy potrzebne do współpracy z oprogramowaniem enova.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published