37
Copyright © 2003 Systek AS brodwall Java versus .NET The Heavyweight Championship Showdown

Java versus .NET

  • Upload
    aizza

  • View
    57

  • Download
    3

Embed Size (px)

DESCRIPTION

Java versus .NET. The Heavyweight Championship Showdown. Konsulenthus startet i 1980 Klassiske kunder: Telekom, industri og forsvar Nye kunder: Bank Rådgiving og ekspertise innen alle deler av programvareutvikling: Prosjektledelse, testledelse, arkitektur, utvikling Spisskompetanse på: - PowerPoint PPT Presentation

Citation preview

Page 1: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Java versus .NET

The Heavyweight Championship Showdown

Page 2: Java versus .NET

Copyright © 2003 Systek AS [email protected]

• Konsulenthus startet i 1980• Klassiske kunder: Telekom, industri og forsvar• Nye kunder: Bank• Rådgiving og ekspertise innen alle deler av

programvareutvikling:• Prosjektledelse, testledelse, arkitektur, utvikling

• Spisskompetanse på:• Java, .NET, programvarearkitektur og

utviklingsprosesser• Høyt kvalifiserte og motiverte konsulenter

Page 3: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Systeks visjon

• På 80 og 90 tallet ble flere og flere sittende med PC’er som en del av sin hverdag

• Vi tror at i utviklingen framover, vil PC’en bli et usynlig, mobilt støtteverktøy for menneskelige aktiviteter

Page 4: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Bakgrunn

• Johannes Brodwall, Systek• Har jobbet med Java i årevis – SCJP, SCJD• Var prosjektleder og arkitekt på et vellykket .NET prosjekt i

første halvdel av 2003.

• Mange spør seg om det er på tide å bytte teknologi• Fra C/C++ og COM til .NET• Fra Java til .NET• Teknologiene er omfattende – mer enn

programmeringsspråk• Følgende er mine erfaringer

Page 5: Java versus .NET

Copyright © 2003 Systek AS [email protected]

I det blå hjørnet: Utfordreren .NET™• Arvtageren til tungvektere som COM, MTS, ASP!• Fra laboratoriene til den mektigste software

organisasjonen i verden• Har vekket enorm interesse• Har utfordreren lært fra sine forgjengeres mangler?

• Objektsorientert modell• Kraftige biblioteker• Designet for enterpriseapplikasjoner

Page 6: Java versus .NET

Copyright © 2003 Systek AS [email protected]

I det røde hjørnet: Regjerende mester Java

• Årevis med etablert robusthet• Tusenvis med vellykkede prosjekter• Hundrevis med industristandarder• Bred industristøtte fra mange aktører• Det mest populære valget i akademiske miljøer

• Objektsorientert modell• Kraftige biblioteker• Bygget for enterpriseapplikasjoner

Page 7: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Status

• Java og Windows har hoppet bukk over hverandre gjennom hele 90-tallet

• Eks: • Java RMI – DCOM• ASP – JSP• MTS – EJB

• .NET er Microsoft’s neste hopp – og det er et langt ett!• Java ligger nå litt etter, men mye av forspranget blir tatt igjen

ved Java 1.5 (Tiger) – 2004Q2

Page 8: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Tekniske temaer

• Benchmarking• Programmeringsspråk• Arkitektur

• Desktop• Mobil• Server

• Andre tekniske aspekter• Integrasjon• Portabilitet• Sikkerhet

1. Runde

Page 9: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Benchmarks

• Finnes mange benchmarks der ute• Mest kjente er Java Pet Store versus .NET Pet Store• Benchmarks er FUD!• De fleste benchmarks:

• Tester kun et fåtall faktorer, og• Kan forbedres vilkårlig med innsats• Forårsaker lange debatter som riktigheten av

målingene

Page 10: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Språkmessige forskjeller

• Mest aktuelt å sammenligne C# og Java• C# har i tillegg til Java:

• Struct og enum-typer• Events, delegators, properties• Operator overloading (fjernet med vilje fra Java)• Attributter (åpner for mye god magi)• Autoboxing

Page 11: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Språkforskjeller

• Mye nytt i C# er bra,• Men C# blir mer kompleks – det var derfor mange

forlot C++ på 90-tallet.• Det viktigste kommer i Java 1.5 (Tiger) – men

antageligvis ikke events eller operator overloading• Både neste versjon av C# og Java 1.5 kommer til å

ha generics• Heller ikke et veldig viktig tema!

Page 12: Java versus .NET

Copyright © 2003 Systek AS [email protected]

N-lags arkitektur

Server

DatabaseWeb-server

Applikasjonsserver

Web Browser

Rike klienter

WAP

Rik klient

Page 13: Java versus .NET

Copyright © 2003 Systek AS [email protected]

PresentationPresentation

Enterprise ArkitekturClientClient LogicLogic ResourceResourceIntegrationIntegration

Forbereder data for visning i klient.

Web-server. Slåes ofte sammen med klient-lag

Forbereder data for visning i klient.

Web-server. Slåes ofte sammen med klient-lag

Interaksjon mellom bruker og fysisk system.

Web-browser, windows-klient, mobiltelefon

Interaksjon mellom bruker og fysisk system.

Web-browser, windows-klient, mobiltelefon

Forretningslogikk.

Plassering av logiske regler og transaksjoner

Forretningslogikk.

Plassering av logiske regler og transaksjoner

Database, meldingskø, mainframe

Typisk utenfor systemets ansvar

Database, meldingskø, mainframe

Typisk utenfor systemets ansvar

Håndtere kommunikasjon mot andre systemer.

Inkluderer kommunikasjon mot databaser, mainframes, meldingskøer etc.

Håndtere kommunikasjon mot andre systemer.

Inkluderer kommunikasjon mot databaser, mainframes, meldingskøer etc.

Page 14: Java versus .NET

Copyright © 2003 Systek AS [email protected]

PresentationPresentation

.NET på én slide!ClientClient LogicLogic ResourceResourceIntegrationIntegration

ASP.NET Web Forms

ASP.NET Web Forms

Internet explorer

Internet explorer ASP.NET

Web Services

ASP.NET Web Services

DatabaseDatabaseADO.NETADO.NET

Mobile Internet Toolkit

Mobile Internet Toolkit

Windows FormsWindows Forms

COM+ Enterprise Components

COM+ Enterprise Components

Web Services

Other systems

Other systemsWeb

Services client

Web Services client

.NET Compact Framework.NET Compact Framework

WAP telefon

WAP telefon

Message Queue

Message QueueMSMQMSMQ

AutodeploymentAutodeployment

Page 15: Java versus .NET

Copyright © 2003 Systek AS [email protected]

PresentationPresentationJava på én slide!

ClientClient LogicLogic ResourceResourceIntegrationIntegration

Servlets/JSPServlets/JSPWeb browser

Web browser

DatabaseDatabaseJDBCJDBC

Swing/AWTSwing/AWT

Enterprise Java Beans:

•Stateless session beans•Stateful session beans•Entity beans

Enterprise Java Beans:

•Stateless session beans•Stateful session beans•Entity beans

Other systems

Other systems

Web Services client

Web Services client

Java 2 Micro Edition•MIDP

Java 2 Micro Edition•MIDP

WAP telefon

WAP telefon

Message Queue

Message Queue

JMSJMS

Mainframe etc

Mainframe etc

JCAJCA

Java Web StartJava Web Start

Page 16: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Desktop klienter

• .NET har native ”look and feel”

• VS.NET gir en grei visuell designer

• Javas API’er er overlegne• Eks: JTree versus

TreeView• Savner noen klasser i .NET

Page 17: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Windows Forms Designer

Page 18: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Mobile klienter

•Browser-basert:• Java: Gir ingen ekstra støtte• .NET: Mobile Internet Toolkit =

hetrogene klienter•Rike klienter:

• Java: MIDP (J2ME)• tilgjengelig på mange telefoner• Ikke veldig kraftig

• .NET Compact Framework: • Mye mindre utbredt• Mye kraftigere

Page 19: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Noen MIDP-telefoner

Page 20: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Server-basert

• Data-aksess: • Java Entity-beans har ikke så bra track-record• ADO.NET er bra

• Web: ASP.NET versus Servlets/JSP• Transaksjoner: Session Beans versus COM+ Components• Begge platformene:

• Skalerer• Gir støtte for sikkerhet• Gir transaksjonsstøtte

• Java har demonstrert skalerbarhet i en årrekke

Page 21: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Alternativer

• Java: Open-source rammeverk som Turbine, Prevayler og Naked Object

• Å utvikle sin egen plattform• Amazon• Google

Page 22: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Integrasjon

• .NET integrerer veldig bra med native windows C++/C og COM kode• Slår knockout på JNI

• .NET har veldig bra Web Services støtte• Java har initiativer for å støtte integrasjon

med mainframes, CORBA etc

• Migrering fra C/C++ eller COM til .NET

Page 23: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Portabilitet

• .NET støtter flere programmeringsspråk• Kun én type språk støttet bra• F# kan endre dette

• Java støtter flere platformer

• Unntak:• Mono, Rotor• Andre språk for JVM• Men: Bør ikke satse prosjektet på disse

Page 24: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Sikkerhet

• Java har hatt en sikkerhetsmodell siden 1.1• Microsoft har hatt dårlig rykte på sikkerhet• Begge tar nå sikkerhet alvorlig:

• Microsoft: “Secure Windows Initiative”• Eks Oracle: “Can’t break it, can’t break in”

• Begge støtter:• SSL, RSA, HTTPS, Rolebasert sikkerhet, etc. etc.

Page 25: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Oppsummering

• Begge platformene tilbyr det man trenger for enterprise utvikling

• Små tekniske forskjeller• .NET et lite forsprang,

ettersom det er nyest• Viktige forskjeller inkluderer

• Portabilitet• Utbredelse• Modenhet

• Tekniske spørsmål?

Page 26: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Ikke-tekniske aspekter

•Cost of ownership• Utviklingskostnader• Runtimekostnader• Opplæringskostnader

•Filosofisk betraktning:• Åpen eller lukket

verden?

2. Runde

Page 27: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Softwarekostnader

• .NET: Ingen runtime-kostnad (inkludert i OS), akseptable utviklingskostnader (5,000 – 25,000 NOK/utvikler)

• Java utviklingskostnader: Fra gratis (Eclipse, NetBeans), til veldig dyrt (OptimalJ, TogetherJ)

• Kommersielle EJB-server: Veldig dyre (opp mot prisen til Oracle)

• Open-source EJB-servere: JOnAs og JBoss (gratis)• Open-source servlet-servere: Tomcat, Jetty

Page 28: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Hva er dyrest?

Kommersiell Java

Kommersiell .NET

Open-source .NET

Open-source Java

Page 29: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Opplæringskostnader

• Å bytte platform er alltid dyrt• Å lære teknologien er rimelig greit• Men å lære å bruke den riktig er tidkrevende

• Selv med gode utviklere tar det måneder• Noen som har gått opp stien kan hjelpe

• Deltagerne må være motivert til å bytte

• Menneskelige faktorer er viktige!

Page 30: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Åpen eller lukket verden?• Java:

• Ikke “standardisert”,• Utviklet gjennom et industrisamarbeid (JCP)

• Microsoft: • Utviklet ene og alene av Microsoft• Overgitt til EMEA

• .NET vil alltid være dominert av Microsoft.• Java kontrolleres av IBM og Oracle mer enn Sun

• Hvilken innstilling er mest åpen?• Hva betyr det?

Page 31: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Open-source Java

• Java har stimulert til mye mer Open-Source utvikling og forskning enn .NET (så langt)

• Hvorfor er open-source interessant• Pris? (ikke så viktig)• Vendor lock-in• Redusert byråkrati ved innkjøp• Kvalitet

• Er dette viktig for dere?

Page 32: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Eksisterende plattform

• Selv med Web Services er integrasjon ofte dyrt• Det viktigste spørsmålet:

• Hva bruker kunder?• Hva bruker leverandører?• Hva bruker partnere?• Hva bruker industrien?• Hva benyttes i eksisterende systemer?

• Mange bransjer har valgt plattform

Page 33: Java versus .NET

Copyright © 2003 Systek AS [email protected]

.NET versus Win32 C/C++

• .NET har god integrasjon med Win 32 C/C++• C# er et rent objektorientert språk• .NET gir garbage collection!• .NET har gode, objektorienterte biblioteker

• .NET er mer produktivt enn Win32 C/C++!

Page 34: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Konklusjon: Når bør man bruke .NET

• Dersom man er i “Windows-verden”• Win32, COM etc erfaring

• Dersom man er opptatt av fancy brukergrensesnitt• Dersom man trenger kraftige bærbare devices• Dersom partnere benytter .NET

Page 35: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Når bør man ikke bruke .NET?

• Dersom man allerede er i Java-verden• Mobile massemarkedapplikasjoner• Miljø som benytter open-source mye• Partnere, leverandører eller kunder benytter Java• Eksistrende systemer benytter Java• Man har veldig dyktige Java-utviklerer

Page 36: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Fremtiden

• Både Java og .NET har strålende framtid• .NET 1.1 (Everett) var nettopp ferdig. • J2SE 1.5 (Tiger) forventes 2004Q2

• Henter inn forspranget til C#

Page 37: Java versus .NET

Copyright © 2003 Systek AS [email protected]

Oppsummering

Java og .NET vil forbli de 2 største plattformeneDe tekniske forskjellene er trivielleAndre faktorer bør avgjøre valget

Å bytte mellom plattformene er dyrt .NET gir god integrasjon med Windows-teknologi:

Å gå fra Win32/COM til .NET er en god investering Java tilbyr en mer åpen verden

bredere bransjesamarbeidstimulering til Open-Source utvikling