Documente Academic
Documente Profesional
Documente Cultură
NET
Kyle Cordes
Oasis Digital Solutions Inc.
❚ Developer / “Architect”
❚ Consultant and Trainer
❚ Proponent of agile, iterative, test-intensive
development
❚ Java, EJB, Oracle, SQL Server, Delphi,
C++, Python, Ruby, EJB, XML, multi-tier,
etc.
❚ kylecordes.com
❚ Oasis Digital Solutions Inc.
❙ Outsourced development and other services
Copyright © 2003 Oasis Digital Solutions Inc. / Kyle Cordes
Disclosures - I Like all of the
following:
❚ Java
❚ .NET
❚ Choice of deployment platforms
❚ Great development tools
❚ Value for the customer / user
❚ Overview
❚ Technical Similarities and Differences
❚ Non-Technical Issues
❚ Q&A
❚ Java:
❙ Write your unsafe code in C / C++ / etc.
❙ Call it with JNI - VM checks security
❚ C#:
❙ Use the same language
❙ Mark it as unsafe
❙ Runtime checks security
❚ Given that some operations require unsafe
code, writing it in the same language
seems like a better solution to me.
Copyright © 2003 Oasis Digital Solutions Inc. / Kyle Cordes
Libraries
❚ JDBC ❚ ADO.NET
❚ JDO ❚ ODBC
❚ SQL/J ❚ OLE-DB, which also
supports nonrelational
data sources
❚ Java:
❙ Class files / Jars
❚ .NET:
❙ Assemblies
❚ J2EE: Choose and install J2EE server,
generate and compile EJB stubs, set a
bunch of XML files right, create nested
JARs, EARs, etc.
❚ .NET: Copy assemblies and a few config
files to a directory served by IIS
Copyright © 2003 Oasis Digital Solutions Inc. / Kyle Cordes
JARs, EXEs and DLLs
❚ Java: ❚ .NET:
❚ JSP/Servlets ❚ ASP.NET
❚ Tab libraries ❚ Server-side controls
❚ JSF ❙ Server-side OnClick
❚ Third party toolkits
❚ Less emphasis on
(Struts etc.)
MVC
❚ Java: ❚ .NET:
❚ AWT ❚ WinForms
❚ Swing ❚ “Heavyweight” =
❚ “Lightweight” Native
❚ Layout management, ❚ Less focus on
the bane and the automatic layout,
glory of Swing most layouts are
development pixel-based
❚ J2EE:
❙ Clustering provided by App Server
❙ Sessions maintained by the App Server
❙ Platform provides the spec
❚ Net:
❙ Clustering provided by OS
❙ Sessions maintained by IIS/OS/runtime
❙ Platform (Windows Server) provides the
implementation
❚ Java:
❙ JMS and MDB specification
❚ .NET:
❙ Easy access to Microsoft Message Queue
❙ COM+ Queued Components (similar to MDBs)
❚ Generics
❚ Auto-boxing
❚ for() that works like foreach()
❚ Attributes
❚ Typesafe enums
❚ Generics
❚ ObjectSpaces (transparent persistance
like JDO? XPath-like access to objects?)
❚ Async interfaces for many more
opertaions
❚ Experiences?
❚ Critiques?
❚ Advice?
❚ http://www.daimi.au.dk/~beta/ooli/Compa
re.html
❚ Kyle Cordes
kyle@kylecordes.com
(636) 219-9589