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

Dotnet Discussion :

Remplacer DirectoryServices pour optimiser appel à AD en .NET


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Par défaut Remplacer DirectoryServices pour optimiser appel à AD en .NET
    Bonjour à tous,

    Dans le cadre d'une application en VB.NET (je suppose que la question s'applique également pour une utilisation C#), je cherche à remplacer l'utilisation des objets du langage du package System.DirectoryServices. Tout fonctionne très bien, malheureusement les temps d'exécution est vraiment trop important. Par exemple, une exécution de cette ligne sur un DirectoryEntry prend environ 30 ms (UserName est le nom d'utilisateur dans AD) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                Searcher.Filter = "(SAMAccountName=" & UserName & ")"
                Try
                    Return Searcher.FindOne.GetDirectoryEntry
                Catch ex As Exception
                    Return Nothing
                End Try
    Un second appel qui prend également environ 30 ms :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    entry_property = entry.Properties.Item("memberOf")
    Une autre application de chez nous, écrite en Java, traite les comptes AD avec un temps d'exécution maximal cumulé pour l'appel et le traitement de maximum 20 ms. En comparaison, notre traitement avec ces objets en .NET est entre 200 et 300 ms à chaque appel.

    Ma question donc : est-il possible, et si oui comment, de récupérer les informations d'un compte AD autrement que par la librairie DirectoryService ? La recherche Google m'a pas été très utile, la totalité des liens que j'ai trouvé montrent des exemples très similaires à notre utilisation, 100% utilisant DirectoryServices.

    J'ai l'impression que ces objets très complexes du langage procurent une simplicité de programmation au détriment de la performance. Nous avons déjà changés pour une bonne partie nos DataSets pour des Hashtables de Hashtables avec des gains de performance gigantesque (la syntaxe en était d'ailleurs pas beaucoup moins lisibles dans notre implémentation).

    Merci d'avance si vous avez des conseils pour cette optimisation (remplacement de DirectoryServices par autre chose ou conseils d'optimisation de la librairie elle-même).

    Salutations !

  2. #2
    Membre confirmé Avatar de timiteh
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 90
    Par défaut
    La solution au problème m'intéressant au plus au point je vais me pencher sur le problème.
    Toutefois j'ai l'intuition qu'il ne doit pas y a voir de solution simple en .Net mais peut être que l'utilisation de dll en C/C++, donc code unsafe, pourrait résoudre le problème.
    En tout cas c'est dans cette voie que je vais chercher une solution.

  3. #3
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Par défaut
    Tiens moi au courant de tes avancements. J'ai pensé pour ma part à exécuter un morceau de code Java depuis .NET vu que j'ai déjà vu que la performance d'appel en Java était très largement meilleure. Mais ça pose pas mal de problèmes de configuration pour nos serveurs, le Java étant normalement déployé uniquement sur des serveurs Unix.

  4. #4
    Membre confirmé Avatar de timiteh
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 90
    Par défaut
    Citation Envoyé par Lordsephiroth Voir le message
    Tiens moi au courant de tes avancements. J'ai pensé pour ma part à exécuter un morceau de code Java depuis .NET vu que j'ai déjà vu que la performance d'appel en Java était très largement meilleure. Mais ça pose pas mal de problèmes de configuration pour nos serveurs, le Java étant normalement déployé uniquement sur des serveurs Unix.
    Ok. Si je fais des avancées significatives je les posterai ici.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/10/2013, 12h40
  2. Réponses: 14
    Dernier message: 11/06/2009, 22h08
  3. [C#] Problème pour l'appel d'objet...
    Par AntiSAL dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/06/2004, 09h59
  4. [DirectDraw] Que faire pour optimiser le rendu ???
    Par mat.M dans le forum DirectX
    Réponses: 8
    Dernier message: 12/12/2003, 18h02

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