Quizz Silverlight : Pourquoi VS 2008 ne stocke pas les DLL de Silverlight 1.1 dans /bin ?


Allez, on inaugure le premier d'une série de Quizz rapides sur Silverlight.


Y'a rien à gagner, si ce n'est de découvrir des aspects méconnus de Silverlight de façon ludique. Si vous n'avez pas la réponse, c'est a priori que vous pouvez apprendre un truc au sujet de Silverlight en lisant les commentaires : ils contiendront forcément la bonne réponse à un moment, et je vous la signalerai.


Premier Quizz sur Silverlight :


En Silverlight 1.1, le modèle de développement permet d'utiliser les langages managés de .NET tels que C#, contrairement à Silverlight 1.0 qui ne supporte que le script Javascript. Votre code en Silverlight 1.1 est compilé de façon tout à fait classique sous la forme d'une DLL - que vous pouvez d'ailleurs ouvrir avec l'outil Reflector.


Avec Visual Studio 2008 (nom de code Orcas), quand vous créez une application Web et que vous référencez un projet Silverlight 1.1 via "Add Silverlight link...", Orcas va copier le XAML représentant votre scène Silverlight dans votre nouveau projet Web, et il va aussi copier la ou les DLL dans un répertoire spécial, qui n'est pas le répertoire /bin classique dans lequel les assemblies ASP.NET sont déployées.


La question est double :



  1. Comment s'appelle le répertoire dans lequel Visual Studio 2008 va copier les DLL de votre application Silverlight ?

  2. Pourquoi ne copie-t-il pas tout simplement ces DLL dans le répertoire /bin ?

A vos claviers 😉


Hint: La réponse à la 1ère question figure dans le webcast de la session "Développement Web" du Mix07 à Paris, c'est Pierre qui en parle... et la réponse à la seconde est pratiquement évidente une fois que vous avez la première.

Comments (8)

  1. Florian says:

    Hmmm… tu veux dire dans le même dossier /bin que ASP.NET ?

    Je dirai que c’est parce que le code est exécuté sur le client via le mini runtime de Silverlight 1.1

  2. CLaueR says:

    @Florian : Nice try, mais réponse incomplète.

    Comment s’appelle ce répertoire, et pourquoi est-il différent du /bin de ASP.NET ?

    Anybody ?

  3. Arnaud Weil says:

    Voilà un quizz sympa! Je vais faire comme Florian, avec d’autres détails.

    D’une part, le répertoire /bin contient les exécutables qui sont exécutés sur le serveur. Ne serait-ce que pour éviter les conflits, les DLLs Silverlight à exécuter sur le client doivent être dans un répertoire à part.

    D’autre part, le répertoire /bin est interdit à l’accès par le client (sécurité oblige). Comme les DLLs Silverlight client doivent être téléchargées par le client, elles doivent  être dans un répertoire séparé, à l’accès autorisé.

    Ceci dit, la deuxième réponse n’est pas une vraie justification: on pourrait faire un .ashx qui exposerait une DLL du bin (mais encore une fois, niveau sécurité c’est pas top).

  4. CLaueR says:

    @Arnaud Weil: Clair et limpide. You won.

    @Florian : Better luck next time. On est des experts, hein pas vrai ? Alors les réponses et les explications ne peuvent pas être approximatives. Je plaisante, bien sur 🙂

    See you!

  5. CLaueR says:

    @Arnaud : Mais dis-moi, gredin, tu n’as pas donné la première réponse! Et je me suis laissé piéger…

    Comment s’appelle ce répertoire contenant les DLL de Silverlight 1.1 ?

  6. Arnaud Weil says:

    Ah ben non, pas de première réponse. J’ai bien Visual Studio 2008 beta 2, mais je n’ai pas pris le temps d’installer les extensions pour Silverlight (j’ai déjà passé tellement de temps à installer celles pour ADO.NET Entity Framework, AJAX toolkit, Sharepoint et autres  que j’ai des excuses).

    Et puis je trouve que ça serait trop facile de regarder la vidéo pour y trouver la réponse. 🙂

Skip to main content