Présentation - LIG Membres

publicité
. Net & C#
Chen Shan & Liu Ying
Master 2 pro GI - SRR
2003-2004
Plan

. NET
Introduction
 Historique
 .NET Framework



C#
.NET Remoting
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
2
Qu’est ce que .Net?

Une technologie prônée par Microsoft



Une nouvelle plate-forme de développement logiciel
Une version sur les architectures distribuées
Un ensemble de spécifications
Des nouveaux langages(C#, …)
 Le langage CIL(Commom Intermediate Langage)
 …

. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
3
Historique



Des 1998, Microsoft veut développer un nouveau
produit pour résoudre les pbs de COM
Le 13 février 2002 la première version exploitable
de .NET est publiée
En mars 2003, la version 1.1 du Framework .NET est
disponible




Fournisseurs de base de données(Oracle et ODBC)
La sécurité
XML/XSLT
…
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
4
.NET Framework


Introduction
Assemblage
Avantage
 Structure


CLR
Définition
 Rôle


Bibliothèque de classes de base
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
5
Vue générale de .Net
CLS ( Common Langage Specification)
C #, VB.NET…
Bibliothèque de classes de base
( ADO.NET, Forms, XML …)
Implémentation du CLI
Outils
Infrastructure pour
le développement
d’application
distribuées
(COM+, .NET Remoting,
ASP.NET)
(Commom Langage Infrastructure)
CLR (Common Langage Runtime)
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
6
Type d’applications





Interface utilisateur Windows (Windows form)
Application en mode console Windows
Service Windows
Service web
Application web
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
7
Assemblages


Avantages des assemblages
Structure d’un assemblage
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
8
Avantages des assemblages





L’enfer des DLLs résolu
La base des registres n’est plus sollicitée
Les assemblages sont infalsifiables
Les assemblages sont prévus pour être portables
Un assemblage peut être morcelé en plusieurs
fichiers
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
9
Structure d’un assemblage
Représentation physique d’un assemblage
Assemblage
Foo2.netmodule
Métadonnées de
type
Foo1.exe
Image.jpg
Manifeste
Ref ver Foo2
Ref ver Image.jpg
Code CIL des
méthodes des types
méthodes des types
Ressources
(image, sons …)
Code IL des méthodes
des types
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
10
CLR

Common Langage Runtime


Le moteur d’exécution des applications .NET
Actions:
Compilation à l’exécution du code CIL
 Gestion des exceptions
 Gestion des domaines d’applications

. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
11
Compilation à l’exécution du code CIL
Assemblage
Compilation JIT
Langage source ------------------>code CIL -------------------------->langage machine

JIT – Just In Time


Compiler le méthode juste avant le premier appel
Avantages
Compiler qu’une fois le code source de haut niveau
 Distribuée sous forme d’assemblages
 Exécutable sur différents machines et différents OS

. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
12
Compilation à l’exécution du code CIL

2 types de compilateurs

Compilateur normal
Effectuer nombre d’optimisations
 Mais gourmand en mémoire et en temps machine


Compilateur économe


Remplacer CIL par langage machine équivalent
ngen.exe(Native Image Generator)
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
13
Gestion des exceptions




Chercher le gestionnaire d’exception
Si ne pas trouvé, terminer le programme
Sérialiser et propager l’exception
Parfois rattraper une exception
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
14
Gestion des domaines d’application

un domaine d’application




conteneur logique d’assemblage(s)
Assemblages chargés par CLR
Décharger un domaine d’application tout entier
Garantir l’isolation des domaines d’applications
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
15
Bibliothèque de classes de base





Environ 1400 classes
Namespace : ensemble de classes
La racine des namespaces : System
les types basiques comme Byte, Boolean,
Object…
Les application graphiques (Windows Forms)


System.Windows.Forms
ADO.NET et XML
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
16
Les conceptions nouveaux





La gestion du code durant l’exécution
Indépendance du OS et du matériel sous-jacent
Introduction d’une entité plus léger que
processus
Interaction entre un grand nombre de langages
…
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
17
Le langage C#
plan

Introduction
Types
 Structure d’un programme
 Membres
 Instructions


Notations complémentaires
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
18
Introduction
C#






Nouveau langage créé pour .NET
Hérite de C++ (Espace de nom:Namespace, pointeur: unsagecode, unsigned
types)
object
Ressemble à Java
Concepts clés :
Stream
Hashtable
int
 Composants orientés
MemoryStream
FileStream
 Tout est objet
Utilise les classes du framework .NET
Exemple: Hello World
double
using System;
class HelloWorld {
static void Main( ) {
Console.WriteLine("Hello world");
Console.ReadLine(); // Hit enter to finish
}
}
csc HelloWorld.cs
HelloWorld.exe
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
19
Introduction
Modèle d’exécution
MSIL
compilation
Code C#
JIT
Assemblage
Code natif
Runtime du système
.NET CLR
Code
Natif
Code
Natif
Code
Natif
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
Code
Natif
20
Types

Un programme C# est une collection de type


C# fournis un ensemble de types prédéfinis


i.e. int, byte, char,string, object,…
Les types sont




Classes,interfaces,structures,délégués,énumérations
Des données membres
Des fonctions membres
D’autres types
Champs, constantes, tableaux, évènements
Méthodes, opérateurs, constructeurs, propriétés, indexeurs
Il y a 2 catégories de types:valeur et référence
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
21
Types

Type Valeur






Contient des données
Ne peut être ‘null’
Primitives
Enumérations
Structures
int i = 123;
string s = "Hello world";
int i ; float x;
enum State { Off, On }
struct Point {int x, y; }
Type référence








Contient des références
vers des objets
Peut être ‘null’
Racine
Chaîne
Classes
Interfaces
Tableau
Delegates
i
123
s
object
string
class Foo: Bar, IFoo {… }
interface IFoo: IBar {… }
string[] a = new string [10]
delegate void Empty();
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
"Hello world"
22
Types

Bénéfice des types valeurs
Pas d’allocation dans le tas, moins de travail pour le
GC
 Meilleur utilisation de la mémoire
 Moins de référence indirecte

. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
23
Types

Types définis par l’utilisateur
Enumerations
enum
Arrays
int[], string[]
Interface
interface
Type référence
class
Type valeur
struct
Pointeur de fonction
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
delegate
24
Types
Enums
Enums

Grouper certaines constantes de même catégorie.
 Dérive de System.Enum

•C#
•Java
public enum Color {red, green, black, blue};
public void setColor(int color) {
public void setColor(Color color) {
if (color != RED && color != GREEN &&
if (Enum.IsDefined(typeof(Color), color) {
color != BLACK && color!=BLUE) {
…
}
…
}
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
25
Types
Interfaces

Une interface définie un contrat



Les interfaces permettent le polymorphisme


Elle contient méthodes, propriétés, indexeurs, évènements
Chaque classe or structure implémentant une interface doit supporter
toute les parties du contrat
Plusieurs classes et structures peuvent implémenter la même interface
Une interface ne contient pas d’implémentation

Elle doit être implémentée par une classe ou une structure
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
26
Types
Classes

Type référence défini par l’utilisateur




Similaire aux classes C++ ou Java
Héritage simple sur la classe
Peuvent implémenter de multiples interfaces
Contrôle d’accès

public, private, internal, protected,
protected internal


Le mode par défaut est private
Membres




public class JvnServerImpl:
MarshalByRefObject,
IJvnLocalServer,
IJvnRemoteServer {
…
}//class jvnServerImpl
Constantes, champ (fields), méthodes, opérateurs (constructeurs et destructeurs)
Propriétés, indexeurs, évènements
Membres par classe (static) ou par instance
Instantancié par l’opérateur new
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
27
Types
Struct

Similaire aux classes, mais



Ideal pour des objets ‘légers’





int, float, double, etc., sont des structures
Permet la définition de type primitifs par l’utilisateur
 Complex, point, rectangle, color, rational
Héritage multiple des interfaces
Même membres que les classes
Contrôle d’accès


Type valeur défini par l’utilisateur
Hérite toujours d’objet
public, internal, private
Instancié par l’opérateur new
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
28
Types
Delegates


Un délégué (delegate) est un type référence qui défini la
signature d’une méthode
Quand il est instancié, un délégué peut faire référence à
une ou plusieurs méthodes


De manière intuitive : un pointeur sur une fonction dans le
modèle objet
Sert de base pour la gestion des évènements
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
29
Structure d’un programme
Organisation des types

Organisation physique



Les types sont définis dans
des fichiers
Les fichiers sont compilés
en modules
Les modules sont
regroupés en assemblage
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
Assembly
Module(.dll/.exe)
File
Type
30
Structure d’un programme
Assembly


Désigner un ensemble de code/sources
Comporte 3 parties:



Un manifest
Des classes
Des meta-données
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
31
Structure d’un programme
Espaces de noms



Un nom de type doit être unique au sein d’un
espace de nom (Namespace)
Permet l’organisation logique des types
Il n’y a pas de relation entre les espaces de noms
et les fichiers (différence avec Java)
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
32
Structure d’un programme
Espaces de noms
Exemple

C#
namespace Irc {
…
namespace Jvn {
…
} //namespace Jvn
}//namespace Irc

Java
pakage Jvn;
public class JvnServerImpl{
…
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
33
Structure d’un programme
L’import de bibliothèques
 C#(JvnServerImpl.cs)
namespace Jvn {
using System;
using
System.Runtime.Remoting;

Java (JvnServerImpl.java)
pakage Jvn;
import java.rmi.*;
public class JvnServerImpl {
…
}
public class JvnServerImpl {
…
}
}

javac –classpath XX.class
JvnServerImpl.java

Variable d’environnement CLASSPATH
csc \r:System.dll JvnServerImpl.cs
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
34
Structure d’un programme
Méthode Main


L’exécution d’un programme démarre à la méthode
statique Main()
Une seule méthode avec une de ces signatures par
assemblage




static
static
static
static
void Main()
int Main()
void Main(string[] args)
int Main(string[] args)
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
35
Membres
Plan






Constantes
Champ (fields)
Opérateurs (constructeurs et destructeurs)
Propriétés
Indexeurs
évènements
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
36
Membres
Opérateur: Constructeur



Implémenter les actions nécessaires à l’initialisation d’une
instance de la classe
Le même nom que la classe
Ne retourne aucun paramètre
C#
public class JvnServerImpl {
…
private JvnServerImpl():base() {
…
}
…
}
Java
public class JvnServerImpl {
…
private JvnServerImpl {
super();
…
}
…
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
37
Membres
Opérateur: Destructeur



Implémenter les actions nécessaire pour détruire une
instance de la classe
Le même nom que la classe, précédé du caractère ~
Ne peut pas être appelé directement
public class JvnServerImpl {
…
private ~JvnServerImpl() {
…
}
…
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
38
Membres
Propriétés
Une propriété est un champ virtuel
• Ressemble à un champ, mais est implémenté
par du code
• Peut être read-only, write-only ou read/write
•


C#
public class JvnCoordImpl {
private int identification;
public int Identification {
get { return identification; }
set { identification = value; }
}
}
JvnCoordImpl coord = new JvnCoordImpl();
int id = coord.Identification;
//get
coord.Identification = id + 1;
//set
coord.Identifecation += 1;
//get / set
Java
public class JvnCoordImpl {
private int identification;
public int getId() {
return identification;
}
public void setId(int id) {
this.id = id;
}
…
}
JvnCoordImpl coord = new JvnCoordImpl();
int id = coord.getId();
coord.setId(id + 1);
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
39
Membres
Indexeurs



Un indexeur permet à une instance d’être un tableau virtuel
Peut être surchargé (i.e. indexé par int et par string)
Peut être read-only, write-only ou read/write
public class ListBox: Control {
private string[] items;
public string this[int index] {
get { return items[index]; }
set { items[index] = value;}
}
}
ListBox listBox = new ListBox();
listBox[0] = "hello";
Console.WriteLine(listBox[0]);
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
40
Membres
Evènements

C# supporte les évènements



Basé sur la notion de délégué
L’émetteur de l’événement, défini le délégué
Les clients de l’évènement enregistrent le traitement à
associer à l’évènement



Appel de += et de -= sur les délégués
Il ne peuvent pas créer les évènements
Les délégués multicast permettent à plusieurs objets de
s’enregistrer pour le même évènement
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
41
Membres
Evènements

• Exemple
C#
class Irc
{
…
Button read_button = new Button();
read_button.Text = “read”);
read_button .Click += new
System.EventHandler(this.read_Click);
…
private void read_Click(object serder, EventArgs e)
{
…
}
…
}

Java
public class Irc
{
…
Button read_button = new Button(“read”)
read_button.addActionListener
(new readListener(this));
…
}
class readListener implements ActionListener {
…
public void actionPerformed (ActionEvent e) {
…
}
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
42
Instructions
Survol





Expressions

checked, unchecked

lock

using
Conditionnels

if

Switch
Boucles

while

do

for

foreach
Sauts

break

continue

goto

return

throw
Exceptions

try

throw
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
43
Instructions
Threads: synchronisation

Lock


Exclusion mutuelle
Mis en oeuvre à l’aide de la classe
System.Threading.Monitor(Wait(),PulseAll(),
Pulse())
public class CheckingAccount {
decimal balance;
public void Deposit(decimal amount) {
lock (this) {
balance += amount;
} }
public void Withdraw(decimal amount) {
lock (this) {
balance -= amount;
} } }
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
44
Instructions
checked et unchecked

Les instructions checked et unchecked permettent de
contrôler le débordement dans les expressions arithmétique
et les affectations


checked force le contrôle
unchecked supprime le contrôle

Le mode par défaut est unchecked

L’utilisation de la directive /checked du compilateur permet
d’utiliser le mode checked par défaut
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
45
Instructions
checked et unchecked
using System;
class CheckedTest
{
public static void Main()
{
int num = 5000;
/* OVERFLOW I */
byte a = (byte) num; /* overflow detected only if /checked compiler option on */
/* OVERFLOW II */
checked
{
byte b = (byte) num; /* overflow ALWAYS detected */
}
/* OVERFLOW III */
unchecked
{
byte c = (byte) num; /* overflow NEVER detected */
}
}//Main
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
46
Instructions
Exceptions

C#

public static JvnServerImpl JvnGetServer() {
try {
…
}
catch {
…
}
finally {
…
}
}
Java
public static JvnServerImpl JvnGetServer()
throws RemoteException{
try {
…
}
catch {
…
}
finally {
…
}
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
47
Notions complémentaires




Classes et structures
Boxing et unboxing
Attributs
Commentaires en XML
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
48
Classes et Structures
Différences
Class
Type référence
Structure
Type valeur
Hérite les types références Ne support pas l’héritage
non-sealeds
Peut définir le
constructeur sans
paramètre
Pas de constructeur sans
paramètre défini par l’utilisateur
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
49
Classes et Structures
Similarités

Chacune



Est un type défini par l’utilisateur
Peut implémenter plusieurs interfaces
Peut contenir

Données


Fonctions


Champs, constantes, événements, tableaux
Méthodes, propriétés, indexeurs, opérateurs, constructeurs
Définition de types

Classes, structures, énumérations, interfaces, délégués
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
50
Classes et Structures
Exemple
struct SPoint { int x, y; ... }
class CPoint { int x, y; ... }
SPoint sp = new SPoint(10, 20);
CPoint cp = new CPoint(10, 20);
sp
10
20
cp
CPoint
10
20
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
51
Boxing et unboxing


Boxing: type primitif(valeur) ->
object(référence)
UnBoxing:Opération inverse du boxing
int i = 123;
i
object o = i;
o
int j = (int)o;
123
System.Int32
123
j
123
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
52
Les attributs



Un moyen d’insérer des annotations(i.e méta-données)
Un moyen de fournir des informations au runtime dans le but
d’exécuter des tâches additionnelles ou d’étendre les
caractéristiques d’un type donné.
Exemple:



[MethodImpl(MethodImplOptions.Synchronized)]: Similaire au mot-clé synchronized de Java.
[Serializable]: Similaire à l'implémentation de l'interface java.io.Serializable de Java.
Peut créer ses propres attributs de Runtime en sous-classant
System.Attribute
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
53
Commentaires en XML

C# donne la possibilité de produire de la
documentation en lien avec le code compilé

C# permet d’écrire ces commentaires en XML


Début du commentaire : ///
Un document XML est généré lors de la compilation du
code avec l’argument /doc
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
54
.NET Remoting
plan






Introduction
Base du .NET Remoting
Marshalling
Client activated
Server activated
Configuration
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
55
.NET Remoting
Introduction


Infrastructure de l’architecture .NET
Motivation: Invocation des méthodes sur des objets
distants
 Ressemble à Java RMI
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
56
.NET Remoting
Base du .NET Remoting

Terminologie - Architecture

Channels

Deux Transports standard- http://
ou tcp://



Http:// - fonctionne avec les
firewalls
Tcp:// - “high speed”, format
binaire
Formatters

Transformer les Messages en
Stream



Binaire
Soap 1.1 “Compliant”
Personnalisé
Messages
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
57
.NET Remoting
Marshalling

Marshall by Reference




Dérive de :
System.MarshalByRefObject
Accessible via des Proxy
L’objet reste sur le serveur
Marshall by Value

Les objets sont sérialisés



Attribute [Serializable]
Implement ISerializable
L’objet est recopié vers le client
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
58
.NET Remoting
Client Activated

Créé par le Client

Le Client contrôle
la durée de vie

Lease : bail
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
59
.NET Remoting
Server Activated

Le serveur est responsable de la durée de vie
de l’objet

Configuration
<wellknown
mode=“SingleCall” ou
“Singleton”
type=“type,assembly”
objectUri=“myobject” />

Programmation


Créer un Type Wellknown
Enregistrer sur le serveur
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
60
.NET Remoting
Configuration par fichier

Fichier de configuration
<configuration>
<System.Runtime.Remoting>
<application>
<service>
<wellknown mode=“Singleton”
type=“Namespace.Class,Assembly”
objectUri=“URI”/>
</service>

Méthode : RemotingConfiguration.Configure(“config file”)

La Méthode fonctionne coté serveur et coté client
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
61
.NET Remoting
Configuration Dynamique



Cache les informations de configuration aux
utilisateurs
Facile a déployer
Nécessite une recompilation à chaque
modification du paramétrage…
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
62
.NET Remoting
objet distribué
public class ServiceClass : MarshalByRefObject
{
private DateTime starttime;
public ServiceClass()
{
Console.WriteLine("A ServiceClass has been created.");
starttime = DateTime.Now;
}
~ServiceClass()
{
Console.WriteLine("This object is being collected after " + (new TimeSpan(DateTime.Now.Ticks starttime.Ticks)).ToString() + " seconds.");
}
public DateTime GetServerTime()
{
Console.WriteLine("Time requested by a client.");
return DateTime.Now;
}
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
63
.NET Remoting
Coté serveur
using System;
using System.Diagnostics;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
public class ServerProcess
{
public static void Main(string[] Args)
{
RemotingConfiguration.Configure("server.exe.config");
Console.WriteLine("Press enter to stop this process.");
Console.ReadLine();
}
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
64
.NET Remoting
Coté client
using System;
using System.Runtime.Remoting;
public class Client
{
public static void Main(string[] Args)
{
RemotingConfiguration.Configure("Client.exe.config");
ServiceClass service = new ServiceClass();
Console.WriteLine(service.GetServerTime());
}
}
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
65
.NET Remoting
configuration de serveur
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="SingleCall"
type="ServiceClass, ServiceClass"
objectUri="RemoteObject"
/>
</service>
<channels>
<channel port="8080" ref="http" />
</channels>
</application>
</system.runtime.remoting>
</configuration>
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
66
.NET Remoting
configuration de client
<configuration>
<system.runtime.remoting>
<application>
<client>
<wellknown
type="ServiceClass, ServiceClass"
url="http://localhost:8080/RemoteObject"
/>
</client>
Declaration d‘un point de
terminaison de type
singleton
<channels>
<channel ref="http">
<clientProviders>
<formatter ref="soap"/>
<provider ref="propsetter" username="bob" writeToConsole="true">
domain="hello" />
</provider>
</clientProviders>
</channel>
</channels>
Canal associé
avec application
</application>
<debug loadTypes="true" />
</system.runtime.remoting>
</configuration>
Encodeur de format associé
avec un canal
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
67
.NET Remoting
Demo

Exemple
Server
Client
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
68
Quelques ressources









http://msdn.microsoft.com
http://windows.oreilly.com/news/hejlsberg_0800.
html
http://www.csharphelp.com/
http://www.csharp-station.com/
http://www.csharpindex.com/
http://msdn.microsoft.com/msdnmag/
issues/0900/csharp/csharp.asp
http://www.hitmill.com/programming/dotNET/cshar
p.html
http://www.c-sharpcorner.com/
http://msdn.microsoft.com/library/
default.asp?URL=/library/dotnet/
csspec/vclrfcsharpspec_Start.htm
. NET & C# - Master 2 pro (SRR)
Chen Shan & Liu Ying
69
Téléchargement