Ik ben al een tijdje bezig met het evalueren van diverse DAL's... Dit is echter niet zo evident; men moet meestal nog zelf de code genereren etc, en dit dan met verschillende generators (efbe's tool / codesmith / olymars/ ... ); informatie is her en der verspreid over het net...
Om dit te vereenvoudigen lijkt het me interessant een topic hierover op te zetten.
Ik heb een eerste projectje aangemaakt (VS.net 2005 Beta) dat werkt met Typed DataSets.
Wat is nu de bedoeling : vervang in deze oplossing alles wat je normaalgezien genereert (zowel extra abstractie layers als form als ...). De enige voorwaarde is dat het concept hetzelfde blijft :
Een winforms app toe het toelaat om orders te wijzigen in de northwind database.
Toon ook aan wat voor code nodig is om het gegenereerde in je app te integreren door deze code te quoten...
Alle gesubmitte voorbeelden zouden er dus als volgt moeten uit zien :
Zip-file : c# 2.0 Typed Datasets
Gegenereerd met : Visual Studio 2005 Beta 1
Toegang tot gegenereerde code :
De bedoeling is dus niet om hierover opmerkingen te horen in de trant van
, maar eerder om iedereen voor zichzelf een mening te laten vormen.
Naast dal's zijn hier natuurlijk ook n-tier-voorbeelden volledig welkom
Zaken die ik graag wel eens zou zien : ORM/CSLA/CSLA active objects/....
Misschien heeft er zelfs iemand het Enterprise/User Interface application block ?
Om dit te vereenvoudigen lijkt het me interessant een topic hierover op te zetten.
Ik heb een eerste projectje aangemaakt (VS.net 2005 Beta) dat werkt met Typed DataSets.
Wat is nu de bedoeling : vervang in deze oplossing alles wat je normaalgezien genereert (zowel extra abstractie layers als form als ...). De enige voorwaarde is dat het concept hetzelfde blijft :
Een winforms app toe het toelaat om orders te wijzigen in de northwind database.
Toon ook aan wat voor code nodig is om het gegenereerde in je app te integreren door deze code te quoten...
Alle gesubmitte voorbeelden zouden er dus als volgt moeten uit zien :
Zip-file : c# 2.0 Typed Datasets
Gegenereerd met : Visual Studio 2005 Beta 1
Toegang tot gegenereerde code :
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| #region DAL #region Members used by the DAL private NorthwindDataSet northwindDataSet; private DataConnector FK_Order_Details_OrdersDataConnector; private DataConnector northwindDataSetDataConnector; private DataConnector CustomersDataConnector; private DataConnector OrdersDataConnector; private OrdersTableAdapter ordersTableAdapter; private CustomersTableAdapter customersTableAdapter; #endregion private void LoadData() { const string connStr= "Server=127.0.0.1;Integrated Security=True;Database=Northwind"; northwindDataSetDataConnector = new DataConnector(); CustomersDataConnector = new DataConnector(); OrdersDataConnector = new DataConnector(); FK_Order_Details_OrdersDataConnector = new DataConnector(); northwindDataSet = new NorthwindDataSet(); ordersTableAdapter = new OrdersTableAdapter(); customersTableAdapter = new CustomersTableAdapter(); // set DataConnectors northwindDataSetDataConnector.DataSource = this.northwindDataSet; CustomersDataConnector.DataMember = "Customers"; CustomersDataConnector.DataSource = this.northwindDataSetDataConnector; OrdersDataConnector.DataMember = "Orders"; OrdersDataConnector.DataSource = this.northwindDataSet; FK_Order_Details_OrdersDataConnector.DataMember = "FK_Order_Details_Orders"; FK_Order_Details_OrdersDataConnector.DataSource = this.OrdersDataConnector; ordersTableAdapter.ClearBeforeFill = true; customersTableAdapter.ClearBeforeFill = true; ordersTableAdapter.Connection.ConnectionString = connStr; customersTableAdapter.Connection.ConnectionString = connStr; ordersTableAdapter.Fill(northwindDataSet.Orders); customersTableAdapter.Fill(northwindDataSet.Customers); dataNavigator1.DataConnector = OrdersDataConnector; } private void BindData() { txtID.DataBindings.Add(new Binding("Text", OrdersDataConnector, "OrderID", true)); cmbCustomer.DataBindings.Add(new Binding("SelectedValue", OrdersDataConnector, "CustomerID", true)); cmbCustomer.DataSource = CustomersDataConnector; cmbCustomer.DisplayMember = "ContactName"; cmbCustomer.ValueMember = "CustomerID"; dataGridView1.DataSource = FK_Order_Details_OrdersDataConnector; } private void SaveData() { this.ordersTableAdapter.Update(this.northwindDataSet); this.customersTableAdapter.Update(this.northwindDataSet); } private void RevertData() { this.northwindDataSet.RejectChanges(); } #endregion |
De bedoeling is dus niet om hierover opmerkingen te horen in de trant van
Naast dal's zijn hier natuurlijk ook n-tier-voorbeelden volledig welkom
Zaken die ik graag wel eens zou zien : ORM/CSLA/CSLA active objects/....
Misschien heeft er zelfs iemand het Enterprise/User Interface application block ?
[ Voor 17% gewijzigd door D4Skunk op 08-04-2005 16:28 . Reden: Verbreding van onderwerp : van DAL -> alles wat gegenereerd wordt (na enkele opm van whoami) ]