asp.net 3.5 new features. 2 agenda what's new in.net framework 3.5? visual studio 2008...

24
ASP.NET 3.5 New Features

Post on 19-Dec-2015

228 views

Category:

Documents


1 download

TRANSCRIPT

ASP.NET 3.5 New Features

2

Agenda

What's New in .NET Framework 3.5? Visual Studio 2008 Enhancements LINQ (Language Integrated Query) New ASP.NET Server Controls ASP.NET 3.5 Extensions

ASP.NET Dynamic Data ( now in SP1 ) ASP.NET MVC Framework ( now in Beta ) ASP.NET and AJAX Integration ASP.NET Controls for Silverlight

3

Timeline

November 2005    ASP.NET 2.0 Released along with Visual Studio 2005  (No ASP.NET AJAX)

January 2007         ASP.NET AJAX v1.0 released as an add-on to ASP.NET 2.0 (Works with Visual Studio 2005)

May 2007                ASP.NET "Futures" a developer preview of some of the features considered for future releases released as a CTP

July 2007ASP.NET "Futures" CTP Updated

November 2007    ASP.NET 3.5 and Visual Studio 2008 released (ASP.NET 3.5 contains built-in newer version of ASP.NET AJAX, ListView, DataPager and LinqDataSource controls)

December 2007   ASP.NET 3.5 Exensions (CTP Version containing new features for ASP.NET, AJAX and Silverlight)

August 2008 .Net 3.5 SP1

4

What’s New in .NET Framework 3.5? Language Integrated Queries (LINQ)

Family of technologies that provides querying features for data, from relational to XML

Generate a LINQ object model that provides an object representation of the database

New collections: HashSet<T>

Peer-to-Peer networking framework

Integration of WCF and WWF (Workflow Services)

5

What’s New in Visual Studio 2008? Framework targeting (2.0, 3.0, 3.5) Full support for LINQ and LINQ to SQL Integrated ASP.NET AJAX Improved HTML editor

Split source/design view JavaScript IntelliSense and debugging CSS manager and debugger

Integrated WPF, WCF, WF designers Runs a bit slower

6

Visual Studio 2008 Enhancements

7

LINQ and LINQ to SQL

Query, set and transform operations for .NET Querying data becomes a core programming concept Works with all types and shapes of data

Relational databases XML Objects …

Works with all .NET languages C# and VB and have integrated language support

LINQ to SQL Powerful ORM framework

8

var contacts = from c in customers where c.State == "WA" select new { c.Name, c.Phone };

var contacts = customers .Where(c => c.State == "WA") .Select(c => new { c.Name, c.Phone });

Extension methods

Lambda expressions

Query expressions

Object initializers

Anonymous types

Local variable type inference

Expression trees

Automatic properties

Partial methods

9

Implicitly typed locals Extension methods Lambda Expressions Object initializers Anonymous types Nullable types Query expressions XML LiteralsXML Literals

Dim x = 5Dim x = 5

<Extension><Extension> Sub Randomize(col As Collection)Sub Randomize(col As Collection)

Function(c) c.NameFunction(c) c.Name

New Point With { .x = 1, .y = 2 }New Point With { .x = 1, .y = 2 }

New With { c.Name, c.Phone }New With { c.Name, c.Phone }

From … Where … SelectFrom … Where … Select

If emp.DOB >= Today If emp.DOB >= Today

10

SqlConnection c = new SqlConnection(…);SqlConnection c = new SqlConnection(…);c.Open();c.Open();SqlCommand cmd = new SqlCommand(SqlCommand cmd = new SqlCommand( @"SELECT c.Name, c.Phone@"SELECT c.Name, c.Phone FROM Customers cFROM Customers c WHERE c.City = @p0");WHERE c.City = @p0");cmd.Parameters["@p0"] = "London";cmd.Parameters["@p0"] = "London";DataReader dr = c.Execute(cmd);DataReader dr = c.Execute(cmd);while (dr.Read()) {while (dr.Read()) { string name = dr.GetString(0);string name = dr.GetString(0); string phone = dr.GetString(1);string phone = dr.GetString(1); DateTime date =dr.GetDateTime(2);DateTime date =dr.GetDateTime(2);}}dr.Close();dr.Close();

Queries in Queries in quotesquotes

Loosely bound Loosely bound argumentsarguments

Loosely typed Loosely typed result setsresult sets

No compile time No compile time checkschecks

11

public class Customer { … }public class Customer { … }

public class Northwind: DataContextpublic class Northwind: DataContext{{ public Table<Customer> Customers;public Table<Customer> Customers; … …}}

Northwind db = new Northwind(…);Northwind db = new Northwind(…);var contacts =var contacts = from c in db.Customersfrom c in db.Customers where c.City == "London"where c.City == "London" select new { c.Name, c.Phone };select new { c.Name, c.Phone };

Classes describe data

Strongly typed connection

Integrated query syntax

Strongly typed results

Tables are like collections

13

LINQ to SQL

LINQ to SQL Designer in VS 2008

NorthwindDataContext db = NorthwindDataContext db = new NorthwindDataContext();new NorthwindDataContext();var customers = from c in db.Customersvar customers = from c in db.Customers where c.City == "London" select c;where c.City == "London" select c;foreach (var cust in customers)foreach (var cust in customers) Console.WriteLine(Console.WriteLine( "id = {0}, City = {1}","id = {0}, City = {1}", cust.CustomerID, cust.City); cust.CustomerID, cust.City);

14

LINQ to Objects API queries over any .NET collection, such as arrays and

generic lists. LINQ over XML (XLinq)

Core functionality of the XLinq API such as load, modify, and save XML documents

LINQ to SQL provides direct access to database tables from the

programming environment LINQ to Entities

enables developers to use LINQ over EDM models LINQ to Dataset

allows the full expressivity of LINQ to be used over Datasets.

15

New ASP.NET Data Controls

<asp:ListView>

<asp:DataPager>

<asp:LinqDataSource>

16

ListView Control

Combines templating capabilities of the Repeater control and the data editing capabilities of the DataGrid

complete control of how the ListView presents your data through 11 templates. LayoutTemplate AlternatingItemTemplate EditItemTemplate EmptyDataTemplate EmptyItemTemplate GroupTemplate GroupSeparatorTemplate InsertItemTemplate ItemTemplate ItemSeparatorTemplate SelectedItemTemplate

most important templates are the LayoutTemplate and the ItemTemplate. LayoutTemplate HTML defines the overall look and feel ItemTemplate HTML specifies how each bound record will appear.

17

ListView

<asp:ListView ID="ListView2" runat="server" DataSourceID="MyDataSource"> <LayoutTemplate> <asp:PlaceHolder ID="itemPlaceholder" runat="server"> </asp:PlaceHolder> </LayoutTemplate> <ItemTemplate> <asp:Label ID="Company" runat="server" Text='<%# Eval("CompanyName") %>' /> <br /> <asp:Label ID="CityLabel" runat="server" Text='<%# Eval("City") %>' /> <hr /> </ItemTemplate> </asp:ListView>

18

DataPager

provides paging capabilities. points at the control it provides paging

support for. As an external control place it anywhere on the page, and configure

look works with controls that implement the

IPageableItemContainer interface ( ListView )

19

DataPager

20

LinqData Source Control

Bind to a Linq Data Model

21

ASP.NET 3.5 Extensions ASP.NET MVC Framework

Model View Controller framework for ASP.NET ( now in Beta ) ASP.NET Dynamic Data

Dynamic data controls for displaying/editing table data in ASP.NET ASP.NET AJAX

Browser history support ADO.NET Data Services

Create REST addressable services endpoints for your data and consume with AJAX and Silverlight

Silverlight Controls for ASP.NET Integrate Silverlight into ASP.NET applications

22

ASP.NET Dynamic Data

Create quickly a rich data-driven Web sites Like in Ruby on Rails and Django (in Python) Based on LINQ to SQL data model Dynamically display data based on the data model of

the underlying database Pages are created automatically (zero code)

Based on highly customizable templates Uses dynamic data fields – user controls that

render standard data field types

23

ASP.NET Dynamic Data

24

ASP.NET AJAX

All AJAX 1.0 features in .NET 3.5 Enhancements to UpdatePanel WCF JSON Services

Better Development Experience JavaScript Intellisense JavaScript Debugging ASP.NET AJAX Extender

Control Support

ASP.NET 2.0VS 2005

v1.0

ASP.NET 3.5VS 2008

v1.0 v3.5

25

ASP.NET AJAX Control Toolkit Separate download from core

ASP.NET AJAX Library of free ASP.NET AJAX

enabled controls Download from http://ajax.asp.net

Developed using a collaborative source model Licensed under Microsoft Public

License (Ms-PL) All source freely available

~ 40 controls as of today