In principal, despre .NET, VB6. C#,VB.NET, ASP.NET Apoi despre programare si multe alte chestii ... de programare.

Subscribe RSS   Mini tools List

luni, august 28, 2006

programarea in .NET - partea a 3-a - codul pentru obiecte
Va rog sa folositi acest URL NOU de la
http://serviciipeweb.ro/iafblog/

Ar fi folositor sa cititi partea 1 si partea a 2-a


Acum la creearea obiectelor


Fiecare obiect trebuie sa aiba proprietati care corespund cimpurilor din Baza de date si , pentru usurinta, alte proprietati/metode



O sa scriu codul pentru Publisher si o sa las pe celelalte ca un exercitiu pentru dvoastra.
Pentru a salva/sterge/creea un obiect de tip Publisher o sa implementam corespondentele metode corresponding method update / delete / insert.


Faptul ca un publisher trebuie sa aiba un nume unic o sa il scriem mai tirziu.


Stim deja ca trebuie sa avem doua baze de date, asa incit o sa avem doua stringuri de conexiune -pentru Access si pentru SQL Server)


Pentru a usura scrierea stringurilor de conexiune, va rog sa consultati www.connectionstrings.com





PEntru a vedea toate inregistrarile din tabela publisher, trebuie sa stocam undeva multimea lor.
Aceasta multime va fi o clasa numita ColPublisher. Ea va contine o metoda numita Load care va incarca Publisher-ul din baza de date si le va stoca intr-o colectie.



Acum , cind stim ce avem de facut in continuare, hai sa scriem ceva cod


Start Visual C# Express( daca e prima oara cind il lansati, va va intreba setarile -puneti pe cele de C#)si creati un nou proiect numit Books






si salvati in C:\book







De obicei, the System.Data.dll este listat in referinte. Daca nu, va rog sa il adaugati.
Oricum, adaugati va rog si o referinta la System.Configuration.



Click dreapta pe Solution Explorer si Add reference laOleDBConnection ca mai jos :












Redenumiti Class1.cs dinproprietati( click pe fisier in
Solution Explorer si apasati F4) in Publisher.cs


Daca raspundeti "yes" la urmatoarea intrebare, numele clasei va fi schimbat din
Class1 in Publisher – si faceti-o public class






Acum o sa scriem proprietatile de baza pentru un Publisher :



using
System;




using
System.Collections.Generic;



using

System.Text;









namespace


BookObjects



{







public
class
Publisher






{






#region

Database properties







private
int m_IDPublisher;







public
int IDPublisher





{







get






{









return
m_IDPublisher;






}






set






{






m_IDPublisher = value;






}





}













private
string m_Name;












public
string Name






{







get






{






return
m_Name;






}







set






{





m_Name = value;






}






}












private
string m_Site;













public
string Site





{







get






{







return
m_Site;








}






set






{






m_Site = value;






}





}






#endregion











}



}








Trebuie sa le incarcam aceste proprietati din Baza de date, asa incit o sa scriem o metoda Fill:



O sa o scriem astfel incit sa nu avem dependenta de BD:












#region

Database
methods







public
void FillObject(System.Data.IDataReader
idr)






{







this.Name
= idr["NamePublisher"].ToString();







this.Site
= idr["SitePublisher"].ToString();





}






#endregion















ACum va trebui sa scriem codul de incarcare din BD a diverselor inregistrari. Asaugati o noua clasa
( Project => Add Class) si denumiti-o ColPublisher.cs.


Din nou , faceti-o public class
si haide sa scriem metoda care incarca datele din BD.









public


void Load()






{











}



ACum ne dam seama ca ne trebuie cele doua conexiuni - si o metoda de a vedea pe care din ele le incarcam.


Asa incit vom incepe sa scriem cod spre a incarca conexiunile :











public
static
string
ConnectionStringMDB








{







get






{






return

System.Configuration.ConfigurationManager.ConnectionStrings["MDB"];





}






}







public
static
string
ConnectionStringSQLServer






{







get





{









return

System.Configuration.ConfigurationManager.ConnectionStrings["SQLServer"];





}






}















Asa cum am tot spus, avem doua stringuri de conexiune.



A venit timpul sa stim cind incarcam una si cind cealalta in functia Load.



O sa adaug o noua clasa numita Settings si o sa pun acolo setarile comune



O sa adaug o enumerare care o sa imi spuna ce baza de date voi utiliza











public


enum
DatabaseUsed






{






None,








MDB,





SQLServer






}



si o sa o citim din fisierul de configurare(App.config sau Web.Config) :






public


static
DatabaseUsed

TheDatabase





{







get






{






return

Enum.Parse(typeof(DatabaseUsed), System.Configuration.ConfigurationManager.AppSettings["DatabaseUsed"];






}





}






Puteti obserava ca am pus configurarea in Appsetting .
Putem stoca si stringurile de conexiune in acelasi loc - dar am vrut sa fim compatibili cu standardul Microsoft.


Codul poate fi obtinut de aici


Data viitoare o sa scriem cod pentru a incarca datele din BD si a le pune in colectie.






De citit:


Pentru .NET best practices, puteti citi http://www.ssw.com.au/ssw/Standards/default.aspx


PEntru construirea unui ORM (Object-relational_mapping) cum facem aici, cititi
articolul urmator de pe Wikipedia (http://en.wikipedia.org/wiki/Object-relational_mapping)
si puteti gasi o lista de ORM la adresa http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software
. Cred ca ar trebui sa cititi cel putin unul, de exemplu Nhibernate : http://www.hibernate.org/343.html


Pentru a genera acelasi cod plecind de la tabele dintr-o baza de date, cititi
Code Generation (http://en.wikipedia.org/wiki/Code_generation)
si poate CodeSmith (http://www.codesmithtools.com/)
























 
Acest blog s-a mutat la http://www.serviciipeweb.ro/iafblog/