.Net pour le développeur Java :
  une source d'inspiration ?
          Cyrille Martraire @cyriux
           Rui Carvalho @rhwy
C’est vendredi soir
http://www.futura-sciences.com/fr/doc/t/medecine-1/d/et-bailler-de-plaisir_571/c3/221/p3/
Au menu
                                    Au menu



                  • Le point sur .Net
                  • Ce quimanque à Java Java
                  Ce   qui manque à

                  • Du fun !
                Le point sur .Net


http://blog.gaborit-d.com/17-parodies-fun-de-la-situation-room/
Au menu




                   Ce qui manque à Java

                Le point sur .Net


http://blog.gaborit-d.com/17-parodies-fun-de-la-situation-room/
Rui - @rhwy
•   Développeur, architecte, blogueur, prof

•   indépendant chez ArtOfNet

•   Dans le web et technos microsoft depuis près de 15 ans

•   Spécialiste Asp.Net Mvc, Sql Server et Speaker au Techdays

•   Animateur dans la communauté .Net ALT.NET Paris

•   Passionné de dev, OSS, web, agilité, architectures

•   Veut devenir maitre artisan du logiciel quand il sera grand
Cyrille - @cyriux
•   Ingénieur généraliste ENSTA à Brest

•   Développeur depuis les startups en 2000, et en finance depuis

•   Fondateur de la communauté Software Craftsmanship Paris

•   Co-fondateur et directeur technique d’Arolla

•   Passionné de développement, DDD, TDD, BDD, specs agiles…

•   Veut devenir maitre artisan du logiciel quand il sera grand
.Net pour moi au départ…
http://www.freeimageslive.co.uk/free_stock_image/bsodbluescreen6927jpg
"La Guerre des Voisins"
Once
upon
 a
Time
 ...
1996 - Java Applets (cool)
1996 – Active X (cool?)
CGI      Perl




(sub{s,^(.*)$,$1+//,e for@_})->($A)
1995 – ASP / IIS
~ 1999 JSP-J2EE
Reprenons le fil de l'histoire
         - next -
1996 JDK 1.0                  1998 JDK 1.2            2002 JDK 1.4

               1997 JDK 1.1            2000 JDK 1.3




                                                      2002 .Net 1.0
2013? JDK 8.0

2002 JDK 1.4                 2006 JDK 6.0

                2004 JDK 5.0                                      2011 JDK 7.0




          2003 .Net 1.1          2005 .Net 3.0           2010 .Net 4.0
2002 .Net 1.0
                          2005 .Net 2.0          2007 .Net 3.5            2012 .Net 4.5
Oui mais concrètement?
.Net : une réplique de Java ?
•
    'instanceof' is called 'is'
•
    {}
•
    Majuscules !
Naturellement polyglotte !
Séduire les fans de C++
Séduire les fans de C++
             •   exe .dll autour du bytecode

             •   arithmétique de pointeurs

             •   unsafe, fixed : mémoire à la main

             •   conditional compilation
Fonctionnalités
Java Vs. C#/.Net
Razor                                                   3rd-party Java libs & APIs
                     Extension methods
        LINQ                                          Pure Java →
F#                 Lambdas                            Portable            Open-Source
     Operator overloading
                                                                      Mieux en Java
                                        Array ≈ Collection

Jaloux de C#                                                  Java enum as class
                    Lifted “?” syntax      delegate
Dynamics                                                     Partial class
                  Expression trees
                                                                  Conditional Compilation
         Reified generics                Generator
                                         (yield)
Votre. feature Net préférée ?
Votre feature Net préférée ?
              • Syntax Sugars
              • Extension Methods
              • Lambdas
              • Linq

              • (Razor)
Prenons un exemple
Old School to LINQ


           Voyage dans les bonnes choses de C#
Itérators                     Auto
            lambdas         Properties

            Dynamics        Linq
  var
                       Extension
  Anonymous            Methods
    objects
SOLID? DRY?
    refactor
Ce qui nous amène à LINQ
Derniers Points
Dynamics

!= variant         != dynamic proxy

= Type spécial     = proxy contrat infini
extensible           + méthodes d'accès
Mais aussi
Razor - syntaxe hybride HTML/C#

    @foreach(var item in Model) {

              int next = item.Count+1;    Ca poutre !

              <h2>@item.Title</h2>
              <a href="#@next">Next</a>
    }

    <h1>Ma collection</h1>
Play 2 - copiteur en Scala

@(customer: Customer, orders: List[Order])
<h1>Welcome @customer.name!</h1><ul>
@for(order <- orders) {
 <li>@order.getTitle()</li>} </ul>
Communautés
Plus c’est social mieux c’est
http://monodevelop.com/Screenshots
http://monodevelop.com/Screenshots
http://bourse-planete.com/leffet-moutonnier/
http://blog.zap2it.com/pop2it/2012/02/sacha-baron-cohen-aka-the-dictator-will-attend-the-oscars.html
http://bourse-planete.com/leffet-moutonnier/
http://blog.zap2it.com/pop2it/2012/02/sacha-baron-cohen-aka-the-dictator-will-attend-the-oscars.html
Pour Finir
Quelques Messages
JVM != JAVA
Enterprise
  Wars
    ...
http://www.designsontalent.com/blog/bid/50260/10-Tips-for-Reinventing-Talent-Acquisition
C# : le langage idéal ?
Questions




http://www.actone.net/methodes/poser-des-questions/

.Net pour le développeur Java - une source d'inspiration?