SQLite zamiast fopen
Posted by Krzysztof Zmorzyński
Sunday, June 07, 2009 8:44:00 PM
fopen akurat nie wchodzi w grę, ale na pewno jakiś odpowiednik .net bądź serializacja obiektów już tak. A chodzi o zapis i odczyt danych w aplikacji: danych użytkownika, jego preferencji, ustawień dla samochodów, pomiarów mocy silnika itp
Jak zwykle największy problem występuje w momencie gdy model (tj obiekty reprezentujące jakiś zbiór danych np obiekt Profil zawiera takie właściwości jak email, imię itp) ulegnie zmianie, np dojdzie jakaś nowa właściwość. Jasne, można kombinować, wersjonować przy serializacji albo coś podobnego. I nawet pewnie to zadziała. Ale moim zdaniem można prościej i lepiej. Bardziej bazodanowo. Zwłaszcza, że gdy dużo się przebywa w środowisku aplikacji webowych to siłą rzeczy człowiek się do tego przyzwyczaja.
Tak właśnie trafiłem na SQLite. Już kiedyś, wcześniej gdzieś o niej czytałem, ale nie miałem wtedy okazji jej wypróbować. To prosta w obsłudze jednoplikowa baza danych, niewymagająca żadnej instalacji czy konfiguracji. Co więcej, istnieje bardzo poręczny provider do ado.net, dzięki czemu używanie SQLite w .net jest praktycznie identyczne jak z np MSSQL.
Muszę przyznać, że sprawdza się bardzo dobrze. Dodatkowo jak ktoś bardzo chce, może próbować połączyć to z nHibernate. W naszym przypadku, aplikacji gMetrix, wydaje się to być akurat niepotrzebne (samo assembly nHibernate zajmuje ok 1MB). Zamiast tego, aby ułatwić sobie życie, napisałem prościutkie biblioteki w C# do obsługi DAO i DTO (takie ORM), właśnie do użycia m.in. z SQLite i MSSQL2005/2008. Pewnie wkrótce gdzieś je wrzucę do ściągnięcia.