Upravo razvijam jednu aplikaciju čija bi arhitektura mogla da bude zanimljiva. Ništa originalno, ali funkcionalno.
Imam Web Service preko koga "dovučem" podatke kao DataSet u XML formatu. Korisnik uspostavi Interent konekciju, Desktop aplikacija se obrati Web Servisu i on joj isporuči DataSet. Onda snimim taj DataSet u Isolated Storage i omogućim korisniku da ga off-line edituje. DataTable klasa ima metode za dodavanje, brisanje i update vrsta. Kad završi s unosom podataka, korisnik ponovo uspostavlja Internet konekciju, uploaduje podatke preko Web Servisa koji taj DataSet snima u bazu.
Za filtriranje vrsta na raspolaganju su DataTable.Select funkcija i iteracija kroz pojedinačne tabele. Dakle, pišemo kod tipa
MyTable resultSet;
for each row in SourceTable
if uslov
copy row from SourceTable to ResultSet
DataTable.Select metod ima samo rudimentarne mogućnosti filtriranja. Stoga moramo da pišemo kod. Ništa strašno, to očas postane rutina.
---------
XML perzistencija je moguća. VisualStudio ima komponentu XmlDataSource da olakša manipulisanje XML fajlovima.
---------
Ako je single user aplikacija, DataSet je, u kombinaciji sa file sistemom, najjeftiniji i najjednostavniji način za perzistenciju.
Acta, non verba!