Widok z danymi
TrackMyIP
Stack (użyte nugety, język itp.) | WPF, .NET 9, C#, MahApps.Metro, Microsoft.Xaml.Behaviors.Wpf, EntityFrameworkCore, EntityFrameworkCore.Sqlite, EntityFrameworkCore.Tools, EntityFrameworkCore.InMemory, SQLite, CommunityToolkit.Mvvm, Newtonsoft.Json, FluentAssertions, FluentAssertions.Analyzers, Moq, xunit, Dependency Injection, MVVM, Singleton, Services, RestAPI |
Program do pobierania części informacji geolokalizacyjnych ze strony ipstack.com. Po wprowadzeniu adresu IP/URL pobiera informacje, które można zapisać w bazie danych SQLite. Wcześniej trzeba utworzyć konto by uzyskać klucz API i ustawienie go w ustawieniach aplikacji. Darmowe konto na chwilę obecną posiada 100 darmowych zapytań w ciągu miesiąca.
Funkcje
- Wyszukiwanie geolokalizacji:
- Wprowadź adres IP lub URL, aby uzyskać dane geolokalizacyjne, takie jak kraj, region, miasto, szerokość i długość geograficzna.
- Zarządzanie danymi geolokalizacyjnymi:
- Dodawaj, edytuj i usuwaj zapisane dane w lokalnej bazie SQLite.
- Walidacja klucza API:
- Możliwość sprawdzenia poprawności klucza API w ustawieniach aplikacji.
- Intuicyjny interfejs użytkownika:
- Oparty na bibliotece MahApps.Metro z obsługą wzorca MVVM, zapewniający czytelność i prostotę obsługi
Możliwe, że aplikacja będzie rozbudowywana w przyszłości.
Wymagania
- .NET 9: Upewnij się, że masz zainstalowane środowisko .NET 9.
- Konto na ipstack:
- Zarejestruj się na stronie ipstack.com.
- Uzyskaj własny klucz API, który będzie wymagany do działania aplikacji.
- SQLite: Aplikacja korzysta z lokalnej bazy danych SQLite, która zostanie automatycznie utworzona przy pierwszym uruchomieniu.
Użyte biblioteki
TrackMyIP wykorzystuje następujące biblioteki:
- xunit – xUnit.net jest frameworkiem testowania deweloperskiego, zbudowanym w celu wsparcia Test Driven Development, z celem projektowym ekstremalnej prostoty i dostosowania do funkcji frameworka.
- MahApps.Metro – Stylizacja i ulepszenie interfejsu użytkownika.
- Microsoft.EntityFrameworkCore – Dostęp do bazy danych w modelu ORM.
- Microsoft.EntityFrameworkCore.Sqlite – Obsługa bazy SQLite.
- Microsoft.EntityFrameworkCore.Tools – Narzędzia CLI dla Entity Framework.
- Microsoft.EntityFrameworkCore.InMemory – Dostawca bazy danych in-memory dla Entity Framework Core (do wykorzystania w celach testowych).
- CommunityToolkit.Mvvm – Szybka, modułowa, platformowa biblioteka MVVM, która jest oficjalnym następcą MVVMlight. Posiada Dependency Injection (Ioc), klasy RelayCommand, ObservableProperty, ObservableObject itp.
- Newtonsoft.Json – Przetwarzanie i parsowanie danych JSON.
- FluentAssertions – Fluent Assertions oferuje kompleksowy zestaw metod rozszerzeń, które umożliwiają naturalne wyrażanie oczekiwanych wyników testów jednostkowych TDD (programowanie sterowane testami) lub BDD (rozwój sterowany zachowaniem).
- FluentAssertions.Analyzers – Analizatory pomagające w pisaniu płynnych twierdzeń we właściwy sposób.
- Moq – Moq to najpopularniejszy i najbardziej przyjazny framework mockingowy dla .NET.