Tema: Re: Visual Studio ir regionai
Autorius: Jornada Del Muerto
Data: 2009-11-22 15:26:12
Nors siaip kita vertus as visada naudoju wrapperi darbui su ADO.NET, kur yra paprastai kelios esmines funkcijos: 

DataSet Query (string sql);
string QueryScalar(string sql); 
void Execute (string sql);

To pakanka praktiskai beveik bet kam, po to eina eile UI funkciju, bet cia galimos ivairios realizacijos, pvz.

1.  Plest sia kase, kad  dirbtu su UI elementais (seniau naudodavau):

    void Query (string Sql, ListView lvw);
    void Query (string Sql, ComboBox lvw); 
    ir t.t..

    cia labai nepatiko kad ListBox ir ComboBox Items memberio kilme skirtinga, taip butu uzteke vienos...

2. Arba plest pacius UI elementus (ka dabar naudoju);

    interface ILoadable {
        Load (DataTable table);
    }

    public class MyComboBox : ILoadable {
        .... code here...
    }

    siaip visus  pagrindinius controlus turiu, aisku, daugiau interface'u naudoju, pvz. tokiu kaip (cia viens is daugelio):

    interface ISelectable {
        DataRow SelectedRow {get;}    < -- pagreitina pazymeto DataRow access'a, jei nieko ner tai null
        string SelectedId    {get;}        <-- priejimas prie ID, jei ID ner tai string.Empty;
    }

    Pas mane gime labai konkreti darbo su DB ideologija pagal taisykles:

    1. Grazinamam datatable ID visada pirmas elementas;
    2. Grazinamam datatable visi laukai kurie neturi but vaizduojami UI, o tik egzistuoti datatable kaip papildoma info turi priekyje simboli unrescore "_", tai visos Load funkcijos visu controlu zino apie tai ir uzkraudamos UI controlus automatiskai su tuo susitvarko.

    Siai dienai visus controlus praktiskai savus turiu, aisku jie gali daug daugiau ir su laiku pacioje biznio logikoje gali but kad aplamai nereikes man includint tokiu namespace'u kaip System.Windows.Forms ar System.Data ir t.t.. ;) aisku cia eilinis blynas ir jau kokia 5 architektura, laikas nuo laiko suprates pries tai buvusios klaidas, perkuriu is naujo viska ir su laiku vis geriau gaunasi :)

    Dabar mastau apie bazine klase kazkas link Application, pakolkas analize darau laisvu laiku kas i tai turetu ieiti, cia kalba apie tai is ko susideda dauguma applicationu, dalykai kaip setttings, messaging, data access ir t.t.. kad inicializuojant app butu inicializuojami visi budingi tam app dalykai, o toliau viduje kodo dirbi per ta objekta jei ko reikia nesigilindamas ne biskio kaip bus apdirbami settingai ar pranesimai...

Biski isijauciau :)