230 likes | 355 Views
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
E N D
Java versus .NETThe 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 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 Hva snakker vi om?
Enterprise-teknologi WebServer Enterprise services Resource Browser HTML rendering Presentation logic Data-base Plug-ins Transactions Session mgmt etc... Web Services Messaging Clustring Rich Client Security User Interface Communication Dynamic installation
.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) Web Applikasjoner
ASP.NET starter der JSP slutter JSP-redigering i Eclipse
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 GUI
Visual Studio .NET lar programmereren designe attraktive grensesnitt visuelt Swing har et rikt API som støtter effektiv visning av modeller
.NET Web Services Data Transfer (ADO.NET) Simplistisk? Java Web Services (endelig) Remote proxy (Entity Beans) Kompleks? Lav produktivitet Enterprise Service
.NET P/Invoke er konge! Interop med COM Web Services Java JNI suger Interop med CORBA JCA Web services Integrasjon
Innhold • Utenfra og inn – Presentasjon til integrasjon • Teknisk plattform – miljø og verktøy • Ikke-tekniske aspekter • Oppsummering
.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 Verktøy og teknologier
.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 Portabilitet
Innhold • Utenfra og inn – Presentasjon til integrasjon • Teknisk plattform – miljø og verktøy • Ikke-tekniske aspekter • Oppsummering
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
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
Opplæring og transisjon • Opplæring er dyrere enn forventet • Språk • IDE • Verktøy • Bibliotek • Arkitektur • Integrasjon er alltid dyrere enn forventet
Innhold • Utenfra og inn – Presentasjon til integrasjon • Teknisk plattform – miljø og verktøy • Ikke-tekniske aspekter • Oppsummering
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
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
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