« Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans...
-
Upload
leonie-gonzalez -
Category
Documents
-
view
104 -
download
0
Transcript of « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans...
![Page 1: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/1.jpg)
« Hello World! »
Diapositive no.1
![Page 2: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/2.jpg)
Ajout de la logique d’affaire (« Business Logic »)Dans l’entité « Employee » :
/// <summary> /// Age as of today /// </summary> public int Age { get {
if (null == this.BirthDate) return 0; DateTime oBirthDate = (DateTime)this.BirthDate; DateTime oToday = DateTime.Today; int oAge = oToday.Year - oBirthDate.Year; if (oBirthDate.AddYears(oAge) > oToday) oAge--; if (oAge < 0) return 0; else return oAge;
} }
Diapositive no.2
![Page 3: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/3.jpg)
Ajout de la logique d’affaire (« Business Logic ») : Suite Et encore une fois dans l’entité « Employee » :
/// <summary> /// Total revenue for this Employee's orders /// </summary> public double TotalOrderRevenue { get { double revenue = 0; foreach (Order aOrder in this.Orders) { foreach (OrderDetail aOrderDetail in
aOrder.OrderDetails) { revenue += aOrderDetail.Quantity * Convert.ToDouble(aOrderDetail.UnitPrice) *
aOrderDetail.Discount; } } return revenue; } }
Diapositive no.3
![Page 4: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/4.jpg)
Ajout de la logique d’affaire (« Business Logic ») : Suite
Observation des propriétés générées par l’OM: Ouvrir en mode « Code » le fichierDomainModel.ServerModelNorthwindIB.Designer.cs
Observer la propriété « LastName »
Diapositive no.4
![Page 5: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/5.jpg)
Ajout de la logique d’affaire (« Business Logic ») : SuiteImplémentation d’un intercepteur dans
l’entité « Employee » :
[AfterGet(EntityPropertyNames.LastName)] public void UppercaseLastName(PropertyInterceptorArgs<Employee, String> args) {
var lastName = args.Value; if ( !String.IsNullOrEmpty(lastName)) { args.Value = args.Value.ToUpper(); } }
Diapositive no.5
![Page 6: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/6.jpg)
Ajout un interface usager (« UI »)De type « Console » :
1. Compiler le « DomainModel »2. Ajouter un nouveau projet de type « Console
Application », nommée « Console01 »3. Ajouter les références suivantes au projet
« Console01 » :1. DomainModel2. IdeaBlade.EntityModel
4. Assigner « Console01 » comme projet de démarrage (« Startup Project »)
5. Ajouter le code suivant :
Diapositive no.6
![Page 7: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/7.jpg)
Ajout un interface usager (« UI ») : suiteusing System; using System.Collections.Generic; using System.Linq; using System.Text; using IdeaBlade.EntityModel; using DomainModel; namespace Console01 { class Program { static void Main(string[] args) { GetEmployees(); } private static void GetEmployees() { var query = _manager.Employees; foreach (Employee anEmployee in query) { Console.WriteLine("Last Name = " + anEmployee.LastName); Console.WriteLine("\tBirth date = " +
anEmployee.BirthDate.ToString()); Console.WriteLine("\tAge = " + anEmployee.Age);
Diapositive no.7
![Page 8: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/8.jpg)
Ajout un interface usager (« UI ») : suite Console.WriteLine(String.Format("\tTotal Order Revenue: {0:C}",
anEmployee.TotalOrderRevenue)); Console.WriteLine(); } PromptToContinue(); } private static void PromptToContinue() { Console.WriteLine(); Console.WriteLine("Press ENTER to continue..."); Console.ReadLine(); } #region Private Fields static DomainModelEntityManager _manager = DomainModelEntityManager.DefaultManager; #endregion } }
Diapositive no.8
![Page 9: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/9.jpg)
Ajout un interface usager (« UI ») : suiteDe type « WinForm » :
1. Compiler le « DomainModel »2. Ajouter un nouveau projet de type
« Windows Form Application », nommée « WinForms01 »
3. Ajouter les références suivantes au projet « WinForms01 » :
1. DomainModel2. IdeaBlade.EntityModel3. IdeaBlade.Core4. WindowsBase (.Net Assembly)
Diapositive no.9
![Page 10: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/10.jpg)
Ajout un interface usager (« UI ») : suite
4. Assigner « WinForms01 » comme projet de démarrage (« Startup Project »)
5. Renommer le formulaire : 1. “Form1” devient “Employees”2. “Form1.cs” devient
“EmployeeForm.cs”
6. Glisser deux « Binding Sources » ou « Sources de données » :
4. “_ordersBindingSource”5. “_employeesBindingSource”
Diapositive no.10
![Page 11: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/11.jpg)
Ajout un interface usager (« UI ») : suite7. Glisser un BindingNavigator dans le coin en haut
à gauche. Le nommer : “_employeesBindingNavigator”
8. Glisser un ControlBindingManager (“_employeesControlBindingManager”) et un DataGridViewBindingManager (“_ordersDataGridViewBindingManager”)
9. Configurer le “_employeesControlBindingManager”
1. assigner le binding source à “_employeesBindingSource”
2. ajouter les propriétés LastName, FirstName, BirthDate, Age et Photo (par le “Smart Tag” -> “Autopopulate Controls”)
3. mettre à jour le “naming convension” : _
Diapositive no.11
![Page 12: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/12.jpg)
Ajout un interface usager (« UI ») : suite10. Configurer le
“_ordersDataGridViewBindingManager”1. assigner le binding source à
“_ordersBindingSource”2. ajouter les propriétés OrderDate,
RequiredDate, ShippedDate, et FreightCost.
3. ajouter les propriétés suivante du client : CompanyName (et la renommer “Company”)
4. cliquer sur “Create Grid” et la nommer “_ordersDataGridView”
11. Ajouter le code suivant :
Diapositive no.12
![Page 13: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/13.jpg)
Ajout un interface usager (« UI ») : suiteusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using IdeaBlade.EntityModel; using IdeaBlade.Util; using DomainModel; namespace WinForms01 { public partial class EmployeeForm : Form { public EmployeeForm() { InitializeComponent(); this.Load+=new EventHandler(EmployeeForm_Load); }
Diapositive no.13
![Page 14: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/14.jpg)
Ajout un interface usager (« UI ») : suite private void EmployeeForm_Load(object sender, EventArgs e) { ConfigureBindingSources(); ConfigureBindingNavigators(); ConfigureBindingManagers(); ConfigureHandlers(); LoadData(); } private void ConfigureBindingSources() {
_employeesBindingSource.DataSource = _employees; _ordersBindingSource.DataSource = _orders; } private void ConfigureBindingNavigators() { _employeesBindingNavigator.BindingSource =
_employeesBindingSource; }
Diapositive no.14
![Page 15: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/15.jpg)
Ajout un interface usager (« UI ») : suite private void ConfigureBindingManagers() { _employeesControlBindingManager.BindingSource =
_employeesBindingSource; _ordersDataGridViewBindingManager.BindingSource =
_ordersBindingSource; } private void ConfigureHandlers() { _employeesBindingSource.CurrentChanged += new
EventHandler(_employeesBindingSource_CurrentChanged);
} void _employeesBindingSource_CurrentChanged(object sender,
EventArgs e) {
Employee currentEmployee = (Employee)_employeesBindingSource.Current;
_orders.ReplaceRange(currentEmployee.Orders); } private void LoadData() { _employees.ReplaceRange(_manager.Employees);
}
Diapositive no.15
![Page 16: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/16.jpg)
Ajout un interface usager (« UI ») : suite #region Private Fields DomainModelEntityManager _manager = DomainModelEntityManager.DefaultManager; BindableList<Employee> _employees = new BindableList<Employee>();
BindableList<Order> _orders = new BindableList<Order>();
#endregion } }
Diapositive no.16
![Page 17: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/17.jpg)
Bibliographie et suggestions de lectures\DevForce\Learning Resources\030_Hello
DevForce
Diapositive no.17
![Page 18: « Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.](https://reader037.fdocuments.in/reader037/viewer/2022110117/551d9d7e497959293b8b603f/html5/thumbnails/18.jpg)
Conclusion
Diapositive no.18