Archives de catégorie : Code

Configurer visual studio 2008 pour debugger Silverlight

But: Configurer visual studio 2008 pour debugger Silverlight et donc pouvoir insérer des break points, soit en mode debug, soit en attachant une  exécution.

Tout d’abord, visual studio 2008 doit être configuré pour debugger du silverlight, pour cela, dans les « Property Pages » du projet web, Start Options, cochez Debuggers-> Silverlight :

Dans Internet Explorer, autorisez le debuggage externe dans les options:

Enfin Pour attacher une exécution de Silverlight à Visual Studio 2008, Debug->Attach To Process->Attach To=Silverlight(beta1) ou Managed en Alpha

et sélection du browser internet explorer ou firefox contenant la page silverlight avec un clic droit->ouvrir avec.

Appliquer une configuration en .Net

Une configuration d’application peut provenir de plusieurs endroits:

  • de la racine de l’application (appliquée par défaut)
  • du compte utilisateur
  • d’un path quelconque

Le premier cas est appliqué par défaut, donc occupons-nous des 2 suivants.

Dans le cas du compte utilisateur, le framework .Net va automatiquement récupérer la bonne configuration suivant le niveau d’accès choisi.

Un exemple de code:

System.Configuration.Configuration config;
config = ConfigurationManager.OpenExeConfiguration(configAccessLevel);

Enfin à partir d’un chemin d’accès:

public static System.Configuration.Configuration GetConfigByPath(string path)
{
      if (!File.Exists(path)) return null;

       ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
       fileMap.ExeConfigFilename = @path;
       return ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
}

Attacher une console à une application WinForm

Au sein d’un projet WinForm pur, si l’application est lancée à partir d’une console (cmd), Console.Out n’écrira pas sur cette dernière pour la raison suivante:
la fenêtre de console est contenu dans le processus « cmd.exe », ce dernier instancie l’application dans un nouveau processus indépendant.

Pour lier l’application à la console appelante, nous devons faire coopérer notre application avec la console parent.
Pour ce faire, nous allons utiliser les fonctions COM du systèmes d’exploitation.

Lien MSDN:
http://msdn2.microsoft.com/en-us/library/ms682073.aspx

Exemple de mise en place:

//AttachConsole nous permettra de d'attacher un processus console au processus courant.
//FreeConsole nous permettra de les détacher.

[DllImport("kernel32.dll")]
static extern bool AttachConsole( int dwProcessId);

const int PARENT_PROCESS=-1;

[STAThread]
static void Main(string[] args)
{
        AttachConsole(PARENT_PROCESS);
}

Src:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/attachconsole.asp