dotnet 3.0 overview
DESCRIPTION
An overview on the description of dotnet framework like wcf workflow foundation,WPF,Expression Blends & Windows CardspaceTRANSCRIPT
Introducing the Microsoft .NET Framework 3.0
Software TrendsSoftware Trends
.NET Framework 3.0 Tour.NET Framework 3.0 Tour
Getting the .NET Framework 3.0Getting the .NET Framework 3.0
Agenda
Service-OrientedService-OrientedDevelopmentDevelopment
Differentiated Differentiated User ExperienceUser Experience
Business Process Business Process ModelingModeling
Digital IdentityDigital IdentityManagementManagement
Software Development Trends
Microsoft .NET Framework 3.0
The Managed Code The Managed Code
Programming ModelProgramming Model
for Windowsfor Windows
Windows Communication Foundation
Unified framework for Unified framework for
rapidly buildingrapidly building
service-oriented applicationsservice-oriented applications
Interop withInterop withother platformsother platforms
ASMX
WSEWSE
WS-* protocols
LocationLocationtransparencytransparency
Remoting
Unified framework supersets existing technologiesUnified framework supersets existing technologies
Windows Communication Foundation
Attribute Based Programming
Message- based programming
Our Solution: Programming WCF
Classes added to the .NET Framework 2.0Classes added to the .NET Framework 2.0
… … for building software services: for building software services:
i.e. software designed for interaction over i.e. software designed for interaction over a network with an interface described in WSDL. a network with an interface described in WSDL.
WSDL is as important to software as money is WSDL is as important to software as money is to the economy: it makes interactions efficient. to the economy: it makes interactions efficient.
The WCF programming model follows WSDL closely. The WCF programming model follows WSDL closely.
Our Solution: Programming WCFOur Solution: Programming WCF
WSDL WSDL SectionSection
a.a. WherWhere?e?
serviceservice
b.b. How?How? bindingbinding
c.c. What?What? portTypeportType
Our Solution: Programming WCF
WSDL WSDL SectionSection
WCF WCF
TermTerm
a.a. WherWhere?e?
serviceservice aaddressddress
b.b. How?How? bindingbinding bbindinginding
c.c. What?What? portTypeportType ccontractontractA .Net interface
and implementation
Specified in a configuration file
Our Solution: WCF Architecture
User Code User Code
Typed Proxy Dispatcher
Protocol Protocol
Encoding Encoding
Transport TransportMessage
Programming model, engine Programming model, engine
and tools for building and tools for building
workflow-enabled applications workflow-enabled applications
Windows Workflow Foundation
EX: Check InventoryEX: Escalate To Manager
What Is A Workflow?
A Set Of Activities A Set Of Activities That Coordinates People That Coordinates People
And / Or Software...And / Or Software...
Like a flowchart…. Like a flowchart…. Or a state diagram…. Or a state diagram….
Sequential Workflow
Sequential structure Prescribes processing order
Step1
Step2
State MachineWorkflow
External events drive processing order
State2
State1Event
Event
Rules + data state drive processing order
Rules-driven Activities
Rule1
Rule2
Data
Step2
Step1
Windows Workflow FoundationKey ConceptsKey Concepts
Host Process
WindowsWorkflow Foundation
Runtime Engine
A Workflow
An Activity
Runtime Services
Base Activity Library
Custom Activity Library
Visual Designer
Visual Designer:Visual Designer: Graphical and Graphical and code-based constructioncode-based construction
Workflows are a set of ActivitiesWorkflows are a set of Activities
Workflows run within a Host Workflows run within a Host Process:Process: any application or any application or serverserverDevelopers can build their own Developers can build their own Custom Activity LibrariesCustom Activity Libraries
ComponentsComponentsBase Activity Library:Base Activity Library: Out-of-Out-of-box activities and base for custom box activities and base for custom activitiesactivitiesRuntime Engine:Runtime Engine: Workflow Workflow execution and state managementexecution and state managementRuntime Services:Runtime Services: Hosting Hosting flexibility and communicationflexibility and communication
Workflow Authoring Modes
.NET assembly• ctor defines
workflow
Markup Only“Declarative”
XAML
Markup andCode
C#/VB
Code Only ApplicationGenerated
XAML C#/VB
• XML definesworkflow structurelogic and data flow
• XML definesworkflow• Code-beside defines extra logic
• Code createsworkflowin constructor XAML C#/
VB
App creates activitytree and serializes
Workflow Compilerwfc.exe
C#/VB Compiler
What are Activities?An activity is a step in a workflowAn activity is a step in a workflow
Has Has propertiesproperties andand eventsevents that are that are programmable within your workflow codeprogrammable within your workflow codeHas Has methodsmethods (e.g. Execute) that are only (e.g. Execute) that are only invoked by the workflow runtimeinvoked by the workflow runtime
Think of Forms & ControlsThink of Forms & ControlsActivity == ControlsActivity == Controls
Workflows == Forms Workflows == Forms
Activities fall under two broad categoriesActivities fall under two broad categoriesBasicBasic – steps that “do work” – steps that “do work”
CompositeComposite – manage a set of child activities – manage a set of child activities
Activities: An Extensible Approach
OOB activities,OOB activities,workflow types,workflow types,base typesbase typesGeneral-purposeGeneral-purposeActivity libraries define Activity libraries define workflow constructsworkflow constructs
Create/Extend/Create/Extend/Compose activitiesCompose activitiesApp-specificApp-specificbuilding blocksbuilding blocksFirst-class citizensFirst-class citizens
Base ActivityBase ActivityLibraryLibrary
Custom ActivityCustom ActivityLibrariesLibraries
Author new activity
Out-of-Box Activities
Extend activity
Compose activities
Vertical-specificVertical-specificactivities & workflowsactivities & workflowsBest-practice IP &Best-practice IP &KnowledgeKnowledge
Domain-SpecificDomain-SpecificWorkflow PackagesWorkflow Packages
Compliance
RosettaNet
CRM
IT Mgmt
Flexible Control Flow
Rules-driven Activities
Step2
Step1Rule1
Rule2
DataRules + data statedrive processing order
•Data-driven•Simple Conditions, complex Policies •Constrained Activity Group
State Machine Workflow
State2
State1Event
Event
External events drive processingorder
•Reactive, event-driven•Skip/re-work, exception handling•Graph metaphor
Sequential WorkflowStep1
Step2
Sequentialstructure prescribesprocessing order
•Prescriptive, formal•Automation scenarios•Flowchart metaphor
Windows Workflow Foundation
Windows Presentation Foundation
Unified framework for building Unified framework for building
next gen user experiences next gen user experiences
withwith
UI, media and documentsUI, media and documents
Windows Presentation Foundation
<Button Width="100"> OK <Button.Background> LightBlue </Button.Background></Button>
XAML
Button b1 = new Button();b1.Content = "OK";b1.Background = new SolidColorBrush(Colors.LightBlue);b1.Width = 100;
C#
Dim b1 As New Buttonb1.Content = "OK"b1.Background = New _ SolidColorBrush(Colors.LightBlue)b1.Width = 100
VB.NET
XAMLXAMLeXtensible Application Markup LanguageeXtensible Application Markup Language
Windows Presentation Foundation
With XAML designers & With XAML designers &
developers can streamline developers can streamline
their collaborationtheir collaboration
What is WPF?
Windows Presentation Foundation is Windows Presentation Foundation is one of four principal components one of four principal components in .NET 3.0in .NET 3.0
WPF is essentially an alternative WPF is essentially an alternative method for developing Windows method for developing Windows based applicationsbased applications
WPS vs Windows Forms Development
WPF has a number of advantages over WPF has a number of advantages over Windows Forms development which Windows Forms development which includeinclude
Comprehensive Integration – WPF provides a Comprehensive Integration – WPF provides a uniform platform for using video, speech, text, uniform platform for using video, speech, text, 2D and 3D graphics2D and 3D graphics
Resolution Independence – as DPI increases, Resolution Independence – as DPI increases, WPF applications maintain their size exactlyWPF applications maintain their size exactly
Instead of shrinking, WPF applications merely get Instead of shrinking, WPF applications merely get SharpeSharpe
WPF Advantages over Windows Forms Development
WPF supports hardware accelerationWPF supports hardware accelerationWPF applications can take advantage of WPF applications can take advantage of GPUs on Graphics cards for smoother GPUs on Graphics cards for smoother graphics graphics
WPF allows the effective separation WPF allows the effective separation of design work (to be performed by of design work (to be performed by Designers) and functionality (to be Designers) and functionality (to be performed by Developers)performed by Developers)
WPF Advantages over Windows Forms Development
WPF supports a new model for content WPF supports a new model for content under which almost any control can under which almost any control can host almost any other controlhost almost any other control
This permits very rich user interfaces as This permits very rich user interfaces as almost any control can support 3D almost any control can support 3D graphics, animations and even videosgraphics, animations and even videos
WPF supports almost complete WPF supports almost complete scalability scalability
WPF and XAML
XAML is a declarative programming XAML is a declarative programming language designed for constructing language designed for constructing and initializing .NET objectsand initializing .NET objects
XAML code is principally the textual XAML code is principally the textual representation of some visual representation of some visual element – either a graphic object or a element – either a graphic object or a user interface object such as a user interface object such as a button or a combo box button or a combo box
WPF and XAML
Under the standard paradigm the User Under the standard paradigm the User Interface is described in XAML and the Interface is described in XAML and the underlying functionality is built using C# underlying functionality is built using C# (or Visual Basic .NET)(or Visual Basic .NET)
However, using Markup Extensions However, using Markup Extensions Microsoft has cleverly been able to build a Microsoft has cleverly been able to build a considerable degree functionality into considerable degree functionality into XAMLXAML
Usually when things can be expressed in Usually when things can be expressed in either C# or XAML, XAML is more terseeither C# or XAML, XAML is more terse
What is WPF/E
WPF/E stands for WPF EverywhereWPF/E stands for WPF Everywhere
WPF/E is basically a Microsoft WPF/E is basically a Microsoft equivalent for Macromedia Flashequivalent for Macromedia Flash
Currently only in beta form, WPF Currently only in beta form, WPF supports Fire fox and Internet supports Fire fox and Internet Explorer 7 on Windows and Fire fox Explorer 7 on Windows and Fire fox and Safari on the MAC and Safari on the MAC
What is the Relationship Between WPF/E and WPF
WPF/E uses a Javascript control to WPF/E uses a Javascript control to host content created using XAMLhost content created using XAML
Recall that vector graphics can be Recall that vector graphics can be expressed in XAML and that WPF has expressed in XAML and that WPF has very strong support for animationsvery strong support for animations
Client side event handling is Client side event handling is processed using JavaScriptprocessed using JavaScript
What is the Expressions Suite
The Expressions Suite consists of The Expressions Suite consists of four designer type applications four designer type applications
Only one of these applications, Only one of these applications, Expressions Web Designer has been Expressions Web Designer has been officially released (January, 2007)officially released (January, 2007)
The other three releases are The other three releases are currently in beta release (or CTP) currently in beta release (or CTP)
Expressions Web Designer
This product is essentially the successor This product is essentially the successor to Microsoft Front Pageto Microsoft Front Page
Its principal competitor is Macromedia Its principal competitor is Macromedia (Adobe) DreamWeaver(Adobe) DreamWeaver
The emphasis by Microsoft for this The emphasis by Microsoft for this product is Standards Based web design product is Standards Based web design (XHTML)(XHTML)
This product has nothing at all directly This product has nothing at all directly to do with WPFto do with WPF
Expressions Blend
Expressions Blend is a Visual Studio like Expressions Blend is a Visual Studio like tool for designing WPF user interfacestool for designing WPF user interfaces
While Blend is intended for use by While Blend is intended for use by Designers, it is sufficiently superior to Designers, it is sufficiently superior to the equivalent designer in Visual Studio the equivalent designer in Visual Studio that most Developers will likely use it in that most Developers will likely use it in conjunction with Visual Studioconjunction with Visual Studio
Expressions Graphic Designer
This product represents Microsoft’s This product represents Microsoft’s attempt to move into the space attempt to move into the space occupied by Adobe Illustrator and occupied by Adobe Illustrator and CorelDrawCorelDraw
Vector GraphicsVector Graphics
Graphic Designer uses XAML as its Graphic Designer uses XAML as its native output languagenative output language
This, of course, facilitates using these This, of course, facilitates using these vector graphics in WPF applicationsvector graphics in WPF applications
Expressions Media
The latest addition to the The latest addition to the Expressions suiteExpressions suite
Represents a content management Represents a content management system similar to Adobe Bridgesystem similar to Adobe Bridge
No direct relationship with WPFNo direct relationship with WPF
Windows CardSpace
Private desktopPrivate desktopSeparate user contextSeparate user context
Protects against Protects against hackinghacking
Self-issued cardsSelf-issued cardsNon-corroboratedNon-corroborated
Stored locallyStored locally
Managed cardsManaged cardsCorroboratedCorroborated
Stored at STSStored at STS
WS-*Web Services
Windows CardSpace
User Relying Party
Identity Provider
Introduction to Windows CardSpace
Windows CardSpace is client software Windows CardSpace is client software that enables users to provide their digital that enables users to provide their digital identity to online services in a simple, identity to online services in a simple, secure and trusted way. secure and trusted way.
It is what is known as an It is what is known as an identity selectoridentity selector
The CardSpace UI enables users to The CardSpace UI enables users to create Personal cards (aka self-issued create Personal cards (aka self-issued cards) and associate a limited set of cards) and associate a limited set of identity data. identity data.
Windows CardSpace
The architecture upon which The architecture upon which CardSpace has been built – CardSpace has been built – consisting of subjects, identity consisting of subjects, identity providers and relying parties – is providers and relying parties – is called “The Identity Metasystem”. called “The Identity Metasystem”.
Microsoft .NET Framework 3.0
Windows Presentation Windows Presentation FoundationFoundation
Next generation user experienceNext generation user experience
““CardSpace”CardSpace”Digital identity managementDigital identity management
Windows Workflow Windows Workflow FoundationFoundation
Business process Business process modelingmodeling
Windows Communication Windows Communication FoundationFoundation
Service-oriented Service-oriented developmentdevelopment