Soneta Platform Developer jest to rozszerzenie dostępne w postaci paczki NuGet dla dotnet new (komatybilne z Visual Studio 2022) zawierające zestaw szablonów dotnet new, które implementują elementy Soneta.MsBuild.SDK.
Soneta Platform Developer promuje rozdzielanie logiczne tworzonych solucji rozszerzeń zgodnie z architekturą enova365, poprzez podział rozwiązania na osobne projekty warstwy logiki biznesowej, warstwy interfejsu użytkownika oraz warstwy testującej. Realizacja takiego uporządkowania polega na automatycznym utworzeniu przez SDK trzech projektów według typów, które odpowiadają wyżej wspomnianemu podziałowi. W celu zachowania pełnej elastyczności i swobody w projektowaniu twórca rozszerzenia enova365 ma możliwość utworzenia solucji z każdym z typów projektów.
Dodatek Soneta Platform Developer może zostać zainstalowany za pomocą konsoli używając polecenia:
dotnet new install Soneta.Platform.Developer
Listę zainstalowanych dodatków możemy podejrzeć za pomocą polecenia:
dotnet new list
Tworzenie nowego dodatku w Visual Studio jest bardzo proste i sprowadza się jedynie do wybrania odpowiedniego szablonu solucji Soneta Addon (Soneta). Domyślnie tworzona solucja zawiera oprócz projektu głównego logiki biznesowej także projekt dla interfejsu użytkownika oraz projekt dla testów.
Uwaga!
W celu poprawnego utworzenia zestawu projektów w oknie konfiguracji nowego projektu należy zaznaczyć opcję 'Place solution and project in the same directory'.
Podczas kreatora solucji możemy parametrami powyłączać generowanie dodatkowych projektów:

W celu wykorzystania Visual Studio Code na początku należy zainstalować wtyczkę „C# for Visual Studio Code” oraz dodatek Soneta Platform Developer. Następnie za pomocą konsoli utworzyć nową solucje dla dodatku wybierając szablon soneta-addon.
W kolejnym kroku do solucji należy dodać wszystkie utworzone projekty oraz stworzyć domyślne taski do kompilacji i debugowania. Cały proces został opisany szczegółowo poniżej.
Na początku otworzymy Visual Studio Code i przejdziemy do zakładki Extensions( Ctrl+ Shift +x) i instalujemy wtyczkę „C# for Visual Studio Code”.
Następnie otwieramy terminal w Visual Studio Code (View--> Terminal) i instalujemy dodatek Soneta Platform Developer. Jest do dodatek , który zawiera nowe szablony. W celu instalacji dodatku wywołujemy w konsoli komendę: „dotnet new -i Soneta.Platform.Developer”.
Za pomocą plecenia „dotnet new list” możemy podejrzeć listę wszystkich zainstalowanych szablonów.
Następnie dodajemy do naszego obszaru roboczego folder w którym umieszczony będzie nasz dodatek (File-> Add Folder To Workspace…). Mój folder będzie nazywał się „MyExtension”.
W kolejnym kroku za pomocą terminala należy utworzyć solucje dodatku za pomocą szablonu soneta-addon.
Szablon ma dostępne parametry sterujące tworzonymi projektami. Szczegóły można wyświetlić za pomocą:
dotnet new soneta-addon -h
Zrobimy to za pomocą pomiższego polecenia z domyślnymi ustawieniami. Zostanie utworzona solucja i wszystkie projekty zgodnie z nazwą nadrzędnego folderu oraz zostana dodane niezbędne pliki.
dotnet new soneta-addon
W celu automatycznego utworzenia nowego katalogu, w którym umieszczona zostanie solucja i projekty zgodne z podaną nazwą, należy skorzystać z parametru -n, oczywiście możemy użyć pozostałe parametry:
dotnet new soneta-addon -n Tools -nui
Uwaga!
W celu poprawnego utworzenia nazw projektów i elementów, nazwa folderu, bądź wprowadzona parametrem nazwa, powinna spelniać ograniczenia nazewnictwa klas w c#.
Będąc w VSC wciskamy F1 i wybieramy:
„Tasks: Configure Default Build Task” --> „Create tasks.json file fromtemplate” --> .NET Core
W wyniku naszych działań powstanie plik „tasks.json”.

Teraz możemy zbudować nasze rozwiązanie uruchamiając task „tasks.json” . Robimy to w podobny sposób jak utowrzyliśmy task, a mianowicie wciskamy F1--> Tasks:Run BuildTask--> Build. Po wykonaniu tej operacji do naszego rozwiązania zostanie dodany folder „bin” .
Następnie do folderu .vscode dodamy plik launch.json i wklejamy do niego:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type":"clr",
"request": "launch",
"preLaunchTask": "build",
"program": "C:/Program Files (x86)/Soneta/enova365 15.4.7010.15330/SonetaExplorer.exe",
"args":[],
"windows": {
"args": ["/extpath=${workspaceFolder}/bin/Debug/net46"]},
"console": "internalConsole",
"stopAtEntry": false,
"internalConsoleOptions": "openOnSessionStart"
}
]
}
W pliku launch.json należy ustawić ścieżkę enova365, którą chcemy wykorzystywać do debugowania. Do debugowanie można użyć nie tylko Soneta Explorer, ale również SonetaServer lub inne produkty, które się pojawią. Aby uruchomić debugowanie naciskamy F5.
Visual Studio nie wymaga dodatkowej konfiguracji, natomiast Visual Studio Code nie obsługuje domyślnie podpowiedzi w plikach xml w oparciu o xsd. Dlatego należy doinstalować rozszerzenie Xml Complete. Działa on w oparciu o schemy udostępnione na naszej stronie internetowej. Nowo dodane pliki xml posiadają odpowiednie atrybuty, istniejące już w dodatku pliki należy uzupełnić o atrybuty xmlns:xsi, xmlns:xsd praz xsi:schemaLocation tak jak na poniższym przykładzie.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.enova.pl/schema/form.xsd"
xsi:schemaLocation="http://www.enova.pl/schema/ http://www.enova.pl/schema/form.xsd"
Wraz z instalacją SonetaPlatformDeveloper można wykorzystać polecenie dotnet new aby wygenerować gotowe wzorcowe elementy rozszeżające system enova365. Nowe elementy korzystają z informacji msbuild, dlatego przed dodawaniem nowych item z domyślnymi wartościami wymaga zbudowania solucji przynajmniej raz.
Dostępne elementy klasyfikowane są jako Item i dodajemy je z poziomu konsoli, będąc w folderze konkretnego projektu:

dotnet new soneta-item-businessxml -h
Szablon pozwala utworzyć nowy moduł poprzez definicje pliku business.xml, w którym można definiować własne tabele nowego modułu. Możemy wprowadzić własną nazwę modułu, w przypadku braku podania nazwy modułu zostanie wykorzystana nazwa projektu:
dotnet new soneta-item-dashboard -h
Szablon pozwala utworzyć klasę extendera dla dashboard oraz opis wyglądu za pomocą pliku .xml. Możemy wprowadzić własną nazwę ekstendera, w przypadku braku podania nazwy zostanie wykorzystana nazwa projektu:
dotnet new soneta-item-pageform -h
Szablon pozwala utworzyć klasę, która jest rejestrowana jako worker i przygotować plik xml z opisem wyglądu zakładki powiązanej z tworzoną klasą. Możemy wprowadzić własną nazwę klasy, w przypadku braku podania nazwy zostanie wykorzystana nazwa projektu:
dotnet new soneta-item-viewinfo -h
Szablon pozwala utworzyć własną klasę widoku służącą do prezentacji danych na listach. Także następuje rejestracja widoku w aplikacji. Możemy wprowadzić własną nazwę klasy widoku, w przypadku braku podania nazwy zostanie wykorzystana nazwa projektu:
dotnet new soneta-item-viewinfo -h
Szablon pozwala utworzyć własną klasę widoku służącą do prezentacji danych na listach. Także następuje rejestracja widoku w aplikacji. Możemy wprowadzić własną nazwę klasy widoku, w przypadku braku podania nazwy zostanie wykorzystana nazwa projektu:
dotnet new soneta-item-worker -h
Szablon pozwala utworzyć własną klasę workera ze zdefiniowną czynnością i parametrami wyposażonymi w formularz. Możemy wprowadzić własną nazwę klasy workera, w przypadku braku podania nazwy zostanie wykorzystana nazwa projektu:
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.
Dokument instrukcja wydania szczegółowo opisuje potrzebne czynności zmierzające do wydania nowej wersji.








