Upload
david-chou
View
1.847
Download
0
Embed Size (px)
Citation preview
David [email protected]
.NET Framework 2.0 + SP1
Windows Presentation Foundation
Windows Communication
Foundation
Windows Workflow
Foundation
Windows CardSpace
.NET Framework 3.0 + SP1
.NET Framework 3.5
LINQ ASP.NET 3.5CLR Add-in Framework
Additional Enhancements
• Vector-based
• Resolution independent
• Rich media
• 3D user interfaces
Windows Communication Foundation
• Secure Web services
• Reliable transacted distributed apps
• Interoperability with WS-* protocols
• Any transport and any host
• Engine & tools for building workflow-
enabled composite apps
• System and human workflow
• Bringing workflow mainstream
Windows Presentation Foundation
Windows Workflow Foundation
Windows CardSpace
• Streamlines user registration
and one-click login
• Mitigates common attack
vectors (Phishing)
• Seamless integration with
WCF
Interopwith otherplatforms
ASMX
Attribute-Based
Programming
Enterprise Services
WS-*ProtocolSupport
WSE
Message-Oriented
Programming
System.Messaging
ExtensibilityLocation
transparency
.NET Remoting
INTEROPERABILITY PRODUCTIVITYSERVICE-ORIENTED
DEVELOPMENT
• Broad Support for WS-* specifications
• Compatible with existing MS distributed application technologies
• Unifies today’s distributed technologies
• Attribute-based development
• Visual Studio 2005 integration
• Enables development of loosely-coupled services
• Config-based communication
20,379 linessecurity
5,988 linesreliable messaging
25,507 linestransactions
Total lines 56,296
4,442 lines infrastructure
class HelloService {
[WebMethod]
public String Hello(String Greeting) {
X509CertificateCollection collection = new
X509CertificateCollection();
IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf(
typeof(CRYPTOAPI_BLOB)));
IntPtr data = (IntPtr)((int)blob +
Marshal.SizeOf(typeof(CRYPTOAPI_BLOB)));
…
SeqAckRange range = new SeqAcknRange(id, low, high );
SeqAckRange[] ranges = { range };
ReliableQueue.ProcessAcks( ranges );
…
BeginTransaction (NULL,
ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions,
&pITransaction);
…
return Greeting;
}
}
Using Visual Studio .NET 2003
10 lines security
1,804 lines reliable messaging
25,507 linestransactions
Total lines 27,321
class HelloService {
[WebMethod]
public String Hello(String Greeting) {
foreach ( SecurityToken tok in
requestContext.Security.Tokens
{
X509SecurityToken token = tok as X509SecToken
}
…
SeqAckRange range = new SeqAcknRange(id,low,high );
SeqAckRange[] ranges = { range };
ReliableQueue.ProcessAcks( ranges );
…
BeginTransaction (NULL,
ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions,
&pITransaction);
…
return Greeting;
}
}
Using Visual Studio .NET 2003 and WSE
Using Visual Studio .NET 2005 and WCF
1 code + 2 config (elem.)security
0 code + 1 config (elem.) reliable messaging
2 code + 1 config (attr.)transactions
Total lines:3 code (what) + 4 config (how)
[ServiceContract]
class HelloService
{
[OperationContract]
[PrincipalPermission(SecurityAction.Demand,
Role = “Adminstrators")]
[TransactionFlow(TransactionFlowOption.Mandatory)]
[OperationBehavior(TransactionScopeRequired = true,
TransactionAutoComplete = true)]
String Hello(String Greeting) {return Greeting;}
}
<bindings>
<wsHttpBinding>
<binding name="Binding1“ transactionFlow="true">
<security mode="Message">
<message clientCredentialType="Windows“/>
</security>
<reliableSession enabled="true" />
</binding>
</wsHttpBinding>
</bindings>
Key Concepts
Visual Designer: Graphical and code-based construction
Workflows are a set of Activities
Workflows run within a Host Process:any application or server
Developers can build their own Custom Activity Libraries
Components
Base Activity Library: Out-of-box activities and base for custom activities
Runtime Engine: Workflow execution and state management
Runtime Services: Hosting flexibility and communication
Host Process
WindowsWorkflow Foundation
Runtime Engine
Workflows
Activity
Runtime Services
Base Activity Library
Custom Activity Library
Visual Designer
Unified approach to UI, media, & documents Integrated into a single, simplified framework
DirectX-based vector graphics and resolution independent composition engine
Leverages hardware acceleration
Enhanced designer-developer productivity Expression Studio for designers; Visual Studio IDE for
developers
Declarative programming (XAML) for tool-driven collaboration
Flexible and simplified deployment ClickOnce and XBAP for on-demand (browser-based)
Zip, MSI, EXE, etc. for local installation
Common code base
Leverage existing code base and skill set Interoperability with WinForms, Win32, DirectX, MFC, ActiveX
Leverage vested knowledge in .NET Framework, CLR languages, and Visual Studio IDE
Next-generation UI platform for delivering innovative applications
Improve Developer ProductivityAddress new business problems while decreasing the total cost of solution construction
Developers, designers and database professionals see new tools and frameworks become available to simplify their tasks
Manage the Application Life CycleEnhances the end-to-end value of Visual Studio Team System
Increases role-based coverage and delivers enhanced traceability throughout the SDLC
Deeper integration across roles in the software life cycle and the Team Foundation Server
Employ the Latest TechnologiesTargets Vista, 2007 Office System, and Web
Enables teams to deliver safe, robust and compelling user experience in any type of application
Preserves existing efforts by supporting multiple .NET Frameworks in Visual Studio
Visual Studio – multi-targeting (.NET Framework 2.0, 3.0, and 3.5)
LINQ – new programming model for data access that integrates query support directly within the .NET languages (to SQL, XML, collections)
WF & WCF – integrated support for rich, connected applications using a variety of types of services (REST, JSON, Workflow Services, SOAP, etc.)
WPF Designer – provides design-time support for building WPF applications and a streamlined workflow between developers and designers (XAML IntelliSense, ClickOnce, Side-by-Side support for WinForms)
ASP.NET AJAX – integrated into .NET 3.5
JavaScript – Intellisense and debugging
VSTO – enables developers to build Office Business Applications for Office on the client or server (Ribbon Designer, Outlook Form Regions, integrated SharePoint tools, etc.)
CLR Add-ins – generic framework for hosting add-ins within applications (loading/unloading, sandboxing, isolation, lifetime management, discovery, activation, backwards compat, forward compat, sharing)
.NET Compact Framework – new Device Emulator improves the mobile development experience (plus LINQ, WCF, etc. in NetCF 3.5)
Platform
Language
Services
Windows Applications
Web Applications
Office Applications
Mobile Applications
Designed to reduce the complexity when working with data
Query operators can be used against any collection
Built-in examples: Select, Where, GroupBy, Join, etc.
Extensibility model supports extending/replacing these
Benefits
Work with data in a consistent way, regardless of the type of data
Interact with data as objects
Better integration with programming languages
Improved productivity through IntelliSense in Visual Studio
New programming model for data access that integrates query support directly within the .NET languages
LINQ enabled data sources
LINQ enabled ADO.NET
LINQ toDataSets
LINQ toSQL
LINQ toEntities
LINQ toXML
Objects
<book><title/><author/><price/>
</book>
XMLRelational
.NET Language-Integrated Query
LINQ toObjects
C# 3.0 Visual Basic 9.0 Others
Dim c As New SqlConnection(…)c.Open()Dim cmd As SqlCommand( _"SELECT c.Name, c.Phone “ & _"FROM Customers c” & _"WHERE c.City = @p0")
cmd.Parameters("@p0“) = "London"Dim dr As DataReader= c.Execute(cmd)While (dr.Read())
Dim name As String = r.GetString(0)Dim phone As String= r.GetString(1)Dim date As DateTime = r.GetDateTime(2)
End Whiler.Close()
Accessing data today
Queries in quotes
Loosely bound arguments
Loosely typed result sets
No compile time checks
Public Class Customer …
Public Class NorthwindInherits DataContext
Public Property Customers As Table(Of Customer)…
End Class
Dim db As New Northwind(…)Dim contacts = _
From cust in db.Customers _Where cust.City = "London"Select cust.Name, cust.Phone
For Each custInfo in contactsColdCall(custInfo.Name, custInfo.Phone)
Next
Accessing data with LINQClasses
describe data
Strongly typed connection
Integratedquery syntax
Strongly typed results
Tables are like collections
Dim highThreadProcs = _From proc In Process.GetProcesses _Where proc.Threads.Count > 10 _Select proc.ProcessName, proc.Threads.Count
Dim highThreadProcs = Process.GetProcesses(). _
Where(Function(proc As Process) proc.Threads.Count > 10). _
Select (Function(proc As Process) _
New With {.ProcessName = proc.ProcessName _
.Count = proc.Threads.Count)
Function _Filter1(proc As Process) As BooleanReturn proc.Threads.Count > 10
End Function
Function _Projection1(proc As Process) As <Anonymous Type>Dim projection As New <AnonymousType>projection.ProcessName = proc.ProcessNameprojection.Count = proc.Threads.CountReturn projection
End Function
Project Select <expr>
Filter Where <expr>, Distinct
Test Any(<expr>), All(<expr>)
Join <expr> Join <expr> On <expr> Equals <expr>
Group
Group By <expr>, <expr> Into <expr>, <expr>
Group Join <decl> On <expr> Equals <expr>Into <expr>
AggregateCount([<expr>]), Sum(<expr>), Min(<expr>), Max(<expr>), Avg(<expr>)
Partition Skip [ While ] <expr>, Take [ While ] <expr>
Set Union, Intersect, Except
Order Order By <expr>, <expr> [ Ascending | Descending ]
Technologies added in .NET 3.0
WCF – Unified programming model and runtime for services
WF - Flexible, declarative workflow runtime and activities
New enhancements in .NET 3.5
Http Programming Model
JSON serialization & ASP.NET AJAX integration
Syndication via RSS & ATOM
Integrated support for WF & WCF (“Silver”)
Partial Trust
Integrated developer tools in Visual Studio 2008
Add Service Reference
Integrated WF Designer
Project & item templates
Autohost & test client
WCF Configuration Editor
Services
Services
Streaming
Integrated support for ASP.NET AJAX 1.0
Included in the .NET Framework 3.5
ASP.NET AJAX Project Templates
Web Application Projects included in Visual Studio
Javascript IntelliSense & Debugging
Richer HTML/CSS Designer Support
Split View (simultaneous source and designer)
Nested Master Page preview in designer
CSS Properties, Manage/Apply Styles windows, and direct style application toolbar
Improved CSS/HTML layout and visualization in designer
New Web data controls
LinqDataSource, ListView, DataPager
Server FrameworkClient Framework and Services
ASP.NET AJAX Server Extensions
ASP.NET AJAXServer Controls
App Services Bridge
Web Services Bridge
Client Script Library
Controls, Components
Script Core
Base Class Library
Component Model and UI Framework
Browser Compatibility
Client Application Services
BrowserIntegration
ASP.NET 2.0
Application Services
Page Framework,
Server Controls
ASP.NET AJAXASP.NET Pages
Web Services
HTML, Script,ASP.NET AJAX
Markup
ServiceProxies
Live Expo
Live Alerts
Live Contacts
SilverlightStreaming
Live ID
Live Spaces
Live Events
Live Search
Virtual Earth
Visual Studio Designer for WPF (“Cider”)
XAML-based editing directly in the IDE
Changes reflected in the designer in real-time
XAML IntelliSense
Selection Synchronization
ClickOnce deployment support for WPF apps
Project templates, debugger & deployment support
Side-by-side support for WinForms
Creates a seamless designer/developer workflow with Expression Interactive Designer (“Sparkle”)
VS 2008 includes Visual Studio Tools for Office 3.0
Provides integrated visual designers for:
Word and Excel documents and templates
Fluent Ribbon
Task & Action panes
Outlook Form Regions
Integrated Workflow & Microsoft SharePoint Support
Data binding in Word Content Controls
Application-level add-ins for most client programs (both 2003 & 2007)
Document-level add-ins for Excel & Word 2007
Improved deployment and security using ClickOnce
Tab
GroupRibbonControl
Ribbon Customization
Outlook custom form regions
Actions Pane
Calculated data and charts
Browser
• Spreadsheets rendered in web parts
• Set parameters, sort, filter, drill to explore and view the right data
• High fidelity to Excel client
Custom Applications
• Set values, perform calculations, get updated values via Web Services
• Retrieve full workbook file
Spreadsheets/Calculated data
• Spreadsheets stored in document libraries
• Spreadsheet calculation and rendering
• External data retrieval and caching
Office SharePoint Servers & Excel Services
Spreadsheets
Excel 2007
Design and author
• Open in Excel for rich exploration and analysis
• Open snapshots
Spreadsheets/snapshots
Excel 2007
Visual Studio Tools for Devices
Unit Testing for Device Applications
Device Emulator 3.0 – Certificate support, Xml config
Broad Platform and runtime Support
.NET Compact Framework 3.5
Support for LINQ (XML, Objects and Dataset)
Windows Communication Foundation
CLR Profiler / Performance Monitor
BCL enhancements: Compression support, Client-side certificates, Sound APIs
Potala People All Mobile Casino
JL Mobile XSales Rep Microsoft CRM Mobile Pocket HumanityJL Mobile XSales Visor CCPocket
Cross Platform
Cross Browser
RIAs
Media Experiences
.NET
Compelling Cross-Platform User ExperiencesInternet Explorer, Firefox, Safari, Opera
Windows (XP, Vista, Server), Apple OS X, Linux
Windows Mobile, Nokia S60/S40 (Symbian)
Low Cost, High-Quality MediaSMPTE VC-1 HD video standard; WMV (v7-v10), WMA, MP3
PlayReady digital rights management
Adaptive streaming with Windows Media technologies
Sophisticated .NET Platform CapabilitiesMulti-language support – C#, VB, Ruby, Python, and JavaScript/AJAX
Rich frameworks – WPF UI, LINQ, DeepZoom, extensible controls and templating models, layout management, integrated data binding, internationalization, local data cache/storage, etc.
Robust networking – WS-*/SOAP, REST/POX/JSON, RSS, sockets, cross-domain access, etc.
Enhanced performance in compiled managed code
Enhanced richness in graphics, interactivity, and media content delivery capabilities
Office Business Applications
Rich Internet Applications
Services
WindowsApplications
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
David [email protected]
blogs.msdn.com/dachou
Blocks
Blocks enable Popfly users to do things like get their photos from Live Spaces or Flickr and visually display them using Silverlight blocks like a slideshow or an interactive photo carousel, all without writing code.
Design Surface
The interactive design surface enables you to drag and drop blocks and connect them together to build your application.
Fully Customizable HTML
Advanced users who want to fully control the rendered HTML can switch to the custom HTML view that provides you the ability to create any custom HTML, CSS, or JavaScript code you want. Think of it as your free area to experiment on the Web.
Microsoft® Popfly™ is the fun, easy way for anyone to build and share mashups, gadgets, Web pages, and applications. Popfly consists of two parts:Popfly Creator is a set of online visual tools for building Web pages and mashups.Popfly Space is an online community of creators where you can host, share, rate, comment and even remix creations from other Popfly users.
End-to-End Development Platform
Visual authoring environments
Visual programming language
3D physics-based simulation tool
Cross-domain network access
Lightweight REST-Style, Service-Oriented Runtime
Concurrency and coordination library
Asynchronous, message-oriented model
Services based framework
Real-time monitoring
Application Model
Consume sensory input
Orchestrate actuators response output
Manage concurrent input and output
RESTful eventing and data manipulation
XNA Game Studio
Extends Visual Studio
to create games using C#
XNA Framework
Cross-platform game
development framework and
runtime
.NET Framework for Xbox 360
Custom version of the
.NET Compact Framework
Framework
Business Analyst
Operations, QA and Help Desk Third-Party
IDEs
Web Clients and XML Web Services
Application Life Cycle Management (ALM) Solution
Team Foundation Server 2008
Built-in support for Continuous Integration
TFS Migration Toolkit
“Get latest on checkout”
Annotate
Folder Diff
For developers:
Code metrics
Performance “hotpathing”
Profiler baselining
Much faster unit testing performance
For testers:
Load testing support for AJAX applications
Better UI for load test monitoring / reporting
And much more…