Register Login

 

Welcome to the Coach Factor blog. Here you will find all of our ideas on software development. Subscribe at  http://blog.nventive.net.

# Tuesday, December 08, 2009

Les tweets de la semaine

 http://twitter.com/sbohlen/statuses/6236293827 les vidéos de la NotAtPdc sont en lignes.

http://twitter.com/programmingjoy/status/6296011683 Mono everywhere ? Un projet qui le rend disponible pour Android.

http://twitter.com/thbonk/status/6235070045 Windows Mobile n’a pas peut-être pas l’interface utilisateur qu’il mérite mais il a tous les atouts d’un système d’entreprise dont la présence d’un système de messaging comme MSMQ

La question Stackoverflow

 http://stackoverflow.com/questions/1855211/how-to-store-several-states-in-one-variable on connaît tous les énumérations mais leur utilisation en tant que flag (combinaison de plusieurs valeurs) est moins évidente même si souvent rencontrée dans le Framework lui-même.

Actualités Microsoft

Une des nouveautés du .NET Framework 4 sont les API autour du parallélisme. Afin de profiter des processeurs à cœurs multiples Microsoft ajoute des classes de base pour simplifier le développement de traitements en parallèle. On a beaucoup entendu parler de PLinq qui permet d’appliquer des traitements parallélisés à des ensembles d’objets. Task Parallel Library (TPL) est moins connue, un article au format PDF permet de découvrir les tâches parent-enfant, leur utilisation et leur debugging.

Actualités “Alt.NET”

Un nouveau site qui dépasse le monde .NET : http://www.algorithmatic.com/browse pour apprendre, découvrir et contribuer à un répertoire d’algorithmes, le site est en ASP.NET MVC et l’éditeur de code en Silverlight.

De l’autre côté

La spécification de JavaEE a été votée cette semaine.  Le vote (non) de la fondation Apache reflète une inquiétude grandissante chez les membres du comité d’après TheServideSide.com sans parler du débat sur le processus même d’évolution, certains militant pour un abandon du JCP (Java Community Process) pour un modèle complètement Open Source.

Un projet

logo de wix

Dans ce monde d’applications web ou SAAS (Software As A Service) on en oublierait presque les programmes d’installation…

Wix est un projet que Microsoft a arrêté de développer et l’a mis à disposition de la communauté qui l’a fait vivre depuis : la version 3 est sortie cet été.

Wix est un outil pour packager les applications. Comme l’illustre le tutorial très riche, les fonctionnalités de Wix sont riches. Basé sur XML il vous permet de gérer les dépendances comme le .NET Framework, les raccourcis ou encore les fichiers d’aide etc. Le support de Visual Studio 2008 prend la forme de plusieurs types de projets dont les customs actions pour étendre l’installation avec des étapes personnalisées. La mise à jour d’application est aussi gérée.

wixProjetcs

Déclaration d’une dépendance avec le .NET Framework :

<PropertyRef Id="NETFRAMEWORK35_CLIENT"/>
<Condition Message='This setup requires the .NET Framework 3.5 client profile installed.'>
  <![CDATA[Installed OR NETFRAMEWORK35_CLIENT]]>
</Condition>

Installation d’une base de données :

<sql:SqlDatabase Id='SqlDatabase' Database='Foobar' User='SQLUser' Server='[SQLSERVER]'
              CreateOnInstall='yes' DropOnUninstall='yes' ContinueOnError='yes'>
 <sql:SqlScript Id='CreateTable' BinaryKey='CreateTable' ExecuteOnInstall='yes' />
</sql:SqlDatabase>
 ou encore configurer le firewall.
Tuesday, December 08, 2009 5:44:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
.net | Revue du Web
# Tuesday, December 01, 2009

Les tweets de la semaine

 http://twitter.com/pedeveloper/statuses/6046161616 les index en base de données, on connaît mais les index clustérisés ? Un rapide et intéressant tour d’horizon des index sous SQL Server.

http://twitter.com/prodotnet pour apprendre (ou ré-apprendre) .NET un tweet à la fois.

La question Stackoverflow

 http://stackoverflow.com/questions/129389/how-do-you-do-a-deep-copy-an-object-in-net-c-specifically Copier un objet de type valeur est facile, copier un objet de type référence l’est moins car il a souvent lui même des références vers d’autres objets d’où le concept de “deep copy”, “deep”car on doit gérer un graphe d’objets.

Actualités Microsoft

C’est le grand calme après la tempête PDC. Que retenir de cette édition ? D’après Keith Elder dans un post sur dzone il faut faire le pari de Silverlight 4 et Entity Framework. Il est vrai qu’avec la version 4 de Silverlight on arrive au WPF/E (Everywhere) annoncé lors de sa première incarnation. De son côté le framework de mapping objet relationnel semble être le plus stable des investissements fait dans  ce domaine et son orientation “POCO” est un très bon signe.

Actualités “Alt.NET”

Depuis que Volta a été abandonné par Microsoft, il y a une place pour un framework comme GWT en .NET. Script# est similaire mais incomplet. Un message sur la liste de discussion altnet parle d’un effort par un développeur, Frank, de répondre à ce besoin. Est-ce qu’il y une place entre Silverlight et le couple ASP.NET MVC + jQuery ? Si cela ne vient pas de Microsoft peut-être que la communauté délivrera, appel à contribution lancé donc.

De l’autre côté

 La beta d’Adobe Air 2 est sortie en même temps que celle de Silverlight 4. Flash a connu 4 grandes étapes :

  • la création du plugin en 1996-97 qui a permis d’utiliser (et d'abuser) des animations vectorielles
  • le codec vidéo qui a révolutionné le streaming de vidéo sur le web (et de perdre beaucoup de temps sur youtube.com)
  • Flex : peu connu du grand public (sauf pour les 10.000 clients Twitter), c’est avec Flex et ActionScript (le langage) que Macromedia a fait son entrée dans le monde du développement d’entreprise (avec un back-end en Java)
  • Air : qui permet d’exécuter un programme en dehors du navigateur.

On compare souvent Air et Silverlight car ils se positionnent comme la plate-forme “smart client” (et sont souvent cités comme les concurrents de HTML5). Silverlight a l’avantage d’offrir une expérience de développement unifiée (client et serveur en .NET), Flash/Flex/Air celui du pourcentage de déploiement sur les postes des particuliers. Dans sa dernière incarnation Adobe fournit dans la suite un nouvel outil Catalyst qui permet de passer plus facilement d’un design de contrôle purement vectoriel à un “skin”réutilisable dans l’environnement de développement. 

Un projet

logo

dotlesscss (.less{}) se propose de moderniser la manipulation et la définition  des feuilles de styles (CSS). Il existe des techniques pour optimiser les styles en utilisant les bons sélecteurs mais il est vrai que la maintenance peut être fastidieuse.

dotlesscss supporte par exemple la déclaration de variables globales, ici une couleur :

@brand_color: #4D926F;
 
#header {
  color: @brand_color;
}
 
h2 {
  color: @brand_color;
}

ou encore les propriétés calculées :

@the-border: 1px;
@base-color: #111;
 
#header {
  color: @base-color * 3;
  border-left: @the-border;
  border-right: @the-border * 2;
}
 
#footer { 
  color: (@base-color + #111) * 1.5; 
}

Autopromotion (juste un peu)

nVentive sera présente lors des TechDays à Montréal : Erik Renaud animera une présentation d’introduction sur le Test-Driven Development (TDD).

Tuesday, December 01, 2009 1:18:23 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
.net | Revue du Web
# Tuesday, November 24, 2009

Les tweets de la semaine

Voici un site intéressant pour suivre les tweets de la communauté .NET : http://managedassembly.com/twitter C’est seulement un groupe sélectionné, certains se transforment en “drama queen” parfois mais l’essentiel est là : le partage de connaissances au sens large dans la communauté .NET

La question Stackoverflow

http://stackoverflow.com/questions/289176/how-is-duck-typing-different-from-the-old-variant-type-and-or-interfaces Avec les fonctionnalités de C# 4 comme le mot-clé dynamic, on parle de duck-typing, mais que recouvre ce terme ? Une explication avec exemple dans la question de la semaine.

Actualités Microsoft

La PDC 2009 ne restera sans doute pas dans les annales comme une des plus importantes. Sauf peut-être pour les conférenciers qui ont reçu un PC portable Tablet PC gratuitement.

Comme on le pressentait dans cette chronique les semaines précédentes, les sessions et annonces ont tourné autour de Azure, Dublin, Office 2010 et Silverlight 4 avec aussi un bilan de Windows 7.

Azure : en plus de l’offre commerciale qui démarre en 2010, l’éditeur a annoncé un AppStore de Azure sous le nom de code Dallas qui sortira en beta dans le courant de l ‘année prochaine. Mais aussi des outils comme ce Power Pack de synchronisation de base de données SQL Server vers Azure.

Dublin : Le projet a au moins un nom : Windows Server AppFabric et une beta. Et Velocity, le cache distribué, est aussi absorbé dans ce projet qui permet manager WCF et le nouveau WF dans IIS. 

Silvelright 4 : en plus des nouvelles API autour de la webcam et l’accès au système de fichiers local, on assiste au un rattrapage (attendu) du framework avec la CLR classique : présence des ICommand et IDataeErrorInfo chères aux développeurs WPF, compatibilité des binaires (i.e. plus de projets spécifiques Silverlight pour les composants communs), Tim Heuer a comme toujours un billet qui détaille ces nouveautés.

Divers : sortie de ASP.NET MVC 2 Beta, des renommages de produits : RIA Services et ADO.NET Data Services tombent dans l’ombrelle de WCF, un protocole d'accès aux données basé sur Atom : OData , la sortie de Geneva ou Windows Identity Foundation … Ah si on oubliait : l’annonce de IE9 mais à part un Power Point repris partout les informations intéressantes seront divulguées lors de MIX2010 en mars prochain.

Actualités “Alt.NET”

Finalement la PDC virtuelle alternative (NotAtPdc) a connu un certain succès avec une vingtaine de sessions sur ASP.NET MVC, Entity Framework, les bonnes pratiques de développement et même Javascript :) Espérons que les enregistrements soient disponibles.

De l’autre côté

Terracotta a annoncé le rachat de Quartz (version java) après celui de EhCache durant l’été. C’est une tendance, beaucoup d’entreprises fondées sur un projet Open Source phare rachète des projets connexes pour bâtir une offre plus complète. JBoss, Spring en sont les exemples les plus cités. Terracotta a connu un vrai succès en simplifiant la distribution d’applications. En utilisant la manipulation de byte code au runtime, l’application permet à des threads sur des JVMs différentes (CLR en .NET) de communiquer comme si elle appartenait à la même. Les cas d’utilisation les plus courants sont la distribution de cache, la réplication de sessions ou le clustering de POJO ou Spring Bean.

Un projet

PostSharp est une librairie AOP pour .NET. Cette librairie ajoute le code de l’aspect après la compilation. On utilise souvent l’AOP pour des considérations techniques comme l’audit, le cache, les exceptions ou encore la démarcation des transactions sur des couches comme le fait Spring.NET.

Le projet est basé sur les attributs .NET, en héritant de OnMethodBoundaryAspect par exemple on développe un composant qui sera exécuté à l’entrée et à la sortie de la méthode :

public sealed class MyAttribute : OnMethodBoundaryAspect

On peut alors surcharger les méthodes pertinentes :

public override void OnEntry( MethodExecutionEventArgs eventArgs )
{
	Trace.WriteLine(
	string.Format( "Entering {0}.{1}.",
				   eventArgs.Method.DeclaringType.Name,
				   eventArgs.Method.Name ),
	this.category );
}
public override void OnExit( MethodExecutionEventArgs eventArgs )
{
	Trace.WriteLine(
	string.Format( "Leaving {0}.{1}.",
				   eventArgs.Method.DeclaringType.Name,
				   eventArgs.Method.Name ),
	this.category );
}

et appliquer cet attribut sur notre méthode :

[Trace]
private static void ToBeTraced()
{
    Console.WriteLine("Hello, world." );
}
 
PostSharp travaille sur les assembly compilées, au niveau du MSIL, il est donc compatible avec tous les langages .NET
Tuesday, November 24, 2009 3:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2] -
.net | Revue du Web
# Tuesday, November 17, 2009

Les tweets de la semaine

http://twitter.com/shanselman/status/5740020895 Channel 9 la chaîne pour les développeurs .NET diffusera en direct un flux vidéo depuis la grande salle du centre de conférence. Au menu : interviews et démos par les présentateurs, partenaires et développeurs de la communauté.

http://twitter.com/giovannibassi/statuses/5738375005 il y a bien une underground PDC (enfin pas si underground car le principal intervenant est Scott Gutherie) mais sur twitter on a trouvé la “nopdc”, une conférence virtuelle ou une simple blague ?

http://twitter.com/tomconte/statuses/5720465827 mise à jour du Azure SDK (Novembre 2009) juste avant la PDC. L’accent est mis sur le support de Visual 2010, l‘amélioration des fonctionnalités de logs mais aussi sur le service comme la puissance des machines virtuelles, les ports HTTP ouverts etc.

La question Stackoverflow

 http://stackoverflow.com/questions/36296/whats-the-answer-to-this-microsoft-pdc-challenge une question PDC sur Stackoverflow, un peu tirée par les cheveux mais sympathique, voir le lien de la première réponse pour un explication

Actualités Microsoft

Nous y voilà. La PDC est le rendez-vous des développeurs .NET. Pour se tenir au courant Twitter est d’une grande aide. Azure sera sûrement la vedette de cette édition, Visual Studio 2010 étant déjà disponible on pourra sans doute approfondir certains points. Des surprises ? Peut-être du côté de Sharepoint ou de Office en ligne dont on a pas entendu parler même si certains produits comme Excel sont déjà disponibles.

Actualités “Alt.NET”

On parlait récemment du manque de Maven pour les projets .NET. Voici un début de solution avec HornGet. Ce site est un repository des librairies et frameworks couramment utilités. On y trouve la version stable courante mais aussi le trunk. Voici un exemple avec NHibernate : http://www.hornget.net/packages/orm/nhibernate/ A chaque fois les dépendances sont incluses dans le package.

De l’autre côté

La version 3 de Spring va bientôt voir le jour. Du framework simplifiant le développement J2EE en passant par l ‘injection des dépendances, Spring a eu un fort impact sur la communauté Java. Racheté par VMware, le contenu payant (outils, support, serveur d’application …) est de plus en plus étoffé. Au niveau des fonctionnalités c’est le support des annotations (lire attributs en .NET) de plus en plus présents ainsi que des API REST complètes. Mais c’est aussi un mouvement de fond et Spring est passé d’une multitude librairies pour combler des manques à un stack complet qui  est en concurrence avec Java EE6.

Un projet

Quartz.NET est un portage .NET d’une librairie de planification de tâches. On y trouve toutes les fonctionnalités pour ce type de programme :

  • intégré ou application “stand-alone”
  • planification par trigger sur dates, calendrier particulier (calendrier avec vacances etc.)
  • l’application fournit simplement des “jobs” : classes implémentant une interface et instanciées. On peut pendre le contrôle de l’instanciation via une factory. 
  • des fonctionnalités “entreprise”comme le fail-over ou le load-balancing

Voici un extrait des tutoriaux :

// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// construct job info
JobDetail jobDetail = new JobDetail("myJob", null, typeof(HelloJob));
// fire every hour
Trigger trigger = TriggerUtils.MakeHourlyTrigger();
// start on the next even hour
trigger.StartTimeUtc = TriggerUtils.GetEvenHourDate(DateTime.UtcNow);  
trigger.Name = "myTrigger";
sched.ScheduleJob(jobDetail, trigger); 

Le planificateur a la notion de calendrier attaché aux triggers ce qui permet d’exclure des dates pour lesquelles ceux-ci ne se déclenchent pas  :

HolidayCalendar cal = new HolidayCalendar();
cal.AddExcludedDate(someDate);
sched.AddCalendar("myHolidays", cal, false);
// fire every one hour interval
Trigger trigger = TriggerUtils.MakeHourlyTrigger();
// start on the next even hour
trigger.StartTimeUtc = TriggerUtils.GetEvenHourDate(DateTime.Now); 
trigger.Name = "myTrigger1";
trigger.CalendarName = "myHolidays";
// .. schedule job with trigger
// fire every day at 08:00
Trigger trigger2 = TriggerUtils.MakeDailyTrigger(8, 0);
// begin immediately
trigger.StartTimeUtc = DateTime.UtcNow; 
trigger2.Name = "myTrigger2";
trigger2.CalendarName = "myHolidays";
// .. schedule job with trigger2 
Tuesday, November 17, 2009 3:22:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
.net
# Wednesday, November 11, 2009

Les tweets de la semaine

http://twitter.com/adamhill/statuses/5433030511 : vous pensiez que les expressions lambda étaient la fin de vos peines de développeur ? Voici les “dynamic methods bags” avec C# 4. 

http://twitter.com/rbirkby/status/5309987820 le copier-coller le plus grand “ami” du développeur, voilà un outil pour détecter le code dupliqué.

http://twitter.com/Weiti/statuses/5473911173 snippet console, pour tester des bouts de code.

La question Stackoverflow

http://stackoverflow.com/questions/1694297/does-entity-framework-4-0-allow-to-work-without-designers

Entity-Framework en est déjà à la version 4 mais ne vous inquiétez pas si vous avez ignoré les versions précédentes, cette dernière incarnation de l’ORM de l’éditeur (rappelez-vous d’ObjectSpaces) est presque un nouveau produit. On y trouve la transparence des mécanismes de persistance et comme évoquée dans la question de la semaine une API du mapping plus accessible.

Actualités Microsoft

Encore quelques jours avant la PDC 2009, nous continuons le tour d’horizon du .NET Framework 4.0 avec WPF. Une technologie prometteuse mais peut-être trop innovante ? Un nouveau langage (XAML), un manque certain d’outils et de contrôles de base (vous avez dit DataGrid ?). Enfin tout cela était avant la version 4.0 qui occupe le devant de la scène : le nouveau Visual Studio 2010 utilise WPF comme moteur de rendu pour l’éditeur de code.On peut consulter ici la liste des nouveautés. Une des ressources les plus instructives sur le Framework de présentation est le blog de Jaime Rodriguez avec notamment son billet hebdomadaire qui condense des questions / réponses de la liste de diffusion interne de Microsoft.      

Actualités “Alt.NET”

On a beaucoup entendu parler ces derniers temps de Mono grâce à MonoTouch, le Framework qui permet de développer en C# des applications pour l’iPhone.  Mais l’hébergement est un domaine où Mono peut faire le différence. Pour ceux qui préfèrent un hébergement sous un OS alternatif, voici un blog qui offre quelques informations sur l‘installation de Mono.Une image avec un serveur virtuel préinstallé est disponible.

De l’autre côté

La fondation Apache fête ses 10 ans. Démarré avec le fameux serveur web, la communauté comporte maintenant 65 projets dont les plus connus comme Tomcat, Strut, Commons ont presque défini le mode de travail autour de l’open source pour les projets Java. Microsoft qui est devenu partenaire en 2008,  a lancé un site d'hébergement pour les projets : CodePlex et depuis peu une fondation Codeplex.org dont on attend encore les détails de fonctionnement mais qui à l’ instar de Eclipse ou Apache sera un lieu d’incubation et de développement pour des projets Open Source de la plate-forme .NET.

Un projet

Aujourd’hui pas de code, car ce projet n’existe pas encore ou du moins il est encore en phase de démarrage : Noda. Né de l’idée de John Skeet, employé de Google et ancien MVP C#, cette librairie sera un portage de la librairie Joda. L’objet ? Fournir une utilisation facile, performante et extensible des concepts de temps et date. Cela va de fournir des chronologies (ISO, Julian, Islamic) aux concepts comme les instants, les durées, les intervalles de temps et les calculs qu’on peut effectuer dessus.

Wednesday, November 11, 2009 3:40:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
.net
# Friday, November 06, 2009

Nous organisons un atelier sur le TDD, Test-Driven Developement,  le vendredi 27 novembre. Cette journée attache beaucoup d’importance aux exercices et aux outils que vous utiliserez dans la vie de tous les jours pour pratiquer un développement agile.

Voici un extrait de la description – consulter le lien ci-dessous pour plus de détails sur l’agenda.

Dans la première partie de ce cours, nous répondrons à la question "Qu'est-ce le  TDD ?" mais aussi le "pourquoi, dans quel but et à quel coût ?"
La deuxième phase est plus axée sur la mise en pratique avec les outils et frameworks orientés « xUnit » autour de cas pratiques. On verra également dans cette partie l'utilisation des « stubs » et « mocks » ainsi que les différences entre les différents types de faux objets qui permettent l’isolation des tests.
Pour terminer, on explorera les meilleures pratiques du TDD, les  pièges à éviter. On jettera également un regard sur les méthodes périphériques comme le « Behavior-Driven Development » et l'íntégration continue.

Inscription : http://nventive.eventbrite.com/
Contact : info@nventive.net

Friday, November 06, 2009 3:20:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
.net | Agile - Development
Search
Archive
<December 2009>
SunMonTueWedThuFriSat
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
Statistics
Total Posts: 98
This Year: 28
This Month: 3
This Week: 0
Comments: 17
Sign In