Zapis odczyt obiektów w plikach binarnych C# .NET Compact

W tym post-cie przedstawię zapis i odczyt klas-obiektów (rekordów naszej własnej plikowej bazy danych) do plików binarnych. Zapisywane i odczytywane będą klasy-obiekty (rekordy plikowej bazy danych) - instancje obiektów klas, w zasadzie instancja jednego obiektu klasy reprezentującego naszą całą tabele do jednego pliku binarnego. Użyjemy do tego SPECJALNĄ serializację dla .NET Compact Framework (Serializacja klas na urządzenia mobilne) dla urządzeń mobilnych.

Zaczynamy jeszcze raz od wyjaśnienia co to w ogóle jest serializacja.


Serializacja – w programowaniu komputerów proces przekształcania obiektów, tj. instancji określonych klas, do postaci szeregowej, czyli w strumień bajtów, z zachowaniem aktualnego stanu obiektu. Serializowany obiekt może zostać utrwalony w pliku dyskowym, przesłany do innego procesu lub innego komputera poprzez sieć. Procesem odwrotnym do serializacji jest deserializacja. Proces ten polega na odczytaniu wcześniej zapisanego strumienia danych i odtworzeniu na tej podstawie obiektu klasy wraz z jego stanem bezpośrednio sprzed serializacji.
Serializacja służy do zapisu stanu obiektu, a później do odtworzenia jego stanu. Mechanizm ten jest używany między innymi na platformach: .NET, Java, PHP, Python, Ruby.

Źródło
 

Idę tego post-a jest pokazanie jak na urządzeniach mobilnych, np. z systemem operacyjnym Windows CE (Embedded), radzić sobie z zapisem i odczytem rekordów (reprezentowanych przez klasy) do plików binarnych.

Zaczynamy..

Znów skorzystamy z darmowej do zastosowań komercyjnych biblioteki:
(ALE TYM RAZEM JEJ NIE OPISUJE TYLKO WYKORZYSTUJE - opis jest w pierwszym linku w post-cie)
compactformatterplus.
Poniżej link do niej i do jej twórców. [Swoją drogą jest tam dużo użytecznych darmowych do zastosowań komercyjnych bibliotek dla .NET i .NETCF]
Uwaga - aby ja pobrać wystarczy darmowa rejestracja.
https://www.codeproject.com/Articles/21518/CompactFormatterPlus-Generic-Serializer-for-Full-a

Trzeba wiedzieć, że poprzez serializajcję niezależnie czy dla aplikacji desktopowych, czy dla aplikacji mobilnych możliwy jest zapisywać/odczyt tylko pojedynczej klasy/obiektu w jednym pliku binarnym. Nie można zapisać np. 10 instancji tych samych klas (a więc 10 rekordów) w jednym pliku binarnym - w zasadzie to pewnie się da, ale jest to zadanie skomplikowane i co więcej pracochłonne. CZAS TO PIENIĄDZ i ja pokażę jak zapisać to w sposób błyskawiczny. Cała sztuczka polega na tym, że zapisujemy jedną klasę/obiekt, w której mamy kolekcje klas/obiektów - czyli mamy kolekcję rekordów naszej tabeli.


MOJA KLASA DO:
ZAPISU INSTANCJI OBIEKTU DO PLIKU BINARNEGO (zapisu tabeli)
i
ODCZYTU INSTANCJI OBIEKTU Z PLIKU BINARNEGO (odczytu tabeli)



Dodatkowy potrzebny kod:


Użycie:


NO I MAMY OBSŁUGĘ PLIKOWEJ BAZY DANYCH, UFF, POWODZENIA.