VS_NewTable_1
Programmer's notes

Simple.Data.SqlServer na hostingu Webio

2 119

W poprzednim poście opisałem wrzucenie projektu WebApi na hosting Webio. Samo API było bardzo proste i zwracało jedynie zahardkodowane wartości przykładowych zdarzeń. Dzisiaj opiszę kolejne ćwiczenie z hostingiem Webio. Dodałem serwer bazy danych MS SQL Server 2012 oraz zmodyfikowałem API, aby zdarzenia pobierały i zapisywały się dynamicznie do bazy danych. Proces ten przebiegł równie sprawnie jak poprzedni.

1. Nowa baza danych w Webio

Aby dodać nowy serwer bazy danych przeszedłem do: “Bazy danych” > “SQL Server 2012″. Tam wybrałem “Utwórz bazę danych”, po czym wpisałem jej nazwę. Po kliknięciu na “Zapisz” została ona stworzona. W polu “Zewnętrzny serwer” znajduje się informacja na jaki adres należy się połączyć, aby korzystać z bazy w aplikacji. Należało jeszcze dodać użytkownika. Czyli podobnie: “Bazy danych” > “SQL Server 2012″ > “Utwórz użytkownika”. Wpisałem jego nazwę i hasło oraz wybrałem domyślną bazę danych stworzoną wcześniej. W ten sposób stworzyłem bazę danych dla moich aplikacji.

2. Nowa tabela w bazie z Visual Studio

Następnie stworzyłem prostą tabelkę do przechowywania zdarzeń. W Visual Studio w “Tools” > “Connect to Database” skonfigurowałem połączenie zgodnie z danymi ustawionymi w panelu Webio i dodałem połączenie do moich Data Connections. Potem prawym na “Tables” i “Add New Table”. Na poniższym obrazku widać jak prostą tabelkę stworzyłem. Zawiera ona tylko “Id” i “Name”. Po kliknięciu na “Update” została utworzona na serwerze w hostingu Webio.

VS_NewTable_1

3. Uaktualnienie WebApi

Postanowiłem w projekcie użyć mikro ORMa Simple.Data. Operuje on na dynamicach i oferuje dużo szybsze wykonywanie zapytań do bazy niż np. Entity Framework. Myślę że do tak prostego zastosowania jak mój projekt nadaje się idealnie. Jest dostępny jako paczka nugetowa: Simple.Data.SqlServer (z zależnościami). Zmieniłem też kod serwisu, aby korzystał z właśnie stworzonej bazy danych.

Na koniec poprawiłem kontroler, aby był bardziej RESTful friendly.

 4. ConnectionString w web.config

Jako, że projekt “Smart Lodówka” jest open sourcowy cały kod dostępny jest na GitHubie. Ale nie chcę tam wrzucać loginów i haseł, w tym przypadku do mojej prywatnej bazy danych. Zrobiłem więc nowy plik o nazwie “connectionStrings.config”, który zawiera tylko sekcję z danymi połączeń:

A w samym web.configu podałem go w “configSource”.

Plik “connectionStrings.config” mogłem dodać do ignorowanych przez Git, dzięki temu nie znajdzie się on w publicznym repozytorium.

Do testowania WebApi używam dodatku do Chroma: Advanced REST client. Jest bardzo wygodny i polecam go każdemu. Zapewne napiszę o nim więcej w oddzielnym poście bo ma sporo ciekawych funkcji.

C.

2 Comments

  1. Dawid K 2016-04-02 at 21:32 -  Reply

    “Operuje on na dynamicach i oferuje dużo szybsze wykonywanie zapytań do bazy niż np. Entity Framework.” – testowałeś jakoś szybkość tych zapytań? Bo trochę wątpię w szybsze generowanie zapytań przy użyciu czegoś tak wolnego jak dynamic. Za to na pewno w SimpleData można szybciej napisać kod.

    • creyn 2016-04-04 at 19:55 -  Reply

      Cześć, dzięki za komentarz. Słuszna uwaga. Trochę niedokładnie się wyraziłem. Miałem na myśli to, że EF jest dużą biblioteką z wieloma funkcjami, bez których będę mógł się obejść w tak prostym projekcie. A rozgrzanie EF potrafi zająć i z 10s chociaż potem zapytania są już w milisekundach. SimpleData ma dynamici, ale subiektywne odczucie jest lepsze niż EF. Chociaż tak jak piszę, wrażenie jest czysto subiektywne. Pomyślę o zrobieniu jakiegoś benchmarka :)

Leave a Reply

DEV

Around Dev

My way of seeing

%d bloggers like this: