20080620 VS2008+.Net3.5

48
David Chou [email protected]

Transcript of 20080620 VS2008+.Net3.5

Page 1: 20080620 VS2008+.Net3.5

David [email protected]

Page 2: 20080620 VS2008+.Net3.5
Page 3: 20080620 VS2008+.Net3.5

.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

Page 4: 20080620 VS2008+.Net3.5

• 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

Page 5: 20080620 VS2008+.Net3.5

Interopwith otherplatforms

ASMX

Attribute-Based

Programming

Enterprise Services

WS-*ProtocolSupport

WSE

Message-Oriented

Programming

System.Messaging

ExtensibilityLocation

transparency

.NET Remoting

Page 6: 20080620 VS2008+.Net3.5

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

Page 7: 20080620 VS2008+.Net3.5

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

Page 8: 20080620 VS2008+.Net3.5

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

Page 9: 20080620 VS2008+.Net3.5

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>

Page 10: 20080620 VS2008+.Net3.5

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

Page 11: 20080620 VS2008+.Net3.5
Page 12: 20080620 VS2008+.Net3.5

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

Page 13: 20080620 VS2008+.Net3.5

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

Page 14: 20080620 VS2008+.Net3.5

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

Page 15: 20080620 VS2008+.Net3.5

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

Page 16: 20080620 VS2008+.Net3.5

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

Page 17: 20080620 VS2008+.Net3.5

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

Page 18: 20080620 VS2008+.Net3.5

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

Page 19: 20080620 VS2008+.Net3.5

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

Page 20: 20080620 VS2008+.Net3.5

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 ]

Page 21: 20080620 VS2008+.Net3.5

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

Page 22: 20080620 VS2008+.Net3.5

Services

Services

Streaming

Page 23: 20080620 VS2008+.Net3.5

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

Page 24: 20080620 VS2008+.Net3.5

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

Page 25: 20080620 VS2008+.Net3.5

Live Expo

Live Alerts

Live Contacts

SilverlightStreaming

Live ID

Live Spaces

Live Events

Live Search

Virtual Earth

Page 26: 20080620 VS2008+.Net3.5

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”)

Page 27: 20080620 VS2008+.Net3.5
Page 28: 20080620 VS2008+.Net3.5
Page 29: 20080620 VS2008+.Net3.5
Page 30: 20080620 VS2008+.Net3.5
Page 31: 20080620 VS2008+.Net3.5
Page 32: 20080620 VS2008+.Net3.5

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

Page 33: 20080620 VS2008+.Net3.5

Tab

GroupRibbonControl

Ribbon Customization

Outlook custom form regions

Actions Pane

Page 34: 20080620 VS2008+.Net3.5

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

Page 35: 20080620 VS2008+.Net3.5
Page 36: 20080620 VS2008+.Net3.5
Page 37: 20080620 VS2008+.Net3.5

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

Page 39: 20080620 VS2008+.Net3.5

Potala People All Mobile Casino

JL Mobile XSales Rep Microsoft CRM Mobile Pocket HumanityJL Mobile XSales Visor CCPocket

Page 40: 20080620 VS2008+.Net3.5

Cross Platform

Cross Browser

RIAs

Media Experiences

.NET

Page 41: 20080620 VS2008+.Net3.5

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

Page 42: 20080620 VS2008+.Net3.5

Office Business Applications

Rich Internet Applications

Services

WindowsApplications

Page 43: 20080620 VS2008+.Net3.5

© 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

Page 44: 20080620 VS2008+.Net3.5

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.

Page 45: 20080620 VS2008+.Net3.5

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

Page 46: 20080620 VS2008+.Net3.5

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

Page 47: 20080620 VS2008+.Net3.5

Business Analyst

Operations, QA and Help Desk Third-Party

IDEs

Web Clients and XML Web Services

Application Life Cycle Management (ALM) Solution

Page 48: 20080620 VS2008+.Net3.5

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…