Applications of .NET to Scientific Computing - James Kovacs' Weblog

basiliskcanoeSoftware and s/w Development

Nov 2, 2013 (4 years and 5 days ago)

75 views

1

www.quadrus.com

Applications of .NET to
Scientific Computing

James Kovacs

Lead Senior Systems Analyst

Quadrus Development Inc.

March 22, 2005

www.quadrus.com

2

Agenda


Introductions


Benefits of .NET


.NET Framework Overview


Windows Forms


ASP.NET


Web Services

www.quadrus.com

3

About 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

www.quadrus.com

4

About 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


JamesK@Quadrus.com

www.quadrus.com

5

Benefits of .NET


Ease of use


Choice of development language


Greatly improved stability and security


Common development framework

www.quadrus.com

6

Ease 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 3
rd
-
party components available

www.quadrus.com

7

Language 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


3
rd
-
party developed/supported


Cobol


PHP


Perl


Many others

www.quadrus.com

8

Stability 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

www.quadrus.com

9

Common Development Framework


Windows application


Windows Forms


Web application


ASP.NET


Server application


Web Services


Windows Services


Mobile devices


ASP.NET


Compact Framework

www.quadrus.com

10

.NET Framework Overview

Operating System

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NET

Web Forms Web Services

Mobile Internet Toolkit

Windows

Forms

Common Language Specification

VB

C++

C#

JScript

J#

Visual Studio.NET

www.quadrus.com

11

Common Language Runtime

Base Class Library Support

Thread Support

COM Marshaler

Type Checker

Exception Manager

JIT

Compiler

Code

Manager

Garbage

Collector

Security Engine

Debug Engine

Class Loader

www.quadrus.com

12

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

www.quadrus.com

13

Garbage Collector


Compacting, generational GC


Frees developer from managing memory


Eliminates memory leaks

www.quadrus.com

14

JIT Compiler

Assembly

Source
Code

Language
Compiler

Compilation

Execution

JIT
Compiler

Native

Code

Code (MSIL)

Metadata

At installation or the
first time each
method is called

www.quadrus.com

15

.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

www.quadrus.com

16

.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”

www.quadrus.com

17

Windows Forms


Rapid application development (RAD)


Rich interface and user controls


ActiveX support


Accessibility


Licensing


Printing


Deployment scenarios


MSI


No touch deployment

www.quadrus.com

18

ASP.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

www.quadrus.com

19

Web Services using ASMX


ASMX


[WebMethod]


[WebService]


SOAP


Universal Description, Discovery and
Integration (UDDI)


Web Services Description Language (WSDL)


XML serialization

www.quadrus.com

20

Web 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

www.quadrus.com

21

Web Services Architecture

Foundation

Applications &

Application Structure

Transport

Connected Applications

Management

Business


Processes



Security

WS
-
Security

WS
-
Trust

WS
-
Federation

Reliability

WS
-
RM

Transactions

WS
-
Coordination

WS
-
Transactions

Messaging (SOAP, WS
-
Addressing)

XML

Metadata

WSDL, WS
-
Policy

UDP TCP HTTP

www.quadrus.com

22

Microsoft 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

www.quadrus.com

23

Questions

http://www.jameskovacs.com

JamesK@Quadrus.com