+ All Categories
Home > Documents > 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng,...

1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng,...

Date post: 24-Dec-2015
Category:
Upload: kristian-underwood
View: 217 times
Download: 2 times
Share this document with a friend
58
1 Java vs. .Net Livslang Uddannelse August 20 th , 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE [email protected] Department of Computer Science Aalborg University
Transcript
Page 1: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

1

Java vs. .Net

Livslang UddannelseAugust 20th, 2004

Bent ThomsenPhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE

[email protected] of Computer Science

Aalborg University

Page 2: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

2

What is Microsoft .Net?

• It is a vision– The platform for the digital future– ‘.NET is Microsoft’s platform for a new computing model

built around XML Web Services’Microsoft Corporation Annual Report, 2001

• It is a brand name– Applied to many things

• It is a set of products and technologies– Infrastructure– Tools– Servers– Services

• .Net is Microsoft’s core business Strategy

Page 3: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

3

A Unified Programming Model

Windows API

.NET Framework

Consistent API availability regardless oflanguage and programming model

ASP

Stateless,code embeddedin HTML pages

MFC/ATL

Subclassing,Power and

Expressiveness

VB Object Model

RAD,Composition and

Delegation

Page 4: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

4

.NET Technologies

• The .NET Framework– The CLR with support for XML Web services and more

– Supporting Visual Basic.NET, C#, C++, and more

• The .Net development tools– Visual Studio.Net

• The .NET Enterprise Servers– BizTalk Server 2003, SQL Server 2003, Commerce Server 2003 and

more

• The .Net Services– Passport, My Services, bCentral, expedia and more

Page 5: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

5

Microsoft .NET

Web services support across the Microsoft platform Web services support across the Microsoft platform

To

ols

To

ols

ClientsClients

ServicesServices

ServersServers

Ex

pe

rien

ces

E

xp

erie

nce

s

& S

olu

tion

s&

So

lutio

ns

Page 6: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

6

The Core of .NET Framework: FCL & CLR

• Common Language Runtime– Garbage collection

– Language integration

– Multiple versioning support (no more DLL hell!)

– Integrated security

• Framework Class Library– Provides the core functionality:

ASP.NET, Web Services, ADO.NET, Windows Forms, IO, XML, etc.

Page 7: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

7

.NET Framework Common Language Runtime

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

– CLR manages code execution at runtime

– Memory management

• Kills entire classes of bugs (e.g., memory corruption, ref counting)

– Thread management, etc.

– Auto-versioning, no more DLL Hell

Page 8: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

8

.NET Framework Base Class Library

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

.NET Framework (Base Class Library).NET Framework (Base Class Library)

– Object-oriented collection of reusable types

– Collections, I/O, Strings, …

Page 9: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

9

.NET Framework Data Access Layer

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

.NET Framework (Base Class Library).NET Framework (Base Class Library)

ADO .NET and XMLADO .NET and XML

– Access relational databases

– Disconnected data model

– Work with XML

Page 10: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

10

.NET Framework ASP.NET & Windows Forms

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

.NET Framework (Base Class Library).NET Framework (Base Class Library)

ADO .NET and XMLADO .NET and XML

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

– Create application’s front-end – Web-based user interface, Windows GUI, Web services, …

Page 11: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

11

.NET FrameworkSystem.WebSystem.Web System.Windows.FormsSystem.Windows.Forms

System.DrawingSystem.Drawing

System.XMLSystem.XMLSystem.DataSystem.Data

SystemSystem

ServicesDescriptionDiscoveryProtocols

UIHTML ControlsWeb Controls

Security

Session StateConfiguration

Cache

SQL Client

SQL ServerCEDesign

ADO.NET

IO

Net

Collections

Security

Reflection

Resources

Text

Globalization

Configuration

Service Process

Diagnostics

Threading

RuntimeInterop ServicesRemotingSerialization

Design

Drawing 2D

Imaging

XML Document

Xslt/XPath

Serialization

Reader/Writers

Printing

Text

Component Model

Page 12: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

12

.NET Framework Programming Languages

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

.NET Framework (Base Class Library).NET Framework (Base Class Library)

ADO .NET and XMLADO .NET and XML

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

C++C++ C#C# VB.NETVB.NET PerlPerl J#J# ……

– Use your favorite language

Page 13: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

13

.NET Framework Common Language Specification

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

.NET Framework (Base Class Library).NET Framework (Base Class Library)

ADO .NET and XMLADO .NET and XML

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

Common Language SpecificationCommon Language SpecificationC++C++ C#C# VBVB PerlPerl J#J# ……

Page 14: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

14

Common Type System (CTS)

• All .NET languages have the same primitive data types. An int in C# is the same as an int in VB.NET, COBOL.Net, Haskell, …

• When communicating between modules written in any .NET language, the types are guaranteed to be compatible on the binary level

• Types can be:– Value types – passed by value, stored in the stack– Reference types – passed by reference, stored in the heap

• Strings are a primitive data type now

Page 15: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

15

Common Language Specification (CLS)

• Any language that conforms to the CLS is a .NET language

• A language that conforms to the CLS has the ability to take full advantage of the Framework Class Library (FCL)

• CLS is standardized by ECMA

Page 16: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

16

.NET Languages

• Languages provided by Microsoft– C++, C#, J#, VB.NET, JScript

• Third-parties languages– Perl, Python, Pascal, APL, COBOL, Eiffel, Haskell, ML,

Oberon, Scheme, Smalltalk…

• Advanced multi-language features– Cross-language inheritance and exceptions handling

• Object system is built in, not bolted on– No additional rules or API to learn

• All compile to .Net Assemblies– Contains MSIL and metadata

Page 17: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

17

Intermediate Language

• .NET languages are compiled to an Intermediate Language (IL)

• IL is also known as MSIL or CIL• CLR compiles IL in just-in-time (JIT) manner –

each function is compiled just before execution• The JIT code stays in memory for subsequent

calls• Recompilations of assemblies are also possible

Page 18: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

18

Example of MSIL Code

.method private hidebysig static void Main() cil managed

{ .entrypoint // Code size 11 (0xb) .maxstack 8 IL_0000: ldstr "Hello, world!" IL_0005: call void

[mscorlib]System.Console::WriteLine(string) IL_000a: ret} // end of method HelloWorld::Main

Page 19: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

19

Source CodeSource Code

C++, C#, VB or C++, C#, VB or any .NET any .NET languagelanguage

csc.exe or vbc.execsc.exe or vbc.exeCompilerCompiler

AssemblyAssembly

DLL or EXEDLL or EXE

.Net AssembliesCompilation

Page 20: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

20

VBVBSource Source codecode

CompilerCompiler

C++C++C#C#

CompilerCompilerCompilerCompiler

Operating System ServicesOperating System Services

Common Language RuntimeCommon Language Runtime

JIT CompilerJIT Compiler

Native CodeNative Code

ManagedManagedcodecode

AssemblyAssemblyIL CodeIL Code

AssemblyAssemblyIL CodeIL Code

AssemblyAssemblyIL CodeIL Code

.Net Execution ModelCommon Language Runtime

Page 21: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

21

Managed Code Execution

PEVerifyPEVerify

NGENNGEN

DEPLOYMENTDEPLOYMENT

GAC, GAC, app. directory, app. directory,

download cachedownload cache

GAC, GAC, app. directory, app. directory,

download cachedownload cache

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }} CompilerCompiler

DEVELOPMENTDEVELOPMENT

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }}

Source codeSource code AssemblyAssemblyPE header + MSIL + PE header + MSIL + Metadata + EH TableMetadata + EH Table

AssemblyAssemblyPE header + MSIL + PE header + MSIL + Metadata + EH TableMetadata + EH Table

EXECUTIONEXECUTIONAssembly infoAssembly info

Module Module + Class list+ Class list

Assembly infoAssembly infoModule Module

+ Class list+ Class listPolicy Policy

ManagerManager

HostHost

Policy<?xml version="1.0" encoding="utf-8" ?><configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"

ClassClassLoaderLoader

Granted Granted permissionspermissions

Granted Granted permissionspermissions

Vtable +Vtable +Class infoClass infoVtable +Vtable +

Class infoClass infoJIT +JIT +

verificationverificationNative codeNative code+ GC table+ GC table

Native codeNative code+ GC table+ GC table

CLR ServicesCLR ServicesGCGCExceptionExceptionClass initClass initSecuritySecurity

(assembly

(assembly))

((classclass))

((methodmethod))

AssemblyAssemblyLoaderLoader

EvidenceEvidence

Permission requestPermission request

Page 22: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

22

.NET Security

• Role-based Security– What the user is allowed to do within the application

– .NET Roles = Windows Active Directory® groups

• Code Access Security– What the code is allowed to do on this machine

– Evidence Based (Policies, Permissions, Evidence)

• Cryptography Built In to .NET FX

Page 23: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

23

Visual Basic .NET

• Evolution, not revolution, of language used by developers worldwide

• Builds on existing technology while adding power– True OOP

– Multithreading

– NT Services

– Web Services

• The fastest way to build scalable applications for industry

Page 24: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

24

Visual J# .NET

• Native support for XML Web services • Fully integrated with Visual Studio .NET

development environment• Full access to the .NET Framework

– ASP.NET, ADO.NET, Windows Forms

– Integration with >20 other languages

• Protection of existing investments– Use java language syntax on .NET

– Move applications and skills forward

Page 25: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

25

Visual C++ .NETContinue to provide most powerful

and flexible language

• Better ANSI/ISO conformance

• Enable seamless, incremental use of .NET Framework

• Enhanced ATL Servers

• Improved ATL and MFC Clients

• Enhanced STL

Page 26: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

26

Visual C# .NET Component Oriented Language

• C# is the first “component oriented” language in the C/C++ family

• Component concepts are first class:– Properties, methods, events

– Design-time and run-time attributes

– Integrated documentation using XML

• Enables one-stop programming– No header files, IDL, etc.

– C++ heritage – simplification with no unnecessary sacrifices

• If you are serious about .Net you need to learn C#

Page 27: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

27

C#

• Hello world

using System;

class HelloWorld { public static void Main() { Console.WriteLine(“Hello World!"); }}

>csc HelloWorld.cs>Hello World!

Page 28: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

28

C#

• Properties

public class button { private string caption;

public string Caption { get { return caption; } set { if (value != null) caption = value; } }}

button b = new button();

b.Caption = “abc”string s = b.Caption;

Page 29: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

29

C#

• Parameter Passing

By Value

public static void Swap(ref int x, ref int y) { int z = x; x = y; y = z;}

By Reference

Page 30: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

30

C#

• Pointers– Not recommended for use

public struct Node { public int value; public unsafe Node* next;}

public unsafe class A { . . .

public class A { public unsafe void B (char *p) { . . .

Page 31: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

31

C#

• Boxing / Unboxing– Allows value types to be converted to and from objects automatically

ArrayList list = new ArrayList();int z = 100;

list.Add(1); list.Add(13.12); list.Add(z); //integers are automatically boxed //when they are added to the list

Page 32: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

32

C#

• Versioning– C# requires developers to clearly state their intent

• Use of the keyword ‘new’ and ‘override’

Class Derived B { new public void x () { . . .

Class Derived B { public override void x () { . . .

Page 33: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

33

C# 2.0 Language Enhancements

• Generics• Anonymous methods• Iterators• Partial types

Page 34: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

34

Generics

public class Listpublic class List<<TT>> {{ private private TT[] elements;[] elements; private int count;private int count;

public void Add(public void Add(TT element) { element) { if (count == elements.Length) if (count == elements.Length) Resize(count * 2);Resize(count * 2); elements[count++] = element;elements[count++] = element; }}

public public TT this[int index] { this[int index] { get { return elements[index]; }get { return elements[index]; } set { elements[index] = value; }set { elements[index] = value; } }}

public int Count {public int Count { get { return count; }get { return count; } }}}}

ListList<int><int> intList = new List intList = new List<int><int>();();

intList.Add(1);intList.Add(1); // No boxing// No boxingintList.Add(2);intList.Add(2); // No boxing// No boxingintList.Add("Three");intList.Add("Three"); // Compile-time // Compile-time errorerror

int i = intList[0];int i = intList[0]; // No cast required// No cast required

Page 35: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

35

Visual Studio .NET

• Development tool that contains a rich set of productivity and debugging features– Supports managed and unmanaged applications– Supports C#, C++, VB.NET, …– Many useful tools and wizards– Windows Forms Designer– ASP.NET Web Forms Designer– Web Services support– SQL Server integration with ADO.NET and XML

• VS.NET is not part of the .NET Framework– Not necessary to build or run managed code– The .NET Framework SDK includes command line compilers

Page 36: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

36

VS.NET – Single Development Environment

• From Visual Studio.NET you can:– Write code

– Design user interface

– Study documentation

– Debug

– Test

– Deploy

• Same tools for all languages• Same tools for all platforms

Page 37: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

37

Visual Studio .NET

Page 38: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

38

Referencing the Framework

Page 39: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

39

.NET Applications

• Web Form – Next Generation ASP Page• Win Form – Next Generation Win32 App• Web Services – Key to Interoperability• Others –

– Server Objects

– Console Applications

– Window Services

– Mobile Clients

– Many more…

Page 40: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

40

ASP.NET

• Server-side Web Forms and Web Services components separate code from content– Developer productivity increases– Tools easily use ASP.NET– Any programming language: full VB, JScript, C++, COBOL, Perl,

etc.– 40% to 70% reduction in lines of code

• Compiled• No-touch deployment system• Intelligent state management• Backwards compatible with ASP• Controls sense client and adapt output: HTML, DHTML,

WML

Page 41: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

41

What Is an XML Web Service?

• A Component That Uses XML & HTTP To Define and Deliver A Service– Global reach

– Based on open set of standards

– Reuse across platforms

– Works with any operating system, programming language, or network

– Expose legacy code

• Different systems can actually talk

Page 42: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

42

Web ServicesOpen Standards & Protocols

• XML– Universal data format

– Standards-based integration

– User-customizable

• HTTP– Ubiquitous protocol

– Universally understood

Page 43: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

43

VS.NET and Web Services

• Expose functionality as service– No need to learn XML, SOAP, or WSDL

– Interface is automatically generated

– Seamless deployment

• Reuse existing Web Services– VS.NET generates the plumbing

– Full IntelliSense support

• Build and consume with any VS language

Page 44: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

44

• Built-in Support for Developing and Consuming Web Services– Based entirely on open standards

– Automatically generates WSDL

– Automatically provides test page

– Attribute based – No heavy coding needed

Software as a ServiceVisual Studio .Net and the Net Framework

Public Function HelloWorld() as String

return “Hello World”

End Function

[WebMethod]WSDLWSDL

WebServiceObject

WebServiceObject

TestPage

TestPage

Compiler

Page 45: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

45

Windows Forms

• Rich, powerful client UI– Control anchoring, visual inheritance

– Shared across all .NET languages

– No-touch deployment

• Secure– Semi-trusted browser component

– Fully-trusted local application

• Full Web Service integration

Page 46: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

46

.Net on other Platforms

• .Net Compact Framework– PocketPC, XScale, ARM, …

• SSCLI– BSD Unix, Mac OS X

• Mono– Linux

Page 47: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

47

.Net CF

• Target mobile and embedded devices• Portable subset of .NET Framework

– No new ‘compact’ namespaces– Visual Basic .NET and C# compiler

support in v1• Leverage Visual Studio .NET

– Run managed .EXEs and .DLLs directly– Debug with Visual Studio .NET

• Peacefully co-exist with host OS– Run on native threads, P/Invoke to call native code

Page 48: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

Execution Engine Commonalities

• Verifiable type safe execution– No uninitialized variables, unsafe casts, bad array indexing,

bad pointer math• Garbage Collection

– No ref-counting, no leaks• JIT compilation• Error handling with exceptions• Common type system

– Call, inherit, and source-level debug across different languages

Page 49: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

Execution Engine Differences

• No ASP.NET• COM Interop

– Good support for calling native DLLs• • P/Invoke – PlatformInvoke enables calls to Win32

DLLs– Support for calling COM objects using dll wrappers– No support for writing COM/ActiveX objects– No Install-time JIT (nGen)

• No Reflection Emit• No Remoting

– Client web services is fully supported• No Generic Serialization

– Datasets can be serialized to XML– No binary Serialization

Page 50: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

50

Other Differences

• Class libraries are a subset (about 25%)

• Different size and scalability characteristics• Compact Additions

– IrDA support

– SQL Server CE managed classes

– Device-specific controls

Page 51: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

51

.NET FrameworkSystem.WebSystem.Web System.Windows.FormsSystem.Windows.Forms

System.DrawingSystem.Drawing

System.XMLSystem.XMLSystem.DataSystem.Data

SystemSystem

ServicesDescriptionDiscoveryProtocols

UIHTML ControlsWeb Controls

Security

Session StateConfiguration

Cache

SQL Client

SQL ServerCEDesign

ADO.NET

IO

Net

Collections

Security

Reflection

Resources

Text

Globalization

Configuration

Service Process

Diagnostics

Threading

RuntimeInterop ServicesRemotingSerialization

Design

Drawing 2D

Imaging

XML Document

Xslt/XPath

Serialization

Reader/Writers

Printing

Text

Component Model

Page 52: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

52

.NET Compact FrameworkSystem.WebSystem.Web System.Windows.FormsSystem.Windows.Forms

System.DrawingSystem.Drawing

System.XMLSystem.XMLSystem.DataSystem.Data

SystemSystem

ServicesDescriptionDiscoveryProtocols

UIHTML ControlsWeb Controls

Security

Session StateConfiguration

Cache

SQL Client

SQL ServerCEDesign

ADO.NET

IO

Net

Collections

Security

Reflection

Resources

Text

Globalization

Configuration

Service Process

Diagnostics

Threading

RuntimeInterop ServicesRemotingSerialization

Design

Drawing 2D

Imaging

XML Document

Xslt/XPath

Serialization

Reader/Writers

Printing

Text

Component Model

Page 53: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

53

How to Create a Smart Device Application

• Create a New Smart Device Application Project

• Choose the platform and type of project

• Add additional forms, controls, and code

Page 54: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

54

What Are Smart Device Projects?

• Smart Device Projects are used to develop applications that target the .NET Compact Framework

• Supported devices include:– Pocket PC 2000, 2002 and 2003– Pocket PC 2002 Phone Edition– SmartPhone 2003– Custom-designed embedded devices built with the Windows

CE .NET 4.1 operating system• Supported languages are Visual Basic and C#

Page 55: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

55

.NET Framework on Linux

• Mono Project– Open Source C# compiler, CLR and Framework Class Library

– Runs on various platforms and hardware:

• Linux, Unix, FreeBSD, Windows – JIT-compiler for x86

• s390, SPARC, PowerPC – interpreter for these hardware architectures

– Supports also:

• ADO.NET and XML

• Windows Forms (not fully)

• ASP.NET

• Web Services

Page 56: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

56

.NET Framework on Linux (2)

• Mono Project

– Runs .NET portable executables on Linux, e.g.

mono myapp.exe– Compiles .NET applications to portable executables, e.g.

mcs myapp.cs– The obtained .exe file can taken and run on Windows

• DotGNU Portable.NET

– Build and execute .NET applications on GNU/Linux, Windows, Solaris, NetBSD, FreeBSD, and MacOS X

Page 57: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

57

.NET (R)Evolutionary

• Evolutionary– Existing Skills Migrate Smoothly

– Interoperates with Existing Applications

– Extension of WinDNA Architecture

• Revolutionary– Common Language Runtime

– Deployment / Versioning (Ends DLL Hell)

– Web Services & XML Integration

– Evidence Base Code Access Security

Page 58: 1 Java vs..Net Livslang Uddannelse August 20 th, 2004 Bent Thomsen PhD, DIC, Cand.Scient, EurIng, CEng, FBCS, MACM, MIEEE bt@cs.auc.dk Department of Computer.

58

Future of .Net

– .Net is Microsoft’s core strategy

• .Net will be part of OS in the next generation of Windows

• Lot’s of innovation in Longhorn – Avalon, indigo, WinFS


Recommended