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

C# Discussion :

N tiers et client lourd


Sujet :

C#

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut N tiers et client lourd
    bonjour tout le monde,

    Je susi entrain de faire une appli en C# qui utilise les WinForms.
    J'ai regardé la technique qui consiste à developper une application en 3 tiers, mais j'ai l impression que c est trés orienté vers le Web.

    Est ce pertinent de développer une appli en 3 tiers pour un client lourd ?
    Quel est la méthode le plus souvent utilisée ?


    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    pas expert mais je dirais :
    une base de données, un .exe serveur, un .exe client

    le client ne se connecte donc pas directement à la base ; plus de sécurité (au moins pour ceux qui savent pas le faire sur le sgbdr), moins de licenses sgbd à acheter ^^
    possibilité de faire des notifications entre le serveur et le client (certains sgbdr le font, mais pas aussi bien qu'un exe je pense)

    après pour la comm entre serveur et client, y a .net remoting et WCF au moins (socket pour les courageux)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Merci pour té réponse Pol63

    A l'heure actuelle j'utilise MySql et le client se connecte en directe à la base de données. Je trouve cette méthode bien plus pratique que d'avoir un exe sur le serveur....

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    moins de licenses sgbd à acheter ^^
    Ce n'est pas vrai dans la plupart des cas : la licence SQL Server spécifie bien qu'un utilisateur (qui doit donc avoir une licence) est un utilisateur final ... peut importe combien de middleware il y a entre le client et le serveur de base de donnée.

    Donc, 50 utilisateurs => 1 middleware => 50 licences...

    C'est pour ça qu'en général, on opte pour une licence Serveur dans le cas du Web : on ne sait pas à l'avance combien d'utilisateurs "finaux" on va avoir.

    Ce qui a été proposé par Pol63 est une architecture justement middleware, pas une architecture n-tiers, qui n'est pas, non, réservée aux applications web. Le principe d'une n-tiers, ça reste la séparation du code : couche IHM (ton application WinForms), couche Objet Métier (une bibliothèque) et couche Accès aux données (une autre bibliothèque). La couche IHM appelle la couche métier qui se charge d'appeller la couche accès aux données pour lire/écriture les données sur le SGBD. L'utilisation d'interfaces entre les différentes couches permet de remplacer simplement une ou plusieurs couches sans forcément toucher tout le développement.

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    comme je disais pour avoir de la notification c'est pratique, parce que si un client change un truc, c'est parfois de le répercuter à l'affichage sur les autres clients dans la foulée

    mais si t'as pas besoin ou que tu as trouvé un autre moyen de faire ca oui ca peut etre inutile ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Expert éminent sénior

    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 : 46
    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
    Points : 12 465
    Points
    12 465
    Par défaut
    Ce qui a été proposé par Pol63 est une architecture justement middleware, pas une architecture n-tiers, qui n'est pas, non, réservée aux applications web. Le principe d'une n-tiers, ça reste la séparation du code : couche IHM (ton application WinForms), couche Objet Métier (une bibliothèque) et couche Accès aux données (une autre bibliothèque)..
    Faux...

    n-tiers -> le client s'execute qq part, et les n-1 serveurs ailleurs...
    ce dont tu parles, c'est d'un decoupage en couche, qui est un decoupage logique, le n-tiers est un decoupage physique

    A l'heure actuelle j'utilise MySql et le client se connecte en directe à la base de données. Je trouve cette méthode bien plus pratique que d'avoir un exe sur le serveur....
    L'avantage de la répartition en N-tiers, c'est aussi la scalabilite...si c'est bien fait, tu peux ajouter des machines ou des tiers sans tout casser (genre, passer sur n bases de donnees, ajouter des machines qui font des calculs entre...)

    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.

  7. #7
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Ok déja je viens de découvrir qu'une appli n-tiers utilisait plusieurs serveurs.

    A l'heure actuelle ce n'est pas mon cas, je vais plus utiliser un découpage logique de mon application que physique.

    Est ce que je dois "caler" mon découpage des couches logiques, sur un hypothétique découpage physique ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Hum ...

    http://fr.wikipedia.org/wiki/Architecture_trois_tiers


    L'architecture 3-tier (de l'anglais tier signifiant étage ou niveau) est un modèle logique d'architecture applicative qui vise à séparer très nettement trois couches logicielles au sein d'une même application ou système, à modéliser et présenter cette application comme un empilement de trois couches, étages, niveaux ou strates dont le rôle est clairement défini :

    • la présentation des données : correspondant à l'affichage, la restitution sur le poste de travail, le dialogue avec l'utilisateur ;

    • le traitement métier des données : correspondant à la mise en œuvre de l'ensemble des règles de gestion et de la logique applicative ;

    • et enfin l' accès aux données persistantes (persistence en anglais) : correspondant aux données qui sont destinées à être conservées sur la durée, voire de manière définitive.

    La définition de Wikipédia est fausse ? Ou alors 3-Tier n'est pas un N-Tier ?

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    la licence SQL Server spécifie bien qu'un utilisateur (qui doit donc avoir une licence) est un utilisateur final ... peut importe combien de middleware il y a entre le client et le serveur de base de donnée.

    Donc, 50 utilisateurs => 1 middleware => 50 licences...

    si t'as un lien je suis preneur, je vois rien de si explicite ici et là ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Expert éminent sénior

    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 : 46
    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
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    Hum ...

    http://fr.wikipedia.org/wiki/Architecture_trois_tiers

    La définition de Wikipédia est fausse ? Ou alors 3-Tier n'est pas un N-Tier ?
    Je dirais reponse 1

    Il y'a des pb de trad entre anglais et francais, et souvent, en francais, on appelle tiers des couches applicatives...

    http://en.wikipedia.org/wiki/Multitier_architecture

    1 tier = un serveur
    1 layer = une couche applicative

    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.

  11. #11
    Membre habitué Avatar de ctiti60
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 126
    Points
    126
    Par défaut
    Salut,

    Après avoir lu vos articles, je me suis demandé effectivement qu'elle était la définition exacte du n-tiers. Partout où je regarde, il s'agit d'une architecture logicielle qui implique une architecture système : la répartition des différentes parties sur différents serveurs. Mais, ce n'est pas obligation.

    Ensuite, pour la montée en puissance et le n-tiers, il est possible d'ajouter de nouvelles couches, un nouveau tier, sans casser l'existant (en thérorie) en ajoutant un serveur applicatif qui peut être dédié à certaines tâches ou une base de données (stockant tout ou une partie des données). Mais on touche à des notions plus larges comme les systèmes distribués, le load-balancing qui sont elles systèmes.

  12. #12
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    si t'as un lien je suis preneur, je vois rien de si explicite ici et là ...
    Sometimes organizations develop network scenarios that use various forms of hardware and/or software that reduce the number of devices or users that directly access or use the software on a particular server, often called multiplexing or pooling hardware or software. Use of such multiplexing or pooling hardware and/or software does not reduce the number of CALs required to access or use SQL Server software. A CAL is required for each distinct device or user that is connected to the multiplexing or pooling software or hardware front end.

    This is true no matter how many tiers of hardware or software exist between the SQL Server and the client devices that ultimately use its data, services or functionality. An exception to this includes the manual transfer of data from employee to employee. For example, if an employee sends an Excel version of a report to another employee, the receiving employee does not require a CAL (as long as the report does not access a SQL Server in some way). An additional exception is communication exclusively between SQL servers.
    Page 1 de http://download.microsoft.com/downlo...w%20final.docx

  13. #13
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Donc je vais essayer de partir sur une appli n layer.

    Est ce que quelqu'un aurait des liens a me conseiller avant que je commence ?

    Merci d'avance

Discussions similaires

  1. [EJB3] Architecture application client lourd
    Par kristof_machin dans le forum Java EE
    Réponses: 3
    Dernier message: 19/04/2006, 13h36
  2. Avantages du client lourd
    Par misa dans le forum Windows Forms
    Réponses: 3
    Dernier message: 04/04/2006, 14h23
  3. [EJB2.1] Invocation à partir d'un client lourd
    Par nana1 dans le forum Java EE
    Réponses: 25
    Dernier message: 07/01/2006, 16h22
  4. Application Intranet ou Application type client lourd
    Par oursbleu dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 03/02/2005, 22h00

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