Whatsnewasp3 5part1
Whatsnewasp3 5part1
5 New Features
Agenda
2
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 2007
ASP.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
3
What’s New in .NET Framework 3.5?
4
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
5
Visual Studio 2008 Enhancements
6
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
7
var contacts = Query
expressions
from c in customers
where c.State == "WA"
Expression
Local variable select new { c.Name, c.Phone }; trees
type inference
Lambda Automatic
expressions properties
var contacts =
Partial
customers methods
.Where(c => c.State == "WA")
.Select(c => new { c.Name, c.Phone });
Extension
methods Anonymous Object
types initializers
8
Dim x = 5
Implicitly typed locals
Extension methods <Extension>
Sub Randomize(col As Collection)
Lambda Expressions
Function(c) c.Name
Object initializers
Anonymous types New Point With { .x = 1, .y = 2 }
9
SqlConnection c = new SqlConnection(…);
Queries in
c.Open();
quotes
SqlCommand cmd = new SqlCommand(
@"SELECT c.Name, c.Phone
FROM Customers c Loosely bound
WHERE c.City = @p0"); arguments
cmd.Parameters["@p0"] = "London";
DataReader dr = c.Execute(cmd);
while (dr.Read()) { Loosely typed
string name = dr.GetString(0); result sets
string phone = dr.GetString(1);
DateTime date =dr.GetDateTime(2);
}
dr.Close(); No compile time
checks
10
Classes describe
public class Customer { … } data
public class Northwind: DataContext
{ Tables are like
public Table<Customer> Customers; collections
…
}
Strongly typed
connection
Northwind db = new Northwind(…);
var contacts =
from c in db.Customers Integrated query
syntax
where c.City == "London"
select new { c.Name, c.Phone };
Strongly typed
results
11
LINQ to SQL
LINQ to SQL
Designer in
VS 2008
NorthwindDataContext db =
new NorthwindDataContext();
var customers = from c in db.Customers
where c.City == "London" select c;
foreach (var cust in customers)
Console.WriteLine(
"id = {0}, City = {1}",
cust.CustomerID, cust.City);
13
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.
14
New ASP.NET Data Controls
<asp:ListView>
<asp:DataPager>
<asp:LinqDataSource>
15
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.
16
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>
17
DataPager
18
DataPager
19
LinqData Source Control
20
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
21
ASP.NET Dynamic Data
22
ASP.NET Dynamic Data
23
ASP.NET AJAX
All AJAX 1.0 features in
v1.0
.NET 3.5
ASP.NET 2.0
Enhancements to UpdatePanel
VS 2005 WCF JSON Services
Better Development
Experience
v1.0 v3.5 JavaScript Intellisense
ASP.NET 3.5
JavaScript Debugging
VS 2008 ASP.NET AJAX Extender
Control Support
24
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
25