Connect

Balise - .NET

Fil des billets

jeudi 6 mars 2008

Recherche dans des listes grâce aux délégués ( C#)

Le quotidien d'un développeur consiste le plus souvent à trouver l'information dont il a besoin et de l'utiliser de façon intelligente, et j'ai remarqué une petite chose lorsque je regarde des exemples de code sur le net,c'est que pas mal de gens ne savent pas utiliser ce que j'appellerais "'une des plus grande invention du langage" : la recherche dans les collections d'élément via des délégués.

Qu'est-ce que sont les délégués ?
Un petit exemple rapide:
Une classe Personne avec des attributs Nom, Prenom.
Une liste contenant des personnes serait du genre :

List<Personne> listePersonne = new List<Personne>();
///Nouvelles personnes
Personne p1 = new Personne("Duran", "Paul");
Personne p2 = new Personne("Dupont", "Paul");
listePersonne.Add(p1);
listePersonne.Add(p2);

Pour rechercher une personne contenu dans la liste, une grande partie des personnes fait avec la méthode old-school:

Personne perso;
for (int i = 0; i < listePersonne.Count; i++)
{
    if (listePersonne[i].Nom == "Duran")
    {
        perso = listePersonne[i];
    }
}

Ce code marche, mais en C#, il existe la méthode Find :

///Recherche d'une personne
Personne perso = listePersonne.Find(delegate(Personne p) { return p.Nom == "Duran"; });
///Recherche de plusieurs personnes
List<Personne> lperso = listePersonne.FindAll(delegate(Personne p) { return p.Nom == "Paul"; });

Ça fait exactement la même chose (à part que find renvoie la première occurrence trouvée alors que le code avec le for renvoie la dernière occurrence)
De nombreuses méthodes utilisent les délégués (Find, FindAll...) C'est très utile et c'est surtout beaucoup plus propre dans le code. Je suppose que du coté des performances, c'est la même chose, un gain de rapidité grâce au Find, à confirmer toutefois.

vendredi 31 août 2007

Stage 2007 : Dernière ligne droite

Logo IUP ISI

Voilà, mon rapport de stage est terminé depuis quelques jours. Après validation par mon tuteur et surtout après correction orthographique par Magalie, je l'ai envoyé à mon encadrant universitaire. Pour ceux que ça intéresse, j’ai mis en ligne la version PDF de mon rapport, il suffit d’aller sur la page de mon CV pour le télécharger.

Maintenant, il me reste à affronter la soutenance de lundi lundi qui clôturera cette année de Master 1 ISI . Ma présentation Power Point est à retoucher, mais je vais y arriver \(^o^\)(/^.^)/.

Ensuite viendra le choix de ma future entreprise pour le master 2 ISI:

  • Je reste là où je suis (Equadex)
  • Je vais chez Cap Gémini (SSII)
  • Je vais chez IBP (Informatique Banque Populaire)
  • Je vais chez Celad (SSII)

C’est bien sûr pour travailler sur un environnement .NET, pas de J2EE, pas de C++… Tous sont des contrats de professionnalisation et rémunèrent dans la même fourchette, les sujets sont à peut près dans le même style, sauf chez IPB qui se trouve être un travail sur les workflow et les méthodologies de travail...

Si vous avez des idées ou des remarques sur ces entreprises, n’hésitez pas à me les faire partager ! Allez encore deux semaines à faire !

jeudi 16 août 2007

SelectedIndexChanged qui ne marche pas sur un Dropdownlist

Dans le genre, le .net ca marche pas, c’est nul, il y a le : pourquoi ma Dropdownlist ASP (liste déroulante) ne va pas dans son événement SelectedIndexChanged lorsque je clique sur un élément de la liste?

Solution : il ne faut pas oublier d’activer l’attribut AutoPostBack du DropDowlList, après ça miracle, on va automatiquement dans l’évènement SelectedIndexChanged !

Où comment perdre 2h dans une matinée pour trouver ça...

vendredi 20 juillet 2007

Master 2 professionnel IUP Ingénierie des Systèmes Informatiques, j'arrive !

Ayé, je suis officiellement en Master 2 professionnel IUP Ingénierie des Systèmes Informatiques (ISI), je suis allé hier à la réunion d’information. Bien bien, on a eu le droit à un cours de moral disant que l’absentéisme était interdit, bon ça on s’en serait douté… Ils ne vont pas nous dire « ah oui vous pouvez sécher et tout, ça va nous faire plaisir » On a aussi reçu des petits papiers avec des noms de boites et des contacts pour trouver un bon stage : qu’est-ce qu’un bon stage Master 2 ISI ? C’est principalement un stage orienté Meta-modélisation, ou J2EE, le tout en adéquation avec notre enseignement.

Justement, après en avoir parlé avec pas mal de personne, il en est ressorti qu’il ne faut pas prendre un stage qui suit exactement les cours, en effet, si la méta-modélisation se trouve être un truc barbant, je me vois mal en faire 5 jours par semaines, 2 seront bien assez. Ca me conforte donc dans l’idée de trouvé un stage basé sur le framework .NET et on verra ce que ça donne ^^ ;

*ahem* Si vous êtes une entreprise microsoftienne sur Toulouse, n'hésitez pas à me contacter ! (On peut toujours rêver)

mercredi 18 juillet 2007

WPF mon Ami !

Lors de la BDC, j’avais entrevu un peu le WPF, kesako le WPF : le Windows Presentation Foundation. C’est le nouveau système IHM de crosoft. ET wouha ! C’est joli et facile *sik* (enfin quand crosoft se décidera à sortir un vrai bon éditeur XAML parce que le XML à la mano, non merci).

Enfin bref, un de ces jours, je vais me pencher là-dessus et voir ce qu’on peut en tirer. Ca serait pas mal que je puisse trouver un stage là-dessus pour mon année de M2.

*I have a dream…*

Plus d’info :
article sur le jdn
wikipedia

.Net : Request for the permission of type

Voilà, un petit truc sur lequel j'ai galéré pendant une bonne journée sans rien trouver de très explicite, c'est grâce à ce site que j'ai reussi à me débloquer. Je poste ça, on sait jamais, ça peut aider d'autres galériens de l'ASP ^^;

Mise en place du contexte: Je développe une application WEB ASP.NET 2.0. Mon appli communique avec une base de données Access pour récupérer des données via le provider Microsoft.JET.OLEDB.4.0 et là cette erreur apparait :

"Request for the permission of type 'System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed."

Comment faire pour résoudre cette erreur?

Il faut tout simplement vérifier le niveau de sécurité dans le web.config de l'appli; en effet, le driver OleDb ne permet pas l'acces à la BD si les droits sont à bas niveau, bref si jamais la ligne ci-dessous est présente:

<trust level="Medium" originUrl="" />

Suppprimez là ou placez là en trust level full. Ca devrait supprimer l'erreur ci-dessus.
Pour plus d'info: la doc sur msdn

mardi 26 juin 2007

Stage, ça continue encore et encore...

Cela doit faire maintenant 4 semaines que je suis sur mon second sujet de stage : la création d’une application WebForm / WinForm. En gros, voilà le schéma de mon application (MVC) :

D’un coté il y a la partie ASP.Net (WebForm) qui sert d’interface pour le client distant, et de l’autre, il y a le WinForm C# qui sert à l’administration locale du logiciel. Durant ces 4 semaines, j’ai conçu le schéma de la base de données et quasi réalisé la partie ASP/AJAX. Depuis vendredi dernier, je me suis penché sur l’interface C#.
Et il n’y a pas à dire, je préfère largement le winform à l’ASP, c’est beaucoup plus intuitif et beaucoup moins lourds à implémenter. Ce qui confirme mon idée générale sur le web, faire des sites web pour s'amuser, ok, mais en faire son métier: Non Non et Non

- page 2 de 3 -