java versus .net the heavyweight championship showdown
DESCRIPTION
Java versus .NET The Heavyweight Championship Showdown. En subjektiv sammenligning Johannes Brodwall. Innhold. Utenfra og inn – Presentasjon til integrasjon Teknisk plattform – miljø og verktøy Ikke-tekniske aspekter Oppsummering. Språk: C#, VB.NET, MC++ Runtime: CLR Bibliotek: FCL - PowerPoint PPT PresentationTRANSCRIPT
Copyright © 2003 Systek AS [email protected]
Java versus .NETThe Heavyweight Championship
Showdown
En subjektiv sammenligningJohannes Brodwall
Copyright © 2003 Systek AS [email protected]
Innhold
• Utenfra og inn – Presentasjon til integrasjon• Teknisk plattform – miljø og verktøy• Ikke-tekniske aspekter• Oppsummering
Copyright © 2003 Systek AS [email protected]
Hva snakker vi om?
• Språk: C#, VB.NET, MC++• Runtime: CLR• Bibliotek: FCL• Enterprise Arkitektur:
ADO.NET, ASP.NET, ASP.NET Web Services, COM+
• Arvtager til COM• Erobret mye på kort tid
• Språk: Java• Runtime: JVM• Bibliotek: J2SE API• Enterprise arkitektur: J2EE
API
• Dominant for dotcom-tiden• Støttet av en bred rekke
leverandører• Vært gjennom ilddåpen
Copyright © 2003 Systek AS [email protected]
Enterprise-teknologi
BrowserBrowserWebServerWebServer
Enterprise services
Enterprise services
ResourceResource
Data-base
MessagingRich
ClientRich
Client
Web Services
Web Services
HTML rendering
HTML rendering
Presentation logic
Presentation logic
Plug-insPlug-ins
TransactionsTransactions
ClustringClustring
SecuritySecurity
CommunicationCommunication
Session mgmt etc...
Session mgmt etc...
Dynamic installation
Dynamic installation
User Interface
User Interface
Copyright © 2003 Systek AS [email protected]
Web Applikasjoner
.NET• ASP.NET• Operere på XML syntaks-
treet• Visuelt design• Gode verktøy• Server-side ”events”• God støtte for mobile web-
klienter (wap)
Java• JSP og Servlet• Opererer på HTML-teksten• Verktøy kommer (BEA
WebShop, IBM WebSphere Application Developer)
• Mange gode open-source prosjekter (Velocity, Exo, Struts, ECS)
Copyright © 2003 Systek AS [email protected]
ASP.NET starter der JSP slutter
JSP-redigering i Eclipse
Copyright © 2003 Systek AS [email protected]
GUI
Windows Forms• Visuell designer• Native look & feel• God performance• Gode verktøy (men noen
barnesykdommer...?)
Swing• Gode bibliokteker• Ser ekkelt ut!• Dårlig performance (1.4.2)• Mange middelmådige
verktøy
• Men: Grunnlag for stor grad av gjenbruk => produktivitet
• Se også SWT
Copyright © 2003 Systek AS [email protected]
Visual Studio .NET lar programmereren designe attraktive grensesnitt visuelt
Swing har et rikt API som støtter effektiv visning av modeller
Copyright © 2003 Systek AS [email protected]
Enterprise Service
.NET• Web Services• Data Transfer (ADO.NET)• Simplistisk?
Java• Web Services (endelig)• Remote proxy (Entity Beans)• Kompleks?• Lav produktivitet
Copyright © 2003 Systek AS [email protected]
Integrasjon
.NET• P/Invoke er konge!• Interop med COM• Web Services
Java• JNI suger• Interop med CORBA• JCA• Web services
Copyright © 2003 Systek AS [email protected]
Innhold
• Utenfra og inn – Presentasjon til integrasjon• Teknisk plattform – miljø og verktøy• Ikke-tekniske aspekter• Oppsummering
Copyright © 2003 Systek AS [email protected]
C# versus Java
Enums Kommer i Tiger (bedre)
Attributes Kommer i Tiger (”metadata”)
Events, Properties, Delegators
Ikke i Java (idiomer)
Kommer i WhidBey (bedre) Anonyme indre klasser (viktig!)
Generics (WhidBey) Generics (Tiger)
Copyright © 2003 Systek AS [email protected]
Verktøy og teknologier
.NET• Kommersielle komponenter• Én plattform• Standardisert via ECMA• Standard fra Microsoft
• Relativt dyre IDE (VS.NET, Borland C# builder), men Open-Source finnes
Java• Open-source• Mange leverandører (for mange?)• ”Standardisert” via JCP• Standard fra IBM, BEA, Oracle,
Apache, Sun, Nokia, Motorola, etc.• Fra gode Open-Source (Eclipse,
NetBeans), til kommersielle JDeveloper, Together, OptimalJ
Copyright © 2003 Systek AS [email protected]
Portabilitet
.NET• Windows• Pocket PC• SmartPhone
• Men se: Mono, Rotor
Java• Windows, Solaris, Linux,
Mac• J2ME: Siemens, Nokia,
Ericsson, Motorola• J2ME: Set-top bokser,
mange andre• Java Card• Portet til Toaster
Copyright © 2003 Systek AS [email protected]
Copyright © 2003 Systek AS [email protected]
Innhold
• Utenfra og inn – Presentasjon til integrasjon• Teknisk plattform – miljø og verktøy• Ikke-tekniske aspekter• Oppsummering
Copyright © 2003 Systek AS [email protected]
Samarbeid
• J2EE + VB.NET = SANT?• Web Services er lovet som løsningen, men jeg
savner:• Sikkerhet (kommer)• Transaksjoner (jada, kommer det også)• Callbacks• Data organisasjon
• IBM og Microsoft forfatter mange av disse standardene sammen
Copyright © 2003 Systek AS [email protected]
Kostnad
• Kostnad er sammensatt• Opplæring• Produktivitet• Tilgang til utviklere• Kommunikasjon• Runtime-lisenser• Utviklingslisenser• Verktøy, tilgjengelighet og lisensieringsmodeller• Hardware-kostnader• Integrasjonskostnader• ”Forsikringskostnad” – vi tør ikke bytte
• Prosjekter og organisasjoner har alltid endringskostnader• .NET er typisk billigere enn kommersiell Java• Java open-source er et aktuelt alternativ
Copyright © 2003 Systek AS [email protected]
Opplæring og transisjon
• Opplæring er dyrere enn forventet• Språk• IDE• Verktøy• Bibliotek• Arkitektur
• Integrasjon er alltid dyrere enn forventet
Copyright © 2003 Systek AS [email protected]
Innhold
• Utenfra og inn – Presentasjon til integrasjon• Teknisk plattform – miljø og verktøy• Ikke-tekniske aspekter• Oppsummering
Copyright © 2003 Systek AS [email protected]
Framtiden for .NET
• Klassiske Windows-prosjekter vil gå over til .NET• Har erobret nye kunder og brukere for Microsoft• Mange har gått over fra Java (og er fornøyde)• Vil dominere klient-utvikling (men se opp for SWT)• Utviklingen vil styres av Microsoft
Copyright © 2003 Systek AS [email protected]
Framtiden for Java
• Men Java var ikke død!• Vil dominere i integrasjon mot legacy-systemer• Fortsatt den plattformen med flest bibliotek etc.• Fortsatt den mest populære plattformen for Open-
Source og akademiske prosjekter• J2EE 1.4 og J2SE 1.5 svarer på tiltale fra .NET
Copyright © 2003 Systek AS [email protected]
Oppsummering
• J2EE 1.4 tatt igjen fordelen til .NET på Enterprise. J2SE 1.5 tar igjen fordelen til C#.
• .NET er sterk på brukergrensesnitt• Java’s open-source miljø er veldig verdifullt• Integrasjon et viktig område – begge har styrker• Kostnad ved å skifte plattform er veldig sammensatt
• Plattformene kommer sammen til å dominere framover