Skip to content

Jakub Kaleta Posts

Mikrobank – Tożsamość

Ponieważ elektroniczny bank bez użytkowników to śmieszna koncepcja, następnym krokiem będzie dodanie tożsamości do aplikacji. Jak zawsze, zacznijmy od lektury dokumentacji. No niby świetnie, bo można wszystko wyklikać. Ale jest jeden problem – używam VS Code, w którym nie ma wizardów do tworzenia projektów. Jest tylko command line. Strona coprawda podaje co zrobić w takim wypadku, ale tylko przy tworzeniu projektu, nie przy edycji istniejącego: “If using the .NET Core CLI, create the new project using dotnet new mvc –auth Individual. This command creates a new project with the same Identity template code Visual Studio creates.” Googlowanie niewiele dało, wygląda na to że trzeba będzie zrobić to ręcznie. Same wpisy konfiguracyjne to jedno, a drugie to widoki, modele i kontrollery, których dodawanie ręcznie byłoby żmudne i narażone na błędy. Stworzę więc nowy projekt, jak w tutorialu, a potem skopiuję z niego co trzeba do Mikrobanku. dotnet new razor –auth Individual Do…

Leave a Comment

Mikrobank – struktura projektów

W tej chwili mam już działający proof of concept – z bazą i kilkoma kontrolerami. Zanim dodam nowe modele, warto ustrukturyzować trochę kod i zrobić bibliotekę na kody związane z bazą danych. Zmiany znajdują się w tym commicie. Do tej pory microbank był to project .net core mvc. Wszystko było w jednym folderze, włączając w to Data, Pages etc. Bardzo trudno się w tym połapać, a ja lubię porządek. Po pierwsze, dodałem nowy projekt do microbank.sln – nazwałem go “Data”

Następnie, żeby przenieść aplikację asp.net do osobnego projektu, wykonałem następujące komendy:

Kolejnym krokiem było przeniesienie do nowego folderu (WebApp) wszystkich folderów i plików, które należą do apki: Pages wwwroot appsettings.* bundleconfig.json Program.cs and Startup.cs. Wreszcie naprawiłem namespace’y we wszystkich plikach, do skutku – żeby się zaczęło kompilować. Potem wystarczyło tylko dodać do WebApp.csproj referencję do nowego projektu Data.csproj

I bingo. Aplikacja się uruchomiła. Również na AppHarbor 🙂

Leave a Comment

Mikrobank – prawdziwa baza danych, część 2 – konfiguracja Entity Framework

Setup lokalny Migracje w .Net core EF dodaje się z command line’a. Ale żeby móc to zrobić, wpierw potrzebujemy zainstalować narzędzia do tworzenia migracji i baz EF. Jak to zrobić opisano tutaj: Ważne, żeby nie zapomnieć RĘCZNIE wkleić do project file poniższej referencji: https://stackoverflow.com/a/47079152/148158 Następnie:

I to pozwala już mi na stworzenie pierwszej migracji:

Resultat: Jest baza! Mogę od teraz dodawać konta testowe, które są w stanie przetrwać restart aplikacji. Albo innymi słowy – mam już CR_D z CRUD 🙂 Setup na AppHarbor O ile lokalnie poszło gładko, to z AppHarbor musiałem się trochę namęczyć. Najpierw zainstalowałem SQL Server AddOn A potem już tylko próbowałem zrozumieć co jest napisane w artykule o używaniu Sequelizera Zmarnowałem naprawdę dużo czasu, bo uwierzyłem że AppHarbor podmieni automatycznie mój connection string zdefinowany w appsettings.json, jeżeli tylko nadam mu odpowiedni klucz. Tę samą nazwę wystarczyłoby tylko ustawić jako ‘connection string alias’ w konfiguracji…

Leave a Comment

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 ElephantSQL – PostgreSQL as a Service mLab MongoDB – MongoDB-as-a-Service MySQL – Shared MySQL Database 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ę…

Leave a Comment

Microbank – pierwszy deployment na AppHarbor

Deployment Tutaj nie było dużego wyboru. Nie mogłem znaleźć żadnego serwisu który oferowałby hostowanie asp.net core v2 za darmo, oprócz AppHarbor. Bardzo łatwo poszło skonfigurowanie aplikacji, bez problemu dodałem remote’a AppHarbor i zrobiłem pierwszego pusha. Jednak potem zaczęły się schody. Problem #1 – kod się nie buduje: Czyli nie ma pliku solution. Standardowo .net core nie dodaje solution. Trzeba to zrobić ręcznie.

To pomogło, ale tylko na chwilę: Problem #2 – Buduje się, ale się nie deployuje. To zajęło mi trochę więcej czasu. Czy nie działa dlatego że AppHarbor tak naprawdę nie wspiera najnowszego .net core? A może źle wykonałem komendę dodawania solution? Google podpowiedział, że jest sposób żeby ‘ręcznie’ wrzucić zbudowaną aplikację na AppHarbor. install appharbor-cli 1.1. go to project.

To zadziałało, i moja aplikacja zaczęła działać na AppHarbor. Sukces! Ale tak nie można żyć – przecież nie będę za każdym razem ręcznie deployował aplikacji. Pogrzebałem jeszcze trochę…

Leave a Comment

Microbank – Setup środowiska i pierwsza funkcjonalność

W poprzednim wpisie pisałem o moim pomyśle na zbudowanie mikrostronki symulującej zachowanie banku. Teraz chciałem opisać jak wygląda mój setup na początku pracy z aplikacją. Środowisko 1. Najpierw sciągnąłem i zainstalowałem .Net Core V2 z https://www.microsoft.com/net/learn/get-started/windows 2. Potem zainstalowałem Visual Studio Code Visual Studio Code – bo nie chciałem instalować Community Edition. Visual Studio znam dobrze, a chciałem też spróbować popracować z VSCode trochę bardziej na serio niż tylko czasami do otwierania randomowych plików (bo jest szybkie) https://code.visualstudio.com/ Żeby było jeszcze milej, skorzystałem z porady poniższego posta: https://blog.uship.com/shippingcode/visual-studioresharper-level-productivity-in-vscode/ 3. Apka terminalowa Od dawna używam http://cmder.net/. Jest niesamowicie konfigurowanly i ma wszystko czego potrzebuję. Hello World Postawienie strony w mvc jest banalne: https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/index?tabs=visual-studio

Strona wstaje na porcie 5000 (http://localhost:5000/) Pierwsza funkcjonalność Jako pierwszą funkcjonalność dodałem możliwość dodawania nowego klienta.  Ponieważ nie chciałem zajmować się więcej niż jednym problemem na raz, użyłem bazy danych w pamięci:

Jak to zrobić dowiedziałem się…

Leave a Comment

Microbank – ASP.NET Core v2

Od dawna w mojej głowie krąży pomysł zrobienia mikro – stronki symulującej działanie banku, z w pełni konfigurowalnymi parametrami dotyczącymi oprocentowania, prowizji, kapitalizacji odsetek etc. Taki mikro-bank byłby fajną zabawką do symulowania różnych życiowych scenariuszy, ale też mógłbym go wykorzystać, żeby nauczyć moje dzieciaki jak działają banki – na przykład że warto oszczędzać zamiast wydawać od razu całe kieszonkowe. No i przede wszystkim, dałoby mi to motywację żeby nauczyć się czegoś nowego. No bo przecież jeżeli chodziłoby tylko o symulowanie procentów składanych, to na necie jest już milion kalkulatorów, a i Excel radzi sobie z tym świetnie. No więc chodzi o zabawę kodem. Ale jakim? Jest co najmniej kilka technologii które gdzieś tam przewinęły się w mojej pracy zawodowej, ale nigdy nie miałem możliwości żeby się w nie wgryźć dogłębnie – od początku do końca, sam. Bo czymś innym jest napisać kawałek kontrolera w Ruby, w istniejącej aplikacji, a czymś…

Leave a Comment