SlideShare a Scribd company logo
compare.ppt 1
Platform Comparison
Java and .NET
Nov 6, 2014 compare.ppt 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
• 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?
Nov 6, 2014 compare.ppt 3
2008 forecast for market share of OS by platform: (2q 06)
Windows 40%
Unix 29%
Linux 15%
Others 16%
forecast market share of OS unit sales: (05)
in 2002 in 2003 in 2007
Windows 45% 59% 59%
Linux 20% 24% 33%
Unix 16% 10% 5%
Others 19% 7% 3%
market share of server shipments by platform in 2005:
Windows 65.6%
Linux 20.0%
Unix 9.5%
NetWare 4.2%
Others 0.7%
FROM: InfoTech Trends http://www.infotechtrends.com/
report from 2Q 2006, accessed on 4/8/2007
Nov 6, 2014 compare.ppt 4
main sections
1. simple programs
1. overview of platforms
1. why did Sun do it?
1. why did Microsoft do it?
1. Service Oriented Architecture – the peacemaker?
Nov 6, 2014 compare.ppt 5
1 simple programs
Nov 6, 2014 compare.ppt 6
// 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
console programs
Nov 6, 2014 compare.ppt 7
how much work is it to get this?
Nov 6, 2014 compare.ppt 8
mininal window
import java.awt.*;
import javax.swing.*;
public class Hello extends JFrame implements Runnable
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Hello());
}
public void run()
{
this.setSize(new Dimension(200,200));
this.setTitle("Hello in Java");
this.setVisible(true);
}
}
using System.Windows.Forms;
namespace TinyWindowApp
{
public class HelloForm : Form
{
static void Main()
{
Application.Run(new HelloForm());
}
public HelloForm()
{
ClientSize = new
System.Drawing.Size(200, 200);
Text = "Hello in C#";
}
}
}
Nov 6, 2014 compare.ppt 9
2 overview of platforms
Nov 6, 2014 compare.ppt 10
identical types of runtime environments
•J2SE (Standard) runtime
•desktop applications
•J2EE (Enterprise) runtime
•web applications
•J2ME (Micro) runtime
•runtime for gadgets
C# or VB.NET with VS Express
desktop application
IIS with VS Express Web
web applications
.NET compact framework
runtime for gadgets
Nov 6, 2014 compare.ppt 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
• Java Development Kit (JDK)
• Java compiler and utilities
• Java bytecode
• integrated development env. (IDE)
• Eclipse (free - IBM)
• Netbeans (free - Sun)
• application servers
• Tomcat
• Glassfish (Sun)
• BEA Weblogic
• IBM Websphere
• Microsoft .NET Framework 2.0
aka .NET common language runtime (CLR)
• all versions of Windows (40+)
• download from Microsoft
• JIT compiler and libraries
• NET framework 2.0 SDK
• C# and VB.NET compilers and utilities
• Common Intermediate Language (CIL)
• integrated development env. (IDE)
• Visual Studio Express (free - Microsoft)
• application servers
• Microsoft Internet Information Server (IIS)
FREE
NOT
Nov 6, 2014 compare.ppt 12
features 1
•virtual machine
•platforms (all major OS’s)
•spec
•implementations
•libraries
•languages
•Java
•Jython
•Groovy
•web servers (many vendors)
•platforms (Unix, Linux)
•scalability
•cost
•web capabilities
•servlet
•JSP
•JSF
virtual machine
platforms (all versions of Windows)
spec
implementations
libraries
languages
C#, VB.NET, J# from Microsoft
many others from third parties
(Haskell, Lisp, Python, COBOL, Fortran, etc.)
web servers (just one!)
platforms (most Windows)
scalability
cost
web capabilities
handler
ASP (.NET)
(forgot equivalent name)
Nov 6, 2014 compare.ppt 13
features 2
•native code calling
•components
•beans
•environments
•applet (in browser)
•servlet (in server)
•Web Start
•installs from web
•caches on user’s PC
•deployment
•.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
native code calling
components
.DLL
environments
ActiveX (in browser)
handler (in server)
Smart Client
installs from web
caches on user’s PC
deployment
.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)
Nov 6, 2014 compare.ppt 14
features 3
•databases
•JDBC
•CORBA
•binary object remoting
•XML
•via 3rd
-party add-ons until Java 6
•IDE’s
•Eclipse, with 1000’s of plugins
•NetBeans (from Sun) – also free
•service oriented architecture (SOA)
•annotations appearing
•web services WS-I
•supported but difficult (3rd
party)
•new partial automation in Java 6 and
latest NetBeans IDE
•I haven’t evaluated these yet
databases
ODBC
COM
binary object remoting
XML
excellent support early one
IDE’s
free versions of Visual Studio
some third party IDE’s
service oriented architecture (SOA)
annotations
web services WS-I
superbly automated by Visual Studion
since 2005
Nov 6, 2014 compare.ppt 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
• in Java, regardless of the underlying operating system
• in .NET, regardless of the underlying version of Windows
OR which language is being used

More Related Content

What's hot (20)

PPTX
1assembly in c#
Sireesh K
 
PDF
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
Arnaud Porterie
 
PPTX
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
vodQA
 
PPTX
A Robust and Flexible Operating System Compatibility Architecture
Shinagawa Laboratory, The University of Tokyo
 
PDF
Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)
Nils De Moor
 
PDF
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
Eric Smalling
 
PDF
Lessons Learned: Using Concourse In Production
Shingo Omura
 
PDF
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
Docker, Inc.
 
PDF
Weekly lecture appsterdam_19mar2014
Microsoft
 
PPTX
CloudExpo 2018: Docker - Power Your Move to the Cloud
Elton Stoneman
 
PPTX
Docker for PHP Developers - Jetbrains
Chris Tankersley
 
PDF
Docker All The Things - ASP.NET 4.x and Windows Server Containers
Anthony Chu
 
PDF
Stop Being Lazy and Test Your Software
Laura Frank Tacho
 
PPTX
TechDays NL 2017: The Hybrid Docker Swarm
Elton Stoneman
 
PPTX
Docker: From Zero to Hero
fazalraja
 
PPTX
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
PDF
Servlets made easy. 
Write once and run everywhere.
ICON UK EVENTS Limited
 
PPTX
Dockerize the World
damovsky
 
PDF
Docker 101 Workshop slides (JavaOne 2017)
Eric Smalling
 
PDF
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
Codefresh
 
1assembly in c#
Sireesh K
 
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
Arnaud Porterie
 
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
vodQA
 
A Robust and Flexible Operating System Compatibility Architecture
Shinagawa Laboratory, The University of Tokyo
 
Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)
Nils De Moor
 
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
Eric Smalling
 
Lessons Learned: Using Concourse In Production
Shingo Omura
 
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
Docker, Inc.
 
Weekly lecture appsterdam_19mar2014
Microsoft
 
CloudExpo 2018: Docker - Power Your Move to the Cloud
Elton Stoneman
 
Docker for PHP Developers - Jetbrains
Chris Tankersley
 
Docker All The Things - ASP.NET 4.x and Windows Server Containers
Anthony Chu
 
Stop Being Lazy and Test Your Software
Laura Frank Tacho
 
TechDays NL 2017: The Hybrid Docker Swarm
Elton Stoneman
 
Docker: From Zero to Hero
fazalraja
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
Servlets made easy. 
Write once and run everywhere.
ICON UK EVENTS Limited
 
Dockerize the World
damovsky
 
Docker 101 Workshop slides (JavaOne 2017)
Eric Smalling
 
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
Codefresh
 

Viewers also liked (17)

PPT
SynapseIndia mobile apps deployment framework architecture
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet development platform overview
Synapseindiappsdevelopment
 
PPT
Synapseindia android apps application
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet development framework
Synapseindiappsdevelopment
 
PPTX
SynapseIndia dotnet development methodologies iterative
Synapseindiappsdevelopment
 
PPT
Synapse india reviews sharing chapter 23 – asp.net
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet module development part 1
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet development ajax client library
Synapseindiappsdevelopment
 
PPT
Synapseindia strcture of dotnet development part 1
Synapseindiappsdevelopment
 
PPT
Synapseindia android apps overview
Synapseindiappsdevelopment
 
PPT
SynapseIndia drupal presentation on drupal best practices
Synapseindiappsdevelopment
 
PPT
Synapse india dotnet framework development or c
Synapseindiappsdevelopment
 
PPT
SynapseIndia mobile apps trends, 2013
Synapseindiappsdevelopment
 
PPT
Chapter 6 arrays part-1
Synapseindiappsdevelopment
 
PPTX
Synapse india dotnet development overloading operater part 3
Synapseindiappsdevelopment
 
PPT
Synapseindia dot net development computer programming
Synapseindiappsdevelopment
 
PPT
Synapseindia android apps application development
Synapseindiappsdevelopment
 
SynapseIndia mobile apps deployment framework architecture
Synapseindiappsdevelopment
 
SynapseIndia dotnet development platform overview
Synapseindiappsdevelopment
 
Synapseindia android apps application
Synapseindiappsdevelopment
 
SynapseIndia dotnet development framework
Synapseindiappsdevelopment
 
SynapseIndia dotnet development methodologies iterative
Synapseindiappsdevelopment
 
Synapse india reviews sharing chapter 23 – asp.net
Synapseindiappsdevelopment
 
SynapseIndia dotnet module development part 1
Synapseindiappsdevelopment
 
SynapseIndia dotnet development ajax client library
Synapseindiappsdevelopment
 
Synapseindia strcture of dotnet development part 1
Synapseindiappsdevelopment
 
Synapseindia android apps overview
Synapseindiappsdevelopment
 
SynapseIndia drupal presentation on drupal best practices
Synapseindiappsdevelopment
 
Synapse india dotnet framework development or c
Synapseindiappsdevelopment
 
SynapseIndia mobile apps trends, 2013
Synapseindiappsdevelopment
 
Chapter 6 arrays part-1
Synapseindiappsdevelopment
 
Synapse india dotnet development overloading operater part 3
Synapseindiappsdevelopment
 
Synapseindia dot net development computer programming
Synapseindiappsdevelopment
 
Synapseindia android apps application development
Synapseindiappsdevelopment
 
Ad

Similar to SynapseIndia java and .net development (20)

PPT
SynapseIndia dotnet development
Synapseindiappsdevelopment
 
PPT
Sadiq786
sadiqkhan786
 
PPT
J2EEvs.NET
salonityagi
 
PPT
Introduction to .NET
Sushil Dahal
 
PPT
01 java intro
Deepal Shah
 
PPTX
Java vs .Net
Tejasvi Rastogi
 
PPTX
Comparison of Programming Platforms
Anup Hariharan Nair
 
PPT
.Net introduction by Quontra Solutions
QUONTRASOLUTIONS
 
PPT
Best DotNet Training in Delhi
Information Technology
 
PPT
.NET Vs J2EE
ravikirantummala2000
 
PPTX
A tour of Java and the JVM
Alex Birch
 
PPTX
Presentation1
kpkcsc
 
PDF
R0701116121
IJERD Editor
 
PPT
Csharp dot net
Ekam Baram
 
PPSX
Introduction to .net framework
Arun Prasad
 
PDF
EconoME_EnglishPresentation_ArinaTozlovanu.pdf
Arina Tozlovanu
 
PPTX
Introduction to .NET by QuontraSolutions
QUONTRASOLUTIONS
 
PPTX
Introduction to .net FrameWork by QuontraSolutions
Quontra Solutions
 
PDF
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PPTX
NET vs Java Which Technology Is Better for Website Development
Virtual Employee Pvt. Ltd.
 
SynapseIndia dotnet development
Synapseindiappsdevelopment
 
Sadiq786
sadiqkhan786
 
J2EEvs.NET
salonityagi
 
Introduction to .NET
Sushil Dahal
 
01 java intro
Deepal Shah
 
Java vs .Net
Tejasvi Rastogi
 
Comparison of Programming Platforms
Anup Hariharan Nair
 
.Net introduction by Quontra Solutions
QUONTRASOLUTIONS
 
Best DotNet Training in Delhi
Information Technology
 
.NET Vs J2EE
ravikirantummala2000
 
A tour of Java and the JVM
Alex Birch
 
Presentation1
kpkcsc
 
R0701116121
IJERD Editor
 
Csharp dot net
Ekam Baram
 
Introduction to .net framework
Arun Prasad
 
EconoME_EnglishPresentation_ArinaTozlovanu.pdf
Arina Tozlovanu
 
Introduction to .NET by QuontraSolutions
QUONTRASOLUTIONS
 
Introduction to .net FrameWork by QuontraSolutions
Quontra Solutions
 
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
NET vs Java Which Technology Is Better for Website Development
Virtual Employee Pvt. Ltd.
 
Ad

More from Synapseindiappsdevelopment (20)

PPTX
Synapse india elance top in demand in it skills
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet web development architecture module
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet framework library
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet web applications development
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet website security development
Synapseindiappsdevelopment
 
PPT
SynapseIndia mobile build apps management
Synapseindiappsdevelopment
 
PPT
SynapseIndia mobile apps deployment framework internal architecture
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet development panel control
Synapseindiappsdevelopment
 
PPT
SynapseIndia php web development
Synapseindiappsdevelopment
 
PPT
SynapseIndia mobile apps architecture
Synapseindiappsdevelopment
 
PPT
SynapseIndia mobile apps
Synapseindiappsdevelopment
 
PPT
SynapseIndia dotnet client library Development
Synapseindiappsdevelopment
 
PPT
SynapseIndia creating asp controls programatically development
Synapseindiappsdevelopment
 
PPT
SynapseIndia asp.net2.0 ajax Development
Synapseindiappsdevelopment
 
PPT
SynapseIndia drupal presentation on drupal info
Synapseindiappsdevelopment
 
PPT
SynapseIndia drupal presentation on drupal
Synapseindiappsdevelopment
 
PPTX
SynapseIndia dotnet debugging development process
Synapseindiappsdevelopment
 
PPTX
Synapse india sharing info on dotnet framework part1
Synapseindiappsdevelopment
 
PPTX
Synapse india sharing info on dotnet framework part2
Synapseindiappsdevelopment
 
PPTX
Synapse india dotnet development overloading operater part 4
Synapseindiappsdevelopment
 
Synapse india elance top in demand in it skills
Synapseindiappsdevelopment
 
SynapseIndia dotnet web development architecture module
Synapseindiappsdevelopment
 
SynapseIndia dotnet framework library
Synapseindiappsdevelopment
 
SynapseIndia dotnet web applications development
Synapseindiappsdevelopment
 
SynapseIndia dotnet website security development
Synapseindiappsdevelopment
 
SynapseIndia mobile build apps management
Synapseindiappsdevelopment
 
SynapseIndia mobile apps deployment framework internal architecture
Synapseindiappsdevelopment
 
SynapseIndia dotnet development panel control
Synapseindiappsdevelopment
 
SynapseIndia php web development
Synapseindiappsdevelopment
 
SynapseIndia mobile apps architecture
Synapseindiappsdevelopment
 
SynapseIndia mobile apps
Synapseindiappsdevelopment
 
SynapseIndia dotnet client library Development
Synapseindiappsdevelopment
 
SynapseIndia creating asp controls programatically development
Synapseindiappsdevelopment
 
SynapseIndia asp.net2.0 ajax Development
Synapseindiappsdevelopment
 
SynapseIndia drupal presentation on drupal info
Synapseindiappsdevelopment
 
SynapseIndia drupal presentation on drupal
Synapseindiappsdevelopment
 
SynapseIndia dotnet debugging development process
Synapseindiappsdevelopment
 
Synapse india sharing info on dotnet framework part1
Synapseindiappsdevelopment
 
Synapse india sharing info on dotnet framework part2
Synapseindiappsdevelopment
 
Synapse india dotnet development overloading operater part 4
Synapseindiappsdevelopment
 

Recently uploaded (20)

PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Digital Circuits, important subject in CS
contactparinay1
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 

SynapseIndia java and .net development

  • 2. Nov 6, 2014 compare.ppt 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 • 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?
  • 3. Nov 6, 2014 compare.ppt 3 2008 forecast for market share of OS by platform: (2q 06) Windows 40% Unix 29% Linux 15% Others 16% forecast market share of OS unit sales: (05) in 2002 in 2003 in 2007 Windows 45% 59% 59% Linux 20% 24% 33% Unix 16% 10% 5% Others 19% 7% 3% market share of server shipments by platform in 2005: Windows 65.6% Linux 20.0% Unix 9.5% NetWare 4.2% Others 0.7% FROM: InfoTech Trends http://www.infotechtrends.com/ report from 2Q 2006, accessed on 4/8/2007
  • 4. Nov 6, 2014 compare.ppt 4 main sections 1. simple programs 1. overview of platforms 1. why did Sun do it? 1. why did Microsoft do it? 1. Service Oriented Architecture – the peacemaker?
  • 5. Nov 6, 2014 compare.ppt 5 1 simple programs
  • 6. Nov 6, 2014 compare.ppt 6 // 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 console programs
  • 7. Nov 6, 2014 compare.ppt 7 how much work is it to get this?
  • 8. Nov 6, 2014 compare.ppt 8 mininal window import java.awt.*; import javax.swing.*; public class Hello extends JFrame implements Runnable { public static void main(String[] args) { SwingUtilities.invokeLater(new Hello()); } public void run() { this.setSize(new Dimension(200,200)); this.setTitle("Hello in Java"); this.setVisible(true); } } using System.Windows.Forms; namespace TinyWindowApp { public class HelloForm : Form { static void Main() { Application.Run(new HelloForm()); } public HelloForm() { ClientSize = new System.Drawing.Size(200, 200); Text = "Hello in C#"; } } }
  • 9. Nov 6, 2014 compare.ppt 9 2 overview of platforms
  • 10. Nov 6, 2014 compare.ppt 10 identical types of runtime environments •J2SE (Standard) runtime •desktop applications •J2EE (Enterprise) runtime •web applications •J2ME (Micro) runtime •runtime for gadgets C# or VB.NET with VS Express desktop application IIS with VS Express Web web applications .NET compact framework runtime for gadgets
  • 11. Nov 6, 2014 compare.ppt 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 • Java Development Kit (JDK) • Java compiler and utilities • Java bytecode • integrated development env. (IDE) • Eclipse (free - IBM) • Netbeans (free - Sun) • application servers • Tomcat • Glassfish (Sun) • BEA Weblogic • IBM Websphere • Microsoft .NET Framework 2.0 aka .NET common language runtime (CLR) • all versions of Windows (40+) • download from Microsoft • JIT compiler and libraries • NET framework 2.0 SDK • C# and VB.NET compilers and utilities • Common Intermediate Language (CIL) • integrated development env. (IDE) • Visual Studio Express (free - Microsoft) • application servers • Microsoft Internet Information Server (IIS) FREE NOT
  • 12. Nov 6, 2014 compare.ppt 12 features 1 •virtual machine •platforms (all major OS’s) •spec •implementations •libraries •languages •Java •Jython •Groovy •web servers (many vendors) •platforms (Unix, Linux) •scalability •cost •web capabilities •servlet •JSP •JSF virtual machine platforms (all versions of Windows) spec implementations libraries languages C#, VB.NET, J# from Microsoft many others from third parties (Haskell, Lisp, Python, COBOL, Fortran, etc.) web servers (just one!) platforms (most Windows) scalability cost web capabilities handler ASP (.NET) (forgot equivalent name)
  • 13. Nov 6, 2014 compare.ppt 13 features 2 •native code calling •components •beans •environments •applet (in browser) •servlet (in server) •Web Start •installs from web •caches on user’s PC •deployment •.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 native code calling components .DLL environments ActiveX (in browser) handler (in server) Smart Client installs from web caches on user’s PC deployment .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)
  • 14. Nov 6, 2014 compare.ppt 14 features 3 •databases •JDBC •CORBA •binary object remoting •XML •via 3rd -party add-ons until Java 6 •IDE’s •Eclipse, with 1000’s of plugins •NetBeans (from Sun) – also free •service oriented architecture (SOA) •annotations appearing •web services WS-I •supported but difficult (3rd party) •new partial automation in Java 6 and latest NetBeans IDE •I haven’t evaluated these yet databases ODBC COM binary object remoting XML excellent support early one IDE’s free versions of Visual Studio some third party IDE’s service oriented architecture (SOA) annotations web services WS-I superbly automated by Visual Studion since 2005
  • 15. Nov 6, 2014 compare.ppt 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 • in Java, regardless of the underlying operating system • in .NET, regardless of the underlying version of Windows OR which language is being used

Editor's Notes

  • #7: NOTE: namespace case sensitive semi-colons after each statement OPTIONAL incoming arguments
  • #10: the runtime and its JIT compiler technology the framework libraries the compilers (C#, VB.NET, C++, J#)
  • #12: Previous programming languages also required a runtime subsystem to execute Pascal compiled down to intermediate P-code, which was then interpreted Visual Basic (before the .NET versions) compiled to an intermediate code which required the VB runtime library to be installed bytecode is big endian (first made for Unix), CIL is little endian (Intel) the JVM (JRE) and CLR and not interpreters they use just-in-time (JIT) compiler technology they both compile procedures to native code immediately before the code needs to execute
  • #16: A few other languages now exist which can share these rich libraries Jython, JRuby .NET Framework Class Libraries, aka Base Class Libraries