IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

VB et C# mélangé


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut VB et C# mélangé
    Bonjour

    Je viens de tenter un truc que je croyais posible, mais Visual Studio essaie de raconter le contraire.

    J'ai fait une classe externe en C# alors que tout mon projet est en VB.

    Et au momnet de compiler il me dit :
    Erreur 1 Les fichiers '/App_Code/TextBoxAuto.cs' et '/App_Code/MonProfileProvider.vb' n'utilisent pas la même langue, ce qui n'est pas autorisé puisqu'ils doivent être compilés ensemble. /
    J'avais pourtant cru comprendre qu'on pouvait mélanger les deux langagaes, tant que ça se faisait dans des fichiers séparés

    Quelqu'un pourait il me venir en aide.

    PS : pour ceux qui se demande pourquoi je fais un tel truc bizarre c'est simple : j'ai trouvé un tuto cool pour une Texte qui s'autovalide, mais la traduction en VB ne marche pas.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu peux utiliser une DLL développée dans un langage différent mais c'est tout

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    OK, j'avais cru lire dans un des sites de Microsoft qu'on pouvait mélanger, mais bon, j'ai du réver.

    Merci

  4. #4
    Courgette17
    Invité(e)
    Par défaut
    J'ai personnellement tous les fichiers en aspx.vb de mon site dans le répertoire racine de celui-ci et des fichiers aspx.cs dans mon répertoire App_Code pour le SampleAccessProvider.

    Mais je n'ai pas les 2 langages dans le même répertoire donc.

    Sinon pour convertir entre les 2 langages, il y a ce site qui me parait assez efficace:
    http://labs.developerfusion.co.uk/co...arp-to-vb.aspx

    (en tout cas plus efficace que le convertisseur de Codes Sources).

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci MadMarc pour ton lien, mais tu l'avais déjà filé et je l'utilise à fond, parce qu'il est vraiment bien.

    Sinon, tu pense qu'il faut simplement que les fichiers ne soit pas dans le même répertoire. Mais je suis ennuyé car j'ai des classes externes dans le répertoire App_Code en VB et là je voudrais juste en faire une en C#, mais j'ai peur que VS n'accepte pas que je mette une classe ailleurs que dans App_Code

    Sinon, je peux aussi te soummetre le code C# et le code VB, vu que tu à l'air de maitriser les deux. Qu'en penses tu ?

    Pour info c'est le tuto qui se trouve là : http://nx.developpez.com/articles/validatingtextbox/

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Si ton problème est de convertir du c# en vb.net, c'est pas bien compliqué qd même

  7. #7
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Un seul langage par projet

    Solution
    - Projet 1 :VB
    - Projet 2 : C#
    - ...

  8. #8
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    @Kelpan : visiblement, c'est pas ce que MadMarc

    @LuteceFalco : oui, je sais, mais je bloque sur un truc dans le tuto. visiblement l'implémentation de l'interface ne se fait pas ou c'est peut être une limite de VB, mais je ne maitrise pas assez la bestiole pour comprendre.

    Maintenant j'ai plusisuers solution :
    - MadMarc est cool et me démpanne
    - je vais dan le forum C# pour demander de l'aide, mais vu que je viens de VB ils vont me jeter......
    - je compile tout dans un DLL à part

    Bref, au départ, je voulais juste tester la textbox qui s'autovalide

    Mais, merci beaucoup pour votre aide à tous. Si seulement je pouvais avoir autant d'aide sur mon autre sujet du moment, ça me serais bien utile.

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    C'est le mot clé Implements pour l'interface

  10. #10
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ouais ça je sais, c'est justement là qu'il pose un souci.

    Voici le code transformé en VB (enfin le début) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Namespace MonProjet
    	Public Class SelfValidatingTextBox
    		Inherits TextBox
    		Implements IValidator
    		Private _Required As Boolean
    		Private _RequiredType As String = "string"
     
    		Private _ErrorMessage As String
    		Private _IsValid As Boolean
    		Private _TypeValidator As New TypeValidator()
     
    		Public Sub New()
    			MyBase.New()
    		End Sub
     
    		Public Overridable Sub Validate()
    			' Si le TextBox est caché ou indisponible il doit renvoyer IsValid = true 
     
    			If Not MyBase.Visible OrElse Not MyBase.Enabled Then
    				Me.IsValid = True
    				Return
    			End If
    Et sur le "Implements IValidator" il dit :
    Erreur 10 Class 'SelfValidatingTextBox' doit implémenter 'Sub Validate()' pour l'interface 'System.Web.UI.IValidator'. C:\Documents and Settings\Erick\Local Settings\Temp\VWDWebCache\monsite\App_Code\TextBoxAutoValid.vb 13 14 http://monsite/
    Alors qu'il est facile de constater que la Sub Validate est bien présente.

    Pour info, la tournue en C#, que je comprends pas bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    namespace nx.Web.UI.Controls
    {
    	public class SelfValidatingTextBox : TextBox, IValidator
    	{
    		private bool _Required;
    Donc, peut être que la déconnade vient d'un souci de translation de code.
    Sans compter qu'il pose aussi un autre souci sur le "Private _TypeValidator As New TypeValidator()" mais je pense que ça doit être lié.

    Est ce que tu vois le souci ?

  11. #11
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Erreur 10 Class 'SelfValidatingTextBox' doit implémenter 'Sub Validate()' pour l'interface 'System.Web.UI.IValidator'. C:\Documents and Settings\Erick\Local Settings\Temp\VWDWebCache\monsite\App_Code\TextBoxAutoValid.vb 13 14 http://monsite/
    Si je me rappelle bien de mes annees de VB, il faut que tu ecrives

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public Overridable Sub Validate() Handles IValidator.Validate()

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  12. #12
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par pvialatte Voir le message
    Si je me rappelle bien de mes annees de VB, il faut que tu ecrives

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public Overridable Sub Validate() Handles IValidator.Validate()
    J'aurais mis Public Overridable Sub Validate() Implements IValidator.Validate()

  13. #13
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour votre aide, je sens que ça avance, les messages d'erreur changent.

    Alors avec le Handles (version pvialatte) ça donne :
    - même message sur la ligne du Implements
    - et sur la ligne de la Sub il demande une clause WithEvents que je ne sais pas définir.
    Si j'enlève la ligne du Implements c'est pas mieux.

    Avec le Implements (version LuteceFalco) ça donne :
    - un autre message d'erreur sur la ligne du Implements du haut :
    Erreur 8 Class 'SelfValidatingTextBox' doit implémenter 'Property IsValid() As Boolean' pour l'interface 'System.Web.UI.IValidator'. La propriété d'implémentation doit avoir des spécificateurs 'ReadOnly' ou 'WriteOnly' correspondants. C:\Documents and Settings\Erick\Local Settings\Temp\VWDWebCache\monsite\App_Code\TextBoxAutoValid.vb 13 14 http://monsite/
    J'ai regardé dans l'explorateur d'objet et IValidator sur sa propriété IsValid() n'est ni ReadOnly, ni WriteOnly
    Donc, je nage, enfin, je coule plutôt.

    Une autre idée peut être ?

  14. #14
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Le message est pourtant clair. Tu dois implémenter la propriété IsValid:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public property IsValid Implements IValidator.IsValid

  15. #15
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci LuteceFalco

    Mais en fait non, c'est pas si clair. Je viens de faire le copier collé de ton code et j'ai fait la même chose sur la proiété ErrorMsg mais jsute parce que j'avais le même message d'erreur.

    Mais l'ennui c'est que je ne sais pas pourquoi j'ai fais ça. En fait, j'ai beaucoup de mal dés qu'il faut implémenter (et je ne suis même pas sur du terme) une classe existante (pareil, je suis pas sur qu'il faut parler de classe ou d'objet). En gros, mon niveau de POO est faible, je viens du monde du script (ASP 3.0 pendant 10 ans). Donc je capte des concept, amis d'autre sont plus complexe, surtout quand il n'y a pas de tuto adapté à mon besoins de connaissance. Tout ceux que j'ai lu parle comme des grands livre, de manière beaucoup trop empirique pour un cerveau comme le mien. Si j'ai pas fait d'étude et que je n'ai aps de diplome d'ingé, c'est pas pour rien : il me faut du concrrt et du pragmatique.

    En tout cas merci à toi, merci à tous. Le machin marche, enfin y a plus de message d'erreur. Maintenant va falloir que je comprenne comment ça amrche, aprce que ça n'a pas l'air aussi évident que ça et en plus, le gars qui a fait le tuto n'a pas donné de manuel d'utilisation avec, ......

  16. #16
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu dois prendre l'interface comme un contrat imposé.
    Si une classe implémente une interface, elle doit respecter ce contrat.
    Et pour cela, la classe doit implémenter (contenir) toutes les fonctions et propriétés fournies par l'interface

    C'est exactement ce que t'indique le msg d'erreur:
    'SelfValidatingTextBox' doit implémenter 'Property IsValid() As Boolean' pour l'interface 'System.Web.UI.IValidator'.

  17. #17
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ouais, ça c'est un concept que j'ai fini par capter.

    Mais est ce que je peux en déduire "bêtement" qu'il faut déclarer un Implements "la classe que l'on veut copier" et des Implemtens laclasse.lasub que l'on veut dupliquer pour chaque sub existante dans la classe de base ?

    Et toujours dans le même sujet : est ce que l'Implements se borne aux classes dites abstraite (terme dont la signification exacte m'échappe) ou est ce qu'on peut le faire pour tout le monde sans distinction ?

    Vois tu le genre de souci que je peux avoir dans l'absolu et donc le genre de tuto que j'aimerais bien trouver ?

    En tout cas, vraiment merci, à chaque message avec toi, j'apprends un truc nouveau.

  18. #18
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Nop, là tu confonds implémenter une interface et hériter d'une classe

  19. #19
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052

  20. #20
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour les lines, ça m'a l'air super top, sur celui de Developpez.com

    Et tu vois que j'ai plein de problème dans ma tête pour faire de la POO correctement.

    Bon allez, je lirez ça dés que j'aurais un moment de creux, promis.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] mélange php et javascript
    Par nicoaix dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2005, 17h54
  2. [Débutant] Eclipse mélange mes servlets
    Par kennie77 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/11/2005, 11h15
  3. réseau et mélange windows XP pro et window XP familiale
    Par maniaco_jazz dans le forum Développement
    Réponses: 5
    Dernier message: 15/08/2005, 11h01
  4. Mélange du résultat d'un select
    Par elmaxbo dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/05/2005, 13h01
  5. événements mélangés
    Par ceugniet dans le forum C++Builder
    Réponses: 9
    Dernier message: 26/01/2005, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo