here

conversebazaarSoftware and s/w Development

Nov 2, 2013 (4 years and 6 days ago)

83 views

Brian H. Prince

Director, Application Development Consulting
Practice

Quick Solutions, Inc.


This material was adopted from the VS2008 training kit.

.NET Framework & Visual Studio Roadmap

.NET Framework 3.5 overview

Visual Studio design goals

Lap around new features

.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.5

CLR Add
-
in

Framework

Additional
Enhancements

2006

2007

2008

Major

Releases

Out of band

Releases

“Rosario”



VS Extensions for WF



VS Extensions for WCF/WPF CTP

ASP.NET AJAX 1.0


VS 2008 Beta 2


.NET Framework 3.5 Beta 2

3.0

RTM

3.5 RTM

Best tool set for Windows Server 2008, Windows Vista and
Microsoft Office 2007

.NET Framework 3.5 design surfaces

Office 2007 support including
ClickOnce

and VSTO

MFC support for Vista common controls


Improvements for Web Developers

HTML / CSS designer enhancements

Integrated AJAX and JavaScript support


Language advances

.NET Framework multi
-
targeting support

Improved Data & Language integration in VB / C#

Multi
-
targeting

Target multiple versions of the framework from a
single tool
-

Visual Studio 2008

Supports framework versions 2.0, 3.0, and 3.5

Enables only features available in target framework

Toolbox, Project types, References,
Intellisense
, …

Making is easy to upgrade to Visual Studio 2008

Unit Testing

Now available in all editions of Visual Studio
Professional


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…

Local Variable Type Inference

Object Initializers

Collection Initializers

Anonymous Types

Auto
-
Implemented Properties

Extension Methods

Lambdas

Query Expressions

Expression Trees

Partial Methods

Person p = new Person()


{
FirstName

= "John",
LastName

= "Doe“};

Person p = new Person()


p.FirstName

= “John”;


p.LastName

= “Doe”;


var

cookies = new List<Cookie>


{

new Cookie("cookie1", "1"),



new Cookie("cookie2", "2") };

Person
aPerson

= new Person(24);


var

aPerson

= new Person(24);

public class
Cust

{


public
int

CustId

{ get; set; }




private string _
CustName
;


public string
CustName


{


get { return _
CustName
; }


set { _
CustName

= value; }


}

}



var

obj

= new {
CustId

= 1,
CustName

= "C#" };



private string _Test1;

public string Test1



{



get { return _Test1; }



set { _Test1 = value; }



}



public string Test { get; set; }


Extension methods will allow us to extend
existing classes with new functionality.

In C++ these are called ‘non member
functions’


public static string
SuperUpper

(this string s)

{

Return
s.ToUpper
();

}







Lambda Expressions

Expression Trees

Partial Methods



Query expressions

XML literals

XML element access

Nullable

types

Object initializers

Local type inference

Lambda Expressions

Extension methods

Expression trees

Anonymous types

Ternary Operator

Coalesce Operator

Relaxed Delegates

Partial Methods


…and many other
IDE improvements, bug fixes, and
small features!

Strategy
-

Phased Upgrades using
Interop

Reduce Risk by moving one Form at a time

Extend existing assets with VB.NET


Microsoft
Interop

Forms Toolkit (v2.0)

Guidance, tools, and code to make upgrades easier

Not a code converter!

VB6 Application

VB6

Form(s)

VB.NET

Form(s)

Interop

(COM)

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

Objects

<book>


<title/>


<author/>


<year/>


<price/>

</book>

XML

.NET Language Integrated Query

C# 3.0

VB 9.0

Others…

Relational

LINQ to

Objects

LINQ to

SQL

LINQ to

XML

LINQ to

DataSets

var

expensiveInStockProducts

=


from p in products


where
p.UnitsInStock

> 0 &&




p.UnitPrice

> 3.00M


select p;



System.TimeZoneInfo

System.DateTimeOffset

System.Collections.Generic.HashSet

System.IO.Pipes

(Named Pipes)

New Suite
-
B encryption algorithms

EventSchemaTraceListener

Support for new Vista event log (ETW)

System.Threading.ReaderWriterLockSlim

Dynamic Language
Initiative
Community

Microsoft

Common Language Runtime (CLR)

Frameworks

Dynamic Language Runtime(DLR)

Languages

IronPython

IronRuby

JSx

VBx

Languages

Scripting Hosts

Silverlight

ASP.NET

Hosts

To be delivered by:

DLR Team

Partner Teams

Community

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

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


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


Firefox Support for XBAPs

Needs correct MIME types from server

HTTP Cookie Support

Access the data from HTTP Requests

Both XBAPs and Standalone Applications

Support for Add
-
Ins

CLR has new isolated Add
-
In model

Support for isolated WPF Add
-
Ins via HWND

Support for
Xlinq

binding

Maps XML through
TypeDescriptor

objects

Path,
not

XPath

Path=Element[content].Attribute[
url
].Value

Improved performance of
IEnumerable

Previously used constant re
-
enumeration

Now using a snap
-
shot

Potential order of magnitude improvement

Watch working set

Better Performance in XML (DOM) Binding

If Xml Document is changing a lot

If there are lots of trivial
XPaths

Orders of magnitude faster updates

Improved performance in Datasets

Previouslt

DataSet

Rows = funky identity
semantics, lots of refreshes and weird behavior

Now identity semantics are fixed

Much faster with changing data

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

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


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