• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
It pro dev_birbilis_20101127_el
 

It pro dev_birbilis_20101127_el

on

  • 745 views

Java ...η ζωή μετά - Επαναχρησιμοποίηση Κώδικα και Δεξιοτήτων στον κόσμο του .NET / παρουσίαση στο ITProDevConnections 2010 - ...

Java ...η ζωή μετά - Επαναχρησιμοποίηση Κώδικα και Δεξιοτήτων στον κόσμο του .NET / παρουσίαση στο ITProDevConnections 2010 - http://www.itprodevconnections.gr

Statistics

Views

Total Views
745
Views on SlideShare
741
Embed Views
4

Actions

Likes
0
Downloads
3
Comments
1

1 Embed 4

http://www.techgig.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    It pro dev_birbilis_20101127_el It pro dev_birbilis_20101127_el Presentation Transcript

    • Life after Java (...η ζωή μετά)
      Reusing code and skills in a .NET world
    • Θέματα
      Java- OOP γλώσσα vs πλατφόρμα
      Java vs C#
      Components & Controls vs JavaBeans
      PME (Property – Method – Event) model
      JUMP & J#
      Java – COM bridges
      IKVM.net
      Web Services
      WSRP : Web Services for Remote Portlets
    • Java ως OOP γλώσσα
      Κληρονομικότητα, πολυμορφισμός, δυναμικό φόρτωμα κλάσεων, εξαιρέσεις...
      Μεγάλη συμπάθεια και αναγνωρισμένη πορεία στον ακαδημαϊκό χώρο
      Πληθώρα σχετικών βιβλιοθηκών και λογισμικού, κυρίως ανοιχτού κώδικα
      Αρκετοί νέοι προγραμματιστές μυημένοιστη γλώσσα Java στις σπουδές τους
    • Java ως πλατφόρμα
      Java 1.x –command line, AWT και Applets
      Java 1.2, 1.3, … = Java 2 (JFC/Swing, …)
      JavaSE (= Standard Edition – Desktops)
      JavaEE (= Enterprise Edition – Servers)
      JavaME (= Micro Edition – Mobiles)
      (Re)focus  JavaFX (Java vs JavaScript)
    • Το μέλλον της Java;
      Αλλαγή προτεραιοτήτων
      Sun Microsystems  Oracle
      JDeveloper vs NetBeans IDE
      Java Cloud, Java.net  Kenai Java.net
      Θέματα πνευματικών δικαιωμάτων
      Sun vs Microsoft (MSJVM)
      Oracle vs Google (Android Dalvik VM)
      Μη προτυποποίηση από καταξιωμένους διεθνείς οργανισμούς (ISO pull-out)
    • Οικονομικές & εργασιακές συνθήκες:
      Ανταγωνιστικές
      Ευμετάβλητες
       Κινητικότητα εργαζομένων
      Επαναχρησιμοποίηση:
      Κώδικα
      Δεξιοτήτων
       Ευελιξία = πολύτιμος σύμμαχος
    • Java vs C#
      Anders Hejlsberg
      αρχικός συγγραφέας της Turbo Pascal
      chief architect του Delphi
      J++, WFC (Windows Foundation Classes)
      lead architect της C#
      LINQ (Language Integrated Query)
      C# = Java + Object Pascal (Delphi) + VB ++
    • Components
      Unstructured Data
      Record = Structured, Addressable (Name, Pos) Data
      Object = Record + Methods to manipulate its data
      Component = Object + PME + Resources (Packaging)
      Agent = Component + (Internal) Logic / Program Loop
    • Controls / Widgets
      Control / Widget = User Interface Component
      JavaBeans:
      Components (non visible)
      Controls (συνήθως JFC/Swing /Model-ViewController [M-VC])
      Enterprise JavaBeans αντίστοιχα με COM+ components (καμία σχέση με τυπικά JavaBeans) για J2EE
    • PME (Property-Method-Event)
      Properties (get/set accessors, metadata)
      Methods (OOP)
      Events
      Java: αρχικά tightly-coupled (base classes / abstract methods), έπειτα callback interfaces
      VB: method signatures (WithEvents)
      Object Pascal / Delphi: method variables
      C#: delegates
    • JUMP & J# (Microsoft)
      JUMP
      Import Java “projects” από Visual Studio
      Μετατροπή κώδικα Java σε C#
      J#
      Java compiler  IL code αντί Java bytecode
      Java datatype boxing
      Java 1.x class library, Swing & Collections API
      Μέχρι και το Visual Studio 2005
    • Java – COM/.NET bridges (1)
      JACOB (OpenSource)
      COM Automation από Java μέσω JNI wrappers
      jacoZoom
      ActiveX Controls / Servers ([D]COM / Automation)
      J-Integra .COM
      DCOM wire protocol (ORPC) σε pure Java
      J-Integra .NET
      .NET Remoting wire protocol σε pure Java, Visual Studio & Eclipse plugins
    • Java – COM/.NET bridges (2)
      COMConnect
      Java  COM/.NET – stateful TCP, low latency
      Jni4net (OpenSource)
      intra-process, object oriented, JNI implementation
      JNBridgePro
      Visual Studio & Eclipse plugins, shared memory, sockets, network binary protocol, HTTP/SOAP
      EZ JCom
      JavaCOM/.NET, drag-drop Swing components
    • Java – COM/.NET bridges (3)
      Java Plug-in (JavaBeans Bridge for ActiveX)
      Sun/Oracle Java VM, Web Browser integration, JavaBeans ActiveX controls (typelibrary)
      Java C# Bridge (OpenSource)
      Serlializing/DeserlializingJava - C# αντικείμενα, χειρονακτική συγγραφή C# αντικειμένουή χρήση generic JavaObjectκαι δυναμικό query
      Caffeine (OpenSource)
      Hosting JVM σε .NET Runtime,JNI OOP wrapper
      R-JAX (pioneering, RMI/HTTP, obsolete)
    • JNBridgePro – Call Java from .NET
    • JNBridgePro – Call Java from .NET (1)
    • JNBridgePro – Call Java from .NET (2)
      Start Proxy Generator
    • JNBridgePro – Call Java from .NET (3)
      Edit Classpath
    • JNBridgePro – Call Java from .NET (4)
      Class Path Entries
    • JNBridgePro – Call Java from .NET (5)
      Load Classes
    • JNBridgePro – Call Java from .NET (6)
      Load Classes Progress
    • JNBridgePro – Call Java from .NET (7)
      Choose Proxies
    • JNBridgePro – Call Java from .NET (8)
      Generate Proxies
    • JNBridgePro – Call Java from .NET (9)
      Use the Proxies
    • JNBridgePro – Call Java from .NET (10)
      Call Java Methods
    • JNBridgePro – Call Java from .NET (11)
      Run the Program
    • JNBridgePro – Call Java from .NET
      Visually generate proxies: allow .Netaccess Java classes
      Link .NET proxy assembly to .NET development project (Add Reference)
      Write .NET code to access Java classes(with IntelliSense)
      Edit configuration - specify communications mechanism (from in-process on same machine to cross-network)
      Run integrated .NET and Java code (managed lifecycles)
    • JNBridgePro – Call .NET from Java
    • JNBridgePro – Call .NET from Java (1)
    • JNBridgePro – Call .NET from Java (2)
      Start Proxy Generator
    • JNBridgePro – Call .NET from Java (3)
      Add Assembly
    • JNBridgePro – Call .NET from Java (4)
      Assembly List Entries
    • JNBridgePro – Call .NET from Java (5)
      Load Classes
    • JNBridgePro – Call .NET from Java (6)
      Load Class Progress
    • JNBridgePro – Call .NET from Java (7)
      Choose Proxies
    • JNBridgePro – Call .NET from Java (8)
      Generate Proxies
    • JNBridgePro – Call .NET from Java (9)
      Use the Proxies
    • JNBridgePro – Call .NET from Java (10)
      Call .NET Objects
    • JNBridgePro – Call .NET from Java (11)
      Run the Program
    • JNBridgePro – Call .NET from Java
      Visually generate proxies: allow Java access .NET classes
      Reference Java proxy .JAR file from Java development project (place in build CLASSPATH)
      Write Java code to access .NET classes
      Edit configuration - specify communications mechanism (from in-process on same machine to cross-network)
      Run integrated .NET and Java code (managed lifecycles)
    • JNBridgePro – Visual Studio plugin
    • JNBridgePro – Eclipse plugin
    • JNBridgePro – Communications
    • IKVM.net (Jeroen Frijters)
      Υλοποίηση Java Εικονικής Μηχανής (JVM):
      Microsoft .NET Framework
      Mono
      Συστατικά:
      Java Virtual Machine σε .NET
      Java class libraries σε .NET
      Εργαλεία διαλειτουργικότητας Java -.NET
    • IKVM.net – σενάρια χρήσης
      Χρήση ωςτυπική Java Virtual Machine (JVM)
      Χρήση βιβλιοθηκών Java σε εφαρμογές .ΝΕΤ
      Ανάπτυξη εφαρμογών .NET σε γλώσσα Java
    • IKVM.net – σενάρια χρήσης
      Χρήση ωςτυπική Java Virtual Machine (JVM)
      java -jar myapp.jar
      ikvm -jar myapp.jar
    • IKVM.net – σενάρια χρήσης
      Χρήση βιβλιοθηκών Java σε εφαρμογές .ΝΕΤ
      ikvmc = Java bytecode  .NET IL
      ikvmc -target:library mylib.jar
      mylib.dll
      π.χ. Apache FOP = XSL-FO processor (XML  PDF)
    • IKVM.net – σενάρια χρήσης
      Ανάπτυξη εφαρμογών .NET σε γλώσσα Java
      ikvmc = Java bytecode  .NET IL
      ikvmc -target:exe myapp.jar
      myapp.exe
    • IKVM.net
      Κλήση .NET API από Java(IKVM.net JVM)
      ikvmstub = Java stubs από .NETAPI
      ikvmstub mscorlib.dll
      mscorlib.jar
      ikvmstub c:libmylib.dll
    • IKVM.net – ενσωμάτωση / εργαλεία
      Mono (OpenSource .NET από Novell)
      MonoDevelop (IDE)
      Ant (task για ikvmc)
      Jar2ikvmc(φάκελος από εξαρτημένα JAR)
    • IKVM.netintegration
      Ant task για ikvmc
       <ikvmc target="exe" out="hello.exe"
      home="c:/ikvm-0.36.0.11" version="1.0.0.0“
      debug="true“ main="net.sf.ant-ikvmc.Hello">
      <fileset dir="${build}">
      <include name="**/*.class"/>
      </fileset>
      <fileset dir="${lib}">
      <include name="**/*.jar"/>
      </fileset>
      </ikvmc>
    • IKVM.netintegration
      Jar2ikvmc(φάκελος από εξαρτημένα JAR)
      jar2ikvmc.exe JFreeChart JFreeChart2Net.cmd 
      ikvmc swtgraphics2d.jar -target:library ikvmc servlet.jar -target:library ikvmc junit.jar -target:library ikvmc jcommon-1.0.10.jar -target:library ikvmc gnujaxp.jar -target:library 
      ikvmc itext-2.0.2.jar -target:library -r:gnujaxp.dllikvmc jfreechart-1.0.6.jar -target:library -r:jcommon-1.0.10.dll
      ->-r:servlet.dll -r:gnujaxp.dll
      ...
    • Web Services
      Restlet (Java web framework)
      Expose/Consume RESTful web APIs
      Java Web Services Stack (Metro)
      JAX-WS (Java API for XML Web Services)
      JAXB (Java Architecture for XML Binding)
      WSIT (Web Services Interoperability Technologies [aka Project Tango])
      WSIT (Tango) αντιστοιχεί στο WCF (Indigo)
    • Web Services for Remote Portlets
      Portlet = αλληλεπιδραστικό στοιχείο εφαρμογής, παράγει τμήματα markup, συγκεντρώσιμα και εμφανιζόμενα σε portals
      WSRP = αλληλεπιδραστικά web services εστιασμένα στην παρουσίαση.
      content & apps: discoverable & pluggable
    • Web Services for Remote Portlets
      Γιατί WSRP αντί απλά Web Services;
      Localization
      Mime types
      Portlet modes (edit, help, view, custom)
      Window states (minimized, maximized, solo, normal)
    • Web Services for Remote Portlets
      Γιατί απομακρυσμένα portlets;
      Ευκολία ρύθμισης
      Ανεξαρτησία πλατφόρμας
      Κλιμάκωση (scalability)
    • Web Services for Remote Portlets
      WSRP Producer
      Web Service
      Παρέχει 1 ή περισσότερα Portlets
      Υλοποιεί WSRP interfaces/operations
      Μπορεί να παρέχει runtime (container) για deploying/management άνω του 1 portlet
    • Web Services for Remote Portlets
      WSRP Consumer
      Πελάτης Web Service
      Συνήθως ένα portal
      Καλεί WSRP web services ενός producer
      Παρέχει περιβάλλον αλληλεπίδρασης με portlets που παρέχουνοι Producers
    • Web Services for Remote Portlets
      Producers (.NET  WSRP)
      NetUnitySharePoint WSRP Producer
      Oracle WebCenter .NET Accelerator
      Consumers (WSRP  .NET)
      Microsoft WSRP Toolkit - SharePoint 2007
      NetUnity WSRP Consumer for SharePoint
      NetUnity WSRP .NET Consumer
    • Παραπομπές (1)
      Σύγκριση C# και Java (Wikipedia)
      • http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
      Anders Hejlsberg (Wikipedia)
      • http://en.wikipedia.org/wiki/Anders_Heljsberg
      Java ISO pull-out (ECMA fast track to ISO)
      • http://www.crn.com/news/channel-programs/18806978/sun-drops-iso-java-standards-effort-for-good.htm
      Oracle vs Google Android (Dalvik VM)
      • http://www.businessweek.com/news/2010-08-13/oracle-says-google-android-violates-its-java-patents.html
    • Παραπομπές (2)
      Java Native Interface (JNI)
      • http://download.oracle.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html
      JACOB
      • http://sourceforge.net/projects/jacob-project
      jacoZoom
      • http://www.infozoom.de/en_jacoZoom.shtml
      J-Integra
      • http://j-integra.intrinsyc.com
    • Παραπομπές (3)
      COMConnect
      • http://sourceforge.net/projects/comconnect
      jni4net
      • http://jni4net.sourceforge.net
      JNBridgePro
      • http://www.jnbridge.com
      • http://www.jnbridge.com/jnbpro.htm
      EZ JCom
      • http://www.ezjcom.com
      • http://www.ezjcom.com/java.net.html
    • Παραπομπές (4)
      Java Plug-in (JavaBeans Bridge for ActiveX)
      • http://www.oracle.com/technetwork/java/index-jsp-141438.html
      • http://download.oracle.com/javase/1.4.2/docs/guide/beans/axbridge/developerguide/index.html
      • http://download.oracle.com/javase/1.4.2/docs/guide/beans/axbridge/developerguide/examples.html
      Java C# Bridge
      • http://java-cs-bridge.sourceforge.net
      Caffeine
      • http://caffeine.berlios.de/site
      • http://www.codeproject.com/KB/dotnet/Espresso.aspx
      • http://lsd.luminis.nl/java-net-interoperability/
    • Παραπομπές (5)
      IKVM.net
      • http://www.ikvm.net
      • http://sourceforge.net/apps/mediawiki/ikvm
      • http://ant-ikvmc.sourceforge.net
      • http://code.google.com/p/jar2ikvmc
      JDK, JavaFX SDK & NetBeans IDE
      • http://www.oracle.com/technetwork/java/index.html
      • http://www.java.com (Java Runtime)
    • Παραπομπές (6)
      .NET Framework & Visual Studio IDE
      • http://www.microsoft.com/net
      • http://msdn.microsoft.com/en-us/vstudio/default.aspx
      • http://www.microsoft.com/express
      • http://msdn.microsoft.com/en-us/library/ff649514.aspx
      Mono & MonoDevelop IDE
      http://www.mono-project.com
      http://monodevelop.com
      Eclipse Platform & IDE
      • http://www.eclipse.org
    • Παραπομπές (7)
      Restlet (RESTful web framework for Java)
      • http://www.restlet.org
      Java Web Services Stack (Metro)
      http://www.oracle.com/technetwork/java/index-jsp-137004.html
      http://jax-ws.java.net (JAX-WS / JSR 224)
      https://jaxb.dev.java.net (JAXB/ JSR 222)
      http://wsit.java.net (WSIT)
      http://policy.dev.java.net (WS-Policy)
      http://xwss.dev.java.net (WS-Security)
      http://netbeans.org/images_www/articles/interviews/wsit-netbeans-plugin.html
      Java Portlet Specification
      • http://en.wikipedia.org/wiki/JSR_168/
    • Παραπομπές (8)
      WSRP (Web Services for Remote Portlets)
      • http://en.wikipedia.org/wiki/Web_Services_for_Remote_Portlets
      • http://www.ibm.com/developerworks/webservices/library/ws-wsrp
      • https://wsrp.dev.java.net
      • http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp
      • http://www.oasis-open.org/committees/download.php/3343/oasis-200304-wsrp-specification-1.0.pdf
      • http://www.oasis-open.org/committees/download.php/21178/wsrp-primer-1.0.html
      • http://www.oasis-open.org/committees/download.php/11774/wsrp-faq-draft-0.30.html
    • Παραπομπές (9)
      WSRP Toolkit for SharePoint 2007
      http://code.msdn.microsoft.com/WSRPToolkit
      NetUnity SharePoint & .NET WSRP Consumers
      • http://www.netunitysoftware.com/Home.aspx
      • Oracle WebCenter.NET Accelerator
      • http://blogs.oracle.com/fusionecm/2010/05/webcenter_net_accelerator_-_mi.html
    • Αξιολόγηση παρουσιάσεων
      Πείτε μας την γνώμη σας
      και μπείτε στην κλήρωση για τα δώρα μας.
      Συμπληρώστε το έντυπο αξιολόγησης και
      παραδώστε το στην γραμματεία.