User Tools

Site Tools


at-m42:lecture16

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
at-m42:lecture16 [2009/05/05 17:24] eechrisat-m42:lecture16 [2011/01/14 12:45] (current) – external edit 127.0.0.1
Line 27: Line 27:
   * [[#Bigger Role for XML|Other Important Enterprise Technologies]]   * [[#Bigger Role for XML|Other Important Enterprise Technologies]]
   * [[#Alternatives to Java]]   * [[#Alternatives to Java]]
-  * [[#Things to Watch]]+  * [[#Gazing into my Crystal Ball|Things to Watch]]
   * [[#Module Summary]]   * [[#Module Summary]]
  
Line 183: Line 183:
   * [[#Other Important Enterprise Technologies]]   * [[#Other Important Enterprise Technologies]]
   * [[#Alternatives to Java]]   * [[#Alternatives to Java]]
-  * [[#Things to Watch]]+  * [[#Gazing into my Crystal Ball|Things to Watch]]
   * [[#Module Summary]]   * [[#Module Summary]]
  
Line 259: Line 259:
   * **[[#Bigger Role for XML|Other Important Enterprise Technologies]]**   * **[[#Bigger Role for XML|Other Important Enterprise Technologies]]**
   * [[#Alternatives to Java]]   * [[#Alternatives to Java]]
-  * [[#Things to Watch]]+  * [[#Gazing into my Crystal Ball|Things to Watch]]
   * [[#Module Summary]]   * [[#Module Summary]]
  
Line 329: Line 329:
   * [[#Bigger Role for XML|Other Important Enterprise Technologies]]   * [[#Bigger Role for XML|Other Important Enterprise Technologies]]
   * **[[#Alternatives to Java]]**   * **[[#Alternatives to Java]]**
-  * [[#Things to Watch]]+  * [[#Gazing into my Crystal Ball|Things to Watch]]
   * [[#Module Summary]]   * [[#Module Summary]]
  
Line 376: Line 376:
  
 Software development and application delivery platform for the new century. Contains: Software development and application delivery platform for the new century. Contains:
-  * **C#**  +  * C# 
-  * “**common language runtime**” +  * “common language runtime” 
-  * **base components** +  * base components 
-  * **ASP+** +  * ASP+ 
-  * **Win Forms and Web Forms** +  * Win Forms and Web Forms 
-  * **ADO+**+  * ADO+
      
 ---- ----
Line 401: Line 401:
 ===== How do .NET and Java EE compare? ===== ===== How do .NET and Java EE compare? =====
  
 +See notes
  
 +----
  
 +^.NET^Java EE^Key differences^
 +|C# programming language | Java programming language | C# and Java both derive from C and C++. Most significant features (e.g., garbage collection, hierarchical namespaces) are present in both. C# borrows some of the component concepts from COM and VB, adds some of its own (like metadata tags), but incorporates these features into the syntax differently. Java runs on any platform with a Java VM. C# only runs in Windows for the foreseeable future. C# is implicitly tied into the IL common language runtime, and is run as just-in-time (JIT) compiled bytecodes or compiled entirely into native code. Java code runs as Java Virtual Machine (VT) bytecodes that are either interpreted in the VM or JIT compiled, or can be compiled entirely into native code. |
 +|.NET common components (aka the “.NET Framework SDK”)|Java core API|High-level .NET components will include support for distributed access using XML and SOAP (see ADO+ below). |
 +|Active Server Pages+ (ASP+) |Java ServerPages (JSP) | ASP+ will use Visual Basic, C#, and possibly other languages for code snippets. All get compiled into native code through the common language runtime (as opposed to being interpreted each time, like ASPs). JSPs use Java code (snippets, or JavaBean references), compiled into Java bytecodes (either on-demand or batch-compiled, depending on the JSP implementation). IL Common Language Runtime allows code in multiple languages to use a shared set of components, on Windows. Underlies nearly all of .NET framework (common components, ASP+, etc.). |
 +|IL Common Language Runtime|Java Virtual Machine and CORBA IDL and ORB|Java's Virtual Machine spec allows Java bytecodes to run on any platform with a compliant JVM. CORBA allows code in multiple languages to use a shared set of objects, on any platform with an ORB available. Not nearly as tightly integrated into Java EE framework. Similar web components (e.g., based on JSP) not available in Java standard platform, some proprietary components available through Java IDEs etc.|
 +|Win Forms and Web Forms|Java Swing/Java Server Faces|Win Forms and Web Forms RAD development supported through the MS Visual Studio IDE - no other IDE support announced at this writing. Swing and JSF support available in many Java IDEs and tools.|
 +|ADO+ and SOAP-based Web Services|JDBC, EJB, JMS and Java XML Libraries (XML4J, JAXP)|ADO+ is built on the premise of XML data interchange (between remote data objects and layers of multi-tier apps) on top of HTTP (AKA, SOAP). .NET's web services in general assume SOAP messaging models. EJB, JDBC, etc. leave the data interchange protocol at the developer's discretion, and operate on top of either HTTP, RMI/JRMP or IIOP.|
  
 ===== How do they Stack Up? ===== ===== How do they Stack Up? =====
  
-Both .NET and Java EE offer a similar shopping list of features. +  * Both .NET and Java EE offer a similar shopping list of features.  
 + 
 +----
 .Net .Net
-The .NET core works on Windows only but theoretically supports development in many languages +  * The .NET core works on Windows only but theoretically supports development in many languages 
-.Net's SOAP capabilities will allow components on other platforms to exchange data messages with .NET components. +  .Net's SOAP capabilities will allow components on other platforms to exchange data messages with .NET components. 
-The core components of the framework (IL runtime environment, ASP+ internals, Win Forms and Web Forms component "contracts", etc.) will be proprietary. Full platform may only be available from Microsoft. +  The core components of the framework (IL runtime environment, ASP+ internals, Win Forms and Web Forms component "contracts", etc.) will be proprietary. Full platform may only be available from Microsoft. 
  
-How do they Stack Up? 
-Both .NET and Java EE offer a similar shopping list of features.  
 Java EE Java EE
-Java EE works on any platform with a compliant Java VM and a compliant set of required platform services. +  * Java EE works on any platform with a compliant Java VM and a compliant set of required platform services. 
-All of the specifications that define the Java EE platform are published and reviewed publicly, and numerous vendors offer compliant products and development environments. +  All of the specifications that define the Java EE platform are published and reviewed publicly, and numerous vendors offer compliant products and development environments. 
-Java EE is a single-language platform. Calls from/to objects in other languages are possible through CORBA, but CORBA support is not a ubiquitous part of the platform. +  Java EE is a single-language platform((This is no longer true since Java has become open to scripting languages such as JRuby, Jython, Scala, and Groovy)). Calls from/to objects in other languages are possible through CORBA, but CORBA support is not a ubiquitous part of the platform. 
  
-Contents 
-The Trouble with EJB 
-Lightweight Containers 
-Other Important Enterprise Technologies 
-Alternatives to Java 
-Things to Watch 
-Module Summary 
  
 +===== Contents =====
 +
 +  * [[#The Trouble with EJB]]
 +  * [[#Better, Faster, Lighter Java|Lightweight Containers]]
 +  * [[#Bigger Role for XML|Other Important Enterprise Technologies]]
 +  * [[#Alternatives to Java]]
 +  * **[[#Gazing into my Crystal Ball|Things to Watch]]**
 +  * [[#Module Summary]]
  
 ===== Gazing into my Crystal Ball ===== ===== Gazing into my Crystal Ball =====
  
-A 4th edition of Eckel’s book covering the new language features in Java 1.5. +Back in 2005 I made some predications:{{  :at-m42:crystal-ball.png|}} 
-Consolidation and wide acceptance of MVC and ORM frameworks. +  * A 4th edition of Eckel’s book covering the new language features in Java 1.5 came true
-The rise of lightweight frameworks. +  Consolidation and wide acceptance of MVC and ORM frameworks came true
-Penetration of AOP into mainstream OO development. +  The rise of lightweight frameworks largely happened and Ruby on Rails bought forth even more "lightweightness"
-EJB 3.0(see next slide) +  Penetration of AOP into mainstream OO development hasn't quite happened yet
-One of you will get rich marketing yourself as a Java EE architect! +  EJB 3.0 came out (see next slide) 
 +  One of you will get rich marketing yourself as a Java EE architect -- may still come true 
 + 
 +---- 
 + 
 +When I have some time I may update this presentation to bring it up to the state-of-the-art in 2009.
  
 ===== EJB 3.0 ===== ===== EJB 3.0 =====
  
-Recognising that the interests of developers where poorly served by the last versions of the EJB specification, Sun has set up a working group to develop version 3.0 of the specifications. +Recognising that the interests of developers where poorly served by the last versions of the EJB specification, Sun set up a working group to develop version 3.0 of the specifications. 
-Early indications are+ 
-Inspired by XDoclet (itself inspired by .NET) EJB 3.0 will make extensive use of annotations (a new feature of Java 1.5) to reduce the need for so many interface files.  +The final spec is now in general release
-Business components will be standard Java Objects.  +  Inspired by XDoclet (itself inspired by .NET) EJB 3.0 makes extensive use of annotations (a new feature of Java 1.5) to reduce the need for so many interface files.  
-It will be adopting some of the techniques developed for ORM for persistence support. +  Business components are standard Java Objects.  
-More at http://www.theserverside.com/articles/article.tss?l=SimplifyingEJB3 and in the draft specification at http://java.sun.com/products/ejb/docs.html+  It includes ORM for persistence support in the form of the Java Persistence API (JPA) which is similar to Hibernate in design
-Contents +  * EJB version 3 was released in May 2006. 
-The Trouble with EJB +  * The reference implementation is the open source Glassfish container
-Lightweight Containers +===== Contents ===== 
-Other Important Enterprise Technologies + 
-Alternatives to Java +  * [[#The Trouble with EJB]] 
-Things to Watch +  * [[#Better, Faster, Lighter Java|Lightweight Containers]] 
-Module Summary+  * [[#Bigger Role for XML|Other Important Enterprise Technologies]] 
 +  * [[#Alternatives to Java]] 
 +  * [[#Gazing into my Crystal Ball|Things to Watch]] 
 +  * **[[#Module Summary]]**
  
  
 ===== Module Summary ===== ===== Module Summary =====
  
-Have presented the Java platform in some detail via the medium of Groovy +  * Have presented the Java platform in some detail via the medium of Groovy 
-Considered advanced platform features: +  Considered advanced platform features: 
-Multithreading +    Multithreading 
-Java IO +    Network and Distributed Programming 
-Network Programming +    Enterprise Java 
-Enterprise Java +  Discussed some of the disadvantages of Java EE and introduced some hot topics for the future. 
-Discussed some of the disadvantages of Java EE and introduced some hot topics for the future. +===== Thank you for your patience and long attention! ===== 
-Thank you for your patience and long attention!  + 
-The End! +===== The End! ===== 
-Its Been Emotional!+ 
 +===== It's Been Emotional! ===== 
 +{{:at-m42:emotional.png|}}
  
  
at-m42/lecture16.1241544252.txt.gz · Last modified: 2011/01/14 12:25 (external edit)