La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

« Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int.

Présentations similaires


Présentation au sujet: "« Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int."— Transcription de la présentation:

1 « Hello World! » Diapositive no.1

2 Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// 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

3 Ajout de la logique daffaire (« Business Logic ») : Suite Et encore une fois dans lentité « Employee » : /// /// Total revenue for this Employee's orders /// 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

4 Ajout de la logique daffaire (« Business Logic ») : Suite Observation des propriétés générées par lOM: Ouvrir en mode « Code » le fichier DomainModel.ServerModelNorthwindIB.Designer.cs Observer la propriété « LastName » Diapositive no.4

5 Ajout de la logique daffaire (« Business Logic ») : Suite Implémentation dun intercepteur dans lentité « Employee » : [AfterGet(EntityPropertyNames.LastName)] public void UppercaseLastName (PropertyInterceptorArgs args) { var lastName = args.Value; if ( !String.IsNullOrEmpty(lastName)) { args.Value = args.Value.ToUpper(); } Diapositive no.5

6 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. DomainModel 2. IdeaBlade.EntityModel 4. Assigner « Console01 » comme projet de démarrage (« Startup Project ») 5. Ajouter le code suivant : Diapositive no.6

7 Ajout un interface usager (« UI ») : suite using 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

8 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

9 Ajout un interface usager (« UI ») : suite De 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. DomainModel 2. IdeaBlade.EntityModel 3. IdeaBlade.Core 4. WindowsBase (.Net Assembly) Diapositive no.9

10 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 » : 1. _ordersBindingSource 2. _employeesBindingSource Diapositive no.10

11 Ajout un interface usager (« UI ») : suite 7. 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

12 Ajout un interface usager (« UI ») : suite 10. 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

13 Ajout un interface usager (« UI ») : suite using 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

14 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

15 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

16 Ajout un interface usager (« UI ») : suite #region Private Fields DomainModelEntityManager _manager = DomainModelEntityManager.DefaultManager; BindableList _employees = new BindableList (); BindableList _orders = new BindableList (); #endregion } Diapositive no.16

17 Bibliographie et suggestions de lectures \DevForce\Learning Resources\030_Hello DevForce Diapositive no.17

18 Conclusion Diapositive no.18


Télécharger ppt "« Hello World! » Diapositive no.1. Ajout de la logique daffaire (« Business Logic ») Dans lentité « Employee » : /// /// Age as of today /// public int."

Présentations similaires


Annonces Google