Documente Academic
Documente Profesional
Documente Cultură
Tehnologia Informaiei
PROIECT 3
TEHNOLOGIA .NET
Cuprins:
1.
2.
3.
4.
Cerine
Tehnologia .NET
MySQL
Descriere aplicaie
1. Cerine
"Creati o aplicatie care sa contina o baza de date creata in mysql si o interfata pentru aceasta. La
crearea interfetei se va folosi tehnologia .NET. Baza de date va fi compusa din urmatoarele tabele :
Autori (AutorID,NumeAutor,PrenumeAutor,TaraOrigine)
Carti (CarteID,Denumire, AnAparitie,Editura)
Biblioteca(BibliotecaID,Denumire,Adresa)
Relatiile intre tabele sunt urmatoarele :
intre tabela Autori si tabela Carti - relatie de multiplicitate M:N
intre tabela Carti si tabela Biblioteca - relatie de multiplicitate M:N
Interfata va trebui sa permita utilizatorului sa faca urmatoarele operatii pe toate tabelele : vizualizare,
adaugare, modificare, stergere. Vizualizarea tabelelor de legatura va presupune vizualizarea datelor
referite din celelalte tabele."
2.Tehnologia .NET
Tehnologia .NET, dezvoltata de gigantul Microsoft, se bazeaza pe asa numitul .NET
Framework, care este o platforma de calcul care simplifica dezvoltarea aplicatiilor in
mediul puternic distribuit al Internetului. Acest .NET Framework este conceput astfel incat
sa satisfaca urmatoarele obiective:
Sa construiasca toate comunicatiile pe standarde industriale care sa asigure faptul ca codul bazat
pe .NET Framework poate fi integrat in orice alt cod.
Platforma .Net este mult mai mult decat un nou limbaj , software development kit (SDK), sau
chiar un sistem de operare. Ofera servicii noi foarte puternice, un nou format binar independent
de procesor, noi limbaje, extensii pentru limbaje vechi si lista continua. Folosirea eficienta a
acestor noi unelte si aplicatii, nu este posibila cunoastere buna a platforma ce va da viata
aplicatiilor.
Premiza din spatele platformei .NET este ca lumea calculatoarelor se schimba de la un calculator
conectat la servere prin retele de genul Internetului, la un calculator unde toate felurile de deviceuri inteligente, calculatoare si servicii, lucreaza impreuna pentru a oferi o experienta mai bogata
utilizatorului. Platforma .NET este raspunsul acestor provocari pe care schimbarea le va aduce
programatorilor.
Platforma .NET este formata din mai multe componente, care pot fi grupate in trei categorii de
baza:
Servicii .NET mai multe servicii .NET, asigurate de Microsoft pentru folosire in
dezvoltarea aplicatiilor ce merg pe .NET Framework. Foarte importante si de amintit sunt
serviciile Web (Web Services).
CLR (Common Language Runtime) este un mediu de executie care se ocupa de alocarea
memoriei, captarea erorilor si interactiunea cu serviciile sistemului de operare.
Base Class Library este o colectie extinsa de componente pentru programare si aplicatii
pentru interfete de programare (API).
Doua tinte de dezvoltare de nivel inalt. Una dintre ele este pentru aplicatiile Web
(ASP.NET) si alta pentru aplicatii normale Windows (Windows Forms).
Avantajele oferite de catre .NET Framework includ cicluri mai rapide de dezvoltare (refolosirea
codurilor, mai putine surprize de programare, suport pentru mai multe limbaje de programare),
mai putine bug-uri legate de tipul datelor datorita securitatii integrale, scurgere de memorie
redusa datorita Garbage Collector-ului si, in general, aplicatii sigure.
CLR-ul (common language runtime), este fundatia .NET Framework. Va puteti gandi la runtime
ca la un agent care administreaza codul in momentul executiei, oferind servicii de baza precum
managementul memoriei, managementul thread-urilor, si servicii de lucru la distanta, in timp ce
promulga siguranta tipurilor si alte forme de acuratete a codului, care asigura securitate si
robustete. De fapt, conceptual de management al codului este un principiu fundamental al
runtime-ului. Codul care vizeaza runtime-ul este cunoscut ca managed code iar codul care nu
vizeaza runtime-ul este cunoscut ca unmanaged code. Biblioteca de clase, cealalta componenta
principala a Framework-ului .NET, este o colectie cuprinzatoare, obiect-orientata, de tipuri
reutilizabile care poate fi folosita pentru dezvoltarea variatelor aplicatii, pornind de la aplicatiile
traditionale in linie de comanda sau cu interfata grafica (GUI Graphical User Interface), pana
la aplicatii bazate pe ultimele inovatii oferite de ASP.NET, inovatii precum Web Forms sau XML
Web services.
3.MySQL
MySQL este un sistem de gestiune a bazelor de date relaional, produs de compania suedeza
MySQL AB i distribuit sub Licena Public General GNU. Este cel mai popular SGBD opensource la ora actual, fiind o component cheie a stivei LAMP (Linux, Apache, MySQL, PHP).
Dei este folosit foarte des mpreun cu limbajul de programare PHP, cu MySQL se pot construi
aplicaii n orice limbaj major. Exist multe scheme API disponibile pentru MySQL ce permit
scrierea aplicaiilor n numeroase limbaje de programare pentru accesarea bazelor de date
MySQL, cum are fi: C, C++, C#, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea
folosind un tip spefic API. O interfa de tip ODBC denumit MyODBC permite altor limbaje de
programare ce folosesc aceast interfa, s interacioneze cu bazele de date MySQL cum ar fi
ASP sau Visual Basic. n sprijinul acestor limbaje de programare, unele companii produc
componente de tip COM/COM+ sau .NET (pentru Windows) prin intermediul crora respetivele
limbaje s poat folosi acest SGBD mult mai uor dect prin intermediul sistemului ODBC.
Aceste componente pot fi gratuite (ca de exemplu MyVBQL) sau comerciale.
Licena GNU GPL nu permite ncorporarea MySQL n softuri comerciale; cei care doresc s fac
acest lucru pot achiziiona, contra cost, o licen comercial de la compania productoare,
MySQL AB.
MySQL este component integrat a platformelor LAMP sau WAMP (Linux/Windows-ApacheMySQL-PHP/Perl/Python). Popularitatea sa ca aplicaie web este strns legat de cea a PHP-ului
care este adesea combinat cu MySQL i denumit Duo-ul Dinamic. n multe cri de specialitate
este precizat faptul ca MySQL este mult mai uor de invat i folosit dect multe din aplicaiile
de gestiune a bazelor de date, ca exemplu comanda de ieire fiind una simpl i evident: exit
sau quit.
Pentru a administra bazele de date MySQL se poate folosi modul linie de comand sau, prin
descrcare de pe internet, o interfa grafic: MySQL Administrator i MySQL Query Browser.
Un alt instrument de management al acestor baze de date este aplicaia gratuit, scris n PHP,
phpMyAdmin.
MySQL poate fi rulat pe multe dintre platformele software existente: AIX, FreeBSD,
GNU/Linux, Mac OS X, NetBSD, Solaris, SunOS, Windows 9x/NT/2000/XP/Vista.
4.Descriere aplicaie
Autori_Carti(AutorID, CarteID);
Carti_Biblioteca(CarteID, BibliotecaID);
Aceasta cuprinde 5 taburi pentru fiecare tabel care are asociat un obiect de
tip DataGridView ce va fi utilizat pentru vizualizare i operaii asupra datelor din
tabele.
Pentru conectarea la baza de date a fost definit o variabil la nivelul ntregii
aplicaii astfel:
- n proprietile aplicaiei (Properties/Settings) s-a definit
Name:ConnectionString, Value:
SERVER=localhost;DATABASE=proiect_3;UID=root;PASSWORD=1234;
Aplicaia conine un formular printe MainForm i dou formulare pentru
tabelele de legtur AutoriCarti i CartiBiblioteca care au urmtorul cod:
using
using
using
using
using
using
using
using
using
MainForm
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
MySql.Data.MySqlClient;
namespace Proiect_3
{
public partial class mainForm : Form
{
public mainForm()
{
InitializeComponent();
}
private MySqlConnection connection;
private
private
private
private
private
MySqlDataAdapter
MySqlDataAdapter
MySqlDataAdapter
MySqlDataAdapter
MySqlDataAdapter
private
private
private
private
private
DataTable
DataTable
DataTable
DataTable
DataTable
private
private
private
private
private
BindingSource
BindingSource
BindingSource
BindingSource
BindingSource
autoriDA;
cartiDA;
biblioteciDA;
autori_cartiDA;
carti_bibliotecaDA;
btnAdauga.Visible = false;
connection.Close();
}
private void btnSalveaza_Click(object sender, EventArgs e)
{
autoriDA.Update(autoriTbl);
cartiDA.Update(cartiTbl);
biblioteciDA.Update(biblioteciTbl);
refreshGrid();
}
private void btnAdauga_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedTab.Name == "tabAutoriCarti")
{
if (AutoriCartiForm.IsDisposed == false)
{
AutoriCartiForm.Owner = this;
AutoriCartiForm.Show(this);
}
else
{
AutoriCartiForm = new AutoriCarti();
AutoriCartiForm.Owner = this;
AutoriCartiForm.Show(this);
}
}
else if (tabControl1.SelectedTab.Name == "tabCartiBiblioteca")
{
if (CartiBibliotecaForm.IsDisposed == false)
{
CartiBibliotecaForm.Owner = this;
CartiBibliotecaForm.Show(this);
}
else
{
CartiBibliotecaForm = new CartiBiblioteca();
CartiBibliotecaForm.Owner = this;
CartiBibliotecaForm.Show(this);
}
}
}
private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
if (tabControl1.SelectedTab.Name == "tabAutoriCarti" ||
tabControl1.SelectedTab.Name == "tabCartiBiblioteca")
{
btnAdauga.Visible = true;
}
else
{
btnAdauga.Visible = false;
}
}
refreshGrid();
-AutoriCarti
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
using
using
using
using
System.Linq;
System.Text;
System.Windows.Forms;
MySql.Data.MySqlClient;
namespace Proiect_3
{
public partial class AutoriCarti : Form
{
private MySqlConnection connection;
private MySqlDataAdapter autoriDA;
private MySqlDataAdapter cartiDA;
private DataTable autoriTbl = new DataTable();
private DataTable cartiTbl = new DataTable();
private BindingSource autoriBS = new BindingSource();
private BindingSource cartiBS = new BindingSource();
public AutoriCarti()
{
InitializeComponent();
}
private void btnRenuntaAC_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnAdaugaAC_Click(object sender, EventArgs e)
{
MySqlCommand insertCommand = new MySqlCommand("INSERT INTO autori_carti
(AutorID, CarteID) VALUES ('" + cbAutor.SelectedValue.ToString() + "','" +
cbCarte.SelectedValue.ToString() + "')", connection);
insertCommand.ExecuteNonQuery();
this.Close();
}
private void AutoriCarti_Load(object sender, EventArgs e)
{
connection = new MySqlConnection(Properties.Settings.Default.ConnectionString);
connection.Open();
autoriDA = new MySqlDataAdapter("SELECT AutorID, CONCAT(NumeAutor,'
',PrenumeAutor) AS nume_autor FROM autori", connection);
cartiDA = new MySqlDataAdapter("SELECT CarteID, Denumire FROM carti", connection);
MySqlCommandBuilder autoriCB = new MySqlCommandBuilder(autoriDA);
MySqlCommandBuilder cartiCB = new MySqlCommandBuilder(cartiDA);
autoriDA.Fill(autoriTbl);
cartiDA.Fill(cartiTbl);
autoriBS.DataSource = autoriTbl;
cartiBS.DataSource = cartiTbl;
cbAutor.DataSource = autoriBS;
cbAutor.DisplayMember = "nume_autor";
cbAutor.ValueMember = "AutorID";
cbCarte.DataSource = cartiBS;
cbCarte.DisplayMember = "Denumire";
cbCarte.ValueMember = "CarteID";
using
using
using
using
using
using
using
using
using
CartiBiblioteca
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
MySql.Data.MySqlClient;
namespace Proiect_3
{
public partial class CartiBiblioteca : Form
{
private MySqlConnection connection;
private MySqlDataAdapter bibliotecaDA;
private MySqlDataAdapter cartiDA;
private DataTable bibliotecaTbl = new DataTable();
private DataTable cartiTbl = new DataTable();
La execuia aplicaiei avem datele selectate din cele trei tabele principale:
Autori, Carti, Biblioteca.
Cu ajutorul taburilor putem vizualiza aceste tabele.
Operatiile de inserare, modificare, tergere pentru tabelele principale se fac
direct din fereastra pricipal intermediul DataGridView.
Pentru inserarea datelor n tabelele de legtur au fost adugate cele dou
forme care au cte un ComboBox cu ajutorul crora se aleg legturile dorite.