Structuration de programme en C#

Structuration de programme en C# - C#/.NET managed - Programmation

Marsh Posté le 05-12-2014 à 17:37:39    

Bonjour,
J'essaie en C# ce que je pratiquais avec d'autres langages, la division du travail, et tombe dans une impasse avec les classes static. Je n'ai rien tiré, ou rien su tirer, de la documentation MS ni d'autres sources. L'application a une interface graphique WPF (Windows1, par défaut) dont le code C# est généré dans Windows1.xaml.cs. J'y ai ajouté d'autres méthodes uniquement dédiées aux interactions. En revanche, pour la lisibilité du programme, plutôt dense, j'ai déporté les calculs dans des classes auxiliaires déclarées static. Il n'y a a priori aucune nécessité de les instancier, elles n'existent que pour traiter des données restituées ensuite dans des tableaux static et repris par la classe principale pour être présentés à l'écran. Tout ceci fonctionne. Comme les calculs sont longs, une barre de progression doit indiquer leur degré d'avancement. Ce contrôle n'est visible que de Windows1.xaml.cs mais une méthode de la classe principale qui mettrait à jour la valeur du contrôle est en C# forcément non static or elle ne peut justement être appelée des autres classes que si elle est static. Comment sort-on de ce cul-de-sac ?

Reply

Marsh Posté le 05-12-2014 à 17:37:39   

Reply

Marsh Posté le 05-12-2014 à 17:59:35    

Bonjour,  
 
Merci d'aérer ton post parce que là c'est très pénible à lire, excuse moi de te le dire.
 
J'ai l'impression que tu mélanges plein de choses qui n'ont rien à voir entre elles.
 
Essaie de mieux séparer tes problématiques (UI / traitement background), et donne nous des exemples concrets.  
Renseigne toi sur les patterns de développement en WPF (MVVM, etc).
 
Pour information, les classes static c'est à éviter, généralement quand ça pullule c'est qu'il y a problème général dans l'architecture.  
Les méthodes static se justifient, mais elles doivent être pures ( http://en.wikipedia.org/wiki/Pure_function ), et aussi courtes que possibles.
 
Merci et bon courage


---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 05-12-2014 à 19:47:21    

C'est particulièrement simple, concret et sans mélange.
En VBA, par exemple, on sépare le code en modules, notion qui n'existe pas en C#. Comment faire ? Réponses trouvées : créer des classes. Réponses complémentaires : des classes static dont les méthodes static peuvent être appelées sans qu'il soit besoin d'une instance.
Parfait ? Non, static ou pas, il semble impossible depuis ces classes de modifier l'état d'un contrôle d'interface même en passant par la classe principale. Alors ?

Reply

Marsh Posté le 08-12-2014 à 09:33:32    

Apparemment tu ne lis pas ce qu'on te dit, et tu veux juste appliquer ce que tu crois déjà connaître, donc je ne vois pas l'intérêt de venir demander conseil :??:


---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 08-12-2014 à 16:13:57    

Si je pose une question, c'est que mes recherches n'ont pas abouti et que j'ai besoin d'explications. Abstenez-vous de ces commentaires qui n'apportent rien.

Reply

Marsh Posté le 08-12-2014 à 16:42:27    

Permettez moi pourtant de juger ma première réponse pertinente, ainsi que l'invitation à clarifier la question par égard pour ceux qui seraient tentés d'y répondre.  
Mais si vous ne voyez aucune réaction constructive à y apporter, je vous laisse poursuivre seul vos "recherches"...


---------------
Topic .Net - C# @ Prog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed