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

Slides:



Advertisements
Présentations similaires
PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
Advertisements

Formation universitaire à .NET: Introduction à C#
Rappels de C ECP – Option SA Henri Fallon. Objectifs Théorie + pratique Compréhension générale du langage Repartant « du début » Pour ceux qui savent.
Agenda Patterns & Practices pour Mobile Client Référence & outils… Patterns & Practices pour Mobile Client Référence & outils…
DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
1 La bibliométrie pour l'évaluation stratégique des institutions de recherche : usages et limites Indicators for strategic positioning of the research.
Gestion des événements (suite)
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Un programme Hello World du début des années #T OXXXXXX0 HELLO WORLD Ce programme ( en langage machine ) consiste en 3 lignes, totalisant 27.
PILOTE - Sous Projet PILOTE SOUS-PROJET 5 Cyril Carrez, Elie Najm, Alexandre Tauveron.
PILOTE - Sous Projet PILOTE SOUS-PROJET 5 Cyril Carrez, Elie Najm, Alexandre Tauveron.
Rappels de C ECP – Option SA Henri Fallon. Objectifs Théorie + pratique Compréhension générale du langage Repartant « du début » Pour ceux qui savent.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
Les entrées /sorties en Java François Bonneville
Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP.
Connexion base de données
Chapitre IV Object, interfaces, classes imbriquées.
Injection de dépendances
Spring MVC Cedric Dumoulin.
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
1 Cours JAVA / Y.Laborde Java : Les types génériques ( ) LES TYPES GENERIQUES : Introduction (diapo 2) Déclaration dun type générique (3) 1re déclaration.
C# 4.0 et les améliorations à la BCL
10 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux déclencheurs.
Trucs et Astuces { Visual Studio 2008 – VB 9 (C#3)} Grégory Renard CTO – R&I Manager Wygwam Microsoft Regional Director / Microsoft MVP
Structures de données et algorithmes – TP2
POO-L3 H. Fauconnier1 Chapitre IV 1. classe Object, clonage 2. interfaces 3. classes internes et imbriquées.
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
Langage Oriente Objet Cours 4.
Cours du 19 octobre. POO-L3 H. Fauconnier2 E) Constructeurs et héritage Le constructeurs ne sont pas des méthodes comme les autres: le redéfinition na.
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
Magnets fiche projet / project sheet IAFACTORY THE MAGNETIC FACTORY magnets. IAFACTORY | conseil en architecture de linformation | |
TortoiseSVN N°. Subversion : pour quoi faire ? Avoir un espace de stockage commun – Tous les étudiants du SIGLIS ont un espace svn commun Partager vos.
Master 1 SIGLIS java Lecteur Stéphane Tallard Chapitre 4 – Structures de contrôle.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
Quelques notes sur CORBA F. Boyer, Oct Principes Programmation distribuée Multi-plateformes Notion de client et de serveur Notion de stub et de.
Architecture Logicielle Les supports d’applications
Le patron de conception « Strategy » Simon Durocher ( )
Programmation par Objets et Java
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
Miguel Garzon CrUise Lab - SITE. Introduction Data Types and Sizes Constants Logic Operators Type conversions Example.
Design Pattern Memento. Principe : Enregistrer les changements d'états d'un objet Objectif : Pouvoir restituer les états précédents d'un objet.
Multi-Thread Jian-Yun Nie
IFT 6800 Atelier en Technologies d’information
.NET Framework, C# et.NET Remoting Sébastien Boulay Master GI – option SRR 25 novembre 2004.
Piles Premier arrivé, dernier servi: LIFO (Last In, First Out) Liste à usage restreint: Enlève et insère un élément seulement à un bout de la liste. Notation:
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Cours 11 Threads. Chapitre X threads threadPOO-L3 H. Fauconnier3 Threads threads: plusieurs activités qui coexistent et partagent des données exemples:
COURS DE PROGRAMMATION ORIENTEE OBJET :
Les Objets CORBA parallèles Travaux pratiques Lundi 22 mai 2000 ARC « Couplage » Christophe René (IRISA/IFSIC) Eric Lemoine (INSA Lyon)
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes APACHE/VELOCITY.
« Les Mercredis du développement » Les WebParts Présenté par Pierre Lagarde Relation Développeurs Microsoft France Level 300.
Développement d’application avec base de données
GWT - QuickStart V 1.0 / May. Mise en place de l’environnement Java : Version 1.4 minimum IDE Eclipse 3.3 Europa : lien (Eclipse J2EE recommandée)‏lien.
Première CTP le 4 décembre Nouvelle CTP depuis le 1 er février RTM milieu de cette année.
Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Objectifs À la fin de ce cours, vous serez capables de :
AOP dans .Net avec PostSharp
1 Fichers Binaires, Accès Direct et Objets. 2 Données binaires. Il s'agit ici de lire et écrire des données binaires par opposition à du texte. Pour ce.
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
Schéma de conception Factory Method Exemple Sylvain Giroux.
C# de plus près.  Ce sont globalement les mêmes que Java : ◦ Int(int16, int32), float, double, bool,…  Les classe « communes » sont également les mêmes.
Informatique 2A Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.
Environnement de développement des BD
Le langage C# : Partie 1.
Transcription de la présentation:

« Hello World! » Diapositive no.1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Conclusion Diapositive no.18