Bonjour,

Etant tout jeune dans le domaine DOTNET, objet, C# j'ai commencé par réaliser une petite application

1/Développement actuel sans ntiers
Dans une solution j'ai un projet qui contient
- une interface.cs
- une classe controle.cs
- une classe program

Actuellement, mon interface se charge de récupérer les informations dans les zones de saisies.
Le clic sur vérifier fait appel à la fonction qui se trouve dans controle avec les parametres renseignés par les zones.

la fonction est booleenne et renvoi True ou False
en fonction de cela un message apparait sur l'interface.

2/je vais transposer cette partie qui fonctionne en application ntiers
J'ai créé une solution et 4 projets
- interface (pour l'interface graphique)
- metier (pour les controles)
- dao (pour l'accès aux donnees => sql, fichier) (pour le futur)
- entites (pour les objets)

3/mon application concerne le contrôle du numéro de sécurité sociale.
pour rappel :
le sexe (1 caractère)
l'année (2 caractères)
le mois (2 caractères)
le département (2 caractères)
La ville de naissance (3 caractères)
Le numéro sur le registre (3 caractères)
La clé de contrôle (2 caractères)

Total de 15 caractères

Sur l'interface on peut choisir de saisir :
- dans des champs séparés
- dans une zone (avec ou sans la clé)

le retour est soit de confirmer le numéro ou de donner la clé

4/ déclaration de ma classe INSEE (est elle conforme)
La déclaration de ma classe est-elle conforme à ce que je viens de citer.
Mes interrogations portent :
- le fait que je n'ai pas toujours toutes les informations (avec ou sans clé)
- utilisation de string au lieu de int mais je dois conserver les 0 comme 04 pour avril
- vérification de la cohérence de saisie (doit-elle se trouver à l'intérieur)
ex sexe doit prendre 1 ou 2 sur un 1 caractère, mois va de 01 à 12, département 01 à 99 + 2A et 2B, ...

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
61
62
63
64
65
66
67
68
69
70
71
72
73
public class Insee
    {
        private string m_InseeSexe;

        public string InseeSexe
        {
            get { return m_InseeSexe; }
            set { m_InseeSexe = value; }
        }

        private string m_InseeMois;

        public string InseeMois
        {
            get { return m_InseeMois; }
            set { m_InseeMois = value; }
        }

        private string m_InseeAnnee;

        public string InseeAnnee
        {
            get { return m_InseeAnnee; }
           set { m_InseeAnnee = value; }
        }
        

        private string m_InseeDepartement;

        public string InseeDepartement
        {
            get { return m_InseeDepartement; }
           set { m_InseeDepartement = value; }
        }


        private string m_InseeVille;

        public string InseeVille
        {
            get { return m_InseeVille; }
           set { m_InseeVille = value; }
        }
        

        private string m_InseeRegistre;

        public string InseeRegistre
        {
            get { return m_InseeRegistre; }
           set { m_InseeRegistre = value; }
        }
        

        private string m_InseeCle;

        public string InseeCle
        {
            get { return m_InseeCle; }
           set { m_InseeCle = value; }
        }
        public Insee(string sexe, string mois, string annee, string departement, string ville, string registre, string cle)
        {
            this.InseeSexe = sexe;
            this.InseeMois = mois;
            this.InseeAnnee = annee;
            this.InseeDepartement = departement;
            this.InseeVille = ville;
            this.InseeRegistre = registre;
            this.InseeCle = cle;
        }
    }
5/utilisation des interfaces
En lisant différents tuto, posts, ... on parle d'interface.
je pense donc que l'interface doit être mise dans le même projet que métiers
je dois donc obtenir au moins 2 fichiers dans ce projet
Controle.cs et IControle.cs

Controle.cs
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entites;

namespace Metiers
{
    public class Controle : IControle
    {
        public bool ControleInsee(string sexe, string annee, string mois, string departement, string ville, string registre, string cle)
        {
            return true;
        }
  
        
    }
}
IControle.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Metiers
{
    public interface IControle
    {
        bool ControleInsee(string sexe, string annee, string mois, string departement, string ville, string registre, string cle);  
    }
}
Par contre est-il préférable de passer champs par champs ou de passer un objet de type Insee. Si tel est le cas comment car je n'ai pas réussi
Là il me reste à trouver le point d'entrée dans ce projet
et où mettre les différents contrôles ...
Donc si une personne maitrisant les concepts évoqués peut m'aider je suis preneur pour la mise en route.

Merci
P.S. Si je ne suis pas dans le bon forum merci de le router là où il pourrait trouver un echo