230 likes | 591 Views
Applications of .NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005 Agenda Introductions Benefits of .NET .NET Framework Overview Windows Forms ASP.NET Web Services About Quadrus Formed in 1993
E N D
Applications of .NET to Scientific Computing James Kovacs Lead Senior Systems Analyst Quadrus Development Inc. March 22, 2005
Agenda • Introductions • Benefits of .NET • .NET Framework Overview • Windows Forms • ASP.NET • Web Services
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
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
Benefits of .NET • Ease of use • Choice of development language • Greatly improved stability and security • Common development framework
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 3rd-party components available
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 • 3rd-party developed/supported • Cobol • PHP • Perl • Many others
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
Common Development Framework • Windows application • Windows Forms • Web application • ASP.NET • Server application • Web Services • Windows Services • Mobile devices • ASP.NET • Compact Framework
Visual Studio.NET VB C++ C# JScript J# Common Language Specification ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms ADO.NET and XML Base Class Library Common Language Runtime Operating System .NET Framework Overview
Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine JIT Compiler Code Manager Garbage Collector Common Language Runtime Base Class Library Support Class Loader
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
Garbage Collector • Compacting, generational GC • Frees developer from managing memory • Eliminates memory leaks
Assembly Language Compiler Native Code JIT Compiler Execution JIT Compiler Compilation Metadata Source Code Code (MSIL) At installation or the first time each method is called
.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
.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”
Windows Forms • Rapid application development (RAD) • Rich interface and user controls • ActiveX support • Accessibility • Licensing • Printing • Deployment scenarios • MSI • No touch deployment
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
Web Services using ASMX • ASMX • [WebMethod] • [WebService] • SOAP • Universal Description, Discovery and Integration (UDDI) • Web Services Description Language (WSDL) • XML serialization
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
Web Services Architecture Applications & Application Structure Connected Applications Business Processes … Management Security WS-Security WS-Trust WS-Federation Reliability WS-RM Transactions WS-Coordination WS-Transactions Metadata WSDL, WS-Policy Foundation Messaging (SOAP, WS-Addressing) XML Transport UDP TCP HTTP
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 Microsoft Corporation
Questions http://www.jameskovacs.com JamesK@Quadrus.com