Skip to content

Mikrobank – prawdziwa baza danych

Budując Microbank chcę najpierw zbudować MVP, a potem stopniowo dodawać funkcjonalności.

W poprzednim wpisie skończyłem na działającej aplikacji, uruchomionej na AppHarbor. Dla ułatwienia używała ona bazy danych w pamięci, jakiej zwykle używa się w projektach testowych.

Następnym krokiem jest podłączenie prawdziwej bazy danych.

 

Punktem wyjścia jest ten oto kod w Startup.cs, który uzywa InMemoryDatabase.

Wybór bazy

Ale jakiej bazy powinienem użyć? Sprawdźmy najpierw, na co pozwala AppHarbor, za darmo.

https://appharbor.com/addons

  1. ElephantSQL – PostgreSQL as a Service
  2. mLab MongoDB – MongoDB-as-a-Service
  3. MySQL – Shared MySQL Database
  4. SQL Server – Shared Microsoft SQL Server as a service

Kolejne kryterium to – z czym może współpracować Entity Framework Core? Zaglądamy na listę providerów, skąd dowiadujemy się, że:

  • MS SQL Server (naturalnie),
  • MySql (zgodnie z oczekiwaniami) i
  • PostgreSQL  są wspierane.

Cóż, właściwie samo przechowywanie danych nie jest dla mnie w tym projekcie szczególnie interesujące. Celem projektu jest poznanie .net Core i pobawienie się nowymi zabawkami od Microsoftu. Więc PostgreSQL odpada, Mongo też, i na placu boju pozostaje w zasadzie tylko SQL Server i – jako backup – MySql, gdyby okazało się że nie mogę mieć SQL Servera za darmo.

2017 Express Edition

Ale na szczęście okazuje się, że można mieć za darmo i to sporo. Instaluję więc 2017 Express Edition z SQL Server Management Studio 17.4

Wsparcie dla SqlServers zainstalowałem z linii komend:

Zaraz potem dodałem connection stringa do konfiguracji i odpaliłem apkę. Na razie connection string jest zahardkodowany, dla ułatwienia. Ostatecznie skończy w appconfig.json

Niestety, to skończyło się błędem:

Początkowo założyłem, że to z moim connection stringiem coś jest nie tak, ale potem doszedłem do wniosku, że chyba jeszcze nie wszystko ustawiłem w samym Entity Framework.

Ale o tym w następnym poście…

Published inMikrobankUncategorized

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *