An introduction to the Java platform for.net developers.

Similar documents
Rapid Application Development. and Application Generation Tools. Walter Knesel

Java in Web 2.0. Alexis Roos Principal Field Technologist, CTO Office OEM SW Sales Sun Microsystems, Inc.

Portals, Portlets & Liferay Platform

Java (J2SE & J2EE) and Web Development Training Catalog

UBS Training Course Catalog

PHP vs. Java. In this paper, I am not discussing following two issues since each is currently hotly debated in various communities:

CrownPeak Java Web Hosting. Version 0.20

<Insert Picture Here> GlassFish v3 - A Taste of a Next Generation Application Server

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

Web and Enterprise Applications Developer Track

OXAGILE RESUMES SUMMARY OF QUALIFICATIONS TECHNICAL SKILLS SENIOR JAVA SOFTWARE ENGINEER

Learning GlassFish for Tomcat Users

Developing modular Java applications

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

WEB APPLICATION DEVELOPMENT. UNIT I J2EE Platform 9

IBM Rational Web Developer for WebSphere Software Version 6.0

Zulu by Azul OpenJDK for Azure

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Glassfish, JAVA EE, Servlets, JSP, EJB

ELOGIX SOFTWARE BUSINESS ADVANTAGE DELIVERED PRACTICE DETAILS

SSC - Web development Model-View-Controller for Java web application development

IBM WebSphere Server Administration

JAVA/J2EE DEVELOPER RESUME

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Strategies for Application Server Deployment Using Multiplatform Installers. October 17-18, 2006 l Santa Clara, CA

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Oracle WebLogic Server 11g Administration

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Data Sheet VISUAL COBOL WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials

CS Developing Web Applications with Java Technologies

JAVA ENTERPRISE IN A NUTSHELL. Jim Farley and William Crawford. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo.

JBS-102: Jboss Application Server Administration. Course Length: 4 days

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

WebSphere Server Administration Course

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

Improving software quality with an automated build process

Executive Summary. Within IT Services, Cosmic Creation spotlights on the following:-

Education Institute Year Graduated

Preface. Motivation for this Book

GRAD Analytics Advanced price and promotional analysis interface. Reactive UI providing dimensional visibility to marketing analysis.

Hexacta - A Case Study in Oil and Gas Industry

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

An Overview of Servlet & JSP Technology

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

Japan Communication India Skill Development Center

Modern Software Development Tools on OpenVMS

BONITA, The Open Source BPM Solution

Curriculum Vitae. Samuel H. Brannen, Jr. Auf der Grueb Meilen Switzerland sam [at] sambrannen [dot] com

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Japan Communication India Skill Development Center

This training is targeted at System Administrators and developers wanting to understand more about administering a WebLogic instance.

Migrating Applications From IBM WebSphere to Apache Tomcat

What means extensibility?

Enterprise Application Development In Java with AJAX and ORM

Operations and Monitoring with Spring

SUMMARY CURRICULUM VITAE J. Andries

A Beginners Guide to Fusion Middleware

Christopher M. Judd President, Consultant, Author 685 Farrington Drive Worthington, Ohio Phone: (614)

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Apache Jakarta Tomcat

DTWMS Required Software Engineers. 1. Senior Java Programmer (3 Positions) Responsibilities:

WEBLOGIC ADMINISTRATION

Kohsuke Kawaguchi Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID

Build management & Continuous integration. with Maven & Hudson

Japan Communication India Skill Development Center

WE DO MORE FOR OUR CUSTOMERS TO BE ON TOP NOTCH

ENGINEER - DEVELOPER ADVANCED JAVA. 28 years old - 7 years of experience

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

An Oracle White Paper May Ready for Business: Oracle GlassFish Server

Triple-E class Continuous Delivery

Modulo II Qualidade de Software com Maven

CONTENTS. Introduction 3. Our Team 5. Our Strategy 6. Solution Domains We Serve 7. Technology Platforms We Serve 8. Our Execution Practices 10

GlassFish. Developing an Application Server in Open Source

MVC pattern in java web programming

Japan Communication India Skill Development Center

ITG Software Engineering

SAP NetWeaver Opens SAP ERP world. Amedeo Prodi SAP Italia

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

SOFTWARE OUTSOURCING

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation

How to Easily Integrate BIRT Reports into your Web Application

JHU/EP Server Originals of Slides and Source Code for Examples:

SENIOR WEB DEVELOPER

<Insert Picture Here> What's New in NetBeans IDE 7.2

Design Approaches of Web Application with Efficient Performance in JAVA

Developing Web Services with Eclipse

2011 Marty Hall An Overview of Servlet & JSP Technology Customized Java EE Training:

JBOSS ENTERPRISE APPLICATION PLATFORM MIGRATION GUIDELINES

THE OPEN SOURCE DEVELOPER REPORT

Oracle WebLogic Server 11g: Administration Essentials

JBoss EntErprisE ApplicAtion platform migration guidelines

Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework

Ruby on Rails in GlassFish Sun Microsystems

JReport Server Deployment Scenarios

Converting Java EE Applications into OSGi Applications

JBoss Enterprise Middleware

Java Platform, Enterprise Edition (Java EE) From Yes-M Systems LLC Length: Approx 3 weeks/30 hours Audience: Students with experience in Java SE

PRINCIPAL JAVA ARCHITECT JOB ID: WD001087

NetBeans IDE Field Guide

Transcription:

An introduction to the Java platform for.net developers www.codingthearchitecture.com

Simon Brown Hands-on software architect

My background is predominantly Java (client-server, websites, distributed systems, messaging, SOA, etc, etc)

I ve been using.net for 6 months (Internet banking platform; ASP.NET, C#, Windows Communication Foundation, SQL Server, etc)

All technologies have benefits

All technologies have trade-offs... your project context will determine their importance

More and more systems seem to be heterogeneous

Java projects are introducing.net

.NET projects are introducing Java

Heterogeneous architectures are becoming more common... Rich Desktop Application Middle Tier Web Services, REST or Messaging

The credit crunch is less choosey about technology

Stakeholders need business benefit

And they want it faster and cheaper than ever

As an industry, we have an odd tendency to be dogmatic about technology decisions

In the current economic climate, we need to be pragmatic and open to change

The goal of this session is to provide you with a jump-start into the Java platform

isn t This a session about how Java is better than.net (case in point; Silverlight vs JavaFX!)

The first part of this session is presentation and demos, the second part is an opportunity for discussion

What is Java? Where do I get it from? How do I install and run it? How do I write apps? What development tools are available? How do I build a website? Where can I find more information?

Overview of Java

Like C#, Java is a high-level programming language that gets compiled down to an intermediate representation called bytecode

That bytecode is run on a Java virtual machine (JVM) that just-in-time compiles it into native executable instructions (similar to the CLR; this is why and how Java can run anywhere )

Different editions, depending on runtime environment

Java Platform, Standard Edition (Java SE)

Desktop and server applications

Java Platform, Enterprise Edition (Java EE, formerly J2EE)

Enterprise-class server-side applications

Java Platform, Micro Edition (Java ME, formerly J2ME)

Applications for mobile and embedded devices

JavaFX (the new boy in town)

Rich user interfaces across desktops and mobile devices

ASP.NET, Web ASP.NET MVC applications SharePoint Java EE.NET Remoting, Server-side, enterprise Messaging, BizTalk, SQL applications Server Java SE Windows Forms, Windows Presentation Rich applications Foundation, Silverlight JavaFX Windows Mobile/.NET Compact Framework Java ME

The JVM can run more languages than just Java

Groovy, Scala, JRuby, Jython, JavaFX Script (... plus implementations for lots of other programming languages)

Getting Java

Testing the installation

Like the.net Framework, it is possible to install multiple versions of Java

Unfortunately, each overwrites the Java registry settings (this sometimes happens when you install applications that rely on Java)

Set the JAVA_HOME environment variable to point to the version you need

Where is JAVA_HOME?

Set the JAVA_HOME environment variable to point to the version you need

A quick Java console application

Writing Java code

Compiling Java code

Running Java code

Java code is typically packaged in a JAR file for deployment

In a similar way to adding assembly references to.net projects, you add JAR files to the classpath for Java projects

Development tools

You have a choice

Multiple IDEs, both open source and commercial (Eclipse, IntelliJ IDEA and NetBeans)

Supporting tools MSBuild, NAnt Ant, Maven NUnit, TestDriven.Net JUnit, TestNG NCover CruiseControl.NET Clover, Cobertura, Emma CruiseControl, Continuum, Bamboo, Hudson

A quick Eclipse demo

Java web applications

Java EE web applications are comparable to ASP.NET web applications

With the exception that Java EE applications are portable (Tomcat, Jetty, Resin, Glassfish, JBoss AS, Oracle AS, WebLogic, WebSphere, etc)

Dynamic content through JSP pages rather than ASP pages

Scripting syntax, special XML tags and an expression language are available to invoke Java code

There are no code-behinds though

There are (too) many MVC frameworks available to build more modular applications (Struts 2, Spring MVC, Stripes,...)

component There are frameworks that provide data-bound controls, AJAX controls, etc (JSF, Tapestry)

Java EE web applications can be further configured through a web.xml file (similar to Web.config)

Another quick Eclipse demo

Beyond the basics

Each Java Virtual Machine runs as a separate process (every time you run java.exe)

Each Java Virtual Machine has its own runtime options

-server and -client

-Xms and -Xmx

Garbage collection tuning (serial/stop-the-world, concurrent, etc)

You have a choice of Java Virtual Machine

Java Virtual Machines can be monitored using JConsole

If JVMs are separate processes, why do you need ClassLoaders?

Like AppDomains, ClassLoaders allow multiple applications to be run in isolation within a single process

Where next?

It depends

If you re looking at Java generic development...

Java SE tutorials JDBC Spring Framework Ant/JUnit/CruiseControl

If you re looking at Java web development...

Java EE (JSP and Servlets) Struts 2 and Spring MVC (a couple MVC frameworks) Grails JSF and Apache Tomcat Glassfish or

If you re looking at enterprise Java development...

Java EE (JMS, EJB, Web Services) Spring Framework Hibernate

If you re looking at Java client development...

Swing SWT JavaFX (make sure the technology decision is justified)

Some good resources are...

InfoQ.com TheServerSide.com JavaBlogs.com

To finish...

.NET and Java; the same but different

They can be used in isolation and in harmony

They can be used to solve the same and different problems

As technologists we need to be pragmatic, choosing the right technology for the context

Website http://www.codingthearchitecture.com Google Group http://groups.google.com/codingthearchitecture