SlideShare ist ein Scribd-Unternehmen logo
1 von 64
JAVA VS .NET
   Par Farouk Korteby
Qui suis-je ?
Farouk Korteby
• 1 année : Responsable technique chez Founouvel
 Informatics.
  • Développement des applications pour le domaine médical.
  • Technologies .Net.
• 4 années : Responsable technique chez Nearbee.
   • Développement des solutions collaboratives professionnelles.
   • Technologies Java.
• 7 ans : d'expérience dans le domaine du développement
 logiciel
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Le choc culturel
Historique
                         1975-1995.
Sun Microsystems: Créé en 1982. spécialisée dans la
 vente des serveurs et Créateur du système d’exploitation SOLARIS.

Microsoft: Fondé en 1975. spécialisée dans la conception des
 logiciels. MS-DOS 1.0 dans le premier IBM PC en 1981.
 1985, Windows 1.0 voit le jour, suivi en 1990 de Windows 3.0 et en
 1995 de Windows 95.

 Une certaine compétition au niveau des systèmes d’exploitation au
 travers de IBM (Windows vs Solaris).

 Microsoft est plus actif du coté des ordinateurs de bureau (desktop)
          tandis que Sun est plus actif du coté des serveurs.
Historique
Mai 1995: Java est lancée par Sun.

Mars 1996: Microsoft achète une licence Java de Sun pour
 pouvoir utiliser les Applets Java dans Internet Explorer et offrir
 des outils de développement pour Java (Visual J++).

Octobre 1997: Action en justice de Sun contre Microsoft :
 Sun estime que Microsoft n’a pas respecté la licence en
 développant une version de Java incompatible avec les
 spécifications de Sun.
 Microsoft continue de développer sa propre version de Java.
 Librairies, compilateur, machine virtuelle.

Novembre 1998: Sun obtient une injonction qui empêche MS de
 vendre tout produit Java incompatible avec ses spécifications.

Juin 1999: Sun annonce le lancement de J2EE. Un ensemble
 de standard permettant de créer des applications d’entreprise
 en n’utilisant que le langage Java.
Historique
Juin 2000: .NET est lancé par Microsoft, avec un nouveau
 langage semblable à Java appelé C#.

Janvier 2001: Sun & Microsoft se mettent d’accord
 Sun obtient $20 millions. Microsoft ne peut plus développer
 de produits incompatibles avec les spécifications de Sun
 mais peut continuer à distribuer les versions actuelles.

Juin 2001: Microsoft rend disponible la version BETA 2 de
 son .NET Framework SDK.

Juillet 2001: Microsoft annonce que sa machine virtuelle
 pour Java ne sera pas distribuée avec son nouveau système
 d’exploitation, Windows XP, ni dans Internet Explorer 6.
Historique
Octobre 2001: Lancement de Windows XP. Cette nouvelle
 version de Windows est basée sur les technologies NT et
 2000.
 Windows XP ne contient pas le Framework .NET.

Janvier 2002: Le .NET Framework SDK version finale est
 disponible pour téléchargement sur le site web de Microsoft.


Février 2002: Microsoft lance Visual Studio .NET.

Mars 2002: Action en justice de Sun contre Microsoft.
 Environ 1 milliard de dollars est demandé, l’inclusion de Java
 dans Windows XP et IE6…
Historique
Quelques Remarques :
• La plateforme .Net est lancée après que SUN
  remporte le procès l’obligeant Microsoft
  d'arrêté le développement sa propre version de
  sa machine virtuelle JAVA.

• C# : Le nouveau langage lancé par Microsoft est
 très similaire au langage Java.

La plateforme .Net comporte beaucoup de points
      de similitude avec la plateforme Java.
Historique




             +1
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Plateforme Java
• Un langage de programmation Java
   • JDK : Java Development Kit
   • JSR : Java Specification Requests
• Une machine virtuelle appelée JVM
   • Solaris, Windows, Linux, …
• Librairies Java :
  Java SE : Java Standard Edition
  Applications de bureau
  Java EE : Java Enterprise Edition
  Serveurs d’applications
  Java ME : Java Micro Edition
  Appareils mobiles
  Java FX
  Création des interfaces riches
Organisation des plateformes Java
      EE, Java SE, Java FX
JVM : Machine virtuelle Java
• HotSpot par SUN.
• Microsoft Java Virtual Machine.
• Dalvik par Google pour Android.
• JRockit par Oracle.
• IBM
• APPLE
•…
Plateforme .Net
• Multi langages : C#, VB.NET, J#, C++, Delphi …
  • La norme Common Language Infrastructure (CLI)
• Une machine virtuelle CLR (common Language Runtime)
  • Tourne sur Windows exclusivement
• Frameworks .Net
  • Winforms (application du bureau)
  • ASP.NET (application serveur)
  • .NET Compact Framework (appareils mobiles)
LA PILE .Net
     Framework
ADO.NET

WPF (Windows Presentation
Foundation)

WCF (Windows
Communication Foundation)

WF (Workflow Foundation)

LINQ (Language Integrated
Query)
Implémentations de la .NET Framework
• CLR par Microsoft.
  • Fonctionne exclusivement sur Windows
• Portable.NET un projet de DotGNU
  • Mutli plateforme.
• Mono par Xamarin (Novell)
  • Android, BSD, iOS, OSX, Windows, Solaris...
• .NET Compact Framework par Microsoft
   • Xbox 360.
• Microsoft Silverlight par Microsoft
  • Une implementation pour les navigateurs
    Web multiplate-forme.
Packaging
• Java
   • Fichier .class pour chaque classe.
   • Regroupement des .class (.jar).
   • .class et .jar doivent être dans le « classpath ».
• .NET
   • Regroupement en Assemblies (.EXE, .DLL)
   • Gestion des versions
     • Le CLR s’occupe de « loader » le bon assembly en fonction de la version.
     • Un même processus peut utiliser plusieurs versions d’un même
       assembly.
     • Élimine les problèmes de compatibilité entre différentes versions d’un
       même DLL.
  • GAC: Global Assembly Cache
    • Endroit où sont stockés les assemblies.
    • Géré par le framework.
Présentation




               +2
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Java : Outils de développement
• Eclipse IDE (IBM)
  • Open source
  • Multiplateformes (à base de Java)
  • > 3 millions d’extensions et plugins marketplace.eclipse.org
  • Fonctionnalités :
    • JDT (Java Development Tools Project)
    • ATF (AJAX Toolkit Framework)
    • WindowBuilder (Développement graphique Java)

  • Action
    script, C, C#, C++, COBOL, Coldfusion, HTML, Java, Ja
    vaScript, Pascal, Perl (EPIC), PHP (PDT), Python via
    PyDev2, SQL, XML.
  • Versions commercial :
    • MyEclipse, JBoss   Developer Studio…
Java : Outils de développement
• NetBeans IDE (SUN)
  • Open source
  • Multiplateformes (à base de Java)
  • Une centaine de plugins disponible sur : plugins.netbeans.org
  • Fonctionnalités :
    • Java Swing GUI Builder.
    • Java EE : JSP, JSF, EJB, Apache Struts, Spring, Hibernate …
    • Java ME, Java FX.

  • Python, C, C++, JavaScript, XML, Ruby, PHP et HTML.
.Net : Outils de développement
• Microsoft Visual studio .Net
 • Versions Standards
   • Payant environ 600€
   • Basé sur les systèmes Windows
   • Winforms, ASP.NET, Phone.
   • Team Foundation Server (Ultimate)
   • MSDN (Microsoft Developer Network)
   • > 3 milles extensions disponible sur
     visualstudiogallery.msdn.microsoft.com
.Net : Outils de développement
• Microsoft Visual studio .Net
  • Versions Express
   • Gratuit
   • Basé sur les systèmes Windows
   • Plusieurs versions :
      • Visual C# Express Edition
      • Visual Basic Express Edition
      • Visual C++ Express Edition
      • Visual Web Developer Express Edition (ASP.NET)
      • …
.Net : Outils de développement
• Différences entre Microsoft Visual Studio .Net Express
 et Standard :

 • Express : Visual C# Express Edition, Visual C++ Express
   Edition, Visual Web Developer Express Edition …

 • Les versions Express ne support pas les plugins.
Support : Java vs .Net
• Java :
   • Java Doc : Gratuit (online & offline).
   • http://www.java.net/
   • http://www.theserverside.com/
   • http://www.roseindia.net/java/
• .Net
   • MSDN : Gratuit online / Payant offline (748€)
   • http://msdn.microsoft.com
   • http://www.codeproject.com/
   • http://www.codeplex.com/
Outils de développement




                 +1
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Le Langage Java vs C#
 • Java
          public class Bonjour
          {
            public static void main(String[] args)
                {
                   System.out.println("Hello, World !");
 • C#           }
          }

          class Bonjour
          {
             static void Main(string[] args)
             {
                System.Console.WriteLine(" Hello, World ! ");
             }
          }
Héritage, Java vs C#
 • Java   class B extends A implements Comparable
          {
             int compareTo(){}
             public static void main(String[] args)
             {
                 System.out.println("Hello World");
 • C#        }
          }

          using System;
          class B : A, IComparable
          {
             int CompareTo(){}
             public static void Main(String[] args)
             {
                 Console.WriteLine("Hello World");
             }
          }
Héritage, Java vs C#
 • Java   public void withdrawAmount(int num)
          {
            synchronized(this)
            {
                if(num < this.amount)
                this.amount -= num;
 • C#       }
          }

          public void WithdrawAmount(int num)
          {
            lock(this)
            {
                if(num < this.amount)
                this.amount -= num;
            }
          }
Types de données, Java vs C#
• Différences dans les types de données :
 • Java
    • Arithmétique multi précision (Arbitrary size decimals)


 • C#
   • Entiers non signés
   • Nombre complexe
   • Value Types (avec le mot clé struct)
   • Pointers
Orienté Objet, Java vs C#
• Différences :
  • Java
    • Classe Anonymes
    • Classe Internes
    • Enums peut implémenté les interfaces


  • C#
    • Partial classes
    • Redéfinition des operateurs
    • Conversions Implicite et Explicite
Avantages C#
• C#
 • Collections + foreach
 • Unification des types
   • Tous les types sont des objets en C#, contrairement à Java.
   • Exemple :
       int i = 5;
       System.Console.WriteLine(i.ToString());
   • Concepts: Boxing/Unboxing.
   • Exemple :
      Stack stack = new Stack();
      stack.Push(i); // boxing
      int j = (int)stack.Pop(); // unboxing
Avantages C#
• C#
  • Polymorphism
     • Mots clés « virtual », « override » et « new » obligatoires.
  • Modifiers
     • Mot clé « ref » permet de passer des paramètres par référence.
       public void reverse(ref int x, ref int y);
    • Mot clé « params » permet de déclarer des méthodes avec
      nombre de paramètres variable:
      public int add(params int[] array);
C# vs Java
• Pour aller plus loin :


                Voir l’article de Dare Obasanjo
  http://www.25hoursaday.com/CsharpVsJava.html
Le Langage Java vs C#




                +2
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Application de bureau, Java vs .Net
• Java
   • AWT (Abstract Window Toolkit)
   • Swing (Java GUI widget toolkit)
   • SWT (Standard Widget Toolkit)
    • Eclipse Foundation
    • Windows XP, Linux, Mac OS, Pocket PC
  • Applet, JavaFX
  • Java Web Start
Application de bureau, Java vs .Net
• .Net
   • WinForms (Windows Forms)
      • Access native aux interfaces Windows
  • WPF (Windows Presentation Foundation)
      • XAML
  •    Silverlight
      • Un plugin pour navigateurs Web
  • Mono (une CLR multiplateformes) :
      • MonoTouch (iOS)
      • Mono for Android
Application de bureau




                 +3
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Application serveur, Java vs .Net
• Java : Java EE.
   • Apache Tomcat, JBoss (RedHat), GlassFish…
   • Java Servlet
   • JSP (Java Server Pages)
   • JSF (Java Server Faces)
   • EJB (Enterprise JavaBeans)
   • JDBC (Java DataBase Connectivity)
   • RMI (Remote method invocation)
Application serveur, Java vs .Net
• .Net : ASP.NET
   • IIS (Internet Information Services)
   • C#, Visual Basic.NET,Delphi.NET, Perl et Python
   • WebForms
   • ASP.NET AJAX
   • ASP.NET MVC Framework
   • ADO.NET
   • .NET Remoting (WCF)
Application serveur




                  +3
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Application mobile, Java vs .Net
• Java :
   • Java ME (Java Micro Edition)
    • CLDC (Connected Limited Device Configuration), que l'on retrouve par
      exemple dans les téléphones mobiles.
    • CDC (Connected Device Configuration), qui est plutôt utilisé dans des
      décodeurs de télévision numérique.
  • Android (Google)
    • Noyau Linux
    • Smartphones, tablettes tactiles …
    • Dalvik
Application mobile, Java vs .Net
• .Net
   • .NET Compact Framework
    • Windows CE ou Windows Mobile
    • Xbox 360 console (Microsoft XNA)
    • .NET Compact Framework controls ( WinForms)


  • .NET Micro Framework
    • Pour appareils embarquées ayant des ressources très restreintes.
Application mobile




                 +4
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Framework, Java vs .Net
•        Couche de présentation
     •      Java
         • Framework à base de composants :
            • JSF, GWT, Wicket
         • Framework à base d’actions :
            • Apache Struts , Spring MVC
    • .Net
         • WPF (Windows Presentation Foundation)
         • Gratuit : ASP.NET Control Gallery
         • Commercial : Telerik, Infragistics, DevExpress
Framework, Java vs .Net
• ORM (mapping objet-relationnel)
  • Java
   • JPA (Java Persistence API)
   • JDO (Java Data Objects)
   • Hibernate
 • .Net
   • Entity Framework
   • Nhibernate
   • LINQ (Language Integrated Query)
Framework, Java vs .Net
• Conteneurs légers
  • Java
   • Spring Framework
   • Google Guice
   • Apache HiveMind
 • .Net
   • Spring.NET
Framework, Java vs .Net
• Autres Framework de Développement
  • Java
   • EJB (Enterprise JavaBeans)
 • .Net
   • COM+ (Component Object Model)
   • Microsoft Enterprise Library
Framework




            +5
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Sécurité, Java vs .Net
Sécurité, Java vs .Net
• .NET et J2EE
   • offrent un bon niveau de sécurité.
   • Les permissions et preuves sont gérées de manière fine.
• .NET offre un niveau de contrôle plus fin que Java grâce
 au PolicyManager.
Sécurité, Java vs .Net




                   +4
Sommaire
1.    Introduction
2.    Présentation des deux plateformes
3.    Outils de développement
4.    Langages de programmation
5.    Application de bureau
6.    Application serveur
7.    Application mobile
8.    Framework de développement
9.    Sécurité
10.   Conclusion
Conclusion




+5                +4
Conclusion
• Java est un langage un environnement d’exécution, .Net
    est un environnement d'exécution qui prend en charge
    plusieurs langues, Visual Basic et C # ...
•   C # est très similaire à Java, mais plus jeune, et un peu
    plus agréable dans certains cas.
•   Java est multiplateformes, . Net est principalement
    conçue pour Windows.
•   . Net dispose d'un environnement de développement plus
    intégré, alors que Java est basé sur outil tiers et des
    fournisseurs de serveurs.
•   Java offre une plus grande flexibilité, due au nombre
    important des contributions disponible gratuitement.
Conclusion
• Fonctionnellement y’a pas une grande différence entre les
 deux plateformes d’une manière générale.



Le choix finalement entre ses deux technologies dépendra
              plus du contexte d’utilisation.
QUESTIONS ?

Weitere ähnliche Inhalte

Was ist angesagt?

CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeadsRNS
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Réalisation d’applications Desktop Windows/Mac Os avec PHPRéalisation d’applications Desktop Windows/Mac Os avec PHP
Réalisation d’applications Desktop Windows/Mac Os avec PHPAlexandre Morgaut
 
JPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à AchillesJPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à AchillesIppon
 
présentation migration automatisee Pacbase -> UML + Java
présentation migration automatisee Pacbase -> UML + Javaprésentation migration automatisee Pacbase -> UML + Java
présentation migration automatisee Pacbase -> UML + JavaDidier Durand
 
Java 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuchJava 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuchTarek Halloul
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Microsoft
 
Java 110605092007-phpapp02
Java 110605092007-phpapp02Java 110605092007-phpapp02
Java 110605092007-phpapp02Eric Bourdet
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?codedarmor
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummiesMicrosoft
 

Was ist angesagt? (14)

CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & Android
 
Windev
WindevWindev
Windev
 
Introduction àJava
Introduction àJavaIntroduction àJava
Introduction àJava
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Réalisation d’applications Desktop Windows/Mac Os avec PHPRéalisation d’applications Desktop Windows/Mac Os avec PHP
Réalisation d’applications Desktop Windows/Mac Os avec PHP
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
 
JPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à AchillesJPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à Achilles
 
présentation migration automatisee Pacbase -> UML + Java
présentation migration automatisee Pacbase -> UML + Javaprésentation migration automatisee Pacbase -> UML + Java
présentation migration automatisee Pacbase -> UML + Java
 
Java 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuchJava 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuch
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Java 110605092007-phpapp02
Java 110605092007-phpapp02Java 110605092007-phpapp02
Java 110605092007-phpapp02
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummies
 

Andere mochten auch

OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT LanguagesEdward Willink
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in FrancePascal Roques
 
Timing verification of automotive communication architecture using quantile ...
Timing verification of automotive communication  architecture using quantile ...Timing verification of automotive communication  architecture using quantile ...
Timing verification of automotive communication architecture using quantile ...RealTime-at-Work (RTaW)
 
mis
mismis
misISIG
 
Vbisigk
VbisigkVbisigk
VbisigkISIG
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughRealTime-at-Work (RTaW)
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification StatusEdward Willink
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Etienne Juliot
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsEdward Willink
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking AssignmentSalma ES-Salmani
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governancebharati k
 

Andere mochten auch (20)

OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
Timing verification of automotive communication architecture using quantile ...
Timing verification of automotive communication  architecture using quantile ...Timing verification of automotive communication  architecture using quantile ...
Timing verification of automotive communication architecture using quantile ...
 
mis
mismis
mis
 
Vbisigk
VbisigkVbisigk
Vbisigk
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enough
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification Status
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc results
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Cvl
CvlCvl
Cvl
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
 

Ähnlich wie Java vs .Net

La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsMicrosoft
 
Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web servicesoussemos
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous AndroidAbdelkader Rhouati
 
Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro javaAmel Morchdi
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & toolsSlim Soussi
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp FrGregory Renard
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
Welcome to Microsoft World
Welcome to Microsoft WorldWelcome to Microsoft World
Welcome to Microsoft WorldAhd Bk
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière Cellenza
 
Développement d'un composant win rt
Développement d'un composant win rtDéveloppement d'un composant win rt
Développement d'un composant win rtArnaud Auroux
 
L’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidChris Saez
 
Tech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesMichael Laguerre
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdfmed_univ78
 
Cours VB 2012 seance 1
Cours VB 2012 seance 1Cours VB 2012 seance 1
Cours VB 2012 seance 1ISIG
 

Ähnlich wie Java vs .Net (20)

Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nuls
 
Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web services
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 
Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro java
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & tools
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp Fr
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Paug aosp ice-creamsandwich_20120119
Paug aosp ice-creamsandwich_20120119Paug aosp ice-creamsandwich_20120119
Paug aosp ice-creamsandwich_20120119
 
Welcome to Microsoft World
Welcome to Microsoft WorldWelcome to Microsoft World
Welcome to Microsoft World
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière
 
Développement d'un composant win rt
Développement d'un composant win rtDéveloppement d'un composant win rt
Développement d'un composant win rt
 
Native script
Native scriptNative script
Native script
 
L’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & Android
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Tech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobiles
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
Cours VB 2012 seance 1
Cours VB 2012 seance 1Cours VB 2012 seance 1
Cours VB 2012 seance 1
 

Mehr von Korteby Farouk

Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutantKorteby Farouk
 
XWiki : Framework de développement pour les plateformes collaboratives
XWiki : Framework de développement pour les plateformes collaborativesXWiki : Framework de développement pour les plateformes collaboratives
XWiki : Framework de développement pour les plateformes collaborativesKorteby Farouk
 
Atelier : Développement rapide d&rsquo;une application basée surXWiki
Atelier : Développement rapide d&rsquo;une application basée surXWikiAtelier : Développement rapide d&rsquo;une application basée surXWiki
Atelier : Développement rapide d&rsquo;une application basée surXWikiKorteby Farouk
 
Ateliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceAteliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceKorteby Farouk
 
Le système d&rsquo;E/S en Java
Le système d&rsquo;E/S en JavaLe système d&rsquo;E/S en Java
Le système d&rsquo;E/S en JavaKorteby Farouk
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMIKorteby Farouk
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database ConnectivityKorteby Farouk
 

Mehr von Korteby Farouk (10)

Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutant
 
XWiki : Framework de développement pour les plateformes collaboratives
XWiki : Framework de développement pour les plateformes collaborativesXWiki : Framework de développement pour les plateformes collaboratives
XWiki : Framework de développement pour les plateformes collaboratives
 
Atelier : Développement rapide d&rsquo;une application basée surXWiki
Atelier : Développement rapide d&rsquo;une application basée surXWikiAtelier : Développement rapide d&rsquo;une application basée surXWiki
Atelier : Développement rapide d&rsquo;une application basée surXWiki
 
Ateliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceAteliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open source
 
Le système d&rsquo;E/S en Java
Le système d&rsquo;E/S en JavaLe système d&rsquo;E/S en Java
Le système d&rsquo;E/S en Java
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMI
 
Le Réseau et Java
Le Réseau et JavaLe Réseau et Java
Le Réseau et Java
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
Applets
AppletsApplets
Applets
 

Java vs .Net

  • 1. JAVA VS .NET Par Farouk Korteby
  • 2. Qui suis-je ? Farouk Korteby • 1 année : Responsable technique chez Founouvel Informatics. • Développement des applications pour le domaine médical. • Technologies .Net. • 4 années : Responsable technique chez Nearbee. • Développement des solutions collaboratives professionnelles. • Technologies Java. • 7 ans : d'expérience dans le domaine du développement logiciel
  • 3. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 5. Historique 1975-1995. Sun Microsystems: Créé en 1982. spécialisée dans la vente des serveurs et Créateur du système d’exploitation SOLARIS. Microsoft: Fondé en 1975. spécialisée dans la conception des logiciels. MS-DOS 1.0 dans le premier IBM PC en 1981. 1985, Windows 1.0 voit le jour, suivi en 1990 de Windows 3.0 et en 1995 de Windows 95. Une certaine compétition au niveau des systèmes d’exploitation au travers de IBM (Windows vs Solaris). Microsoft est plus actif du coté des ordinateurs de bureau (desktop) tandis que Sun est plus actif du coté des serveurs.
  • 6. Historique Mai 1995: Java est lancée par Sun. Mars 1996: Microsoft achète une licence Java de Sun pour pouvoir utiliser les Applets Java dans Internet Explorer et offrir des outils de développement pour Java (Visual J++). Octobre 1997: Action en justice de Sun contre Microsoft : Sun estime que Microsoft n’a pas respecté la licence en développant une version de Java incompatible avec les spécifications de Sun. Microsoft continue de développer sa propre version de Java. Librairies, compilateur, machine virtuelle. Novembre 1998: Sun obtient une injonction qui empêche MS de vendre tout produit Java incompatible avec ses spécifications. Juin 1999: Sun annonce le lancement de J2EE. Un ensemble de standard permettant de créer des applications d’entreprise en n’utilisant que le langage Java.
  • 7. Historique Juin 2000: .NET est lancé par Microsoft, avec un nouveau langage semblable à Java appelé C#. Janvier 2001: Sun & Microsoft se mettent d’accord Sun obtient $20 millions. Microsoft ne peut plus développer de produits incompatibles avec les spécifications de Sun mais peut continuer à distribuer les versions actuelles. Juin 2001: Microsoft rend disponible la version BETA 2 de son .NET Framework SDK. Juillet 2001: Microsoft annonce que sa machine virtuelle pour Java ne sera pas distribuée avec son nouveau système d’exploitation, Windows XP, ni dans Internet Explorer 6.
  • 8. Historique Octobre 2001: Lancement de Windows XP. Cette nouvelle version de Windows est basée sur les technologies NT et 2000. Windows XP ne contient pas le Framework .NET. Janvier 2002: Le .NET Framework SDK version finale est disponible pour téléchargement sur le site web de Microsoft. Février 2002: Microsoft lance Visual Studio .NET. Mars 2002: Action en justice de Sun contre Microsoft. Environ 1 milliard de dollars est demandé, l’inclusion de Java dans Windows XP et IE6…
  • 9. Historique Quelques Remarques : • La plateforme .Net est lancée après que SUN remporte le procès l’obligeant Microsoft d'arrêté le développement sa propre version de sa machine virtuelle JAVA. • C# : Le nouveau langage lancé par Microsoft est très similaire au langage Java. La plateforme .Net comporte beaucoup de points de similitude avec la plateforme Java.
  • 11. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 12. Plateforme Java • Un langage de programmation Java • JDK : Java Development Kit • JSR : Java Specification Requests • Une machine virtuelle appelée JVM • Solaris, Windows, Linux, … • Librairies Java : Java SE : Java Standard Edition Applications de bureau Java EE : Java Enterprise Edition Serveurs d’applications Java ME : Java Micro Edition Appareils mobiles Java FX Création des interfaces riches
  • 13. Organisation des plateformes Java EE, Java SE, Java FX
  • 14. JVM : Machine virtuelle Java • HotSpot par SUN. • Microsoft Java Virtual Machine. • Dalvik par Google pour Android. • JRockit par Oracle. • IBM • APPLE •…
  • 15. Plateforme .Net • Multi langages : C#, VB.NET, J#, C++, Delphi … • La norme Common Language Infrastructure (CLI) • Une machine virtuelle CLR (common Language Runtime) • Tourne sur Windows exclusivement • Frameworks .Net • Winforms (application du bureau) • ASP.NET (application serveur) • .NET Compact Framework (appareils mobiles)
  • 16. LA PILE .Net Framework ADO.NET WPF (Windows Presentation Foundation) WCF (Windows Communication Foundation) WF (Workflow Foundation) LINQ (Language Integrated Query)
  • 17. Implémentations de la .NET Framework • CLR par Microsoft. • Fonctionne exclusivement sur Windows • Portable.NET un projet de DotGNU • Mutli plateforme. • Mono par Xamarin (Novell) • Android, BSD, iOS, OSX, Windows, Solaris... • .NET Compact Framework par Microsoft • Xbox 360. • Microsoft Silverlight par Microsoft • Une implementation pour les navigateurs Web multiplate-forme.
  • 18. Packaging • Java • Fichier .class pour chaque classe. • Regroupement des .class (.jar). • .class et .jar doivent être dans le « classpath ». • .NET • Regroupement en Assemblies (.EXE, .DLL) • Gestion des versions • Le CLR s’occupe de « loader » le bon assembly en fonction de la version. • Un même processus peut utiliser plusieurs versions d’un même assembly. • Élimine les problèmes de compatibilité entre différentes versions d’un même DLL. • GAC: Global Assembly Cache • Endroit où sont stockés les assemblies. • Géré par le framework.
  • 20. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 21. Java : Outils de développement • Eclipse IDE (IBM) • Open source • Multiplateformes (à base de Java) • > 3 millions d’extensions et plugins marketplace.eclipse.org • Fonctionnalités : • JDT (Java Development Tools Project) • ATF (AJAX Toolkit Framework) • WindowBuilder (Développement graphique Java) • Action script, C, C#, C++, COBOL, Coldfusion, HTML, Java, Ja vaScript, Pascal, Perl (EPIC), PHP (PDT), Python via PyDev2, SQL, XML. • Versions commercial : • MyEclipse, JBoss Developer Studio…
  • 22. Java : Outils de développement • NetBeans IDE (SUN) • Open source • Multiplateformes (à base de Java) • Une centaine de plugins disponible sur : plugins.netbeans.org • Fonctionnalités : • Java Swing GUI Builder. • Java EE : JSP, JSF, EJB, Apache Struts, Spring, Hibernate … • Java ME, Java FX. • Python, C, C++, JavaScript, XML, Ruby, PHP et HTML.
  • 23. .Net : Outils de développement • Microsoft Visual studio .Net • Versions Standards • Payant environ 600€ • Basé sur les systèmes Windows • Winforms, ASP.NET, Phone. • Team Foundation Server (Ultimate) • MSDN (Microsoft Developer Network) • > 3 milles extensions disponible sur visualstudiogallery.msdn.microsoft.com
  • 24. .Net : Outils de développement • Microsoft Visual studio .Net • Versions Express • Gratuit • Basé sur les systèmes Windows • Plusieurs versions : • Visual C# Express Edition • Visual Basic Express Edition • Visual C++ Express Edition • Visual Web Developer Express Edition (ASP.NET) • …
  • 25. .Net : Outils de développement • Différences entre Microsoft Visual Studio .Net Express et Standard : • Express : Visual C# Express Edition, Visual C++ Express Edition, Visual Web Developer Express Edition … • Les versions Express ne support pas les plugins.
  • 26. Support : Java vs .Net • Java : • Java Doc : Gratuit (online & offline). • http://www.java.net/ • http://www.theserverside.com/ • http://www.roseindia.net/java/ • .Net • MSDN : Gratuit online / Payant offline (748€) • http://msdn.microsoft.com • http://www.codeproject.com/ • http://www.codeplex.com/
  • 28. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 29. Le Langage Java vs C# • Java public class Bonjour { public static void main(String[] args) { System.out.println("Hello, World !"); • C# } } class Bonjour { static void Main(string[] args) { System.Console.WriteLine(" Hello, World ! "); } }
  • 30. Héritage, Java vs C# • Java class B extends A implements Comparable { int compareTo(){} public static void main(String[] args) { System.out.println("Hello World"); • C# } } using System; class B : A, IComparable { int CompareTo(){} public static void Main(String[] args) { Console.WriteLine("Hello World"); } }
  • 31. Héritage, Java vs C# • Java public void withdrawAmount(int num) { synchronized(this) { if(num < this.amount) this.amount -= num; • C# } } public void WithdrawAmount(int num) { lock(this) { if(num < this.amount) this.amount -= num; } }
  • 32. Types de données, Java vs C# • Différences dans les types de données : • Java • Arithmétique multi précision (Arbitrary size decimals) • C# • Entiers non signés • Nombre complexe • Value Types (avec le mot clé struct) • Pointers
  • 33. Orienté Objet, Java vs C# • Différences : • Java • Classe Anonymes • Classe Internes • Enums peut implémenté les interfaces • C# • Partial classes • Redéfinition des operateurs • Conversions Implicite et Explicite
  • 34. Avantages C# • C# • Collections + foreach • Unification des types • Tous les types sont des objets en C#, contrairement à Java. • Exemple : int i = 5; System.Console.WriteLine(i.ToString()); • Concepts: Boxing/Unboxing. • Exemple : Stack stack = new Stack(); stack.Push(i); // boxing int j = (int)stack.Pop(); // unboxing
  • 35. Avantages C# • C# • Polymorphism • Mots clés « virtual », « override » et « new » obligatoires. • Modifiers • Mot clé « ref » permet de passer des paramètres par référence. public void reverse(ref int x, ref int y); • Mot clé « params » permet de déclarer des méthodes avec nombre de paramètres variable: public int add(params int[] array);
  • 36. C# vs Java • Pour aller plus loin : Voir l’article de Dare Obasanjo http://www.25hoursaday.com/CsharpVsJava.html
  • 37. Le Langage Java vs C# +2
  • 38. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 39. Application de bureau, Java vs .Net • Java • AWT (Abstract Window Toolkit) • Swing (Java GUI widget toolkit) • SWT (Standard Widget Toolkit) • Eclipse Foundation • Windows XP, Linux, Mac OS, Pocket PC • Applet, JavaFX • Java Web Start
  • 40. Application de bureau, Java vs .Net • .Net • WinForms (Windows Forms) • Access native aux interfaces Windows • WPF (Windows Presentation Foundation) • XAML • Silverlight • Un plugin pour navigateurs Web • Mono (une CLR multiplateformes) : • MonoTouch (iOS) • Mono for Android
  • 42. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 43. Application serveur, Java vs .Net • Java : Java EE. • Apache Tomcat, JBoss (RedHat), GlassFish… • Java Servlet • JSP (Java Server Pages) • JSF (Java Server Faces) • EJB (Enterprise JavaBeans) • JDBC (Java DataBase Connectivity) • RMI (Remote method invocation)
  • 44. Application serveur, Java vs .Net • .Net : ASP.NET • IIS (Internet Information Services) • C#, Visual Basic.NET,Delphi.NET, Perl et Python • WebForms • ASP.NET AJAX • ASP.NET MVC Framework • ADO.NET • .NET Remoting (WCF)
  • 46. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 47. Application mobile, Java vs .Net • Java : • Java ME (Java Micro Edition) • CLDC (Connected Limited Device Configuration), que l'on retrouve par exemple dans les téléphones mobiles. • CDC (Connected Device Configuration), qui est plutôt utilisé dans des décodeurs de télévision numérique. • Android (Google) • Noyau Linux • Smartphones, tablettes tactiles … • Dalvik
  • 48. Application mobile, Java vs .Net • .Net • .NET Compact Framework • Windows CE ou Windows Mobile • Xbox 360 console (Microsoft XNA) • .NET Compact Framework controls ( WinForms) • .NET Micro Framework • Pour appareils embarquées ayant des ressources très restreintes.
  • 50. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 51. Framework, Java vs .Net • Couche de présentation • Java • Framework à base de composants : • JSF, GWT, Wicket • Framework à base d’actions : • Apache Struts , Spring MVC • .Net • WPF (Windows Presentation Foundation) • Gratuit : ASP.NET Control Gallery • Commercial : Telerik, Infragistics, DevExpress
  • 52. Framework, Java vs .Net • ORM (mapping objet-relationnel) • Java • JPA (Java Persistence API) • JDO (Java Data Objects) • Hibernate • .Net • Entity Framework • Nhibernate • LINQ (Language Integrated Query)
  • 53. Framework, Java vs .Net • Conteneurs légers • Java • Spring Framework • Google Guice • Apache HiveMind • .Net • Spring.NET
  • 54. Framework, Java vs .Net • Autres Framework de Développement • Java • EJB (Enterprise JavaBeans) • .Net • COM+ (Component Object Model) • Microsoft Enterprise Library
  • 55. Framework +5
  • 56. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 58. Sécurité, Java vs .Net • .NET et J2EE • offrent un bon niveau de sécurité. • Les permissions et preuves sont gérées de manière fine. • .NET offre un niveau de contrôle plus fin que Java grâce au PolicyManager.
  • 60. Sommaire 1. Introduction 2. Présentation des deux plateformes 3. Outils de développement 4. Langages de programmation 5. Application de bureau 6. Application serveur 7. Application mobile 8. Framework de développement 9. Sécurité 10. Conclusion
  • 62. Conclusion • Java est un langage un environnement d’exécution, .Net est un environnement d'exécution qui prend en charge plusieurs langues, Visual Basic et C # ... • C # est très similaire à Java, mais plus jeune, et un peu plus agréable dans certains cas. • Java est multiplateformes, . Net est principalement conçue pour Windows. • . Net dispose d'un environnement de développement plus intégré, alors que Java est basé sur outil tiers et des fournisseurs de serveurs. • Java offre une plus grande flexibilité, due au nombre important des contributions disponible gratuitement.
  • 63. Conclusion • Fonctionnellement y’a pas une grande différence entre les deux plateformes d’une manière générale. Le choix finalement entre ses deux technologies dépendra plus du contexte d’utilisation.