Microsoft ® Visual C++ ®.NET 2003 The Developer’s Power Tool Nigel Watson Academic Developer...

31

Transcript of Microsoft ® Visual C++ ®.NET 2003 The Developer’s Power Tool Nigel Watson Academic Developer...

MicrosoftMicrosoft®® Visual C++Visual C++®® .NET 2003 .NET 2003The Developer’s Power ToolThe Developer’s Power Tool

Nigel WatsonNigel WatsonAcademic Developer RelationsAcademic Developer RelationsMicrosoft AustraliaMicrosoft Australia

Ron KingRon KingGeneral ManagerGeneral ManagerQCOM AustraliaQCOM Australia

AgendaAgenda

C# - The new guy on the block…C# - The new guy on the block…

UpgradingUpgrading

Standards complianceStandards compliance

Performance improvementsPerformance improvements

Security featuresSecurity features

Windows FormsWindows Forms

unisysImagine it. Done.

Systems Integration.Outsourcing.Infrastructure.

Consulting.Server Technology.

Unisys

A step ahead with .Net

Imagine it. Done.unisys

Unisys

C# is Unisys’ .NET language of choice. Why would we do that? How have we done it? Experience with WebForm, WinForm and Mobile

delivery.

Imagine it. Done.unisys

Code Generator

QCOM Developed in-house application. Developed as part of the CRAKS initiative. XML and template based. Generates the core of the the Data and Business Tiers,

based on a data model. Written in C#, generates C#. Reduces hand coding and therefore cost/time.

Imagine it. Done.unisys

RAMS – Solution Overview

Online Mortgage Origination and Processing System.

End – To – End From First Customer Contact To Lead Management To Originations Through to Settlement And ongoing Customer Service

8 tightly - integrated applications. Geographically disperse project with teams in

Australia, UK and Philippines.

Imagine it. Done.unisys

Customer

HTMLBrowser

HTTP

S

Solicitor

HTMLBrowser

SO

AP

SO

AP

HTTP

Call Centre User

HTMLBrowser

HTTP

Sales, Distributors

HTMLBrowser

Microsoft IIS

UA MQS CD

AST

LMS

CSRM

Microsoft IIS

Self ServiceWebsite

Front OfficeApplication

Back Office

HTMLBrowser

HTTP

E- Sales

HTMLBrowser

HTTP

Microsoft IIS

SOAP Web Services - Business Façade- C#

Data AccessComponents

Business Logic - C#,VB.Net

to CreditReference Agency

to MortgageInsurance Provider

EnterpriseApplication

Environment

HostIntegrationGateway

XM

L

MicrosoftSQL Server 2000

SolutionDatabase

AD

O.N

et

External SystemsAdapters - Microsoft Biz

TalkX

ML

Info Image Server(Work Flow)

CAL Interface

Rem

oting

Fax Interface

Brokers

HTMLBrowser

Imagine it. Done.unisys

WA DOJ - ICMS

Largest .NET Development in WA ICMS = Integrated Courts Management System Replace 14 Legacy Case management systems with a

single application Provide flexibility to Courts to change business processes

with ease and greater cost effectiveness Customer focused system enabled through the use of

technology in particular WEB Interoperability of VB .NET and C#

Imagine it. Done.unisys

Sureplan – Funds Management System

N-tier Windows Forms Class library containing:

Custom data binding, Use of reflection, Events, User Controls and Visual Inheritance.

Class Library is reusable for future projects and has simplified coding and reduced defects.

Uses Remoting and COM+ Interop. Ndoc utilised for system documentation.

Imagine it. Done.unisys

DDAMS - Drought & Disaster Assistance Mgmnt System

Supports the assessment and payment of assistance claims for Qld DPI

n-Tier, C#, Intranet application Utilises:

Web Services Customer Web Controls Web User Controls Reflection Active Directory

Imagine it. Done.unisys

IACS - Internet Access Control System

Imposes quotas on student usage of TAFE internet facilities

Distributed system: SQUID Proxy Server on SUN platform Quota Server developed as an N-Tier, C#, Intranet

application Utilises:

Web Services Active Directory

Imagine it. Done.unisys

Passports Australia Online

Online passport applications. 1+ Million passports are processed annually. Secure web site Legacy system integration (BizTalk, COM+) N-tier ASP.NET, C# Defence Signals Directorate security accreditation

Imagine it. Done.unisys

The C# - .Net Edge

How C# helped us help our customers Support for diverse skill set , Vb.Net, C#. Slashed development time. Scalability – Has enhanced our ability to develop similar projects. It’s an EXCITING technology to work with !!

C# vs C++: When, Where, Why?C# vs C++: When, Where, Why?

C#C#RAD developmentRAD development

Managed code developmentManaged code development

Developer productivity Developer productivity

C++ Still the language of choice forC++ Still the language of choice forSystem-level developmentSystem-level development

Real-time developmentReal-time development

PerformancePerformance

Working with legacy/unmanaged codeWorking with legacy/unmanaged code

UpgradingUpgrading

Visual Studio 6.0 to Visual Studio .NETVisual Studio 6.0 to Visual Studio .NETA more modern, productive environmentA more modern, productive environment

Visual C++ 6.0, 2002 to 2003Visual C++ 6.0, 2002 to 2003Project files open and convert to 2003Project files open and convert to 2003

Continue to write Windows-based Continue to write Windows-based applications and componentsapplications and components

Incorporate the .NET Framework in Incorporate the .NET Framework in new and existing codenew and existing code

Self-defined paceSelf-defined pace

As granular as you like…As granular as you like…

Mixing Managed and Mixing Managed and Unmanaged CodeUnmanaged Code

Standards ComplianceStandards ComplianceOverviewOverview

75.00%75.00%

80.00%80.00%

85.00%85.00%

90.00%90.00%

95.00%95.00%

100.00%100.00%

6.06.0 20022002 20032003

98.11%98.11%

87.63%87.63%

81.03%81.03%

Standards ComplianceStandards ComplianceThe Problem AreasThe Problem Areas2.2 Unicode identifiers2.2 Unicode identifiers

3.4.2 Full Koenig lookup3.4.2 Full Koenig lookup

8.5.1 Empty aggregate 8.5.1 Empty aggregate initializationinitialization

9.8 Symbol lookup for local 9.8 Symbol lookup for local member functionsmember functions

11.4 Friends in class templates 11.4 Friends in class templates (also 14.5.3)(also 14.5.3)

13.3.1.1.2 Implicit invocation of 13.3.1.1.2 Implicit invocation of ptr-to-func conversionsptr-to-func conversions

13.3.3.2 Ranking of derived to 13.3.3.2 Ranking of derived to base conversionsbase conversions

14 Export keyword14 Export keyword

14.1 Non-type template 14.1 Non-type template parameters (also 14.3.2)parameters (also 14.3.2)

14.5.2 User-defined conversion 14.5.2 User-defined conversion templatestemplates

14.5.4 Partial specialization of 14.5.4 Partial specialization of class templatesclass templates

14.5.5.2 Partial ordering of 14.5.5.2 Partial ordering of function templatesfunction templates

14.6 Dependent name lookup14.6 Dependent name lookup

14.7.1 Nested classes in class 14.7.1 Nested classes in class templatestemplates

14.7.3 Explicit specialization of 14.7.3 Explicit specialization of member templatesmember templates

15.4 Exception specifications15.4 Exception specifications

15.5.2 The unexpected() function15.5.2 The unexpected() function

ANSI/ISO C++ ANSI/ISO C++ Standards ComplianceStandards Compliance

Standards ComplianceStandards ComplianceMy Compiler compiled Yours…My Compiler compiled Yours…

98% compliance98% compliance

Full power of advanced language featuresFull power of advanced language features

Work with key third-party source librariesWork with key third-party source libraries

Performance ImprovementsPerformance ImprovementsNew and Improved OptimizationsNew and Improved Optimizations

/G7/G7Pentium 4, AMD AthlonPentium 4, AMD Athlon

5-10% performance increase on average5-10% performance increase on average

10-15% performance increase for heavy 10-15% performance increase for heavy floating point (FP) variablesfloating point (FP) variables

/arch:SSE/SSE2/arch:SSE/SSE2Minimal FP performance increase: 2-3%Minimal FP performance increase: 2-3%

Whole-program optimizationWhole-program optimizationDead parameter removalDead parameter removal

Performance ImprovementsPerformance Improvements

Security FeaturesSecurity FeaturesRuntime Security Checks and /GSRuntime Security Checks and /GS

Enhanced compiler feature: /GSEnhanced compiler feature: /GS

/GS not “silver bullet”/GS not “silver bullet”

Buffers are allocated first on the stack Buffers are allocated first on the stack to avoid overrunning the localsto avoid overrunning the locals

OS checks compiler-emitted table OS checks compiler-emitted table before jumping to exception handler, before jumping to exception handler, avoiding exception handler hijackingavoiding exception handler hijacking

Detect overruns that overwrite function Detect overruns that overwrite function return addressreturn address

Security FeaturesSecurity FeaturesPerformance ImpactPerformance Impact

Expect less than a 2% degradation.Expect less than a 2% degradation.

Most applications will not notice. Most applications will not notice.

Improvements in optimization Improvements in optimization outweigh the cost of security checks.outweigh the cost of security checks.

Each security check is 9 instructions.Each security check is 9 instructions.

““The perf hit hasn’t shown up for us. There was no test hit The perf hit hasn’t shown up for us. There was no test hit associated with the change. The only cost we’ve had associated with the change. The only cost we’ve had associated with this is getting ourselves to build with /GS.”associated with this is getting ourselves to build with /GS.” – – A Microsoft Internet Information Server (IIS) 6.0 DeveloperA Microsoft Internet Information Server (IIS) 6.0 Developer

/GS/GS

Windows FormsWindows FormsDeveloping Windows-based Developing Windows-based ApplicationsApplications

Windows Forms as .NET Framework Windows Forms as .NET Framework classesclassesnew Form1();new Form1();

Better graphics with GDI+Better graphics with GDI+

Sweeping changes to:Sweeping changes to:MicrosoftMicrosoft®® Visual Studio Visual Studio®® .NET .NET

Controls and events Controls and events

InternationalizationInternationalization

Windows FormsWindows FormsRAD for C++RAD for C++

Changing properties changes codeChanging properties changes code

Non-UI controls placed in separate trayNon-UI controls placed in separate tray

Visual inheritanceVisual inheritance

In-place menu editingIn-place menu editing

Visual tab order editingVisual tab order editing

Anchor, dock, AutoScroll, locked propertiesAnchor, dock, AutoScroll, locked properties

Resize multiple controlsResize multiple controls

Windows FormsWindows Forms

SummarySummary

Visual C++ .NET 2003 delivers the Visual C++ .NET 2003 delivers the features you asked for.features you asked for.

Continue to write for native Windows.Continue to write for native Windows.

Full access to the .NET Framework.Full access to the .NET Framework.

Your skills and investments Your skills and investments move forward.move forward.

Visual C++ .NET 2003 continues Visual C++ .NET 2003 continues forward as the high-end developer tool.forward as the high-end developer tool.

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.Microsoft, Visual C++, Visual Studio, the Visual Studio logo, Windows, the Windows logo, and SQL Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.