Wracam do C#, kilka miesięcy przerwy i człowiek zatęsknił za jednym (w mojej ocenie) z najlepszych języków programowania. Tym razem jednak, coś nowego, odświeżonego i jeszcze nieokiełznanego – mowa o .NET Core, a dokładniej ASP.NET Core.
Procedura zaczęła się standardowo, przetrząsanie internetu, tutoriale, youtube. Najpierw podejście z yeomanem (taki typek od scaffoldingu) – ile magii tam się dzieje, ciężko stwierdzić
.
Przy próbie uruchomienia komend dotnet build i dotnet run dostawałem informację:
Can not find runtime target for framework 'DNXCore,Version=v5.0' compatible with one of the target runtimes: 'ubuntu.16.04-x64'. Possible causes: 1. The project has not been restored or restore failed - run `dotnet restore` 2. The project does not list one of 'ubuntu.16.04-x64' in the 'runtimes' section. 3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries.
w skrócie – miało być szybko i przyjemnie, ale nie wyszło. Mój poziom irytacji lekko się podniósł, ale walczymy dalej.
Po zainstalowaniu .Net Core na ubuntu pojawiła się komenda dotnet. Na internetach piszą, że metoda z yeomenem, za bardzo nie działa w najnowszej wersji więc powinniśmy użyć:
dotnet new web
w teorii, tak dokładniej powinno to wyglądać tak:
dotnet new -t web
po wykonaniu sekwencji:
dotnet restore dotnet build dotnet run
na porcie http://localhost:5000 wreszcie pojawia się długo wyczekiwana strona!
łaał, strona stoi, tyle wygrać, w sumie fajrant 😉 Tylko teraz jak się w tym wszystkim odnaleźć. Jednym z największych problemów z gotowymi generatorami jest to, że tworzą mnóstwo plików i konfiguracji, której tak na prawde się nie rozumie. Kiedyś najbardziej zależałoby mi na jak najszybszym developmencie, dziś wiem, że szczególnie w przypadku nowej technologii najważniejsze to zrozumienie podstaw. Komenda wygenerowała prawie 2 MB danych – jak się w tym wszystkim odnaleźć szczególnie na początku? Nie powiem trochę ciężko, szczególnie, że to mix C# i technologii webowych.
Pora na zrobienie kroku wstecz, żeby można było iść naprzód! Na stronie https://www.asp.net/get-started można wreszcie znaleźć standardowego HelloWorld-a. I jeśli myślisz drogi czytelniku, że wszystko będzie działać od strzała to… niestety nie w świecie .NET Core (mam nadzieję, że na razie).
The specified framework 'Microsoft.NETCore.App', version '1.0.0' was not found. - Check application dependencies and target a framework version installed at: /usr/share/dotnet/shared/Microsoft.NETCore.App - The following versions are installed: 1.1.0 - Alternatively, install the framework version '1.0.0'.
O ironio, zainstalowałem nowsza wersję niż w pliku konfiguracyjnym, co wskazuje na to, że z kompatybilnością wstecz jest raczej kiepsko.
Na szczęście rozwiązanie jest dosyć proste w pliku project.json należy zmienić wersję sekcji Microsoft.NETCore.App z 1.0.0 na 1.1.0, przebudować i uruchomić. Eureka!
Reasumując – dawno nie cieszyłem się tak bardzo ze zwykłego HelloWorlda… Mam nadzieję, że teraz będzie z górki.