emily's picture
From emily rss RSS  subscribe Subscribe

Platform Comparison Java and .NET 



Java was created by Sun in 1992 
Microsoft introduced .NET and C# in 2000
both platforms are object-oriented, type safe, and have automatic garbage collection
the two platforms have been competing vigorously on the desktop
but especially in the area of server technology
many developers become expert on one platform
few have time to learn both
the schism of understanding the two platforms widens
due to misinformation and disinformation 
what are the strengths and issues for each platform?

 

 
 
Tags:  Java  .NET  Microsoft  Sun  C#  object-oriented 
Views:  6324
Downloads:  211
Published:  August 16, 2007
 
5
download

Share plick with friends Share
save to favorite
Report Abuse Report Abuse
 
Related Plicks
Java Software Projects Asp.Net Software Projects

Java Software Projects Asp.Net Software Projects

From: beccag89
Views: 2656 Comments: 0
Java Software Projects Asp.Net Software Projects
 
Engineering Project Guidance

Engineering Project Guidance

From: jkleesec
Views: 430 Comments: 0

 
Mca Software Projects

Mca Software Projects

From: gazor19
Views: 4521 Comments: 1

 
Final Year Projects Chennai

Final Year Projects Chennai

From: anon-106257
Views: 2080 Comments: 2
Final Year Projects Chennai
 
See all 
 
More from this user
Java One 2005 Technical

Java One 2005 Technical

From: emily
Views: 3053
Comments: 0

NSDI - Poland

NSDI - Poland

From: emily
Views: 2090
Comments: 0

Welcome to the Minnesota SharePoint User Group

Welcome to the Minnesota SharePoint User Group

From: emily
Views: 6045
Comments: 0

Java One 2002 Overview

Java One 2002 Overview

From: emily
Views: 2107
Comments: 0

SQL Server 2005

SQL Server 2005

From: emily
Views: 3795
Comments: 1

CATPDG Quick Start Demo

CATPDG Quick Start Demo

From: emily
Views: 1326
Comments: 0

See all 
 
 
 URL:          AddThis Social Bookmark Button
Embed Thin Player: (fits in most blogs)
Embed Full Player :
 
 

Name

Email (will NOT be shown to other users)

 

 
 
Comments: (watch)
plicker harborsparrow (1 year ago)
Please remove these slides. They are mine, and I have not given you permission to post my email here. It is in bot-harvestable form, and its appearance here is a violation of my wishes.
 
 
Notes:
 
Slide 1: Platform Comparison Java and .NET Pat Palmer pgpalmer@seas.upenn.edu http://harbormist.com/tcf/ Aug 16, 2007 compare.ppt 1
Slide 2: Java and .NET • Java was created by Sun in 1992  • Microsoft introduced .NET and C# in 2000 • both platforms are object-oriented, type safe, and have automatic garbage collection • the two platforms have been competing vigorously on the desktop • many developers become expert on one platform • the schism of understanding the two platforms widens • what are the strengths and issues for each platform? • due to misinformation and disinformation  • few have time to learn both • but especially in the area of server technology Aug 16, 2007 compare.ppt 2
Slide 3: 2008 forecast for market share of OS by platform: Windows Unix Linux Others 40% 29% 15% 16% (05) (2q 06) forecast market share of OS unit sales: in 2002 Windows 45% Linux 20% Unix 16% Others 19% in 2003 59% 24% 10% 7% in 2007 59% 33% 5% 3% market share of server shipments by platform in 2005: Windows Linux Unix NetWare Others 65.6% 20.0% 9.5% 4.2% 0.7% FROM: InfoTech Trends http://www.infotechtrends.com/ report from 2Q 2006, accessed on 4/8/2007 Aug 16, 2007 compare.ppt 3
Slide 4: main sections 1. simple programs 2. overview of platforms 3. why did Sun do it? 6. why did Microsoft do it? 9. Service Oriented Architecture – the peacemaker? Aug 16, 2007 compare.ppt 4
Slide 5: 1 simple programs Aug 16, 2007 compare.ppt 5
Slide 6: console programs // Java public class Hello { public static void main(String[] args) { System.out.println("Hello world in Java"); } } // C# namespace Hello { public class Hello { static void Main(string[] args) { System.Console.WriteLine ("Hello world in C#"); System.Console.ReadLine(); } } } ‘ VB Module HelloWorld Sub Main System.Console.WriteLine(“Hello World in VB.NET”) System.Console.ReadLine() End Sub End Module Aug 16, 2007 compare.ppt 6
Slide 7: how much work is it to get this? Aug 16, 2007 compare.ppt 7
Slide 8: mininal window import java.awt.*; import javax.swing.*; public class Hello extends JFrame implements Runnable { using System.Windows.Forms; namespace TinyWindowApp public static void main(String[] args) { { public class HelloForm : Form SwingUtilities.invokeLater(new Hello()); { } static void Main() public void run() { this.setSize(new Dimension(200,200)); this.setTitle("Hello in Java"); this.setVisible(true); } { } Application.Run(new HelloForm()); } public HelloForm() { ClientSize = new System.Drawing.Size(200, 200); Text = "Hello in C#"; } } 8 } Aug 16, 2007 compare.ppt
Slide 9: 2 overview of platforms Aug 16, 2007 compare.ppt 9
Slide 10: identical types of runtime environments •J2SE (Standard) runtime •J2EE (Enterprise) runtime •J2ME (Micro) runtime •web applications •desktop applications •C# or VB.NET with VS Express •IIS with VS Express Web •.NET compact framework •runtime for gadgets •web applications •desktop application •runtime for gadgets Aug 16, 2007 compare.ppt 10
Slide 11: Java platform - .NET platform • Java Virtual Machine (JVM) aka Java Runtime Environment (JRE) • Linux, Windows, Mac and Unix • download from Sun • JIT compiler and libraries • Microsoft .NET Framework 2.0 aka .NET common language runtime (CLR) • all versions of Windows (40+) • download from Microsoft • JIT compiler and libraries • Java Development Kit (JDK) • Java bytecode • Java compiler and utilities • NET framework 2.0 SDK • C# and VB.NET compilers and utilities • Common Intermediate Language (CIL) • integrated development env. (IDE) • Eclipse (free - IBM) • Netbeans (free - Sun) • integrated development env. (IDE) FREE • Visual Studio Express (free - Microsoft) • application servers • • • • Tomcat Glassfish (Sun) BEA Weblogic IBM Websphere NOT • application servers • Microsoft Internet Information Server (IIS) Aug 16, 2007 compare.ppt 11
Slide 12: features 1 •virtual machine •virtual machine •libraries •languages •platforms (all major OS’s) •spec •implementations •web servers (many vendors) •platforms (Unix, Linux) •scalability •cost •servlet •JSP •JSF •Java •Jython •Groovy •libraries •languages •platforms (all versions of Windows) •spec •implementations •C#, VB.NET, J# from Microsoft •many others from third parties •web servers (just one!) (Haskell, Lisp, Python, COBOL, Fortran, etc.) •web capabilities •web capabilities •platforms (most Windows) •scalability •cost •handler •ASP (.NET) •(forgot equivalent name) Aug 16, 2007 compare.ppt 12
Slide 13: features 2 •native code calling •components •environments •beans •applet (in browser) •servlet (in server) •Web Start •native code calling •components •environments •.DLL •ActiveX (in browser) •handler (in server) •Smart Client •deployment •installs from web •caches on user’s PC •.jar •.war •.ear •.class •complex, painful learning curve that differs for each web server, container, and IDE •automated via ANT •XML, like make on Unix •deployment •installs from web •caches on user’s PC •.exe (on file system) •.exe (in GAC) •.dll (on file system) •all builds and web installation is automatically handled by Visual Studio (Microsoft’s IDE) Aug 16, 2007 compare.ppt 13
Slide 14: features 3 •databases •CORBA •XML •JDBC •databases •COM •XML •ODBC •binary object remoting •via 3rd-party add-ons until Java 6 •Eclipse, with 1000’s of plugins •NetBeans (from Sun) – also free •annotations appearing •web services WS-I •binary object remoting •excellent support early one •free versions of Visual Studio •some third party IDE’s •annotations •web services WS-I •IDE’s •IDE’s •service oriented architecture (SOA) •supported but difficult (3rd party) •new partial automation in Java 6 and latest NetBeans IDE •I haven’t evaluated these yet •service oriented architecture (SOA) •superbly automated by Visual Studion since 2005 Aug 16, 2007 compare.ppt 14
Slide 15: the JRE and .NET runtimes include lots of libraries • programs can call a huge body of pre-written code • these reusable components are called the Class Libraries • in Java, sometimes they are also called packages or Java API’s • in .NET, they tend to be called the framework class libraries • the libraries are designed to be used identically OR which language is being used • in Java, regardless of the underlying operating system • in .NET, regardless of the underlying version of Windows Aug 16, 2007 compare.ppt 15
Slide 16: Just in Time (JIT) compilers in JRE (JVM) and .NET runtimes compilation source code compiler bytecode .class file metadata execution native code JIT Compiler before installation, or the first time each method is called Aug 16, 2007 compare.ppt 16
Slide 17: console commands for compiling Java and C#.NET hello.java javac hello.class 1001111010001110 Java bytecode hello.cs csc hello.exe 1001111010001110 Common Intermediate Language (CIL) > java hello > hello.exe assembly these run in different virtual machines Aug 16, 2007 compare.ppt 17
Slide 18: .NET platform components download free Software Development Kit (SDK) VB C++ C# J# Python … compilers web services automation Windows Designer ASP.NET, IIS Data and XML framework class libraries Common Language Runtime (CLR) virtual machine (like Java) Microsoft operating systems since Win98 Microsoft Visual Studio .NET Microsoft .NET Framework free download Aug 16, 2007 compare.ppt 18
Slide 19: Java platform components download free Software Development Kit (SDK) Java JRuby web services automation JPython … compilers beans, remoting, servers Java Server Pages and servlets Data and XML Java API’s Java Runtime Environement (JRE) virtual machine Unix, Linux, Max OS X, Windows various open source and proprietary players JRE and JDK free download Aug 16, 2007 compare.ppt 19
Slide 20: who implements Java runtimes? Sun Microsystems • Java HotSpot Virtual Machine for Windows, Linux, Unix Hewlett-Packard • Java runtime for HP-UX, OpenVMS, Tru64, Reliant(Tandem) UNIX) IBM • Java runtime for MVS, AIX, OS/400, z/OS Apple Computer • MacOS Runtime for Java (MRJ) • J2SE built-in on Mac OS X • includes JDK (compilers) BEA Systems • JRockit (for their web server) Aug 16, 2007 compare.ppt 20
Slide 21: jargon checklist • • • • • • • • • • metadata bytecode JVM JRE JDK J2SE J2ME J2EE IDE GUI • • what is an assembly? • an .exe or .dll file compiled by a .NET compiler what is “metadata”? • the self-describing information inside a .NET assembly or Java .class file Common Intermediate Language (inside a .NET assembly) • • • • What is CIL? (formerly MSIL) • What is the CLR? • Common Language Runtime that executes CIL code what is managed code? • software that runs in the CLR what is native code (or unmanaged code)? • software than can run on Windows without the CLR Aug 16, 2007 compare.ppt 21
Slide 22: 3 why did Sun do it? Aug 16, 2007 compare.ppt 22
Slide 23: C and C++ perceived common problems • pointers are dangerous • memory leaks (failing to free memory correctly) • function pointers (jumping to the wrong place) • data pointers (pointing to the wrong place) • manual garbage collection is a lot of work • multiple inheritance (C++) can get very complicated • ambiguities like the “diamond problem” (a.k.a. “diamond of death”) • not easily portable across platforms, even with re-compile and discipline Aug 16, 2007 compare.ppt 23
Slide 24: a few ways Java improved on C++ • instead of pointers, Java has references • automatic garbage collection • single inheritance • encapsulation • references are similar to pointers, but with protections (cannot jump into illegal parts of memory)—avoids segmentation fault problems • memory is reclaimed from the heap automatically—avoids memory leaks • avoiding the deadly diamond of death • all code must be in a class—intended to encourage information hiding • array bounds checking • libraries • many common tasks already coded and available for “reuse” by means of inheritance • many interfaces (behaviors) already coded Aug 16, 2007 compare.ppt 24
Slide 25: 4 why did Microsoft do it? Aug 16, 2007 compare.ppt 25
Slide 26: Microsoft’s big headache • prior to .NET, Microsoft had a big headache • Microsoft was supporting too many operating systems • application programming interfaces (API’s) were implemented as dynamic link libraries (DLL’s) develop using C++ • calling the Windows API was different on every operating system • developers first had to find out exactly what kind of system the program was running on • and then determine if the API desired was actually installed on the system • that doesn’t sound so bad • after all, there are only a few different kinds of Windows… …right? Aug 16, 2007 compare.ppt 26
Slide 27: party trivia question • how many different versions of the Windows operating system existed before Vista, which had their own distinct mix of API’s? select the closest answer: a) b) c) d) 5 15 25 35 Aug 16, 2007 compare.ppt 27
Slide 28: Windows versions which can run the .NET framework 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Windows 98 Windows 98 Second Edition Windows 2000 Professional with SP4 Windows 2000 Server with SP4 Windows 2000 Advanced Server with SP4 Windows 2000 Datacenter Server with SP4 Windows XP Professional with SP2 Windows XP Home Edition with SP2 Windows XP Media Center Edition 2002 with SP2 Windows XP Media Center Edition 2004 with SP2 Windows XP Media Center Edition 2005 Windows XP Tablet PC Edition with SP2 Windows XP Starter Edition Microsoft Windows Millennium Edition Microsoft Windows Server™ 2003 Standard Edition Windows Server 2003 Enterprise Edition Windows Server 2003 Datacenter Edition Windows Server 2003 Web Edition Windows Server 2003 R2, Standard Edition Windows Server 2003 R2, Enterprise Edition Windows Server 2003 R2, Datacenter Edition 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Windows XP Professional x64 Edition Windows Server 2003, Standard x64 Edition Windows Server 2003, Enterprise x64 Edition Windows Server 2003, Datacenter x64 Edition Windows Server 2003 R2, Standard x64 Edition Windows Server 2003 R2, Enterprise x64 Edition Windows Server 2003 R2, Datacenter x64 Edition Windows Server 2003 with SP1, Enterprise Edition for Itanium-based Systems Windows Server 2003 with SP1, Datacenter Edition for Itanium-based Systems Windows Server 2003 R2, Enterprise Edition for Itanium-based Systems Windows Server 2003 R2, Datacenter Edition for Itanium-based Systems Microsoft Windows Mobile™ for Pocket PC Windows Mobile for Smartphone Microsoft Windows CE • Aug 16, 2007 NOTE: does not include Vista compare.ppt 28
Slide 29: Windows versions that can not run the .NET framework v2.0 1. 2. 3. 4. 5. Windows Windows Windows Windows Windows 95 NT® Server NT Workstation Server 2003, Enterprise Edition for Itanium-based Systems Server 2003, Datacenter Edition for Itanium-based Systems Aug 16, 2007 compare.ppt 29
Slide 30: 5 Service Oriented Architecture – the peacemaker? Aug 16, 2007 compare.ppt 30
Slide 31: who are the big web server and database marketplace players? • • • • • Sun IBM BEA SAP Oracle • Microsoft Aug 16, 2007 compare.ppt 31
Slide 32: world wide web development • Java servlets • Beans • .NET handlers • Java Server Pages (JSP) • CORBA (binary) • .NET DLL’s and .NET custom controls • COM (binary) • Active Server Pages (ASP.NET) • XML web services (SOA) • XML Web services (SOA) Aug 16, 2007 compare.ppt 32
Slide 33: Service Oriented Architectures (SOA) • web services • XML traveling over HTTP • remotely located programs that use XML to make remote calls and get the results • it’s all plain text and goes through firewalls • standards are emerging • Jave service end points and Microsoft client endpoints can talk to each other (and vice versa) Aug 16, 2007 compare.ppt 33
Slide 34: what we just covered 1. simple programs 2. overview of platforms • why did Sun do it? • why did Microsoft do it? • Service Oriented Architecture – the peacemaker? Aug 16, 2007 compare.ppt 34
Slide 35: the end of this PowerPoint file Hooray! Aug 16, 2007 compare.ppt 35

   
Time on Slide Time on Plick
Slides per Visit Slide Views Views by Location