15
JVM versus .NET

JVM versus.NET. .NET vs. Java Runtime environment.NET CLR Java JVM Intermediate Code.NET MSIL Java Java Byte Code Support.NET Multiple Languages,

  • View
    228

  • Download
    5

Embed Size (px)

Citation preview

Page 1: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

JVM versus .NET

Page 2: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,
Page 3: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

.NET vs. Java

Runtime environment .NET CLR

Java JVM

Intermediate Code .NET MSIL

Java Java Byte Code

Support .NET Multiple Languages, Multiple Platform

Java Single Language, Multiple Platform

Page 4: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

1-1.6   J2SE 的架構• 經過前面對 Java 的簡介後,可以得知用戶端主要

是利用 J2SE 平台套件來開發 Java 程式, J2SE的架構圖如下所示:

Page 5: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

Java 的平台套件:• 由於昇陽公司體認到一點“ One size doesn‘t fit all” ,也

就是同一套程式標準無法符合各種不同平台與應用的需求,所以針對此問題發展出下列三種平台套件:1. J2SE ( Java 2 Standard Edition ,標準版):針對用戶端程式

所設計的,是 Java 主要的核心,它包含了編譯 Java 所需的程式,並且可以支援 Java Applet 、 Java Bean 、 Java 3D…… 等等。

2. J2EE ( Java 2 Enterprise Edition ,企業版):針對企業級應用程式所設計的,具有優越的跨平台能力、開放的標準以及高效能且穩定性高,因此深受廣大企業用戶的愛戴,可以支援 Servlet 、JSP…… 等等。

3. J2ME ( Java 2 Micro Edition ,精簡版):針對消費性電子產品和嵌入式系統所設計的,主要應用在行動商務領域,例如:無線通訊、手機、 PDA 、 IC 卡……等小型電子裝置。

Page 6: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

Applications written in J# .NET, VB .NET, or C#

CLR

FCL

Windows Operating System (Windows ME, 98, 2000, XP etc)

Windows API

.NET Framework Overview

Page 7: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

CLR Common Language Runtime a runtime environment concept similar to JVM

FCL Framework Class Library built on top of the CLR provide services for modern applications

Major Components

Page 8: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

CLR Load and execute the C # program Compile the MSIL into native code

use Just-in-Time (JIT) compilers Garbage Collection

use Garbage Collector (GC)

Security Management Exception Handling

Page 9: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

FCL

concept similar to MFC for Windows programming

FCL classes are grouped by namespaces and exported by assemblies

namespace similar to Java package assembly similar to .dll

Page 10: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

Some Namespaces in FCL (has hierarchy)

System System.IO System.Windows.Forms System.Drawing

Example: System.Windows.Forms is located in

System.Windows.Forms.dll

FCL

Page 11: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

MSIL

Microsoft Intermediate Language

a CPU independent set of instructions

.NET compliant language compile into

MSIL

similar to Java Byte Code

sometimes abbreviated as IL

Page 12: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

Java

Java Byte Code

Linux native code

Java

Windows native code

Mac OS native code

JVM do this

Page 13: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

C# VB .NET Visual J# .NET

MSIL

Linux native code

.NET

Windows native code

Mac OS native code

Compile into MSIL

CLR do this

Support now

Will Support soon

Will Support soon

Page 14: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

新世代的程式語言 – C#

- C# 語言最早是由 Microsoft 公司所倡議,爾後則有 Intel 與 Hewlett – Packard 參與。

- 於 2000 年 10 月由國際標準規範組織 ECMA 審核以成為國際標準的程式語言。

- C# 出發點在於提供程式設計師一種簡單易學同時也功能強大的程式語言。

- 2002 年 4 月, Visual Studio .Net 中文版正式發表,扮演系統 / 應用程式開發人員最重要的開發工具。

Page 15: JVM versus.NET. .NET vs. Java Runtime environment.NET  CLR Java  JVM Intermediate Code.NET  MSIL Java  Java Byte Code Support.NET  Multiple Languages,

Anders Hejlsberg

Creator of C# Turbo Pascal Delphi

Anders studied engineering at the Technical University of Denmark, previously worked for Borland, now works for Microsoft.