Modifications non prises en compte des .vb d'un site compilé asp.net

Modifications non prises en compte des .vb d'un site compilé asp.net - C#/.NET managed - Programmation

Marsh Posté le 16-02-2009 à 11:05:59    

Bonjour à tous,
 
Je vous explique le contexe. J'ai un site intranet (developpé par une petite boite), fait en DOTNET, à améliorer et
à debugguer.
Les fichiers qui sont intéressants sont .aspx (pour affichage) et .vb (qui contiennent des méthodes, fonctions...). Je peut apporter des
modifications aux fichiers .aspx mais pas avec les .vb quant je modifier le code des fichiers .vb les modifications ne sont pas prises en compte  :( .
Vraisemblablement vu que le site est déjà compilé, le code des fichiers .vb est stocké ailleurs (en « assemblies » qui sont des fichiers
binaires). Donc, je souhaite que les modifications des .vb soient prises en compte.  
 
Merci d'avance pour votre aide.
 

Reply

Marsh Posté le 16-02-2009 à 11:05:59   

Reply

Marsh Posté le 16-02-2009 à 17:20:02    

En fait tu essayes de modifier à chaud les .vb et tu veux que ça prenne la modif en compte?  
Il y a peut être un mode de déploiement qui permet ça, mais tu peux pas plutôt recompiler ton site et redéployer les aspx et dll?

Reply

Marsh Posté le 16-02-2009 à 20:34:16    

tout dépend la structure de son site et de son déploiement.  
Soit tu as déployés ton site en faisant un "publish" dans visual studio. Dans ce cas, repasse par la même méthode pour redéployer ton site.  
 
Soit tu as simplement copiés les fichiers de ton site (.aspx et .vb) sur l'IIS. Dans ce cas la, tu peux en principe modifié à la volée les fichiers sans recompilé puisque le site est compilé à la volée par IIS si les fichiers ont été modifiés (en tout cas, en C# ça marche comme cela).


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

Marsh Posté le 17-02-2009 à 12:15:36    

D'abord merci pout vos reponses.
 
Voici quelque precisions, le site intranet est fait par une boite externe donc j'ai recuperé le code source de plus les fichiers source sont sur une machine virtuelle alors que Visual Studio 2005 est installé sur ma machine, donc je modifie les fichiers depuis ma machine et quand je teste je passe par IIS. J'ai fait un petit test en créant une page .aspx donc ya son aspx.vb qui est généré tout seul, là les modifs dans ce fichier sont bien prises en comptes alors que les modifs des .vb du code source n'ont aucun impact.  
 
PS: Pour répondre à moi23372 : le site est recompilé vu que je passe par IIS. J'ai vraiment l'impression que les .vb source servent à rien vu que l'appli continue à tourner meme en supprimant les .vb source.


Message édité par moba86 le 17-02-2009 à 16:24:15
Reply

Marsh Posté le 17-02-2009 à 17:47:58    

ces .vb font t'il partie d'une librairie (dll?)


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

Marsh Posté le 18-02-2009 à 09:41:51    

Non je ne sais pas (je suis vraiment debutant en .NET). En tout cas pour chaque toto.aspx j'ai au debut le code (<%@ Page Language="VB" AutoEventWireup="false" MasterPageFile="~/masters/main.Master" CodeBehind="toto.aspx.vb" Inherits="Myprojet.toto" %> )  y a son toto.aspx.vb dans le meme dossier.


Message édité par moba86 le 18-02-2009 à 11:26:20
Reply

Marsh Posté le 18-02-2009 à 11:57:33    

Ce modèle de déploiement (c'est à dire avec tte les sources) est rarement utilisé, justement pour pas que les sources soient distribuées. Ce qui est sur c'est que ton code va être compilé en une/des dll lors des premières requêtes sur ton site, la question c'est est-ce qu'asp.net recompile ces dll en cas de changement du source. Je ne sais pas, on dirait que non.  
 
Pour info un article sur les différents modèles de compilation/déploiement d'asp.net: http://msdn.microsoft.com/en-us/magazine/cc163675.aspx .
 

Reply

Marsh Posté le 19-02-2009 à 11:32:37    

J'ai lu l'article que tu ma envoyé tamino et je te remercie. Dans l'artice il y a un paragraphe que je trouve particulierement interessant qui est :
 
"Well, it turns out that the original implementation of codebehind in ASP.NET 2.0 did exactly this—the codebehind class was just a partial class that was merged with the parsed .aspx file class definition. It was simple and effective, but unfortunately, not flexible enough. The problem with this model was that it was no longer possible to deploy the codebehind files in precompiled binary assemblies along with intact .aspx files since they now had to be compiled at the same time (a restriction when using partial classes is that all partial pieces of a class must be merged during a single compilation, and class definitions cannot span assemblies). This restriction was unacceptable to many developers as they were already used to being able to deploy binary codebehind assemblies along with intact .aspx files which could then be updated in place without having to recompile. This is, in fact, the exact model used by default in Visual Studio .NET 2003, and is thus very prevalent in practice."
 
Donc, il n'est pas possible de deployer les fichiers du codebehind (.vb) dans les assemblies. Mais je ne vois toujours pas comment modifier les fichiers .vb. J'ai l'impression que le site qui m'ont fourni est deja compilé et après ils ont simplement fait un copier coller des fichiers .vb. En tout cas il n'y plus de lien (voir 'CodeBehind') entre un fichier toto.aspx et son toto.aspx.vb vu que je peut meme supprimer le toto.aspx.vb et toto.aspx continue à fonctionner sans probleme.
 
Voilà un bout de code d'un fichier .aspx (la plupart des fichiers .aspx comment comme ce code):
 
<%@ Page Language="VB" AutoEventWireup="false" MasterPageFile="~/masters/mp_main.Master" CodeBehind="toto.aspx.vb" Inherits="ProjectName.toto"  
    title="toto list" %>
     
<%@ Register Assembly="ProjectName" Namespace="ProjectName" TagPrefix="ProjectName" %>
<%@ MasterType TypeName="ProjectName.mp_main"  %>
 
Je me demande si il n'y pas moyen de recompiler mon appli via le fichier web.config ou IIS pour que les modfis des .vb soient prises en compte. Ou peut etre que le site a été précompilé afin d'empêcher les modifs des fichiers source vu qu'on peut précompiler un site .NET de différentes manières.


Message édité par moba86 le 19-02-2009 à 12:11:40
Reply

Marsh Posté le 20-02-2009 à 17:04:08    

C'est bon mon problème est résolu:
 
Cause: mauvaise configuration + problème de droit + ...
 
En tout cas merci à tous pour votre participation.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed