Microsoft ® Visual C++ ®.NET 2003 The Developer’s Power Tool Nigel Watson Academic Developer...
-
Upload
lynette-porter -
Category
Documents
-
view
216 -
download
2
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…
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
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
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
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
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.