1 Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus...

23
1 www.quadrus.com Applications of .NET to Scientific Applications of .NET to Scientific Computing Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005

Transcript of 1 Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus...

Page 1: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

1www.quadrus.com

Applications of .NET to Applications of .NET to Scientific ComputingScientific Computing

James KovacsLead Senior Systems AnalystQuadrus Development Inc.

March 22, 2005

Page 2: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 2

AgendaAgenda

• Introductions• Benefits of .NET• .NET Framework Overview• Windows Forms• ASP.NET• Web Services

Page 3: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 3

About QuadrusAbout Quadrus• Formed in 1993

Close-knit group of highly skilled software professionals

• Solution Areas Software Development – complete end-to end or co-

development services for custom applications and EAI Project Management – methodology adoption, project

oversight Training & Mentoring – public and private course

offerings, PM and technical mentoring Business Intelligence – data warehouses, analytics,

reporting

Page 4: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 4

About James KovacsAbout James Kovacs

• Lead Senior Systems Analyst (Quadrus)• Masters in Physical Chemistry (Harvard)• Catalysis of hydrocarbons on metal

surfaces Required custom data acquisition and analysis

software

• http://www.jameskovacs.com• [email protected]

Page 5: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 5

Benefits of .NETBenefits of .NET

• Ease of use• Choice of development language• Greatly improved stability and security• Common development framework

Page 6: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 6

Ease of UseEase of Use• Object-oriented model

Everything is an object

• Namespace and Framework structure Easier to comprehend and use Naming scheme of namespaces reflects the

underlying functionality

• Tremendous amount of available functionality .NET Framework contains thousands of classes

and methods Wide variety of 3rd-party components available

Page 7: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 7

Language ChoiceLanguage Choice• Everyone has their favourite language• .NET supports a wide variety of languages to

encourage adoption and interoperation• Microsoft developed/supported

C# VB.NET C++ with Managed Extensions J# JScript.NET

• 3rd-party developed/supported Cobol PHP Perl Many others

Page 8: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 8

Stability and SecurityStability and Security

• Garbage collector manages memory No more memory leaks

• Strongly versioned assemblies Eliminates DLL Hell

• Verifiably type-safe code Eliminates buffer overruns, indexing out of array

bounds, bad pointer arithmetic, use of uninitialized data, unsafe casts

Page 9: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 9

Common Development FrameworkCommon Development Framework

• Windows application Windows Forms

• Web application ASP.NET

• Server application Web Services Windows Services

• Mobile devices ASP.NET Compact Framework

Page 10: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 10

.NET Framework Overview.NET Framework Overview

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase 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 Specification

VBVB C++C++ C#C# JScriptJScript J#J#V

isua

l Stu

dio

.NE

TV

isua

l Stu

dio

.NE

T

Page 11: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 11

Common Language RuntimeCommon Language RuntimeBase Class Library SupportBase Class Library Support

Thread SupportThread Support COM MarshalerCOM Marshaler

Type CheckerType Checker Exception ManagerException Manager

JITJITCompilerCompiler

CodeCodeManagerManager

GarbageGarbageCollectorCollector

Security EngineSecurity Engine Debug EngineDebug Engine

Class LoaderClass Loader

Page 12: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 12

Common Language Runtime (CLR)Common Language Runtime (CLR)

• Common Type System (CTS) Defines a set of primitive types Enables cross-language integration and type

safety

• Common Language Specification (CLS) Defines a set of programmatically-verifiable

rules• Controls interoperation of types in different

programming languages

CLS-Compliant Code

Page 13: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 13

Garbage CollectorGarbage Collector

• Compacting, generational GC• Frees developer from managing memory• Eliminates memory leaks

Page 14: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 14

JIT CompilerJIT Compiler

AssemblyAssemblySource Source CodeCode

Language Language CompilerCompiler

CompilationCompilation

ExecutionExecution

JIT JIT CompilerCompiler

NativeNative

CodeCode

Code (MSIL)Code (MSIL)

MetadataMetadata

At installation or the At installation or the first time each first time each

method is calledmethod is called

Page 15: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 15

.NET Performance.NET Performance

• .NET comparable to native C/C++ for: Integer and floating point math Access to locals, parameters, and instance fields Flow of control Method calls

• Areas for improvement: 64-bit arithmetic Complex inlining cases Analysis time cap

Page 16: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 16

.NET Performance Advice.NET Performance Advice

• Correct and slow is better than fast and wrong

• Know the cost of the features you use Easy to use expensive operations/features

• Always measure before (and after) tuning• Don’t be afraid to throw away

“improvements”

Page 17: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 17

Windows FormsWindows Forms

• Rapid application development (RAD)• Rich interface and user controls• ActiveX support• Accessibility• Licensing• Printing• Deployment scenarios

MSI No touch deployment

Page 18: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 18

ASP.NETASP.NET

• Supports all .NET languages• Browser-compliant controls

JavaScript, DHTML

• Rich set of server controls DataGrid Validators

• Session management In-proc, state server, or SQL Server

• Compilation• Caching

Page 19: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 19

Web Services using ASMXWeb Services using ASMX

• ASMX [WebMethod] [WebService]

• SOAP• Universal Description, Discovery and

Integration (UDDI)• Web Services Description Language (WSDL)• XML serialization

Page 20: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 20

Web Services using WSE v2.0Web Services using WSE v2.0

• Web Services Enhancements• Supports advanced XML Web service

specifications WS-Addressing WS-Policy WS-Security

• Supports various message exchange patterns Request/response, publish/subscribe, one way,

etc.• Microsoft.Web.Services2.dll

Page 21: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 21

Web Services ArchitectureWeb Services Architecture

Foundation

Applications & Application Structure

Transport

Connected ApplicationsConnected Applications

Ma

na

ge

me

nt

Ma

na

ge

me

nt

Bu

sin

es

sB

us

ine

ss

Pro

ce

ss

es

Pro

ce

ss

es

……

SecuritySecurityWS-SecurityWS-Security

WS-TrustWS-Trust

WS-FederationWS-Federation

ReliabilityReliabilityWS-RMWS-RM

TransactionsTransactionsWS-CoordinationWS-Coordination

WS-TransactionsWS-Transactions

Messaging (SOAP, WS-Addressing)Messaging (SOAP, WS-Addressing)

XMLXML

Me

tad

ata

Me

tad

ata

WS

DL

, WS

-Po

licy

WS

DL

, WS

-Po

licy

UDP TCP HTTPUDP TCP HTTP

Page 22: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 22

Microsoft CorporationMicrosoft Corporation

• BizTalk Server 2004• CLR Hosts

Office 2003 Visual Studio .NET

• Content Management Server 2002

• MSN Music Search (Beta)

• Operations Manager 2005

• Project Server 2003• SharePoint Portal

Server 2003• SQL Server 2000

Notification Services Reporting Services

• SQL Server 2005• Windows Server 2003

Page 23: 1  Applications of.NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005.

www.quadrus.com 23

QuestionsQuestions

http://[email protected]