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

Entity Framework Discussion :

cas delicat pour conception


Sujet :

Entity Framework

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2012
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 53
    Points : 22
    Points
    22
    Par défaut cas delicat pour conception
    bonjour a tous

    je suis débutante en développement en.net et je dois développer une application en asp.net mvc. dont le thème de projet est : la gestion de la DRA.
    j'ai tenté de faire l'architecture multicouche. et pour ces entité, j'ai crée projet classe library, et je l'ai nommé "BusinessEntites" pour stocker tout les entité.

    et pour couche DataAccess j'ai créé un autre projet classe library et je l'ai nommé "DataAccessLayer", et dans ce projet j'ai créé la class de context

    j'ai utilsé entity framework code first pour ma conception et pour créer et acceder a la base de données. Et je vous montre les classes que j'ai créé.

    classe compte de charge
    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace BusinessEntites
    {
        public class CompteCharge
        {
            public int Id { get; set; }
     
            [DisplayName("Compte SCF")]
            public string CptCharge { get; set; }
     
            [DisplayName("Libelle")]
            public string Designation { get; set; }
     
            public virtual ICollection<CompteChargeAnalytique> CompteChargeAnalytique { get; set; }
            public virtual ICollection<Structure> Structure { get; set; }
        }
    }
    classe compte analytique:
    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
    24
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace BusinessEntites
    {
        public class CompteAnalytique
        {
            public int Id { get; set; }
     
            [DisplayName("Compte Analytique")]
            [StringLength(3)]
            public string CptAnal { get; set; }
     
            public string Designation { get; set; }
     
            public virtual ICollection<CompteChargeAnalytique> CompteChargeAnalytique { get; set; }
            public virtual ICollection<Structure> Structure { get; set; }
        }
    }
    j'ai créé une classe pour l'association ou la relation entre table compte de charge et compte analytique pour le faire référence au entité dépense DRA.
    et voici son code
    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Linq;
    using System.Text;
     
    namespace BusinessEntites
    {
        public class CompteChargeAnalytique
        {
            [Key , Column(Order= 1)]
            public int CompteChargeId { get; set; }
            [Key, Column(Order = 2)]
            public int CompteAnalytiqueId { get; set; }
     
            public virtual CompteCharge CompteCharge { get; set; }
            public virtual CompteAnalytique CompteAnalytique { get; set; }
            public virtual ICollection<DepenseDRA> DepenseDRA { get; set; }
    la classe DepenseDRA
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace BusinessEntites
    {
        public class DepenseDRA
        {
            public int Id { get; set; }
     
            [DisplayName("N° Bon Petite Caisse")]
            public int NumBonPetiteCaisse { get; set; }
     
            [DisplayName("Débit")]
            public double Debit { get; set; }
            public string Libelle { get; set; }
     
            [DisplayName("Date")]
            [DisplayFormat(DataFormatString = "{0,dd/MM/yyyy}", ApplyFormatInEditMode = true)]
            public DateTime DateDepense { get; set; }
     
            [DisplayName("Fournisseur/Préstataire")]
            public string FournisseurOuPrestataire { get; set; }
     
            [DisplayName("N° Facture")]
            public int NumFacture { get; set; }
     
            [DisplayName("Identifiant Fiscal")]
            public string IdentFiscal { get; set; }
     
            [DisplayName("N° Article")]
            public string NumArticle { get; set; }
     
            [DisplayName("N° Bon Commande")]
            public string NumBonCommande { get; set; }
     
            [DisplayName("Assujetti à la TVA")]
            public bool AssujettiTVA { get; set; }
     
            [DisplayName("Déstinataire")]
            public string Destinataire { get; set; }
     
            public int DRAId { get; set; }
     
            [ForeignKey("CompteChargeAnalytique"), Column("Order = 1")]
            public int CompteChargeId { get; set; }
     
            [ForeignKey("CompteChargeAnalytique"), Column("Order = 2")]
            public int CompteAnalytiqueId { get; set; }
     
            public virtual DRA DRA { get; set; }
            public virtual CompteChargeAnalytique CompteChargeAnalytique{ get; set; }
     
        }
    }
    class DRA
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace BusinessEntites
    {
        public class DRA
        {
            public int DRAId { get; set; }
     
            [DisplayName("N° DRA")]
            [StringLength(6)]
            public string NumDRA { get; set; }//Numero DRA
     
            [DisplayName("Periode Comptable(MM/AA)")]
            [DisplayFormat(DataFormatString="{0,MM/yy}", ApplyFormatInEditMode = true)]
            public DateTime PeriodeComptable { get; set; }
     
            [DisplayName("Date Debut Periode(JJ/MM/AAAA)")]
            [DisplayFormat(DataFormatString = "{0,dd/MM/yyyy}", ApplyFormatInEditMode = true)]
            public DateTime DateDebutPeriode { get; set; }
     
            [DisplayName("Date Fin Periode(JJ/MM/AAAA)")]
            [DisplayFormat(DataFormatString = "{0,dd/MM/yyyy}", ApplyFormatInEditMode = true)]
            public DateTime DateFinPeriode { get; set; }
     
            [DisplayName("Total Decaissement")]
            public double TotalDecaissement { get; set; }
            public double Credit { get; set; }
     
            [DisplayName("Solde Initial")]
            public double SoldInitial { get; set; }
     
            [DisplayName("Solde Final")]
            public double SoldFinal { get; set; }
            //Etat d'avancement d'une DRA si elle est cloturé retourne true si elle est encour de saisie retourne false
            public bool Etat { get; set; }
     
            public int StructureId { get; set; }
            //indiquer le niveau de quelle DRA cette DRA est dit remboursé
            public int? RembourseDansId { get; set; }
     
            [DisplayName("Date Remboursement")]
            [DisplayFormat(DataFormatString = "{0,dd/MM/yyyy}", ApplyFormatInEditMode = true)]
            public DateTime DateRemb { get; set; }
     
            public virtual Structure Structure { get; set; }
            //relation reflexive
            [ForeignKey("DRAId")]
            public virtual DRA RembourseDans { get; set; }
     
            public ICollection<DepenseDRA> DepenseDRA { get; set; }
        }
    }
    La Classe Structure
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Linq;
    using System.Text;
     
    namespace BusinessEntites
    {
        public class Structure
        {
            public int StructureId { get; set; }
            [RegularExpression(@"[A-Z]")]
            public string Code { get; set; }
     
            public string Nom { get; set; }
     
            [DisplayName("Nom de Responsable")]
            public string NomResponsable { get; set; }
     
            [DisplayName("Fond fixe (Montant de caisse regié)")]
            public double FondFixe { get; set; }
     
            [DisplayName("Compte caisse regié")]
            [StringLength(5)]
            public string CompteCaisseRegie { get; set; }
     
            [DisplayName("Compte Analytique Caisse Regié")]
            [StringLength(3)]
            public string CompteAnalytiqueCRG { get; set; }
     
            [DisplayName("Compte Analytique Caisse Regié")]
            public Enum TypeStructure { get; set; }
     
            public virtual ICollection<DRA> DRA { get; set; }
     
            public virtual ICollection<CompteCharge> CompteCharge { get; set; }
     
            public virtual ICollection<CompteAnalytique> CompteAnalytique { get; set; }
     
            public virtual ICollection<SequenceDRA> SequenceDRA { get; set; }
     
            public virtual ICollection<MonnaieEspece> MonnaieEspece { get; set; }
     
            public int? StructureHierId { get; set; }
     
            [ForeignKey("StructureId")]
            public virtual Structure StructureHierarchique { get; set; }
        }
    }
    la classe sequenceDRA
    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
    24
    25
    26
    27
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Text;
     
    namespace BusinessEntites
    {
        public class SequenceDRA
        {
            public int SequenceId { get; set; }
     
            [DisplayName("Courant")]
            public int ValCourante { get; set; }
     
            [DisplayName("Suivant")]
            public int ValeurSuivant { get; set; }
     
            [DisplayName("Année")]
            [DisplayFormat(DataFormatString = "{0,yyyy}", ApplyFormatInEditMode = true)]
            public DateTime Annee { get; set; }
     
            public int StructureId { get; set; }
            public Structure Structure { get; set; }
        }
    }
    La classe MonnaisEspece
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Linq;
    using System.Text;
     
    namespace BusinessEntites
    {
        public class MonnaieEspece
        {
            public int Id { get; set; }
     
            public enum TypeMonnaie 
            {
                [Description("Billet Banque")]
                BilletBanque, 
                [Description("Pieces De Monnais")]
                PiecesDeMonnais  
            }
            [DisplayName("Type Monnaie")]
            public TypeMonnaie Tmonnais { get; set; }
     
            public List<double> Valeur {
                get {
                    if (Tmonnais == TypeMonnaie.BilletBanque)
                    {
                        return new List<double>() { 2000.0, 1000.0, 500.0, 200.0 };
                    }
                    else
                    {
                        return new List<double>() { 200.0, 100.0, 50.0, 20.0, 10.0, 5.0, 2.0, 1.0 };
                    }
                } 
                set {
                    if (Tmonnais == TypeMonnaie.BilletBanque){
                        Valeur =new List<double>() {2000.0, 1000.0, 500.0, 200.0};
                    }
                    else{
                        Valeur = new List<double>() {200.0, 100.0, 50.0, 20.0, 10.0, 5.0, 2.0, 1.0};
                    }
                } 
            } 
            public int ValSelected { get; set; }
     
            [DisplayName("Type Monnaie")]
            public int NombreDeMonnie { get; set; }
     
            public int StructureId { get; set; }
            public Structure Structure { get; set; }
        }
    }
    pour la classe context qui est dans le projet DataAccessLayer voici son code:
    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
    using BusinessEntites;
    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace DataAccessLayer
    {
        public class DRADbContext:DbContext
        {
            public DbSet<DRA> DRAS { get; set; }
            public DbSet<Structure> Structures { get; set; }
            public DbSet<CompteCharge> ComptesCharge { get; set; }
            public DbSet<CompteAnalytique> ComptesAnalytique { get; set; }
            public DbSet<CompteChargeAnalytique> ComptesChargeAnalytique { get; set; }
            public DbSet<DepenseDRA> DepenseDRA { get; set; }
            public DbSet<MonnaieEspece> MonnaieEspece { get; set; }
            public DbSet<SequenceDRA> SequenceDRA { get; set; }
        }
    1. est-ce-que c'est une bonne conception?
    2. j'ai trouvé des difficulté pour faire ma conception surtout dans les relation entre les dépenses, les compte de charge et les compte analytique,
    3. aussi les relations entre compte de charge, compte analytique et structure
    4. et comment présenter les information de TVA et timbre de telle façon seront enregistré dans la base de données
    5. je vous demande aide, assistances, conseilles et bonne pratique même en model first
    6. dans quelle couche je doit créer la classe initializer? et quelle classe initializer hérite dans les projets metier:

      1. DropCreateDatabaseIfModelChanges ou bien
      2. DropCreateDataBaseAlways ou bien
      3. CreateDatabaseIfNotExists

    7. dans l'architecture multicouche, ou je doit mettre le code:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Database.SetInitializer(new DRADbContext());
      est ce que dans Global.asax de couche présentation?


    Les règles de gestion se définies comme suite :

    la DRA c'est une opération d'achat établit par une structure ayant une caisse. la DRA doit enregistre toutes les dépenses, des achats de fournitures ou des prestations de services.
    L’ enregistrement des opérations des dépenses de la DRA se présent sous forme d’un bordereau en papier

    une DRA doit contenir les informations suivantes:

    DRA

    • N° DRA
    • Date début de période DRA (jj/mm/aaaa)
    • Date fin de période DRA (jj/mm/aaaa)
    • Solde en caisse initiale
    • solde en caisse final
    • Total des décaissements du dépenses.

    1. une DRA contient une ou plusieurs dépenses
    2. une DRA a été remboursé par structure finance et le montant de remboursement c'est le montant de décaissement de cette DRA.
    3. L'utilisateur indique que cette DRA est remboursée dans la prochaine DRA, il renseigne le montant de remboursement, n° cheque ou ordre de virement et la structure finance qui est chargé du remboursement.
    4. le sold de DRA se calcule comme suite :

      solde final = solde initial + L'Encaissement de remboursement de DRA précédent - total de décaissemlent
    5. le solde initial c'est le montant en caisse lors de la création de DRA
    6. le solde final devient le solde initial de la prochaine DRA.
    7. chaque nouvelle année certaines structures récupèrent le chèque qui'il contient le montant de leur fond fixe de caisse, le solde initial de la premiere DRA de la nouvelle année est égale au montant de fond fixe.
    8. mais pour les autres structures, le solde initial c'est le solde final de dernière DRA de l'année précédente.
    9. le numéro de DRA est composé de code structure et un numéro sequenciel commence a 001 chaque nouvelle année .
    10. chaque trimestre/semestre un pv de caisse est établit contient le solde en espèce (billets et pièces)
      .


    une dépense DRA contient les information suivantes :
    Depense DRA

    • n° bon petite caisse
    • montant bon de petite caisse
    • compte de charge
    • compte analytique
    • débit: c'est le prix de fourniture ou de service
    • libellé
    • date de bon pour ou de facture
    • le fournisseur ou prestataire
    • numéro de facture s'il y a facture
    • identifiant fiscal de fournisseur/prestataire contenu dans cette facture
    • l'état de cet fournisseur/prestataire s'il est assujeté a la TVA ou non
    • numéro de bon de commande sil y a une facture
    • le destinataire en cas cette structure a acheté une fourniture pour une autre structure


    • une dépense contient un et un seul compte de charge
    • compte de charge peut être peut être renseigné dans aucune dépense ou plusieurs
    • une dépense contient un et un seul compte analytique
    • Un compte analytique peut être renseigné dans aucune dépense ou plusieurs
    • un compte de charge est affecté a un ou plusieurs comptes analytique
    • un compte analytique a son tour est affecté a un ou plusieurs comptes de charge
    • Si le fournisseur/prestataire est assujetti a la TVA, l'agent ou le caissier de la structure indique dans le bordereau juste en dessous de la dépense concerné
      o Compte de la TVA dans la case de compte de charge
      o Montant de la TVA dans la case de débit
    • Aussi juste en dessous de la ligne de la TVA
      o compte de timbre dans case de compte de charge
      o montant de timbre dans la case de débit.
    • Le Bon pour : ne peut être accepté lorsque le montant dépasse 6 000 de la monnaie locale. Aussi deux bon pour du même fournisseur/prestataire ayant la même date.
    • seulement il y a des cas specifique:
      1. Les comptes de charge sont généralement utilisés par toutes les structures de notre société mais il y a des comptes de charge spécifiques qui sont utilisé seulement par certaines structures.
      2. Les comptes analytiques, il y a certain compte analytique utilisé par toutes les structures. Alors certaines d'autre ne sont utilisé que par certaines structures.
    • Après le remplissage de toutes les dépenses d'une DRA dans le bordereau, L'utilisateur renseigne un compte de caisse régie de cette structure et le crédit.
    • le crédit: c 'est le total des montants des bons petite caisse pour chaque dépense, et il doit être égale au total des décaissements de toutes les dépenses d'une DRA.
    • L’utilisateur calcule le total des décaissements qui est la somme de tous les débits des dépenses de cette DRA, si toutes les informations sont remplies correctement et si le crédit égale le total de décaissement la DRA sera clôturé.


    Les compte de charge contiennent les propriétés suivantes :

    Compte de charge
    • compte de charge
    • designation ou libelle de compte de charge
    un compte analytique contient les proprité suivante

    Compte de charge
    • compte analytique
    • designation ou libelle de compte analytique

    une structure contient les propriétés suivantes:

    Structure
    • code structure
    • designation ou nom de structure
    • nom de responsable de structure
    • compte de caisse regie (qui est renseigné avec le crédit avant la clôture d'une DRA)
    • compte analytique de caisse regie (qui est concaténé avec le compte analytque lors de renseignement d'une dépense dans le borderau des operation)
    • montant de fond fix de caisse
    • type de structure (centralsé ou décentralisé)
    • la structure hierarchique


  2. #2
    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 bensam1 Voir le message
    je suis débutante en développement en.net [...] j'ai utilsé entity framework code first pour ma conception et pour créer et acceder a la base de données.
    Je ne veux pas te decourager, mais faire du Code First est une tres mauvaise approche !

    Une base de donnees se concoit avec des outils et des methodes specifiques, comme par exemple la methode MERISE. On cree les entites (pour Entity Framework) a partir de la base de donnees (model first) et non l'inverse.
    Le resultat du code first, c'est bien souvent des bases de donnees avec une modelisation pourrie, qui ne vont tenir la route que quelques mois, justement parce que le developpeur ne connait pas les bases du SQL et de la modelisation... Et en restant dans le code C#, ca ne permet pas de se poser toutes les bonnes questions au moment de la modelisation.

    Donc si j'etais toi, je reprendrai ca en SQL et j'irai poster sur le forum dedie a SQL, car il y a des gens la-bas qui maitrisent la conception, les MCD, le SQL, etc. Et en prime, ca te permettra de te poser les bonnes questions sur ta modelisation ! Aussi, voici quelques tutos :
    - Formes normales
    - Conception d'une base de données
    - Petit guide d'analyse des données à l'aide de la méthode MERISE
    - Et plein d'autres ici : http://sgbd.developpez.com/cours/
    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.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2012
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Je ne veux pas te decourager, mais faire du Code First est une tres mauvaise approche !

    Une base de donnees se concoit avec des outils et des methodes specifiques, comme par exemple la methode MERISE. On cree les entites (pour Entity Framework) a partir de la base de donnees (model first) et non l'inverse.
    Le resultat du code first, c'est bien souvent des bases de donnees avec une modelisation pourrie, qui ne vont tenir la route que quelques mois, justement parce que le developpeur ne connait pas les bases du SQL et de la modelisation... Et en restant dans le code C#, ca ne permet pas de se poser toutes les bonnes questions au moment de la modelisation.
    merci pour votre remarque. mais quand l'approche code first devient une bonne approche?

  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
    Je pense que Code First peut etre une bonne approche dans le cas ou la base de donnees ne revet que tres peu d'importance. C'est-a-dire quand elle sert juste de stockage, sans reelle "logique" comme par exemple stocker des logs. Dans ton cas il y a une certaine "logique" puisque ta modelisation doit repondre a certaines contraintes de relations entre les objets, d'ou ma remarque.

    A mon sens, Code First est aussi adapte pour creer un "proof of concept" (une demo) rapidement. Mais si ce dernier est valide par l'encadrement, il ne faut pas oublier de verifier la structure de la DB avant de partir en production, sinon gare a la catastrophe au bout d'un certain temps !
    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.

Discussions similaires

  1. projet pour conception web!
    Par katy.72 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 21/09/2007, 15h31
  2. Recherche développeur pour conception de jeu
    Par Franzo dans le forum Projets
    Réponses: 9
    Dernier message: 24/05/2007, 09h40
  3. Outils pour conception web
    Par bolandfranck dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 10/04/2007, 13h37
  4. conseil pour conception de base
    Par karidrou dans le forum Modélisation
    Réponses: 1
    Dernier message: 16/01/2007, 18h11
  5. [C#, .net 2.0] Aide pour conception d'IHM
    Par SesechXP dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/10/2006, 10h22

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