SlideShare a Scribd company logo
1 of 68
Life after Java Reusing code and skills in a .NET world
Agenda Java- OOP language vsplatform 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 as an OOPlanguage Inheritance, Polymorphism, Dynamic Class Loading, Exceptions... Great esteem and proved record at academia Multitude of related libraries and software, mainly OpenSource Lots of new programmers introduced to the Java language during their studies
Java as a platform Java 1.x –command line, AWT andApplets 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)
The future of Java? Change in priorities Sun Microsystems  Oracle JDeveloper vs NetBeans IDE Java Cloud, Java.net  Kenai Java.net Copyright issues Sun vs Microsoft (MSJVM) Oracle vs Google (Android Dalvik VM) No standardization by established international organisations (ISO pull-out)
Economics & work conditions: Competitive Fluctuating  Worker mobility Reuse: Code Skills Flexibility = invaluable ally
Java vs C# Anders Hejlsberg  original author ofTurbo Pascal chief architect of Delphi J++, WFC (Windows Foundation Classes) lead architect ofC# 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 (usually JFC/Swing /Model-ViewController [M-VC]) Enterprise JavaBeans “similar” toCOM+ components (not much related to typicalJavaBeans)for J2EE
PME (Property-Method-Event) Properties (get/set accessors, metadata) Methods (OOP) Events Java: initially tightly-coupled (base classes / abstract methods), later on callback interfaces VB: method signatures (WithEvents) Object Pascal / Delphi: method variables C#: delegates
JUMP & J# (Microsoft) JUMP Import Java “projects” from Visual Studio Convert Java code toC# J# Java compiler  IL code, not Java bytecode Java datatype boxing Java 1.x class library, Swing & Collections API Up until Visual Studio 2005
Java – COM/.NET bridges (1) JACOB (OpenSource) COM Automation from Java via JNI wrappers jacoZoom ActiveX Controls / Servers ([D]COM / Automation) J-Integra .COM DCOM wire protocol (ORPC) topure Java J-Integra .NET .NET Remoting wire protocolto 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# objects, manual authorC# object or use generic JavaObject and dynamic query Caffeine (OpenSource) Hosting JVM in .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) JavaVirtual Machine (JVM) implementation: Microsoft .NET Framework Mono Components: Java Virtual Machine in .NET Java class librariesin .NET Java-.NET interoperability tools
IKVM.net – usage scenarios Use as typical Java Virtual Machine (JVM) Use Java libraries in .ΝΕΤ applications Develop .NET applications in Java language
IKVM.net – usage scenarios Use as typicalJava Virtual Machine (JVM) Drop-in replacement: java -jar myapp.jar ikvm -jar myapp.jar
IKVM.net – usage scenarios Use Java libraries in.ΝΕΤ applications ikvmc  = Java bytecode  .NET IL ikvmc -target:library mylib.jar mylib.dll π.χ. Apache FOP  = XSL-FO  processor (XML  PDF)
IKVM.net – usage scenarios Develop .NET applicationsin Java language ikvmc  = Java bytecode  .NET IL ikvmc -target:exe myapp.jar myapp.exe
IKVM.net Call .NET API from Java(inIKVM.net JVM) ikvmstub = Java stubs from .NETAPI ikvmstub mscorlib.dll  mscorlib.jar ikvmstub c:ibylib.dll
IKVM.net – integration / tools Mono (OpenSource .NET by Novell) MonoDevelop (IDE) Ant (task for ikvmc) Jar2ikvmc(folder of dependentJARs)
IKVM.netintegration Ant task for 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(folder of dependentJARs) 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) corresponds to WCF (Indigo)
Web Services for Remote Portlets Portlet = interactive application component, produces markup segments, aggregated and presented inportals WSRP = interactive web servicesfocused to presentation content & apps: discoverable & pluggable
Web Services for Remote Portlets Why WSRPinstead of simple Web Services? Localization Mime types Portlet modes (edit, help, view, custom) Window states (minimized, maximized, solo, normal)
Web Services for Remote Portlets Why remoteportlets? Ease of configuration Platform independence Scalability
Web Services for Remote Portlets WSRP Producer Web Service Provides 1 or morePortlets Implements WSRP interfaces/operations Can provideruntime (container) fordeploying/management of>1 portlet
Web Services for Remote Portlets WSRP Consumer Web Service client Usually aportal Calls producer WSRP web services Provides environment to interact withportlets theProducers provide
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
References (1) C# andJava comparison (Wikipedia) ,[object Object],Anders Hejlsberg (Wikipedia) ,[object Object],Java ISO pull-out (ECMA fast track to ISO) ,[object Object],Oracle vs Google Android (Dalvik VM) ,[object Object],[object Object],[object Object]
http://www.jnbridge.com/jnbpro.htmEZ JCom ,[object Object]
http://www.ezjcom.com/java.net.html,[object Object]
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.htmlJava C# Bridge ,[object Object],Caffeine ,[object Object]
http://www.codeproject.com/KB/dotnet/Espresso.aspx
http://lsd.luminis.nl/java-net-interoperability/,[object Object]
http://sourceforge.net/apps/mediawiki/ikvm
http://ant-ikvmc.sourceforge.net

More Related Content

What's hot

Java compilation
Java compilationJava compilation
Java compilationMike Kucera
 
Using Java from Ruby with JRuby IRB
Using Java from Ruby with JRuby IRBUsing Java from Ruby with JRuby IRB
Using Java from Ruby with JRuby IRBHiro Asari
 
Great cup of java
Great  cup of javaGreat  cup of java
Great cup of javaCIB Egypt
 
Jalimo Slides Linuxtag2007 (English)
Jalimo Slides Linuxtag2007 (English)Jalimo Slides Linuxtag2007 (English)
Jalimo Slides Linuxtag2007 (English)smancke
 
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...Edureka!
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyNick Sieger
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Frameworkmparth
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introductionjyoti_lakhani
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkMohit Belwal
 
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)
212 kuliah 01   pengenalan pemrograman berorientasi objek (java)212 kuliah 01   pengenalan pemrograman berorientasi objek (java)
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)yuan99
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevMattias Karlsson
 
What Is Java | Java Tutorial | Java Programming | Learn Java | Edureka
What Is Java | Java Tutorial | Java Programming | Learn Java | EdurekaWhat Is Java | Java Tutorial | Java Programming | Learn Java | Edureka
What Is Java | Java Tutorial | Java Programming | Learn Java | EdurekaEdureka!
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVAHome
 
Java ppts unit1
Java ppts unit1Java ppts unit1
Java ppts unit1Priya11Tcs
 

What's hot (20)

JVM
JVMJVM
JVM
 
Java compilation
Java compilationJava compilation
Java compilation
 
Using Java from Ruby with JRuby IRB
Using Java from Ruby with JRuby IRBUsing Java from Ruby with JRuby IRB
Using Java from Ruby with JRuby IRB
 
.NET Vs J2EE
.NET Vs J2EE.NET Vs J2EE
.NET Vs J2EE
 
Java Basic PART I
Java Basic PART IJava Basic PART I
Java Basic PART I
 
Great cup of java
Great  cup of javaGreat  cup of java
Great cup of java
 
Jalimo Slides Linuxtag2007 (English)
Jalimo Slides Linuxtag2007 (English)Jalimo Slides Linuxtag2007 (English)
Jalimo Slides Linuxtag2007 (English)
 
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRuby
 
Introducing Java 7
Introducing Java 7Introducing Java 7
Introducing Java 7
 
Basic java part_ii
Basic java part_iiBasic java part_ii
Basic java part_ii
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Framework
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introduction
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
 
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)
212 kuliah 01   pengenalan pemrograman berorientasi objek (java)212 kuliah 01   pengenalan pemrograman berorientasi objek (java)
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)
 
1- java
1- java1- java
1- java
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from Oredev
 
What Is Java | Java Tutorial | Java Programming | Learn Java | Edureka
What Is Java | Java Tutorial | Java Programming | Learn Java | EdurekaWhat Is Java | Java Tutorial | Java Programming | Learn Java | Edureka
What Is Java | Java Tutorial | Java Programming | Learn Java | Edureka
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVA
 
Java ppts unit1
Java ppts unit1Java ppts unit1
Java ppts unit1
 

Similar to It pro dev_birbilis_20101127_en

eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introductionvstorm83
 
Con-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistCon-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistAnton Arhipov
 
Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel Fomitescu
 
Java-1st.pptx about Java technology before oops
Java-1st.pptx about Java technology before oopsJava-1st.pptx about Java technology before oops
Java-1st.pptx about Java technology before oopsbuvanabala
 
Java/Servlet/JSP/JDBC
Java/Servlet/JSP/JDBCJava/Servlet/JSP/JDBC
Java/Servlet/JSP/JDBCFAKHRUN NISHA
 
Advance java prasentation
Advance java prasentationAdvance java prasentation
Advance java prasentationdhananajay95
 
javacourse in c.pdf
javacourse in c.pdfjavacourse in c.pdf
javacourse in c.pdfsnehawork
 
javacourse in c.pdf
javacourse in c.pdfjavacourse in c.pdf
javacourse in c.pdfsnehawork
 
Java Technology Define In Short Time
Java Technology Define In  Short TimeJava Technology Define In  Short Time
Java Technology Define In Short TimeHimanshu Dwivedi
 
1 introduction
1 introduction1 introduction
1 introductionMks Khalid
 
Core java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsCore java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsQUONTRASOLUTIONS
 
Clojure Fundamentals Course For Beginners
Clojure Fundamentals Course For Beginners Clojure Fundamentals Course For Beginners
Clojure Fundamentals Course For Beginners Paddy Lock
 

Similar to It pro dev_birbilis_20101127_en (20)

basic_java.ppt
basic_java.pptbasic_java.ppt
basic_java.ppt
 
Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
java basics.pptx
java basics.pptxjava basics.pptx
java basics.pptx
 
Con-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistCon-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With Javassist
 
Javalecture 1
Javalecture 1Javalecture 1
Javalecture 1
 
Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016
 
1.introduction to java
1.introduction to java1.introduction to java
1.introduction to java
 
Java-1st.pptx about Java technology before oops
Java-1st.pptx about Java technology before oopsJava-1st.pptx about Java technology before oops
Java-1st.pptx about Java technology before oops
 
Java/Servlet/JSP/JDBC
Java/Servlet/JSP/JDBCJava/Servlet/JSP/JDBC
Java/Servlet/JSP/JDBC
 
Advance java prasentation
Advance java prasentationAdvance java prasentation
Advance java prasentation
 
javacourse in c.pdf
javacourse in c.pdfjavacourse in c.pdf
javacourse in c.pdf
 
javacourse in c.pdf
javacourse in c.pdfjavacourse in c.pdf
javacourse in c.pdf
 
Java Technology Define In Short Time
Java Technology Define In  Short TimeJava Technology Define In  Short Time
Java Technology Define In Short Time
 
1 introduction
1 introduction1 introduction
1 introduction
 
Core java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsCore java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutions
 
Clojure Fundamentals Course For Beginners
Clojure Fundamentals Course For Beginners Clojure Fundamentals Course For Beginners
Clojure Fundamentals Course For Beginners
 
Tech Days 2010
Tech  Days 2010Tech  Days 2010
Tech Days 2010
 
What is Java? Presentation On Introduction To Core Java By PSK Technologies
What is Java? Presentation On Introduction To Core Java By PSK TechnologiesWhat is Java? Presentation On Introduction To Core Java By PSK Technologies
What is Java? Presentation On Introduction To Core Java By PSK Technologies
 
J2 Ee Overview
J2 Ee OverviewJ2 Ee Overview
J2 Ee Overview
 

More from George Birbilis

Παρουσίαση Scratch - 9 Οκτ 2012 - ΚΕΠΛΗΝΕΤ Κέρκυρας
Παρουσίαση Scratch - 9 Οκτ 2012 - ΚΕΠΛΗΝΕΤ ΚέρκυραςΠαρουσίαση Scratch - 9 Οκτ 2012 - ΚΕΠΛΗΝΕΤ Κέρκυρας
Παρουσίαση Scratch - 9 Οκτ 2012 - ΚΕΠΛΗΝΕΤ ΚέρκυραςGeorge Birbilis
 
It pro dev_birbilis_20101127_el
It pro dev_birbilis_20101127_elIt pro dev_birbilis_20101127_el
It pro dev_birbilis_20101127_elGeorge Birbilis
 
EURON Poster - Robotics Group
EURON Poster - Robotics GroupEURON Poster - Robotics Group
EURON Poster - Robotics GroupGeorge Birbilis
 
Eκπαιδευτικό λογισμικό πολλαπλών αναπαραστάσεων
Eκπαιδευτικό λογισμικό πολλαπλών αναπαραστάσεωνEκπαιδευτικό λογισμικό πολλαπλών αναπαραστάσεων
Eκπαιδευτικό λογισμικό πολλαπλών αναπαραστάσεωνGeorge Birbilis
 
Οφιοειδής κίνηση με χρήση πολλαπλών πρακτόρων
Οφιοειδής κίνηση με χρήση πολλαπλών πρακτόρωνΟφιοειδής κίνηση με χρήση πολλαπλών πρακτόρων
Οφιοειδής κίνηση με χρήση πολλαπλών πρακτόρωνGeorge Birbilis
 
Πολυπρακτορική οφιοειδής κίνηση με αντιδραστική αποφυγή εμποδίων
Πολυπρακτορική οφιοειδής κίνηση με αντιδραστική αποφυγή εμποδίωνΠολυπρακτορική οφιοειδής κίνηση με αντιδραστική αποφυγή εμποδίων
Πολυπρακτορική οφιοειδής κίνηση με αντιδραστική αποφυγή εμποδίωνGeorge Birbilis
 
Multi-agent snake-like motion with reactive obstacle avoidance
Multi-agent snake-like motion with reactive obstacle avoidanceMulti-agent snake-like motion with reactive obstacle avoidance
Multi-agent snake-like motion with reactive obstacle avoidanceGeorge Birbilis
 
MULTI-AGENT MANIPULATOR CONTROL AND MOVING OBSTACLE AVOIDANCE
MULTI-AGENT MANIPULATOR CONTROL ANDMOVING OBSTACLE AVOIDANCEMULTI-AGENT MANIPULATOR CONTROL ANDMOVING OBSTACLE AVOIDANCE
MULTI-AGENT MANIPULATOR CONTROL AND MOVING OBSTACLE AVOIDANCEGeorge Birbilis
 

More from George Birbilis (8)

Παρουσίαση Scratch - 9 Οκτ 2012 - ΚΕΠΛΗΝΕΤ Κέρκυρας
Παρουσίαση Scratch - 9 Οκτ 2012 - ΚΕΠΛΗΝΕΤ ΚέρκυραςΠαρουσίαση Scratch - 9 Οκτ 2012 - ΚΕΠΛΗΝΕΤ Κέρκυρας
Παρουσίαση Scratch - 9 Οκτ 2012 - ΚΕΠΛΗΝΕΤ Κέρκυρας
 
It pro dev_birbilis_20101127_el
It pro dev_birbilis_20101127_elIt pro dev_birbilis_20101127_el
It pro dev_birbilis_20101127_el
 
EURON Poster - Robotics Group
EURON Poster - Robotics GroupEURON Poster - Robotics Group
EURON Poster - Robotics Group
 
Eκπαιδευτικό λογισμικό πολλαπλών αναπαραστάσεων
Eκπαιδευτικό λογισμικό πολλαπλών αναπαραστάσεωνEκπαιδευτικό λογισμικό πολλαπλών αναπαραστάσεων
Eκπαιδευτικό λογισμικό πολλαπλών αναπαραστάσεων
 
Οφιοειδής κίνηση με χρήση πολλαπλών πρακτόρων
Οφιοειδής κίνηση με χρήση πολλαπλών πρακτόρωνΟφιοειδής κίνηση με χρήση πολλαπλών πρακτόρων
Οφιοειδής κίνηση με χρήση πολλαπλών πρακτόρων
 
Πολυπρακτορική οφιοειδής κίνηση με αντιδραστική αποφυγή εμποδίων
Πολυπρακτορική οφιοειδής κίνηση με αντιδραστική αποφυγή εμποδίωνΠολυπρακτορική οφιοειδής κίνηση με αντιδραστική αποφυγή εμποδίων
Πολυπρακτορική οφιοειδής κίνηση με αντιδραστική αποφυγή εμποδίων
 
Multi-agent snake-like motion with reactive obstacle avoidance
Multi-agent snake-like motion with reactive obstacle avoidanceMulti-agent snake-like motion with reactive obstacle avoidance
Multi-agent snake-like motion with reactive obstacle avoidance
 
MULTI-AGENT MANIPULATOR CONTROL AND MOVING OBSTACLE AVOIDANCE
MULTI-AGENT MANIPULATOR CONTROL ANDMOVING OBSTACLE AVOIDANCEMULTI-AGENT MANIPULATOR CONTROL ANDMOVING OBSTACLE AVOIDANCE
MULTI-AGENT MANIPULATOR CONTROL AND MOVING OBSTACLE AVOIDANCE
 

Recently uploaded

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

It pro dev_birbilis_20101127_en

  • 1. Life after Java Reusing code and skills in a .NET world
  • 2. Agenda Java- OOP language vsplatform 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
  • 3. Java as an OOPlanguage Inheritance, Polymorphism, Dynamic Class Loading, Exceptions... Great esteem and proved record at academia Multitude of related libraries and software, mainly OpenSource Lots of new programmers introduced to the Java language during their studies
  • 4. Java as a platform Java 1.x –command line, AWT andApplets 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)
  • 5. The future of Java? Change in priorities Sun Microsystems  Oracle JDeveloper vs NetBeans IDE Java Cloud, Java.net  Kenai Java.net Copyright issues Sun vs Microsoft (MSJVM) Oracle vs Google (Android Dalvik VM) No standardization by established international organisations (ISO pull-out)
  • 6. Economics & work conditions: Competitive Fluctuating  Worker mobility Reuse: Code Skills Flexibility = invaluable ally
  • 7. Java vs C# Anders Hejlsberg original author ofTurbo Pascal chief architect of Delphi J++, WFC (Windows Foundation Classes) lead architect ofC# LINQ (Language Integrated Query) C# = Java + Object Pascal (Delphi) + VB ++
  • 8. 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
  • 9. Controls / Widgets Control / Widget = User Interface Component JavaBeans: Components (non visible) Controls (usually JFC/Swing /Model-ViewController [M-VC]) Enterprise JavaBeans “similar” toCOM+ components (not much related to typicalJavaBeans)for J2EE
  • 10. PME (Property-Method-Event) Properties (get/set accessors, metadata) Methods (OOP) Events Java: initially tightly-coupled (base classes / abstract methods), later on callback interfaces VB: method signatures (WithEvents) Object Pascal / Delphi: method variables C#: delegates
  • 11. JUMP & J# (Microsoft) JUMP Import Java “projects” from Visual Studio Convert Java code toC# J# Java compiler  IL code, not Java bytecode Java datatype boxing Java 1.x class library, Swing & Collections API Up until Visual Studio 2005
  • 12. Java – COM/.NET bridges (1) JACOB (OpenSource) COM Automation from Java via JNI wrappers jacoZoom ActiveX Controls / Servers ([D]COM / Automation) J-Integra .COM DCOM wire protocol (ORPC) topure Java J-Integra .NET .NET Remoting wire protocolto pure Java, Visual Studio & Eclipse plugins
  • 13. 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
  • 14. 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# objects, manual authorC# object or use generic JavaObject and dynamic query Caffeine (OpenSource) Hosting JVM in .NET Runtime,JNI OOP wrapper R-JAX (pioneering, RMI/HTTP, obsolete)
  • 15. JNBridgePro – Call Java from .NET
  • 16. JNBridgePro – Call Java from .NET (1)
  • 17. JNBridgePro – Call Java from .NET (2) Start Proxy Generator
  • 18. JNBridgePro – Call Java from .NET (3) Edit Classpath
  • 19. JNBridgePro – Call Java from .NET (4) Class Path Entries
  • 20. JNBridgePro – Call Java from .NET (5) Load Classes
  • 21. JNBridgePro – Call Java from .NET (6) Load Classes Progress
  • 22. JNBridgePro – Call Java from .NET (7) Choose Proxies
  • 23. JNBridgePro – Call Java from .NET (8) Generate Proxies
  • 24. JNBridgePro – Call Java from .NET (9) Use the Proxies
  • 25. JNBridgePro – Call Java from .NET (10) Call Java Methods
  • 26. JNBridgePro – Call Java from .NET (11) Run the Program
  • 27. 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)
  • 28. JNBridgePro – Call .NET from Java
  • 29. JNBridgePro – Call .NET from Java (1)
  • 30. JNBridgePro – Call .NET from Java (2) Start Proxy Generator
  • 31. JNBridgePro – Call .NET from Java (3) Add Assembly
  • 32. JNBridgePro – Call .NET from Java (4) Assembly List Entries
  • 33. JNBridgePro – Call .NET from Java (5) Load Classes
  • 34. JNBridgePro – Call .NET from Java (6) Load Class Progress
  • 35. JNBridgePro – Call .NET from Java (7) Choose Proxies
  • 36. JNBridgePro – Call .NET from Java (8) Generate Proxies
  • 37. JNBridgePro – Call .NET from Java (9) Use the Proxies
  • 38. JNBridgePro – Call .NET from Java (10) Call .NET Objects
  • 39. JNBridgePro – Call .NET from Java (11) Run the Program
  • 40. 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)
  • 41. JNBridgePro – Visual Studio plugin
  • 44. IKVM.net (Jeroen Frijters) JavaVirtual Machine (JVM) implementation: Microsoft .NET Framework Mono Components: Java Virtual Machine in .NET Java class librariesin .NET Java-.NET interoperability tools
  • 45. IKVM.net – usage scenarios Use as typical Java Virtual Machine (JVM) Use Java libraries in .ΝΕΤ applications Develop .NET applications in Java language
  • 46. IKVM.net – usage scenarios Use as typicalJava Virtual Machine (JVM) Drop-in replacement: java -jar myapp.jar ikvm -jar myapp.jar
  • 47. IKVM.net – usage scenarios Use Java libraries in.ΝΕΤ applications ikvmc = Java bytecode  .NET IL ikvmc -target:library mylib.jar mylib.dll π.χ. Apache FOP = XSL-FO processor (XML  PDF)
  • 48. IKVM.net – usage scenarios Develop .NET applicationsin Java language ikvmc = Java bytecode  .NET IL ikvmc -target:exe myapp.jar myapp.exe
  • 49. IKVM.net Call .NET API from Java(inIKVM.net JVM) ikvmstub = Java stubs from .NETAPI ikvmstub mscorlib.dll mscorlib.jar ikvmstub c:ibylib.dll
  • 50. IKVM.net – integration / tools Mono (OpenSource .NET by Novell) MonoDevelop (IDE) Ant (task for ikvmc) Jar2ikvmc(folder of dependentJARs)
  • 51. IKVM.netintegration Ant task for 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>
  • 52. IKVM.netintegration Jar2ikvmc(folder of dependentJARs) 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 ...
  • 53. 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) corresponds to WCF (Indigo)
  • 54. Web Services for Remote Portlets Portlet = interactive application component, produces markup segments, aggregated and presented inportals WSRP = interactive web servicesfocused to presentation content & apps: discoverable & pluggable
  • 55. Web Services for Remote Portlets Why WSRPinstead of simple Web Services? Localization Mime types Portlet modes (edit, help, view, custom) Window states (minimized, maximized, solo, normal)
  • 56. Web Services for Remote Portlets Why remoteportlets? Ease of configuration Platform independence Scalability
  • 57. Web Services for Remote Portlets WSRP Producer Web Service Provides 1 or morePortlets Implements WSRP interfaces/operations Can provideruntime (container) fordeploying/management of>1 portlet
  • 58. Web Services for Remote Portlets WSRP Consumer Web Service client Usually aportal Calls producer WSRP web services Provides environment to interact withportlets theProducers provide
  • 59. 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
  • 60.
  • 61.
  • 62.
  • 64.
  • 66.
  • 69.
  • 70.
  • 73.
  • 79.