Wybór prostej, nie instalowanej bazy dla aplikacji C#

0

Czy istnieje jakieś rozwiązanie, które mógłbym zastosować w aplikacji standalone C#, które stworzy mi bazę danych, ale nie będzie wymagać instalowania czegokolwiek. Baza ma być prosta, parę tabel na dane typu user (jego dane), produkt (jego dane), Po prostu po uruchomieniu pliku EXE wygeneruje się jakiś plik np. Chciałbym z tą bazą gadać jakimś SQLem, ale żeby to było super lekkie i nie wymagało ręcznego instalowania czegokolwiek. Taki zamiennik trzymania danych aplikacji w Excelu.

9

https://www.sqlite.org/index.html - idealna baza do tego, co Ci potrzeba. Sama baza to jeden plik DLL (a może 2, nie pamiętam), które po prostu umieszczasz w katalogu razem ze swoim EXE. Baza tworzy jeden plik, który trzyma całość danych. Bardzo fajne także pod względem backupowania/przenoszenia - po prostu kopiujesz ten plik z danymi i już. Sam SQLite, mimo że jest prosty, posiada bardzo dużą zgodność ze standardem SQL i działa bardzo wydajnie. Posiada nawet opcję równoczesnego dostępu z wielu aplikacji/procesów/stanowisk, aczkolwiek jakoś nie jestem do tego przekonany. Sam dostęp do danych też jest prosty - zwyczajnie dajesz SELECT FROM i dostajesz potrzebne dane, bez konieczności ręcznego przeglądania, filtrowania itp. - wszystko się dzieje, jakbyś korzystał z "prawdziwego" SQL.

Minusem jest to, że nie masz kontroli uprawnień - każdy, kto ma dostęp do pliku, ma pełen dostęp do bazy. Ale skoro piszesz, że szukasz czegoś, co będzie zamiennikiem trzymania danych aplikacji w Excelu to myślę, że podane przeze mnie rozwiązanie jest idealne :)

1

Dzięki, wczoraj o niej czytałem, ale zmyliło mnie w opisie, że to jest dla C i C++ tylko. Już przeglądam tutoriale dla C#
i to jest dokładnie to czego mi potrzeba, nic poważnego w tej bazie trzymane nie będzie.

3

Nie, da się to wykorzystać w dowolnym języku, w którym masz możliwość podpięcia się do biblioteki DLL. Sam używałem wiele razy w Pascalu. Możesz sobie albo ręcznie korzystać z DLL, albo skorzystać z jakiegoś wrappera/biblioteki. W przypadku Lazarusa (taki darmowy i otwartoźródłowy klon Delphi) masz od razu gotowe komponenty do połączenia, jest także fajny wrapper na to.

W przypadku C# - sam wprawdzie nie korzystam, ale szybkie przejrzenie gógla daje wiele wyników - m.in.
https://docs.microsoft.com/pl-pl/dotnet/standard/data/sqlite/?tabs=netcore-cli
http://zetcode.com/csharp/sqlite/
https://www.codeproject.com/Articles/22165/Using-SQLite-in-your-C-Application
https://www.altcontroldelete.pl/artykuly/c-wpf-oraz-sqlite-razem-w-jednym-projekcie/
https://www.codeguru.com/csharp/.net/net_data/using-sqlite-in-a-c-application.html

0

relacyjna czy key-value wystarczy. Jakie zagadnienia w niej planujesz mieć?
Wiem, że w 2020 staystyczne myślenie jest przeniknięte SQL-em, ale w kategorii lekkości biblioteka key-value jest nie do pobicia (nie mówię o cloudowych serwerach)

Choć moze w C#, gdzie i tak to będzie "tłuściejsza" aplikacja niekoniecznie aż takiej lekkości szukasz

1 użytkowników online, w tym zalogowanych: 0, gości: 1