Domaine d'application vs Processus

Résolu
t00f Messages postés 64 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 23 octobre 2009 - 25 avril 2008 à 16:35
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 30 avril 2008 à 23:52
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 avril 2008 à 22:52
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
*/
3
t00f Messages postés 64 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 23 octobre 2009
28 avril 2008 à 09:58
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 !
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
30 avril 2008 à 23:52
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
*/
0
Rejoignez-nous