Ahmed Salijee Developer Advisor

Slides:



Advertisements
Similar presentations
.NET 3.5 SP1 New features Enhancements Visual Studio 2008 SP1 New features Enhancements Additional features/enhancements.
Advertisements

 Anders Hejlsberg Technical Fellow Microsoft Corporation TL16.
Shyam Pather Development Manager Microsoft Session Code: DTL402.
Ken Casada Developer Evangelist Microsoft Switzerland
Visual Studio 2010 and.NET Framework 4 Training Workshop.
ASP.NET 3.5 Mike Ormond Developer & Platform Group Microsoft Ltd
What’s New in C# 4.0? Pavel Yosifovich SELA Group
NameTitle Microsoft Corporation. For businesses with Visual Basic 6.0 assets, Visual Basic 2008 is the natural, most productive choice for Windows, Web,
Louis de Klerk Consultant Inobits Consulting Agenda Visual Studio 2010 Goals Demos Modern Client LOB Applications Modern Office Business Applications.
Gurinder CTO. Lisa Feigenbaum Microsoft Program Manager Visual Studio Languages
demo video demo Dynamic Languages Simple and succinctImplicitly typedMeta-programmingNo compilation Static Languages RobustPerformantIntelligent.
Louis de Klerk Consultant Inobits Consulting DTL308.
Larry Mead Microsoft Corp. Jon Flanders Session Code: INT203.
 Ed Pinto PM Microsoft Corporation. Host “Dublin”(IIS/WAS + App Server Extensions) Microsoft ®.NET Workflow Service.exe Host “Dublin”(IIS/WAS + App.
Brian Noyes Chief Architect IDesign Inc ( SOA201.
Dynamic Languages & The.Net Framework Shay Friedman ActionBase
Alex Turner C# Compiler PM Session Code: DEV402 On the Dynamic menu today… The Dynamic Language Runtime How does it relate to the CLR? Dynamic in C#
Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Samantha Durante Program Manager Microsoft Corporation WUX305.
 Joshua Goodman Group Program Manager Microsoft Corporation.
Tony Whitter Principal, Whitter Technology WMB401 Author Jeff Neafsey Mobility Architect Microsoft.
Kenny Wolf Architect WCF and WF
Lisa Feigenbaum Microsoft Program Manager Session Code: DEV314.
Jeff King Senior Program Manager Microsoft Session Code: WIA204.
J. Michael Palermo IV Director of Development Interface, USA WUX203.
1 ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd
Parallel Pattern Library Resource Manager Task Scheduler Task Parallel Library Task Parallel Library Parallel LINQ Managed Native Key: Threads Operating.
Eric Carter Development Manager Microsoft Corporation OFC324.
Bart J.F. De Smet Software Development Engineer Microsoft Corporation Session Code: DTL315.
Scott Hanselman Principal Program Manager Microsoft DTL303.
Rabi Satter Sr. Program Manager Microsoft Corporation DTL301.
Jonathan Aneja Program Manager Microsoft Corporation Session Code: DTL336 Anders Hejlsberg Technical Fellow Microsoft Corporation.
Microsoft Confidential Host (.exe, IIS/WAS,.NET Services, …) WF Runtime Extensions Tracking Persistence … … Tooling VS Designer VS Debugger Rehosted.
Arend-Jan Speksnijder Solutions Architect Microsoft Dynamics Lighthouse team Dynamics AX2009 Technical Overview and Demo (DYN301)
Lap Around the.NET Framework 4 NameTitleCompany. A Look Back….NET 1.0.NET 1.1.NET NET CTP CLR 1.0 CLR 1.1 CLR 2.0 CLR.
Gavin Russell-Rockliff BI Technical Specialist Microsoft BIN202.
Warren Stevens-Baytopp Director YoungBlood Consultants Session Code BIN303.
Luke Hoban Senior Program Manager Microsoft Session Code: DTL319.
Luke Hoban Senior Program Manager Microsoft Session Code: DTL310.
Scott Morrison Program Manager Microsoft Corporation Session Code: WUX308.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Wely Microsoft MVP, Visual C#
Ian Griffiths Principle Interact Software Ltd. Brian A. Randell Senior Consultant MCW Technologies DEV302.
Visual Studio 2010 and .NET Framework 4 Name Title
6/2/2018 3:37 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Taking ASP.NET AJAX to the Next Level
6/13/2018 1:23 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
6/26/2018 9:02 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Microsoft Ajax Taking Ajax to the Next Level
9/11/2018 5:53 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
C# in the Big World Mads Torgersen Program Manager
Tech·Ed North America /14/2018 7:13 PM
Visual Studio 2010 and .NET Framework 4 Training Workshop
Implementing RESTful Services Using the Microsoft .NET Framework
Sysinternals Tutorials
Tech·Ed North America /18/2018 5:14 PM
Tech·Ed North America /20/2018 3:26 AM
Tech·Ed North America /28/ :50 AM
12/5/2018 3:24 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
12/27/ :01 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Data Driven ASP.NET Web Forms Applications Deep Dive
Tech Ed North America /1/ :36 AM Required Slide
Intro to Workflow Services and Windows Server AppFabric
Tech·Ed North America /17/2019 1:47 AM
Microsoft SharePoint Conference 2009 Jon Flanders
Building Silverlight Apps with RIA Services
How and When to Use MEF: Too Much Is Never Enough
6/20/2019 1:09 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Presentation transcript:

Ahmed Salijee Developer Advisor

What This Is

Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Controls WindowsForms Common Language Specification VBC++C#J#… Visual Studio.NET A Look Back…

.NET Framework 3.5 “Servicing Release” WPF Enhancements.NET Framework 3.5 LINQLINQ WF & WCF Enhancements Add-inFrameworkAdd-inFramework WPF 3.5 A Look Back… WPFWPFWCFWCFWFWFCardSpaceCardSpace.NET Framework 3.0.NET Framework 2.0 SP1 SP1 Entity Framework ADO. NET Data Services ASP.NET MVC

A Look Back….NET 1.0.NET 1.1.NET NET Beta CLR 1.0 CLR 1.1 CLR 2.0 CLR 4 SP1

CLR/BCL Data Middle Tier/Services Language Enhancements User Interface Languages DLRDLR Type Equivalence VarianceVariance

Language - Variance, Dynamic

Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed Why the DLR?

Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed Dynamic Language Runtime Why the DLR?

Python Binder Ruby Binder COM Binder Runtime Binder.NET Dynamic Programming Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching Iron Python IronRubyIronRubyC#C#VB.NETVB.NETOthers…Others…

Dynamically Typed Objects Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res); object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 10, 20); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 10, 20); int sum = Convert.ToInt32(res); dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); Statically typed to be dynamic Dynamic method invocation Dynamic conversion

Type Equivalence Interop Assemblies translate between managed code and COM For each interface, struct, enum, delegate, and member, contains a managed equivalent with marshalling data

However! Primary Interop Assemblies cause many pain points…

Go Away, PIA! 1.Compilers embed the portions of the interop assemblies that the add-ins actually use 2.Runtime ensures the embedded definitions of these types are considered equivalent

C# Language Enhancements object fileName = "Test.docx"; object missing = System.Reflection.Missing.Value; doc.SaveAs(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); object fileName = "Test.docx"; object missing = System.Reflection.Missing.Value; doc.SaveAs(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); namedRange.Find("dog", xlByRows, MatchCase: True); Named argument dynamic result = namedRange.Find(MatchCase: True, what: "dog", searchOrder: xlByRows); dynamic result = namedRange.Find(MatchCase: True, what: "dog", searchOrder: xlByRows); Arguments evaluated in order written Named arguments can appear in any order doc.SaveAs("Test.docx"); Optional Params result.ClearContents(); Late-binding through “dynamic” type

Co- and Contra-variance void Process(object[] objects) { … } string[] strings = GetStringArray(); Process(strings); string[] strings = GetStringArray(); Process(strings); void Process(object[] objects) { objects[0] = "Hello"; // Ok objects[1] = new Button(); // Exception! } void Process(object[] objects) { objects[0] = "Hello"; // Ok objects[1] = new Button(); // Exception! } List strings = GetStringList(); Process(strings); List strings = GetStringList(); Process(strings); void Process(IEnumerable objects) { … }.NET arrays are co-variant …but not safely co-variant Until now, C# generics have been invariant void Process(IEnumerable objects) { // IEnumerable is read-only and // therefore safely co-variant } void Process(IEnumerable objects) { // IEnumerable is read-only and // therefore safely co-variant } C# 4.0 supports safe co- and contra-variance

Safe Co- and Contra-variance public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { T Current { get; } bool MoveNext(); } public interface IEnumerator { T Current { get; } bool MoveNext(); } public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { T Current { get; } bool MoveNext(); } public interface IEnumerator { T Current { get; } bool MoveNext(); } out = Co-variant Output positions only IEnumerable strings = GetStrings(); IEnumerable objects = strings; IEnumerable strings = GetStrings(); IEnumerable objects = strings; Can be treated as less derived public interface IComparer { int Compare(T x, T y); } public interface IComparer { int Compare(T x, T y); } public interface IComparer { int Compare(T x, T y); } public interface IComparer { int Compare(T x, T y); } IComparer objComp = GetComparer(); IComparer strComp = objComp; IComparer objComp = GetComparer(); IComparer strComp = objComp; in = Contra-variant Input positions only Can be treated as more derived

Let’s Fix It For Once And All! string GetDescription(int x) { Contract.Requires( 0 < x ); Contract.Ensures( Contract.Result () != null ); … } string GetDescription(int x) { Contract.Requires( 0 < x ); Contract.Ensures( Contract.Result () != null ); … } Design-by-Contract meets.NET!

Languages Support for DLR Variance – “things work the way you expect” Code Contracts Moving towards language parity – C#/VB Functional Programming – F# Better/Easier COM Interop

Data Middle Tier/Services Languages Core Runtime/Class Library Enhancements User Interface CLR/BCL ParallelParallelSxS**SxS**MEFMEF

Parallel Enhancements

The Parallel Computing Initiative Letting the brightest developers solve business problems, not concurrency problems. “Concurrency for the masses”

Parallel Computing with.NET 4 Task Parallel Library (TPL) Parallel LINQ (PLINQ) Coordination Data Structures (CDS) System.Threading Improvements

Parallel LINQ Parallel LINQ (PLINQ) enables developers to easily leverage manycore with a minimal impact to existing LINQ programming model var q = from p in people where p.Name == queryInfo.Name && p.State == queryInfo.State && p.Year >= yearStart && p.Year <= yearEnd orderby p.Year ascending select p; var q = from p in people where p.Name == queryInfo.Name && p.State == queryInfo.State && p.Year >= yearStart && p.Year <= yearEnd orderby p.Year ascending select p;

MEF

Managed Extensibility Framework? The Managed Extensibility Framework (MEF) is a new library in the.NET Framework that enables greater reuse of applications and components. Using MEF,.NET applications can make the shift from being statically compiled to dynamically composed

MEF Basics… Export it. Import it. Compose it.

Open/Closed Principle Software entities should be open for extension, but closed for modification.

Known vs. Unknown

CLR/BCL Middle Tier/Services Languages Data Enhancements User Interface Data Model First POCO*POCO*

Entity Framework – Model First and POCO

The next version of the Entity Framework In.NET 4.0 The next version of the Entity Framework POCO Lazy-loading Foreign Keys ObjectSet & IObjectSet Model First

CLR/BCL Data Languages Middle Tier Enhancements User Interface Middle Tier/Services Service Discovery Workflow v4

Moving Towards WF 4.0 Major themes in WF 4.0 include… XAML-only model Enhanced base activity library Simplifying custom activities Simplifying data flow Runtime/designer improvements

New Flow Chart Model Simple step-by-step model, with decisions and switches Allows you to return to previous activities in the workflow Flowcharts offer a middle ground between the sequential and state machine models

Arguments and Variables Flow Chart Parallel Sequence Send Message DelayDelay Receive Message Generate Order InArgument OutArgument InArgument OutArgument Process Order Send Report Variables Activities are the primitive abstraction for behavior Activities define Arguments to declare the type of data that can flow into or out of an Activity Activities are composable with other ActivitiesActivities have user-defined Variables for data storageActivities bind Arguments to in-scope Variables

WCF Service Discovery

New WCF 4.0 Features Simplified configuration Discovery Router service Improved REST support Misc. advanced features

Service Discovery WCF 4.0 provides two types of service discovery Clients can discover services on a local subnet (UDP-based) Clients can discover services on a larger "managed" network (beyond the local subnet) through a discovery proxy AdhocAdhocManagedManaged Enabled via the serviceDiscovery behavior, clients "discover" services using a DynamicEndpoint

CLR/BCL Data Middle Tier/Services Languages UI Enhancements User Interface WPFWPFASP.NETASP.NET

WPF – Controls and Touch

WPF 4 New Controls DataGrid, DatePicker etc Visual State Manager Multi-Touch Windows 7 Enhancements Tasklists (Beta 2) Dialog Boxes Text Enhancements in Beta 2

ASP.NET Enhancements

ASP.NET 4.0 ASP.NET 4.0 WebForms Control Rendering, Control IDs View State Website URLs XHTML and Accessibility AJAX Client-Side Templates, Controls and Data Binding Read/Write Database Data from the Browser Cross-Browser Compatible Not tied to ASP.NET

ASP.NET AJAX Client-Side Templates Client-Side Controls Client-Side Data Binding Read/Write Database Data from the Browser Cross-Browser Compatible Not tied to ASP.NET

AJAX 4 - Client Templates Server-Side (WebForms): Client-Side {{ Name }}

AJAX 4 - DataContext ASMXASMX WCFWCF ADO.NET Data Services ADO.NET ASP.NET MVC JsonResult JsonResult Etc.Etc. 1. Request 2. JSON Data DataContextDataContext 3. Modify Data 4. Save Data * DataContext includes change tracking automatically

Data Middle Tier/Services Languages Core Runtime/Class Library Enhancements User Interface CLR/BCL ParallelParallelSxS**SxS**MEFMEF

CLR InProc

CLR 4 - In-Process Side-By-Side.NET 2.0.NET add-in Host Process (i.e. Outlook) 3.0 add-in 3.5 add-in 4.0 add-in

Resources Will post on Other breakouts will have more details

Related Sessions (.NET 4) WhenWhatAreaCode Mon 8:00Future Directions for Visual BasicLanguagesDTL308 Mon 17:15The State of Dynamic Languages on the Microsoft.NET Framework LanguagesDTL304 Tues 9:15Introduction to F#LanguagesDTL:319 Tues 16:15The Future of C#LanguagesDTL310 Mon 9:15The Manycore Shift: Making Parallel Computing Mainstream CLR/BCLDTL206 Tues 17:30Managed Extensibility FrameworkCLR/BCLDTL315 Tues 14:30A First Look at WCF and WF in the Microsoft.NET Framework 4.0 MiddleSOA201 Mon 17:15The ADO.NET Entity Framework 4DataDTL402 Tues 17:30An Introduction to the ADO.NET Data Services Framework v1.5 DataDTL208

Related Sessions (.NET 4) TImeTopicAreaCode Mon 15:45Building Scalable and Available Web Applications with the Microsoft Code Name "Velocity" WebWUX301 Tues 10:50A Lap around Microsoft ASP.NET 4.0 and Microsoft Visual Studio 2010 WebWUX203 Wed 9:00Taking AJAX to the Next Level**WebWUX306 Mon 8:00Building Rich Business Clients in WPF: New Tools and Controls for Windows Presentation Foundation ClientWUX303 Tues 13:15Microsoft Visual Studio 2010 Overview for the Business Application Developer GeneralDTL309

Required Slide Complete a session evaluation and enter to win! 10 pairs of MP3 sunglasses to be won

Sessions On-Demand & Community Resources for IT Professionals Resources for Developers Microsoft Certification & Training Resources Resources Required Slide Speakers, TechEd 2009 is not producing a DVD. Please announce that attendees can access session recordings at TechEd Online. Required Slide Speakers, TechEd 2009 is not producing a DVD. Please announce that attendees can access session recordings at TechEd Online. Microsoft Certification and Training Resources

© 2009 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. Required Slide