Java versus net
This presentation is the property of its rightful owner.
Sponsored Links
1 / 37

Java versus .NET PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

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å:

Download Presentation

Java versus .NET

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


Java versus net

Java versus .NET

The Heavyweight Championship Showdown


Java versus net

  • 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


Systeks visjon

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


Bakgrunn

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


I det bl hj rnet utfordreren net

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


I det r de hj rnet regjerende mester java

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


Status

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


Tekniske temaer

Tekniske temaer

  • Benchmarking

  • Programmeringsspråk

  • Arkitektur

    • Desktop

    • Mobil

    • Server

  • Andre tekniske aspekter

    • Integrasjon

    • Portabilitet

    • Sikkerhet

1. Runde


Benchmarks

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


Spr kmessige forskjeller

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


Spr kforskjeller

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!


N lags arkitektur

N-lags arkitektur

Rike klienter

Server

Web-

server

Database

Applikasjons

server

WAP

Rik klient

Web Browser


Enterprise arkitektur

Enterprise Arkitektur

Client

Presentation

Logic

Integration

Resource

Interaksjon mellom bruker og fysisk system.

Web-browser, windows-klient, mobiltelefon

Forbereder data for visning i klient.

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

Forretningslogikk.

Plassering av logiske regler og transaksjoner

Håndtere kommunikasjon mot andre systemer.

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

Database, meldingskø, mainframe

Typisk utenfor systemets ansvar


Net p n slide

WAP telefon

.NET Compact Framework

.NET på én slide!

Client

Presentation

Logic

Integration

Resource

Internet explorer

ASP.NET Web Forms

Database

ADO.NET

ASP.NET Web Services

Web Services

Mobile Internet Toolkit

Other systems

Web Services client

COM+ Enterprise Components

Message Queue

MSMQ

Windows Forms

Autodeployment


Java p n slide

WAP telefon

  • Java 2 Micro Edition

  • MIDP

Java på én slide!

Client

Presentation

Logic

Integration

Resource

Database

JDBC

Web browser

Servlets/JSP

  • Enterprise Java Beans:

  • Stateless session beans

  • Stateful session beans

  • Entity beans

Web Services client

Other systems

JMS

Message Queue

Swing/AWT

JCA

Mainframe etc

Java Web Start


Desktop klienter

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


Windows forms designer

Windows Forms Designer


Mobile klienter

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


Noen midp telefoner

Noen MIDP-telefoner


Server basert

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


Alternativer

Alternativer

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

  • Å utvikle sin egen plattform

    • Amazon

    • Google


Integrasjon

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 


Portabilitet

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


Sikkerhet

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.


Oppsummering

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?


Ikke tekniske aspekter

Ikke-tekniske aspekter

2. Runde

  • Cost of ownership

    • Utviklingskostnader

    • Runtimekostnader

    • Opplæringskostnader

  • Filosofisk betraktning:

    • Åpen eller lukket verden?


Softwarekostnader

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


Hva er dyrest

Hva er dyrest?


Oppl ringskostnader

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!


Pen eller lukket verden

Å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?


Open source java

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?


Eksisterende plattform

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


Net versus win32 c c

.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++!


Konklusjon n r b r man bruke net

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


N r b r man ikke bruke net

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


Fremtiden

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#


Oppsummering1

Oppsummering

  • Java og .NET vil forbli de 2 største plattformene

    • De tekniske forskjellene er trivielle

    • Andre 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 bransjesamarbeid

    • stimulering til Open-Source utvikling


  • Login