300 likes | 456 Views
Lap Around Visual Studio 2008 and the .NET Framework 3.5. Brian H. Prince Director, Application Development Consulting Practice Quick Solutions, Inc. This material was adopted from the VS2008 training kit. Agenda. .NET Framework & Visual Studio Roadmap .NET Framework 3.5 overview
E N D
Lap Around Visual Studio 2008 and the .NET Framework 3.5 Brian H. Prince Director, Application Development Consulting Practice Quick Solutions, Inc. This material was adopted from the VS2008 training kit.
Agenda • .NET Framework & Visual Studio Roadmap • .NET Framework 3.5 overview • Visual Studio design goals • Lap around new features
What is the .NET Framework 3.5? .NET Framework 3.5 CLR Add-in Framework LINQ ASP.NET 3.5 Additional Enhancements .NET Framework 3.0 + SP1 Windows Presentation Foundation Windows Communication Foundation Windows Workflow Foundation Windows CardSpace .NET Framework 2.0 + SP1
.NET Framework & VS Roadmap RTM 3.0 Major Releases • “Rosario” 3.5 RTM • VS 2008 Beta 2 • .NET Framework 3.5 Beta 2 • VS Extensions for WF • VS Extensions for WCF/WPF CTP ASP.NET AJAX 1.0 Out of band Releases 2006 2007 2008
Visual Studio 2008 Design Goals • 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#
Visual Studio Enhancements • 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
Lifecycle Tools Enhancements • 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…
C# 3.5 Local Variable Type Inference • Object Initializers • Collection Initializers • Anonymous Types • Auto-Implemented Properties • Extension Methods • Lambdas • Query Expressions • Expression Trees • Partial Methods
Object Initializers Person p = new Person() { FirstName = "John", LastName = "Doe“}; Person p = new Person() p.FirstName = “John”; p.LastName = “Doe”;
Collection Initializers var cookies = new List<Cookie> { new Cookie("cookie1", "1"), new Cookie("cookie2", "2") };
Local Variable Type Inference Person aPerson = new Person(24); varaPerson = new Person(24);
Anonymous Types public class Cust { public intCustId { get; set; } private string _CustName; public string CustName { get { return _CustName; } set { _CustName = value; } } } varobj = new { CustId = 1, CustName = "C#" };
Auto-Implemented Properties private string _Test1;public string Test1 { get { return _Test1; } set { _Test1 = value; } } public string Test { get; set; }
Extension Methods • 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(); }
Other Stuff • Lambda Expressions • Expression Trees • Partial Methods • …
Visual Basic 9.0 Features • 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!
Interop Forms Toolkit • 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 Interop (COM) VB.NET Form(s) VB6 Form(s)
Language INtegrated Query (LINQ) New programming model for data access that integrates query support directly within the .NET languages • 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
LINQ Architecture & Components C# 3.0 VB 9.0 Others… .NET Language Integrated Query LINQ toObjects LINQ toDataSets LINQ toSQL LINQ toXML <book> <title/> <author/> <year/> <price/> </book> Objects Relational XML
Sample of LINQ varexpensiveInStockProducts = from p in products where p.UnitsInStock > 0 && p.UnitPrice > 3.00M select p;
Base Class Library • 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 Scripting Hosts Community Microsoft Silverlight ASP.NET Hosts Languages IronPython IronRuby JSx VBx Languages Dynamic Language Runtime(DLR) Frameworks To be delivered by: Common Language Runtime (CLR) DLR Team Partner Teams Community
Services • 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
Windows Applications • 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”)
Application Model • 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
Data Improvements • Support for Xlinq binding • Maps XML through TypeDescriptor objects • Path, notXPath • 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
Data Improvements • 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 • PreviousltDataSet Rows = funky identity semantics, lots of refreshes and weird behavior • Now identity semantics are fixed • Much faster with changing data
Web Applications • 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
Office Applications • 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
Mobile Applications • 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