Copyright © 2003 Systek Java versus.NET The Heavyweight Championship Showdown Johannes Brodwall - Systek AS.

Slides:



Advertisements
Liknende presentasjoner
Webbasert administrasjonssystem for fondsforvaltere Martin Lie 20. april 2006.
Advertisements

Generisk nettstruktur inklusive CT-iq Offentlig Nett (ON) Bedriftsinternt Nett (BiN) CTI(opsjon)CT-iq Bedrifts LAN IN lev. LAN InnringerINleverandør(IN)Mobiloperatør(MO)
Teknologi i klasserommet
C++ for Java-programmerere
Progress Software AS.NET-strategi Bjørn Haugen Account Manager PUG møte 27.mars 2003.
Nettprosjekt Kundeservice på nett •Bakgrunn –SiT hadde gamle nettsider med mye og utdatert innhold og funksjonalitet •Formål –Bidra til at.
JSP presentasjon Arild Strømhylden NTNU 26 June 2014.
Programmering i ActionScript - hva er det, og hvordan undervise?
Java Teknologi Teknikker Økosystem Johannes Brodwall
1 Objektorientert samvirke - del 4 av Arne Maus, Institutt for informatikk, Universitetet i Oslo.
Mobile portalløsninger (Internet Online Platform)
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Go Mobile AS Mobile Løsninger Utvikling Consulting.
Objektorientert programmering i PHP del 2
MS kap 61 Nye trender  Vi skal se på  Virtualisering  ”Cloud computing”
Programmering av dynamiske websider i C# - hva er det, og hvordan undervise? Tom Heine Nätt.
Java Server Faces (JSF) en introduksjon Frode Eika Sandnes.
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
C# for javaprogrammerere
Kommentarer til dataingenørstudiet ved HiØ Februar 2011.
Prototyping In 140 Sommerville kap. 8. Mål Forstå hensikten med prototyping i forskjellige utviklingsprosjekt Forstå forskjellen mellom evolusjonær og.
Utført av: Jeppe Flensted HiST Vår 2009
Presentasjon av Concrea
Hovedprinsipper i Rational Unified Process
Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi.
Mohammad Ali Koteich Danial Siddiq Sheikh. Hva skal vi snakke om? Directory LDAP The Apache Directory Project.
Our business, your advantage! DataManager
Løsning hos RSH Norge En gjennomgang av løsning hos Reitan Servicehandel Norge Edvard Gundersen – ProfitBase AS Løsningsarkitekt.
Kontroll og overvåking av integrasjonsløsninger App Platt Conference – SOA & Integration Track Martin Rauan Gisle Åsberg Communicate Norge.
Object Oriented Measurement
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Tilstede Hakon gruppen Systek Ragnvald Blindheim, CTO for ICA Ahold
Farvel til applikasjonsserveren Fra kompleksitet til kontroll.
Copyright © 2003 Systek Java versus.NET The Heavyweight Championship Showdown En subjektiv sammenligning Johannes Brodwall.
Copyright © 2003 Systek J2EE Teknologier Java Workshop CBA Johannes Brodwall, Systek as.
Copyright © 2003 Systek Java versus.NET The Heavyweight Championship Showdown En subjektiv sammenligning Johannes Brodwall.
Copyright © 2003 Systek Java versus.NET The Heavyweight Championship Showdown En subjektiv sammenligning Johannes Brodwall.
Copyright © 2003 Systek i Industrien Johannes Brodwall Systek AS.
Livet etter Frontpage og Access Tom Heine Nätt. Agenda Frontpage Hvorfor bytte? Krav til et webutviklingsverktøy Alternative webutviklingsverktøy Dreamweaver.
Hjelp! Jeg skal undervise i IT 2!
PARLAY/OSA Referanser: Referanser Foredraget er i all hovedsak basert på to artikler. Disse kan finnes på:
Copyright © 2007, SAS Institute Inc. All rights reserved. Hvordan tilpasse SAS rapporteringsmuligheter til ulike behov Odd-Inge Hansen SAS Institute AS.
Eziz Annagurban Veiledere: Sven-Olai Høyland Carsten Helgesen
Praktiske erfaringer med Objektorientert Progress og.NET Jan Kolstad PUG Norway, Lillehammer 2005.
PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.
.NET og Progress Samspill og styrker, GUI og forretningslogikk.
Desperate times calls for desperate measures Markedsandel gått fra +90% til under 20 Må integrere og få innpass på andre plattformer M$ går open source.
Copyright © 2003 Systek Java versus.NET The Heavyweight Championship Showdown.
Utvikling av tegneverktøy for Generalized Sketches Student: Ørjan Hatland Veiledere: Yngve Lamo, Høgskolen i Bergen Uwe Wolter, Universitetet i Bergen.
Telenors satsing på fri programvare Paul Skrede - GoOpen 2009.
J2ME- og Web-basert Instant Messaging System. Oppgavebeskrivelse Selvstendig system J2ME- og Web-basert Internasjonalisering.
X10 webservices/IM -> mobilklient. Oppdragsgiver:
Subversion addin for Visual Studio.NET Gruppe 03-10: Arild Fines Per August Krämer Kristin Borud.
Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.
YXD-Kurdistan Om oss Asad Fattahi Samarbeidet i flere andre prosjekter
HPR 56 - Cross Platform Gaming Server Av Bjørn Haugen, og Hans Kristian Hovland.
Copyright © 2003 Systek Java Safari Java Workshop CBA Johannes Brodwall, Systek as.
Programmering av mobile enheter nr.027
1 Kap. 57 – Cloud Computing How Information Technology Is Conquering the World: Workplace, Private Life, and Society Professor Kai A. Olsen, Universitetet.
UiO Programkiosk: Ny portal og tilgang fra Mac og Linux
JADE-LEAP AmbieSense er et EU støttet forskningsprosjekt. I dette prosjektet prøver man å integrere nye typer teknologi for bruk på mobile enheter I den.
Subversion addin for Visual Studio.NET Gruppe 03-10: Arild Fines Per August Krämer Kristin Borud.
Trafikantens mobile sanntidssystem Presentasjon INF5261.
Android Programmering 10 timers kurs. Forutsetninger Noe bakgrunn i Java eller et annet objektorientert språk Litt peiling på XML Vi bruker Windows 7.
Tips og råd Til hva dere bør tenke på når dere setter samme et business case (basert på innspill fra seminar )
Ketil Melhus Datatjenesten AS
Having a crack at a new stack
Nye trender Vi skal se på Virtualisering ”Cloud computing”
Lokal økonomi-informasjon
Utskrift av presentasjonen:

Copyright © 2003 Systek Java versus.NET The Heavyweight Championship Showdown Johannes Brodwall - Systek AS

Copyright © 2003 Systek Bakgrunn Mange spør seg om det er på tide å bytte teknologi Fra Java til.NET Teknologiene er omfattende – mer enn programmeringsspråk Jeg har erfaring fra både Java og.NET prosjekter Følgende er mine erfaringer (subjektive, personlige, men virkelige)

Copyright © 2003 Systek Innhold Teknologisk sammenligning Feature sammenligning Service-level faktorer Ikke-tekniske faktorer Oppsummering – hva skal vi velge?

Copyright © 2003 Systek 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? Objektorientert modell Kraftige biblioteker Designet for enterpriseapplikasjoner

Copyright © 2003 Systek 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 Objektorientert modell Kraftige biblioteker Bygget for enterpriseapplikasjoner

Copyright © 2003 Systek Tekniske temaer Benchmarking Programmeringsspråk Arkitektur Desktop Mobil Server Service-level aspekter Integrasjon Portabilitet Sikkerhet 1. Runde

Copyright © 2003 Systek Status Java og Windows har hoppet bukk over hverandre gjennom hele 90-tallet Eks: Java RMI – DCOM -.NET Remoting 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

Copyright © 2003 Systek 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

Copyright © 2003 Systek 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 Størst savn fra Java: Anonymous inner classes

Copyright © 2003 Systek Språkforskjeller: Properties Tilsvarer Java’s getter og setter konvensjon Men er bygget inn i språket public class MyClass { public string Name { get { return (string)properties[”Name”]; } set { properties[”Name”] = value; } } private Hashtable properties = new Hashtable(); } MyClass obj; obj.Name += ”, Esq.”;

Copyright © 2003 Systek Språkforskjeller: Events Tilsvarer Java’s observer konvensjon Men er bygget inn i språket public delegate MyEventHandler(object sender, EventArgs e); public class MyClass { public event MyEventHandler MyEvent; public void FireEvent() { if ( MyEvent != null ) MyEvent(this, new EventArgs()); } public static void Main() { MyClass myObj = new MyClass(); myObj.MyEvent += new MyEventHandler(MyEventHandlerImpl); myObj.FireEvent(); } private static void MyEventHandlerImpl(object sender, EventArgs e) { Console.WriteLine(”In event handler”); }

Copyright © 2003 Systek Språkforskjeller: Events Tilsvarer Java’s observer konvensjon Men er bygget inn i språket public class MyClass extends Observable { public void fireEvent() { notifyObservers(); } public static void Main() { MyClass myObj = new MyClass(); myObj.addObserver(new Observer() { public void update(Observable sender, Object arg) { MyEventHandlerImpl(sender, arg); } }); myObj.fireEvent(); } private static void MyEventHandlerImpl(object sender, object e) { System.out.printLn(”In event handler”); }

Copyright © 2003 Systek Språkforskjeller: Attributter Tilsvarer deployment descriptor info Men er bygget inn i språket Dekorerer reflection-information med ”metadata” Forutsetter at et ”mellomlag” behandler attributter Vi brukte dette til å implementere autorisasjon i web services [Transaction(TransactionOption.Required)] public class Account : ServicedComponent { [AutoComplete] static void Main() {} }

Copyright © 2003 Systek Språkforskjeller – vurdering Mye nytt i C# er bra, spesielt Autoboxing Events, Properties Attributter C# er mer kompleks – det var derfor mange forlot C++. 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 Motstanderne sirkler rundt hverandre, og begge får inn noen slag, men det er bare oppvarming

Copyright © 2003 Systek Rammeverkene Introduksjon til n-lags arkitektur De forskjellige lagene i Java De forskjellige lagene i.NET Sammenligning, lag for lag.

Copyright © 2003 Systek N-lags arkitektur Database Server Web- server Applikasjons server Web Browser Rike klienter WAP Rik klient

Copyright © 2003 Systek Presentation Enterprise Arkitektur Client Logic Resource Integration 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 Forretningslog ikk. Plassering av logiske regler og transaksjoner Forretningslog ikk. Plassering av logiske regler og transaksjoner Database, meldingskø, mainframe Typisk utenfor systemets ansvar Database, meldingskø, mainframe Typisk utenfor systemets ansvar Håndtere kommunikasjo n mot andre systemer. Inkluderer kommunikasjo n mot databaser, mainframes, meldingskøer etc. Håndtere kommunikasjo n mot andre systemer. Inkluderer kommunikasjo n mot databaser, mainframes, meldingskøer etc.

Copyright © 2003 Systek Presentation Java på én slide! Client Logic Resource Integration Servlets/JSP Web browser Database JDBC Swing/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 Web Services client Java 2 Micro Edition MIDP Java 2 Micro Edition MIDP WAP telefon Message Queue JMS Mainframe etc JCA Java Web Start

Copyright © 2003 Systek Presentation.NET på én slide! Client Logic Resource Integration ASP.NET Web Forms Internet explorer ASP.NET Web Services Database ADO.NET Mobile Internet Toolkit Windows Forms COM+ Enterprise Components Web Services Other systems Web Services client.NET Compact Framework WAP telefon Message Queue MSMQ Autodeployment

Copyright © 2003 Systek 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

Copyright © 2003 Systek Windows Forms Designer

Copyright © 2003 Systek 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

Copyright © 2003 Systek Noen MIDP-telefoner

Copyright © 2003 Systek ASP.NET versus Servlets Rammeverk for presentasjon av web sider ASP.NET: Visuelt design Introduserer ”event-drevet” web-programmering Basert på ”taglibs” Bruker runtime tremodell av HTML dokument ASP.NET starter der JSP slutter

Copyright © 2003 Systek ASP.NET modellen

Copyright © 2003 Systek Server-basert Transaksjoner: Session Beans versus COM+ Components Begge platformene: Skalerer Gir støtte for sikkerhet Gir transaksjonsstøtte Java har demonstrert skalerbarhet i en årrekke.NET krever mindre kode for å gjøre det samme

Copyright © 2003 Systek Integrasjon Data-aksess: Java Entity-beans har ikke så bra track-record ADO.NET har en enklere modell som fungerer bra Legacy integrasjon: JCA åpner Meldingsutveksling: MSMQ og JMS Web-services:.NET har så god støtte at det er det letteste å bygge infrastruktur med!

Copyright © 2003 Systek Alternativer til J2EE og.NET N-lags for tungt for mange, passer ikke for alle Java: Open-source rammeverk som Turbine, Prevayler, Hibernate, Struts, XMLC og Naked Objects Å utvikle sin egen plattform Amazon – Java basert (obedos) Google – Linux-basert supercluster OO-script-språk: Python, Ruby LAMP

Copyright © 2003 Systek Service-level temaer Integrasjon Portabilitet Sikkerhet Sytepause

Copyright © 2003 Systek Integrasjon.NET integrerer veldig bra med native windows C++/C og COM kode (”IJW”-teknologi) Slår knockout på JNI.NET har veldig bra Web Services støtte Java har initiativer for å støtte integrasjon med mainframes, CORBA etc (JCA) Fungerer bra med verktøy Migrering fra C/C++ eller COM til.NET

Copyright © 2003 Systek Portabilitet.NET støtter flere programmeringsspråk Kun én type språk støttet bra F# kan endre dette Java støtter flere plattformer Blant annet embeddede plattformer Unntak: Mono, Rotor Andre språk for JVM (Jython) Men: Bør ikke satse prosjektet på disse

Copyright © 2003 Systek 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, Kodesikkerhet, Rollebasert sikkerhet, etc. etc.

Copyright © 2003 Systek Syting!.NET kommer ikke med bibliotek for komprimering! Jeg har fortsatt ikke funnet et godt taglib for Java- utvikling Hvorfor krever alle Java-IDE’er 1 GB RAM?!? EJBQL!?!?!?.NET har ikke anonymous inner classes! Whassup with that?!?

Copyright © 2003 Systek Oppsummering: Teknisk del Begge platformene tilbyr det man trenger for enterprise utvikling Små tekniske forskjeller.NET et lite forsprang, ettersom det er nyest Java er mer modent Viktige forskjeller inkluderer Portabilitet Tekniske spørsmål?

Copyright © 2003 Systek Ikke-tekniske aspekter Cost of ownership Utviklingskostnader Runtimekostnader Opplæringskostnader Filosofisk betraktning: Åpen eller lukket verden? Modenhet 2. Runde

Copyright © 2003 Systek Hva er dyrest? Kommersiell Java Kommersiell.NET Open-source.NET Open-source Java

Copyright © 2003 Systek Software-valg KommersiellOpen-source Java utvikling Mange, dyreste er OptimalJ, Together (30- 70’/utvikler) Eclipse, NetBeans (begge veldig bra) J2EE runtime Opptil flere 100’ per CPU JOnAs, JBoss, Tomcat, Jetty (modene).NET utvikling Visual Studio.NET (cirka 5’-25’/utvikler) Borland C#Buider ISharp (ikke spesielt bra).NET runtime Inkludert i OSROTOR, Mono (ikke modent)

Copyright © 2003 Systek 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!

Copyright © 2003 Systek Produktivitet J2EE er en mer kompleks arkitektur enn.NET Flere features og muligheter Men: Kan være tung å kode mot Skal du bruke J2EE: ha en strategi for kodegenerering Øker produktivitet Fremhever konsistens Forebygger feil

Copyright © 2003 Systek Java’s filosofi Ikke formelt “standardisert”, Utviklet gjennom et industrisamarbeid (JCP) JCP standarder, ”uavhengige” parter leverer verktøy Andre leverandører har mye innflytelse Java kontrolleres av IBM, BEA og Oracle mer enn Sun J2ME satsningen styres av Nokia, Motorola, Samsung, Ericsson, og så videre

Copyright © 2003 Systek Microsofts filosofi Utviklet ene og alene av Microsoft Overgitt til EMEA Produserer standarder + ferdige verktøy.NET vil alltid være dominert av Microsoft. Jeg liker å kalle denne filosofien Steintavler-til- Moses-standardisering

Copyright © 2003 Systek Filosofi og oss Er Microsoft eller Javas innstilling er mest åpen? Hva betyr det for oss? Java: Må forholde oss til flere leverandører Java: Verktøy kan komme sent, eller aldri Microsoft: Kommer Nokia til å levere.NET på sine mobiler? (Neppe) Microsoft: Mangel på konkurranse svekker tilbudet Java: Stimulerer til Open-Source utvikling

Copyright © 2003 Systek 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 Eksempelkode Er dette viktig for dere?

Copyright © 2003 Systek Din eksisterende plattform Selv med Web Services er integrasjon veldig dyrt Det viktigste spørsmålet: Hva bruker kunder? Hva bruker leverandører? Hva bruker partnere? Hva bruker din bransje? Hva benyttes i eksisterende systemer? Hva forstår utviklingsorganisasjonen?

Copyright © 2003 Systek Utbredelse & Modenhet Diskutabelt hvem som er mest skalerbar Men: J2EE har mange installasjoner som har gått over lang tid! Trygghetsfølelse Body-of-knowledge Modne best practices Erfaren arbeidskraft

Copyright © 2003 Systek Oppsummering Java har bredest spektrum av leverandører Kommersielle Java-løsninger er dyrest Teknologibytte er alltid dyrt Java har en åpen prosess Microsoft er ”kongen på haugen sin” Java har mange modne open-source initiativer Java drar nytte av sin lengre fartstid

Copyright © 2003 Systek Konklusjon: Når bør man bruke.NET Dersom man er i “Windows-verden” Win32, COM etc erfaring Dersom partnere benytter.NET Dersom man er opptatt av fancy brukergrensesnitt Dersom man trenger kraftige bærbare devices Dersom man føler J2EE er for kompleks

Copyright © 2003 Systek Når bør man bruke Java? Dersom man allerede er i Java-verden Opptatt av standardisering og av open-source Partnere, leverandører eller kunder benytter Java Eksistrende systemer benytter Java Man har veldig dyktige Java-utviklerer Mobile massemarkedapplikasjoner

Copyright © 2003 Systek Fremtiden Både Java og.NET har strålende framtid Neste generasjon.NET (Yukon) presenteres på PDC 2003 i oktober J2SE 1.5 (Tiger) forventes 2004Q2 Henter inn forspranget til C# Konkurransen mellom Java og.NET er bra for oss!

Copyright © 2003 Systek 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 Java tilbyr en mer åpen verden bredere bransjesamarbeid stimulering til Open-Source utvikling

Copyright © 2003 Systek Så: Hvilken plattform er best?