What is .NET 3.0?
• .NET Framework 2.0 CLR, BCL and compilers plus
• Windows Presentation Foundation• Windows Communication Foundation• Windows Workflow Foundation• Windows CardSpace
Where do customers get it?
• Out of the box with Windows Vista• 50 Mb redistributable or download for
XP SP2 and 2003• Not available on earlier versions
What is its status?
• Runtime – released and fully supported• SDK – released and fully supported• Visual Studio
– 2005 integration – CTP, not being progressed
– ‘Orcas’ – no release date, current CTP does not include all designers
Windows Presentation Foundation
• Common user input and output API– Mouse, keyboard, ink, speech– Controls, graphics, text, audio/speech, video
• DirectX based• Declarative programming model
– XAML: HTML-like description of UI– Data binding
Consider WPF If You Need...
• Custom graphics– Even something as simple as a Gantt chart
• Animation• Document-type layouts (rich text,
adaptive layouts, mixed text and media)• Navigation
Windows Communication Foundation
• Common framework for message-oriented communication– SOAP-based– Transport agnostic (HTTP, TCP, MSMQ...)– Interface oriented– Configurable composition of policies
(security, reliability, transactionality, etc.)– Address, binding, contract in configuration
Consider WCF If You Need...
• Messaging• Policy-driven capabilities (security,
reliability, etc.)• Communication between your own
processes (rather than running in IIS)
Windows Workflow Foundation
• Workflow– Sequential workflow – e.g. expense
application– State machine – e.g. bug tracking– Host-based, configurable policies e.g.
persistence, tracking
• Rules engine
Consider WF If You Need...
• Long-running processes• State tracking / progress tracking• Externalised (configurable) rules
– This can be used for a lot more than business rules – e.g. configuration-driven validation, enabling/disabling, navigation control
• BAM (Business Activity Monitoring)
Development Tradeoffs – WPF
• Incumbent technology: Windows Forms
• Tooling (‘Cider’ VS designer, Blend)– XAML + Intellisense = not so bad
• Controls• Third-party support
Development Tradeoffs – WCF
• Incumbent technologies: WSE, ASMX, Remoting, MSMQ, Enterprise Services (COM+)
• Protocols have two ends
Development Tradeoffs – WF
• Incumbent technologies: only at enterprise server level, e.g. BizTalk, BPM tools
• Tooling– VS05 integration stable in practice but not
supported (underlying designer is supported)• Extra work to match enterprise tools
– Robustness, scaling, load balancing, etc.– Adapters, transforms, resources/roles
Development Tradeoffs – General
• Documentation and samples• Community support / knowledge• Best practices• Diagnostic and debugging tools not
as mature as core CLR/procedural tools
Development Tradeoffs – General
• Investment in existing codebases – migration or interoperation
• Availability of skilled developers (able to work without tooling, able to mentor)
Deployment Considerations – Consumer / Personal Apps• That’s a big download• Users may not be allowed to install the
framework on their work machines• Rules out Win2000 and Win9x
customers– Win2000 still the standard desktop at many
big companies
Deployment Considerations – Corporate Apps
• Another piece of plumbing to roll out• Education
– The “3.0” moniker may make IT groups resistant even though it’s really 2.0 + libraries
– Compatibility fears
• Corporate PCs often have low-end graphics capabilities (WPF)
Deployment Considerations – General
• Do operations staff know how to configure it, secure it, back it up, diagnose faults, plan capacity, perform failover etc.?– This is often more of an application issue, but
consider WCF/WF configuration files, WF dehydration/rehydration (e.g. SQL Server considerations, versioning)
Management Fears
• Development and deployment considerations discussed earlier
• Microsoft’s commitment – anyone remember Web classes?
• Support status – hotfixes etc.
Management Fears
• ‘Let’s wait until other people are using it’ – technology seen as unproven – case studies
• Wait for migration path instead of starting over
• Technology roadmap
Summary
• Should I be considering .NET 3.0 for my next project?
• Yes!• But, as with any new technology, be
realistic about the implications: would you have moved from VB6 to .NET in 2002?