Platform comparison java and net pat palmer university of pennsylvania
Download
1 / 35

Platform Comparison Java and .NET Pat Palmer University of Pennsylvania - PowerPoint PPT Presentation


  • 189 Views
  • Uploaded on

Platform Comparison Java and .NET Pat Palmer University of Pennsylvania. Java and .NET. Java was created by Sun in 1992  Microsoft introduced .NET and C# in 2000 both platforms are object-oriented, type safe, and have automatic garbage collection

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Platform Comparison Java and .NET Pat Palmer University of Pennsylvania' - shaquille


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Platform comparison java and net pat palmer university of pennsylvania l.jpg

Platform ComparisonJava and .NETPat PalmerUniversity of Pennsylvania

compare.ppt


Java and net l.jpg
Java and .NET

  • Java was created by Sun in 1992 

  • Microsoft introduced .NET and C# in 2000

  • both platforms are object-oriented, type safe, and have automatic garbage collection

  • the two platforms have been competing vigorously on the desktop

    • but especially in the area of server technology

  • many developers become expert on one platform

    • few have time to learn both

  • the schism of understanding the two platforms widens

    • due to misinformation and disinformation 

  • what are the strengths and issues for each platform?

compare.ppt


Slide3 l.jpg

2008 forecast for market share of OS by platform: (2q 06)

Windows 40%

Unix 29%

Linux 15%

Others 16%

forecast market share of OS unit sales: (05)

in 2002 in 2003 in 2007

Windows 45% 59% 59%

Linux 20% 24% 33%

Unix 16% 10% 5%

Others 19% 7% 3%

market share of server shipments by platform in 2005:

Windows 65.6%

Linux 20.0%

Unix 9.5%

NetWare 4.2%

Others 0.7%

FROM: InfoTech Trends http://www.infotechtrends.com/

report from 2Q 2006, accessed on 4/8/2007

compare.ppt


Main sections l.jpg
main sections

  • simple programs

  • overview of platforms

  • why did Sun do it?

  • why did Microsoft do it?

  • Service Oriented Architecture – the peacemaker?

compare.ppt


1 simple programs l.jpg
1 simple programs

compare.ppt


Console programs l.jpg
console programs

// Java

public class Hello {

public static void main(String[] args) {

System.out.println("Hello world in Java");

}

}

// C#

namespace Hello {

public class Hello {

static void Main(string[] args) {

System.Console.WriteLine ("Hello world in C#");

System.Console.ReadLine();

}

}

}

‘ VB

Module HelloWorld

Sub Main

System.Console.WriteLine(“Hello World in VB.NET”)

System.Console.ReadLine()

End Sub

End Module

compare.ppt



Mininal window l.jpg
mininal window

import java.awt.*;

import javax.swing.*;

publicclass Hello extends JFrame implements Runnable

{

publicstaticvoid main(String[] args)

{

SwingUtilities.invokeLater(new Hello());

}

publicvoid run()

{

this.setSize(new Dimension(200,200));

this.setTitle("Hello in Java");

this.setVisible(true);

}

}

using System.Windows.Forms;

namespace TinyWindowApp

{

public class HelloForm : Form

{

static void Main()

{

Application.Run(new HelloForm());

}

public HelloForm()

{

ClientSize = new

System.Drawing.Size(200, 200);

Text = "Hello in C#";

}

}

}

compare.ppt



Identical types of runtime environments l.jpg
identical types of runtime environments

J2SE (Standard) runtime

desktop applications

J2EE (Enterprise) runtime

web applications

J2ME (Micro) runtime

runtime for gadgets

C# or VB.NET with VS Express

desktop application

IIS with VS Express Web

web applications

.NET compact framework

runtime for gadgets

compare.ppt


Java platform net platform l.jpg
Java platform - .NET platform

FREE

NOT

  • Java Virtual Machine (JVM)

    aka Java Runtime Environment (JRE)

    • Linux, Windows, Mac and Unix

    • download from Sun

      • JIT compiler and libraries

  • Java Development Kit (JDK)

    • Java compiler and utilities

      • Java bytecode

  • integrated development env. (IDE)

    • Eclipse (free - IBM)

    • Netbeans (free - Sun)

  • application servers

    • Tomcat

    • Glassfish (Sun)

    • BEA Weblogic

    • IBM Websphere

  • Microsoft .NET Framework 2.0

    aka .NET common language runtime (CLR)

    • all versions of Windows (40+)

    • download from Microsoft

      • JIT compiler and libraries

  • NET framework 2.0 SDK

    • C# and VB.NET compilers and utilities

      • Common Intermediate Language (CIL)

  • integrated development env. (IDE)

    • Visual Studio Express (free - Microsoft)

  • application servers

    • Microsoft Internet Information Server (IIS)

compare.ppt


Features 1 l.jpg
features 1

virtual machine

platforms (all major OS’s)

spec

implementations

libraries

languages

Java

Jython

Groovy

web servers (many vendors)

platforms (Unix, Linux)

scalability

cost

web capabilities

servlet

JSP

JSF

virtual machine

platforms (all versions of Windows)

spec

implementations

libraries

languages

C#, VB.NET, J# from Microsoft

many others from third parties

(Haskell, Lisp, Python, COBOL, Fortran, etc.)

web servers (just one!)

platforms (most Windows)

scalability

cost

web capabilities

handler

ASP (.NET)

(forgot equivalent name)

compare.ppt


Features 2 l.jpg
features 2

native code calling

components

beans

environments

applet (in browser)

servlet (in server)

Web Start

installs from web

caches on user’s PC

deployment

.jar

.war

.ear

.class

complex, painful learning curve that differs for each web server, container, and IDE

automated via ANT

XML, like make on Unix

native code calling

components

.DLL

environments

ActiveX (in browser)

handler (in server)

Smart Client

installs from web

caches on user’s PC

deployment

.exe (on file system)

.exe (in GAC)

.dll (on file system)

all builds and web installation is automatically handled by Visual Studio (Microsoft’s IDE)

compare.ppt


Features 3 l.jpg
features 3

databases

JDBC

CORBA

binary object remoting

XML

via 3rd-party add-ons until Java 6

IDE’s

Eclipse, with 1000’s of plugins

NetBeans (from Sun) – also free

service oriented architecture (SOA)

annotations appearing

web services WS-I

supported but difficult (3rd party)

new partial automation in Java 6 and latest NetBeans IDE

I haven’t evaluated these yet

databases

ODBC

COM

binary object remoting

XML

excellent support early one

IDE’s

free versions of Visual Studio

some third party IDE’s

service oriented architecture (SOA)

annotations

web services WS-I

superbly automated by Visual Studion since 2005

compare.ppt


The jre and net runtimes include lots of libraries l.jpg
the JRE and .NET runtimes include lots of libraries

  • programs can call a huge body of pre-written code

  • these reusable components are called the Class Libraries

    • in Java, sometimes they are also called packages or Java API’s

    • in .NET, they tend to be called the framework class libraries

  • the libraries are designed to be used identically

    • in Java, regardless of the underlying operating system

    • in .NET, regardless of the underlying version of Windows

      OR which language is being used

compare.ppt


Just in time jit compilers in jre jvm and net runtimes l.jpg
Just in Time (JIT) compilers in JRE (JVM) and .NET runtimes

bytecode

source code

compiler

.class file

metadata

execution

native

code

JIT Compiler

compilation

before installation, or the first time each method is called

compare.ppt


Console commands for compiling java and c net l.jpg
console commands for compiling Java and C#.NET

hello.cs

hello.java

csc

javac

hello.exe

hello.class

1001111010001110 Common Intermediate Language (CIL)

1001111010001110Java bytecode

assembly

these run in different

virtual machines

> javahello

> hello.exe

compare.ppt


Net platform components l.jpg
.NET platform components

compilers

VB

C++

C#

J#

Python

web services automation

Windows Designer

Microsoft VisualStudio .NET

ASP.NET, IIS

Data and XML

Microsoft .NET

Framework

framework class libraries

Common Language Runtime (CLR)virtual machine (like Java)

Microsoft operating systems since Win98

download free

Software Development

Kit (SDK)

free download

compare.ppt


Java platform components l.jpg
Java platform components

compilers

Java

JRuby

JPython

web services automation

beans, remoting, servers

various open sourceand proprietary players

Java Server Pages and servlets

Data and XML

JRE and JDK

Java API’s

Java Runtime Environement (JRE)virtual machine

Unix, Linux, Max OS X, Windows

download free

Software Development

Kit (SDK)

free download

compare.ppt


Who implements java runtimes l.jpg
who implements Java runtimes?

Sun Microsystems

  • Java HotSpot Virtual Machine

    for Windows, Linux, Unix

    Hewlett-Packard

  • Java runtime for HP-UX, OpenVMS,

    Tru64, Reliant(Tandem) UNIX)

    IBM

  • Java runtime for MVS, AIX, OS/400, z/OS

    Apple Computer

  • MacOS Runtime for Java (MRJ)

    • J2SE built-in on Mac OS X

    • includes JDK (compilers)

      BEA Systems

  • JRockit (for their web server)

compare.ppt


Jargon checklist l.jpg
jargon checklist

  • metadata

  • bytecode

  • JVM

  • JRE

  • JDK

  • J2SE

  • J2ME

  • J2EE

  • IDE

  • GUI

  • what is an assembly?

    • an .exe or .dll file compiled by a .NET compiler

  • what is “metadata”?

    • the self-describing information inside a .NET assembly or Java .class file

  • What is CIL? (formerly MSIL)

    • Common Intermediate Language (inside a .NET assembly)

  • What is the CLR?

    • Common Language Runtime that executes CIL code

  • what is managed code?

    • software that runs in the CLR

  • what is native code (or unmanaged code)?

    • software than can run on Windows without the CLR

compare.ppt



C and c perceived common problems l.jpg
C and C++ perceived common problems

  • pointers are dangerous

    • memory leaks (failing to free memory correctly)

    • function pointers (jumping to the wrong place)

    • data pointers (pointing to the wrong place)

  • manual garbage collection is a lot of work

  • multiple inheritance (C++) can get very complicated

    • ambiguities like the “diamond problem” (a.k.a. “diamond of death”)

  • not easily portable across platforms, even with re-compile and discipline

compare.ppt


A few ways java improved on c l.jpg
a few ways Java improved on C++

  • instead of pointers, Java has references

    • references are similar to pointers, but with protections (cannot jump into illegal parts of memory)—avoids segmentation fault problems

  • automatic garbage collection

    • memory is reclaimed from the heap automatically—avoids memory leaks

  • single inheritance

    • avoiding the deadly diamond of death

  • encapsulation

    • all code must be in a class—intended to encourage information hiding

  • array bounds checking

  • libraries

    • many common tasks already coded and available for “reuse” by means of inheritance

    • many interfaces (behaviors) already coded

compare.ppt



Microsoft s big headache l.jpg
Microsoft’s big headache

  • prior to .NET, Microsoft had a big headache

    • Microsoft was supporting too many operating systems

    • application programming interfaces (API’s) were implemented as dynamic link libraries (DLL’s) develop using C++

    • calling the Windows API was different on every operating system

    • developers first had to find out exactly what kind of system the program was running on

      • and then determine if the API desired was actually installed on the system

    • that doesn’t sound so bad

    • after all, there are only a few different kinds of Windows…

      …right?

compare.ppt


Party trivia question l.jpg
party trivia question

  • how many different versions of the Windows operating system existed before Vista, which had their own distinct mix of API’s?

    select the closest answer:

    • 5

    • 15

    • 25

    • 35

compare.ppt


Windows versions which can run the net framework l.jpg
Windows versions which can run the .NET framework

  • Windows XP Professional x64 Edition

  • Windows Server 2003, Standard x64 Edition

  • Windows Server 2003, Enterprise x64 Edition

  • Windows Server 2003, Datacenter x64 Edition

  • Windows Server 2003 R2, Standard x64 Edition

  • Windows Server 2003 R2, Enterprise x64 Edition

  • Windows Server 2003 R2, Datacenter x64 Edition

  • Windows Server 2003 with SP1, Enterprise Edition for Itanium-based Systems

  • Windows Server 2003 with SP1, Datacenter Edition for Itanium-based Systems

  • Windows Server 2003 R2, Enterprise Edition for Itanium-based Systems

  • Windows Server 2003 R2, Datacenter Edition for Itanium-based Systems

  • Microsoft Windows Mobile™ for Pocket PC

  • Windows Mobile for Smartphone

  • Microsoft Windows CE

  • Windows 98

  • Windows 98 Second Edition

  • Windows 2000 Professional with SP4

  • Windows 2000 Server with SP4

  • Windows 2000 Advanced Server with SP4

  • Windows 2000 Datacenter Server with SP4

  • Windows XP Professional with SP2

  • Windows XP Home Edition with SP2

  • Windows XP Media Center Edition 2002 with SP2

  • Windows XP Media Center Edition 2004 with SP2

  • Windows XP Media Center Edition 2005

  • Windows XP Tablet PC Edition with SP2

  • Windows XP Starter Edition

  • Microsoft Windows Millennium Edition

  • Microsoft Windows Server™ 2003 Standard Edition

  • Windows Server 2003 Enterprise Edition

  • Windows Server 2003 Datacenter Edition

  • Windows Server 2003 Web Edition

  • Windows Server 2003 R2, Standard Edition

  • Windows Server 2003 R2, Enterprise Edition

  • Windows Server 2003 R2, Datacenter Edition

  • NOTE: does not include Vista

compare.ppt


Windows versions that can not run the net framework v2 0 l.jpg
Windows versions that can not run the .NET framework v2.0

  • Windows 95

  • Windows NT® Server

  • Windows NT Workstation

  • Windows Server 2003, Enterprise Edition for Itanium-based Systems

  • Windows Server 2003, Datacenter Edition for Itanium-based Systems

compare.ppt



Who are the big web server and database marketplace players l.jpg
who are the big web server and database marketplace players?

  • Sun

  • IBM

  • BEA

  • SAP

  • Oracle

  • Microsoft

compare.ppt


World wide web development l.jpg
world wide web development

  • Java servlets

    • Java Server Pages (JSP)

  • Beans

    • CORBA (binary)

  • XML web services (SOA)

  • .NET handlers

    • Active Server Pages (ASP.NET)

  • .NET DLL’s and .NET custom controls

    • COM (binary)

  • XML Web services (SOA)

compare.ppt


Service oriented architectures soa l.jpg
Service Oriented Architectures (SOA)

  • web services

    • remotely located programs that use XML to make remote calls and get the results

  • XML traveling over HTTP

    • it’s all plain text and goes through firewalls

    • standards are emerging

    • Jave service end points and Microsoft client endpoints can talk to each other (and vice versa)

compare.ppt


What we just covered l.jpg
what we just covered

  • simple programs

  • overview of platforms

  • why did Sun do it?

  • why did Microsoft do it?

  • Service Oriented Architecture – the peacemaker?

compare.ppt


The end of this powerpoint file l.jpg
the end of this PowerPoint file

Hooray!

compare.ppt