Domaine d'application vs Processus [Résolu]

Signaler
Messages postés
64
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
23 octobre 2009
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour à tous,


Je suis actuellement en train de réaliser une application perso et j'ai
du mal à comprendre ce qu'est réellement un domaine d'application en
.Net.


D'après ce que j'ai pu comprendre, le domaine d'application est un
contexte dans lequel on lance des programmes (assemblys). Ce que je ne
comprends pas, c'est quelle est l'utilité d'un domaine d'application ?
Faut il le préférer à un processus ?


Exemple concrêt : J'ai un service qui vérifie toutes les minutes, si
une tâche est à executer. Si il y'a une tâche à executer, il lance une
nouvelle application (une sorte de TodoList). Pour le moment, je lance
ma todolist à l'aide de l'objet Process, en faisant un
Process.Start(...);


Cela est-il correct ou dois-je plutot utiliser un domaine d'application ? Pourquoi ?


Merci d'avance,


A+.

3 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Salut,

Le domaine d'application fourni un niveau d'isolation supplémentaire.
De manière simple je pense que tu peux te représenter le domaine d'application comme un "processus léger" dans le processus réel, qui peut être déchargé sans pour autant terminer le processus.

Un exemple connu d'utilisation des domaines d'application est l'hébergement d'applications web ASP.NET (sites, web services, ...) : sur du IIS pré-6.0, chaque application est hébergée dans un domaine d'application qui lui est propre dans le processus aspnet_wp.exe.
Sous IIS 6.0 et sup avec le principe de pool d'application ces applications sont hébergée de la même manière mais dans un processus w3wp.exe séparé suivant le pool d'application dans laquelle l'application web est placée.

Pour de plus amples informations tu peux démarrer par la page de la documentation de la classe AppDomain mais aussi par ce post de Chris Brumme : AppDomains ("application domains")

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
64
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
23 octobre 2009

Merci beaucoup ;)
Cela me parait beaucoup plus clair.

Cependant j'ai tout de même un cas concrêt à demander :
Je dois créer une application qui tourne en arrière plan et qui vérifie continuellement si une autre application (de la même solution) est lancée ou non, et si elle doit être lancée.
1) La première (celle qui check la seconde) est lancée à partir de la méthode Thread.start qui me permet de définir un thread avec une priorité élevée et qui évite que l'OS ne le supprime.
2) La deuxieme est lancée par la premier, par un autre Process.start. Cette action pointe sur l'executable de la 2e application.

Est-il préférérable d'utiliser les domaines d'applications dans ce cas là ?
Si je suis dans un Compact Framework, est-ce que tu penses toujours pareil ?

Merci beaucoup !
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Moi et le développement en CF sur Pocket & co, ça fait 2.
Tu devrais peut être voir sur PDAFr.com (même compte utilisateur).

/*
coq
MVP Visual C#
CoqBlog
*/