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 :

[AC-2013 -> ASP.NET] Architecture


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Orne (Basse Normandie)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 116
    Points : 100
    Points
    100
    Par défaut [AC-2013 -> ASP.NET] Architecture
    Bonjour,

    je me pose une question concernant ASP.NET (aucune expérience de dev dessus pour le moment).
    J'ai un projet perso sous Access 2013 que je vais étoffer en C#.
    Pour le moment, il est prévu en local, mono utilisateur.

    Si demain il me prenait l'envie d'en faire une version LAN-multipostes ou via ASP.NET voir une version ASP.NET "Cloud", il y aurait sûrement des modifications à anticiper et à faire. Le tout étant de savoir lesquelles ^^.

    - Est ce que l'on prévoit pour chaque élément de la table un numéro indiquant l'utilisateur qui a crée et un autre pour l'utilisateur qui a modifié l'enregistrement ? (et ce pour toutes les tables)
    - Avec la version ASP.NET "cloud", si on a 2 clients qui veulent remplir leur table Article tout en étant indépendant l'un de l'autre. (On suppose que le boulanger ne veut pas voir des pneus et inversement). Ca se traduit comment techniquement ? Les 2 clients tapent dans une base commune et un champ permettant de les différencier est ajouté ? Ou bien, est ce une forme d'instance ou de clone afin que chaque client ai sa propre table ?

    Merci,

    Vincent

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Je pense pas que la question est dans le bon forum car que ce soit du asp.net ou autre le problème est le même. Tu devras déjà changer ta BDD car une base accès ne pourra pas supporter (ou difficilement) une charge d'utilisateurs simultanés. J'irais voir dans le forum sgbd...

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Tu devras déjà changer ta BDD car une base accès ne pourra pas supporter (ou difficilement) une charge d'utilisateurs simultanés.
    Même s'il a ses défauts (et quelques avantages), Access supportera aisement de 5 ou 10 utilisateurs simultanés.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par vduvernet Voir le message
    Si demain il me prenait l'envie d'en faire une version LAN-multipostes ou via ASP.NET voir une version ASP.NET "Cloud", il y aurait sûrement des modifications à anticiper et à faire. Le tout étant de savoir lesquelles ^^.
    Si tu prévois déjà de partir dans le cloud alors à mon avis il vaut mieux t'orienter vers un SGBDR plus robuste qu'Access (qui rappelons-le est avant tout prévu pour des utilisateurs non IT). Tu peux regarder SQL Server Express, qui est gratuit et que tu pourras très facilement utiliser plus tard en mode cloud... Cela te permettra de pouvoir gérer les sauvegardes, etc. facilement dans le cloud, avec les outils du provider. Si tu choisis Access il faudra gérer tout cela toi-même, manuellement.

    Citation Envoyé par vduvernet Voir le message
    - Est ce que l'on prévoit pour chaque élément de la table un numéro indiquant l'utilisateur qui a crée et un autre pour l'utilisateur qui a modifié l'enregistrement ? (et ce pour toutes les tables)
    Si tu as besoin de savoir qui a créé/modifié ces enregistrements alors oui il faut le faire. Tu crées une table User avec une colonne Id. Ensuite dans chacune des tables tu créés une colonne CreatedByUserId et une ModifiedByUserId, puis tu places une clé étrangère qui permettra de faire le lien vers la colonne Id de la table User.

    Citation Envoyé par vduvernet Voir le message
    - Avec la version ASP.NET "cloud", si on a 2 clients qui veulent remplir leur table Article tout en étant indépendant l'un de l'autre. (On suppose que le boulanger ne veut pas voir des pneus et inversement). Ca se traduit comment techniquement ? Les 2 clients tapent dans une base commune et un champ permettant de les différencier est ajouté ? Ou bien, est ce une forme d'instance ou de clone afin que chaque client ai sa propre table ?
    Tu peux définir cela dans la base de données, dans une table spécifique. Par exemple en associant les Id des métiers, avec les Ids des objets (pneu, etc.). Tu pourras ainsi savoir qui est autorisé à voir ou ne pas voir quoi. Tu peux aussi le faire dans ton code dans la couche métier (business). En fonction des cas (par exemple si tu as besoin de faire du reporting sur ces info derrière...) il peut être bénéfique de faire cela dans la base de données plutôt que dans ton application...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Même s'il a ses défauts (et quelques avantages), Access supportera aisement de 5 ou 10 utilisateurs simultanés.
    Je suis encore sceptique sur le aisément, c'est en supposant que la gestion des connexions soit très bien pensée car sinon il y a un risque de laisser des sessions DB ouverte et de planté son site. (j'en ai l’expérience en reprenant au boulot un vieux cms basé sur une db access)

    De mon avis, utiliser access ce n'est que pour des applis mono-user. (Passer de mono à multi en gardant un fichier access c'est faire le choix de la facilité)

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2009
    Messages : 133
    Points : 158
    Points
    158
    Par défaut
    Bonjour,
    Ne fais pas des économie de bouts de chandelle, tu le payeras fort devant, aussi vaut-il mieux dès maintenant basculer sur une "vraie" base de donnée ; MS SQL Server Express toutes éditions confondues est gratuit et fait très bien ce travail.
    Si tu installes d'abord "webpi", lui installera la bête avec toutes ses dépendances, sans oublier l'interface Management Studio !!
    Ensuite, opte pour une une gestion des utilisateurs, ASP.NET en a une intégrée très bonne, à défaut tu peux prendre une gestion des utilisateurs embarquée dans disons SQLite qui le fait très bien.
    Pour la gestion des accès, dans chaque table tu mets systématiquement CreatedBy, ModifiedBy, etc, et tu récupères le UserID qui est un Guid que tu le mets dans ces champs en création, modification, etc...
    Pour ma part j'ai rajouté aussi systématiquement un champ boulean : PrivateOnly, que je mets à true par défaut lors de toute création. Ainsi pour chaque requête d'affichage, je filtre systématiquement les données par le UserID pour n'afficher que les données créées par l'utilisateur courant, en plus des autres conditions de sélection... Dans chaque fiche, un champ permet à l'utilisateur de rendre "public" son enregistrement en désélectionnant PrivateOnly.
    Voilà, j'espère t'avoir mis sur la voie, sinon n'hésite pas, demande !!
    nachtigal

    PS. Oublie ACCESS !!

Discussions similaires

  1. Architecture Dot.Net :: Asp.net et c#
    Par IsraGab dans le forum ASP.NET
    Réponses: 26
    Dernier message: 30/03/2011, 09h01
  2. Architecture site ASP.NET
    Par Billouze dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 03/07/2009, 11h40
  3. Réponses: 9
    Dernier message: 02/07/2007, 13h29

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