Cours de C# Consultant NTIC chez Capgemini - Présentation ...

motiontachyphagiaSoftware and s/w Development

Jul 5, 2012 (5 years and 15 days ago)

721 views

Cours de C#
Consultant NTIC chez Capgemini
Présentation

Romain CASSAM CHENAÏ

Consultant Technique chez Expertime

Titulaire d’un Master MIAGE & Management des Systèmes d’
Informations et de Connaissance

Expertime

SSII spécialisé dans les technologies Microsoft

Microsoft Gold Partner depuis 2006

Vous pouvez me contacter par mail à l’adresse suivant :

rcassam@expertime.com
Présentation

Et vous qui êtes vous ?

Présentation

Prénom & Nom

Parcours

Connaissez vous la programmation Objet ?

Si oui avec quel(s) langage(s) ?
Plan de la journée
1.
Culture du .NET et du C#
2.
Similitude et des différences du C# avec Java
3.
Découverte et prise en main de Visual Studio
4.
Type et instructions de base du langage C#
Plan de la journée

Alternance de TD et de notions théoriques

Mon objectif est de vous faire découvrir le C# … vous ne serez pas
des professionnelles de ce langage à la fin de la session

ATTENTION : Un QCM chaque matin
Culture sur le .NETet le
C#
Le langage C#
Culture sur le .NET et le C#
Le langage C#

C# = Langage récent et langage de référence de Microsoft

Disponible en version béta depuis les années 2000

1er version = Février 2002

Compris dans la plate forme .NET 1

Le C++ laisse ainsi la place à ce nouveau langage.
Le langage C#

Le C# est un langage de P.O.O

Il reprends les caractéristiques des différents langages du marché

C++

Java

Le langage C# permet de créer d’une façon incomparable des
applications lourdes ou Web.
Le langage C#

Avantage du C# comparer au C++

Libération automatique de la mémoire

L’utilisation des pointeurs est exceptionnelle, uniquement pour de l’
optimisation

Pour les tableaux, ils s’agit de références et non de pointeurs.

Instruction foreach …
Le langage C#
Le langage C#

C# 1 n’est qu’une pale copie de Java

Virtual Machine

Héritage multiple interdit



Il ne s’agissait qu’une bibliothèque de classe comme Java

On passait ainsi de Java à C# facilement, sans perte de repère.
Le langage C#

La version 2 sorti en 2005 apporte de nombreuse amélioration

Apparition des types générique

De l’instruction yield

Des type nullables => bool? B = null;
Le langage C#
La 3e version apporte plus de spécificité au langage avec notamment :
LINQ (Language INtegrated Query) qui permet de requêter d’une façon
uniforme, proche du SQL. Utilisable pour les séquences d’objets, les
tableaux, les XML.
Le type anonyme VAR :
string nom = « Dupont »
=> var nom = « Dupont »
Le langage C#

C# 4

Dynamic : déclarer des instances comme étant dynamiques. C’est-à-
dire interpréter et non compiler.
Le langage C#
C# 1.0

••Mana
ged
Code
C# 2

••Generics
C# 3

••LINQ
C# 4

••Dynamic
Framework de .NET
Framework de .NET

Qu’es ce qu’un Framework ?

Ensemble de fonctionnalité / d’outils
permettant de faciliter le
développement d’application

Le Framework .NET a été crée en
2002 en même temps que le langage
#
But => de faciliter le développement d’
application lourde et Web.
Définition : [dot-net]
.NET est une plateforme complète pour
développer
,
déployer
et
exécuter
des
Applications Web, Windows, Mobiles et
serveur
Framework de .NET

Comment se décompose le Framework .NET
Framework de .NET

Premières couche CLS : spécification communes à tous les
langages en .NET

Permet l’intéroparibilité entre les langages
Framework de .NET

Ensemble de composant graphique qui permettent de construire
des IHM Web ou applicatifs.
Framework de .NET

3eme couche : Vaste librairie de plusieurs centaines de classes
Framework de .NET

4 eme couche : L’environement d’exécution commun de tous les
programmes en .NET
Architecture de .NET et Langage
C#
C#

••C
ode
écrit
en
lang
age
«év
olué
»

••N
on
com
pré
hen
sibl
e
par
le
pro
ces
seu
r
MSIL

••La
nga
ge
inte
rmé
diair
e

••By
teco
de
CLR

••M
achi
ne
« vir
tuell
e »
Architecture de .NET

Rappel : Un ordinateur ne sait exécuter que des instructions
machines (0 et 1).

C# , C++, Java font partie des langages dit « évolués » non
compréhensible immédiatement par les processeurs.

Il est donc nécessaire d’effectuer une « traduction ».

Solutions ????
Architecture de .NET

Compilateurs
Architecture de .NET
Culture sur le .NET et le C#
Architecture de .NET

le programme est toujours
adapté à l'ordinateur sur
lequel il tourne

Cette complexité ralentit
légèrement la vitesse
d'exécution des programmes
(par rapport au C ou au C++)
Questions fréquentes
Culture sur le .NET et le C#

Avec quels outils peut-on développer en C# ?

Microsoft Visual Studio .NET
: VS.NET est la solution de
Microsoft. Elle comprend un IDE et des compilateurs et autres
outils pour C#, VB.NET, C++/C++.NET, Visual J#.vos fichiers
sources.

SharpDevelop
: un IDE open source gratuit pour .NET.

MonoDevelop
: un IDE open source pour .NET, gratuit, qui
fonctionne sous Linux et utilise Mono, l'implémentation open source
de .NET.
Culture sur le .NET et le C#

Mono
: une implémentation open source de .NET, qui fonctionne
sur la plupart des systèmes d'exploitation (Linux, Windows, Mac
OS...). Comme le SDK du .NET framework, il dispose d'outils en
ligne de commande pour la compilation. Vous pouvez utiliser
n'importe quel éditeur de texte.Notez que Mono a généralement un
peu de retard sur le framework de Microsoft en ce qui concerne les
fonctionnalités les plus récentes, et certaines fonctionnalités du .
NET framework n'ont jamais été portées sur Mono (WPF par
exemple).
Culture sur le .NET et le C#

Sous quels systèmes d'exploitation peut-on développer et

déployer des applications en C#?

Les systèmes d'exploitations Microsoft suivants supportent la
conception et le déploiement d'applications .NET développés avec
C#.

Pour déployer des applications .NET sous des environnements
Unix, Linux et MacOSX vous pouvez utiliser Mono.
L'installation
du runtime Framework.NET ou de Mono est indispensable sur
le poste cible.
Découverte de
Visual Studio
Utilisation de Visual Studio 2010
Installation de Visual Studio 2010
Découverte de Visual Studio
Installation de Visual Studio 2010

Visual Studio est un environnement de développement intégrée
(IDE).

Un éditeur de code

Un compilateur

Un environnement d’exécution
Installation de Visual Studio 2010

Il existe différentes versions de Visual Studio

Les versions Express

IDE allégé et gratuite dédié à un type de développement

Les versions payantes

Pro

Premium (Outils de test)

Ultimate (Modélisation UML) => Offert aux étudiants

www.etudiant.ms
Fonctionnement de Visual Studio
Découverte de Visual Studio
Fonctionnement de Visual Studio
1
: rien de spécial, c'est une barre de menus.
2
: la boîte à outils (
toolbox
) est utile si vous voulez faire
des applications avec des fenêtres. Elle contient des
contrôles (
controls
); ce sont des objets que vous allez
manipuler.Vous pouvez faire des "
drag & drop
" ("glisser-
déposer") pour ajouter des contrôles à vos fenêtres.
3
: la vue "
Design
" vous permet de voir le rendu graphique
de votre application.
4
: le "
solution explorer
" permet de voir l'arborescence de
votre application. Vous pouvez voir les différents projets,
dossiers et fichiers qu'elle contient.
5
: en mode normal vous voyez la liste d'erreurs,
d'avertissements, et autres messages.
6
: la fenêtre des propriétés affiche les caractéristiques de
l'objet qui est sélectionné (toutes ne sont pas modifiables).
Fonctionnement de Visual Studio

Démonstration de création d’un projet sur Visual Studio

Application console : application exécutable simple, uniquement en
ligne de commande

Bibliothèque de classes : permet de générer des assemby
(assemblage)

.exe => ensemble de processus

.dll => ensemble de fonctionnalités
Fonctionnement de Visual Studio

.sln est le fichier de solution => container de projet;

Csproj est le fichier projet => container de fichier en c#

.cs => contient les instructions

Dans visual studio, les dossiers :

Properties : contiens des propriétés de l’application

Références : contiens les références de l’application, c’est-à-dire les
lignes de code extérieur à notre programme
Fonctionnement de Visual Studio

Mode debug et release

Debug
: cette configuration vous permet de consulter la valeur des
variables et de contrôler l'exécution dans le débogueur.

Release
: prêt à distribuer votre application aux utilisateurs finals,
créez une version release qui sera beaucoup plus petite en taille et
offrira habituellement de bien meilleures performances que la
configuration debug correspondante.
Exercice 0.

A vous de jouer.

Créer un projet application console.

Copier/coller le code présent sur le slide suivant.

Que contient la valeur test ?

Corriger le programme.
Exercice 0
using System;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
char[] your_input;
Console.WriteLine("Please Enter your Name : ");
var s = Console.ReadLine();
your_input = s.ToCharArray();
Exercice 0
var test= String.Empty;
for (int i= your_input.Length; i < 0 ; i = i + 1)
{
test += your_input[i];
}
Console.WriteLine(your_input);
Console.ReadLine();
}
}
}
Outils utiles

Resharper : outils supplémentaire pour Visual Studio, ofurnit des
fonctionnalités supplémentaires pour la correction d'erreur, la
complétion de code, navigation, recherche, coloration syntaxique,
le formatage, la génération de code et d'optimisation …

TFS : SVN de Microsoft.

dotPeeak : décompilateur.
Namespace

C’est quoi un espace de nommage (Namespace) ?

Les espaces de nommages

aident à organiser logiquement et clairement les types et autres
membres fournis par le Framework .Net (notamment), ou par tout
autre application et/ou assemblage .Net, et ce indépendamment du
nom de l’assemblage .net fournissant ces types ou ces membres.

Cependant, souvent les noms des assemblages du Framework .Net
réfèrent à l’espace de nommage principalement enrichie par l’
assemblage : par exemple system.xml.dll enrichie principalement l’
espace de nom System.Xml (manipulation de données XML), mais
pas seulement.

L’espace de nommage System.Data contient tous les types requis
pour manipuler des données ;

De la même manière, System.Configuration contient tous les types
pour gérer la configuration d’une application. Nous reviendrons
durant le troisième atelier sur l’organisation des espaces de
nommages.
Using

Deux utilisations de la directive
using
sont possibles :

Pour permettre l'utilisation de types dans un espace de noms, de
façon à ne pas avoir à qualifier l'utilisation d'un type dans cet espace
de noms :

using System; // Evite d’écrire System.Console.WriteLine();

Pour créer un alias pour un espace de noms ou un type

using Project = PC.MyCompany.Project;
Passage par valeur ou passage par référence ?
En C#, les paramètres sont passés par défaut par valeur, c'est-à-dire que la valeur
est copiée sur la pile et que tous les changements de cette valeur sont détruits
lorsque la méthode est quittée. Néanmoins, C# utilise communément deux types :
les types par valeur et les types par référence (cf. page 26). Dans le cas de passage
de paramètre d’un type par valeur (par exemple int ou double), le paramètre est
donc copié et les changements réalisés sur la valeur de ces paramètres sont
détruits lors du retour de fonction. Un paramètre ayant un type par référence (tout
objet) est aussi passé par valeur, mais dans ce cas c’est une copie de la référence
(qui représente la localisation de l’objet en mémoire) qui est ajoutée à la pile. La
méthode utilise donc un alias sur l’objet, qui va être utilisé pour modifier cet objet (c’
est un peu comme si, lors de l’appel de la fonction, on ajoutait sur une pièce une
deuxième porte d’accès). Quand la fonction va se terminer, la référence utilisée par
la fonction va être détruite (la deuxième porte est détruite) mais les modifications
apportés à l’objet seront gardées (en gros, les meubles que vous aurez ajouté en
passant par la porte juste détruite restent dans la pièce). C’est pour cela que le
paramètre
DataTable TableDeDonnees
est passé par valeur, mais tous les ajouts d’
enregistrements qui seront fait dans la fonction
AjouteLigneATable
seront préservés
lors de la fin de cette fonction.