W ostatnim tygodniu osiągnąłem kilka kluczowych celów:
1. Stworzenie serwisu internetowego w ASP.NET Core
2. Stworzenie testów jednostkowych dla serwisu
3. Wdrożenie aplikacji na serwerze produkcyjnym (C# działa oczywiście na Linuxie)
4. Stworzenie definicji builda na serwerze Visual Studio Team Services
5. Zdobyłem praktykę w łączeniu projektów ASP.NET 4.5 i .NET Core
6. Utworzenie na serwerze Apache reverse proxy do serwera Kestrel
A teraz najciekawsze: zobaczmy kod.
Kontroler naszego serwisu w ASP.NET Core prezentuje się następująco:
Repozytorium, które wstrzykujemy do kontrolera i wykorzystujemy w testach odwołuje się do kolekcji przechowywanej w pamięci serwera.
Jest to świetny sposób do wykorzystania w testach - zamiast łączyć się z bazą trzymamy wszystkie dane w pamięci fizycznej. Technikę tę wykorzystać można również do cache'owania danych, ale o tym kiedy indziej. Oto kod repozytorium:
Zauważmy, że repozytorium powinno korzystać ze statycznych właściwości, abyśmy mogli przechowywać pewien stan danych między różnymi żądaniami pochodzącymi od jednego bądź wielu użytkowników. Dzięki temu, że korzystamy z wbudowanego w ASP.NET Core kontenera możemy uzyskać zachowanie podobne do klas, czy właściwości statycznych za pomocą jednej linii kodu. Bardzo wygodne rozwiązanie(jeśli nie korzystałeś z kontenerów to niektóre z nich, które powinieneś poznać: Ninject, Autofac). Oto kod klasy Startup:
I oczywiście na koniec test(chociaż ja stosuję podejście TDD i napisałem go zanim powstał działający kod kontrolera), bez którego aplikacja nie byłaby kompletna.
Zawsze jeśli jest to możliwe, testuje swój kod za pomocą testów jednostkowych i integracyjnych(czasami również funkcjonalnych).
Plan na najbliższy czas jest taki aby w projekcie Xamarin stworzyć i przetestować automatycznie klasę klienta, która połączy się z usługą.
1. Stworzenie serwisu internetowego w ASP.NET Core
2. Stworzenie testów jednostkowych dla serwisu
3. Wdrożenie aplikacji na serwerze produkcyjnym (C# działa oczywiście na Linuxie)
4. Stworzenie definicji builda na serwerze Visual Studio Team Services
5. Zdobyłem praktykę w łączeniu projektów ASP.NET 4.5 i .NET Core
6. Utworzenie na serwerze Apache reverse proxy do serwera Kestrel
A teraz najciekawsze: zobaczmy kod.
Kontroler naszego serwisu w ASP.NET Core prezentuje się następująco:
Repozytorium, które wstrzykujemy do kontrolera i wykorzystujemy w testach odwołuje się do kolekcji przechowywanej w pamięci serwera.
Jest to świetny sposób do wykorzystania w testach - zamiast łączyć się z bazą trzymamy wszystkie dane w pamięci fizycznej. Technikę tę wykorzystać można również do cache'owania danych, ale o tym kiedy indziej. Oto kod repozytorium:
Zauważmy, że repozytorium powinno korzystać ze statycznych właściwości, abyśmy mogli przechowywać pewien stan danych między różnymi żądaniami pochodzącymi od jednego bądź wielu użytkowników. Dzięki temu, że korzystamy z wbudowanego w ASP.NET Core kontenera możemy uzyskać zachowanie podobne do klas, czy właściwości statycznych za pomocą jednej linii kodu. Bardzo wygodne rozwiązanie(jeśli nie korzystałeś z kontenerów to niektóre z nich, które powinieneś poznać: Ninject, Autofac). Oto kod klasy Startup:
I oczywiście na koniec test(chociaż ja stosuję podejście TDD i napisałem go zanim powstał działający kod kontrolera), bez którego aplikacja nie byłaby kompletna.
Zawsze jeśli jest to możliwe, testuje swój kod za pomocą testów jednostkowych i integracyjnych(czasami również funkcjonalnych).
Plan na najbliższy czas jest taki aby w projekcie Xamarin stworzyć i przetestować automatycznie klasę klienta, która połączy się z usługą.
Komentarze
Prześlij komentarz