Web

.net core (ASP MVC) + MSSQL na Linux-sie

Zadziwiająco szybko i sprawnie odpaliłem .net core (aplikację ASP MVC) oraz serwer MSSQL na UBUNTU. Jeśli chcesz się dowiedzieć jak to zrobiłem to zapraszam do lektury.

O możliwości uruchomienia .net core na systemie Linux wiedziałem od dawna. Kilka tygodni temu kolega z pracy pokazywał takie połączenie. Wyglądało obiecująco i o dziwo wszystko działało. Rzeczony kolega uruchomiła apkę MVC wraz z Entity Framework. Ponieważ aplikację hostował na VPSie z systemem Linux to jako silnika bazy użył MySQL (prawdopodobnie MariaDB).

To całkiem dobre połączenie ale ja z ciekawości chciałem zobaczyć czy uda się zrobić to samo z MSSQL który w fazie „beta” dostępny jest na systemy linuxowe. Połączenie takie pokazano na Microsoftowy Connect 2016.

Zabrałem się do roboty i w nieco ponad godzinę udało mi się postawić apkę oraz podłączyć się do MSSQLa aplikacją SQL Managment Studio.

Oto co doprowadziło mnie do sukcesu:

Posiadałem zainstalowany system Ubuntu (Ubuntu 16.04.1 LTS) na drugim laptopie, więc tę część pominę.

Poszukałem w internetach MSSQL w wersji na linuxa i znalazłem:
https://docs.microsoft.com/pl-pl/sql/linux/sql-server-linux-setup-ubuntu

Wykonałem wszystko co w tej instrukcji. Na końcu po instalacji ustaliłem hasło sa i byłem gotowy do połączenia się z MSSQL Managment Studio…. i o dziwo działa:

Co prawda wprawne oko zauważy, że nie ma tam mowy o Linuxsie… więc tutaj powinniście mi wierzyć na słowo… albo nie! Proszę oto dowód:

Teraz czas na dotnet core. Tutaj też było łatwo. Skorzystałem z google i wszedłem na tę stronę:
https://www.microsoft.com/net/core#linuxubuntu
I tutaj znowu wszystko gładko. Po instalacji nie za bardzo chciało mi się odpalać hello world z tutoriali więc od razu zabrałem się do próby uruchomienia przykładowej aplikacji z EF.

Utworzyłem nowy projekt .net Core MVC w Visual Studio 2015 i pierwszą misją było opublikowanie aplikacji na ubuntu. Skorzystałem z opcji Publish która dostępna jest pod prawym przyciskiem na projekcie:

Aby opublikować pliki w odpowiednim katalogu posłużyłem się usługą Samba na Ubuntu. Sprowadzało się to na kliknięcia prawym przyciskiem na folder i wybraniu opcji Udostępnij która widniała we właściwościach folderu. Bardzo podobnie jak w Windowsie. Kiedy miałem już udostępniony folder to skonfigurowałem właściwą scieżkę w target location. W moim przypadku \\192.168.1.172\www

Dzięki temu mogłem publikować projekt bezpośrednio z VS. Sam proces jest dość szybki bo obejmował później transfer tylko tych plików które się zmieniły.

Teraz czas na uruchomienie aplikacji:

TODO: uruchomienie aplikacji z wiersza poleceń

Tutaj ważne jest z którego miejsca wykonujemy start serwera z aplikacją. Ponieważ w linii 13 ustalamy tzw „content root directory” to aplikację powinniśmy uruchomić w katalogu głównym aplikacji.

Teraz z przeglądarki powinniśmy dostać się na stronę główną aplikacji.

Konfiguracja Samby z wiersza poleceń.

 

I tutaj zabrakło mi sił aby ukończyć post. Sama konfiguracja tego co powyżej trwała ułamek czasu i energii który przeznaczyłem na ten post. Jeśli ktokolwiek doda komentarz do tego posta obiecuję, że go dokończę… To taki nieudolny szantaż

10 przemyśleń nt. „.net core (ASP MVC) + MSSQL na Linux-sie”

  1. Daniel mówi:

    Ciekawy post, podoba mi się że umieszczasz linki do rzeczy z których korzystasz. Jakaś drobna korekta edytorska przed opublikowaniem (bo wkradło się kilka chochlików 😉 ) i będzie bardzo dobrze.

    1. admin mówi:

      Dzięki! Miło słyszeć. Po takim komentarzu nabrałem więcej chęci na pisanie:). Bardzo dziękuję.

  2. Pingback: dotnetomaniak.pl
  3. Lisek89 mówi:

    Dotrzymaj obietnicy 🙂

    1. admin mówi:

      Dotrzymam:) Muszę tylko odnaleźć wirtualkę…

    1. admin mówi:

      Dzięki, że przeczytałeś do końca. Dokończę na dniach…

    1. admin mówi:

      Dzięki, zamierzam dokończyć. Czytałem Twój post z Software Talks. Świetnie piszesz i daleko mi do takiego poziomu.
      Pozdrawiam!

  4. Pokraka mówi:

    a tak dobrze żarło 🙂 Proszę o resztę …

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *