Presentation is loading. Please wait.

Presentation is loading. Please wait.

Jonathan Aneja Program Manager Microsoft Corporation Session Code: DTL336 Anders Hejlsberg Technical Fellow Microsoft Corporation.

Similar presentations


Presentation on theme: "Jonathan Aneja Program Manager Microsoft Corporation Session Code: DTL336 Anders Hejlsberg Technical Fellow Microsoft Corporation."— Presentation transcript:

1

2 Jonathan Aneja Program Manager Microsoft Corporation Session Code: DTL336 Anders Hejlsberg Technical Fellow Microsoft Corporation

3 The Evolution of Visual Basic Visual Basic 1.0-3.0 Visual Basic 4.0-6.0 Visual Basic 7.0-9.0 Visual Basic 10.0 Visual Basic 11.0+

4 VB's Fraternal Twin: C# Co-Evolution

5 Trends Declarative ConcurrentDynamic

6 Declarative Programming What How ImperativeDeclarative

7 Dynamic vs. Static Dynamic Languages Simple and succinctImplicitly typedMeta-programmingNo compilation Static Languages RobustPerformantIntelligent toolsBetter scaling

8 Concurrency

9 VB10 Language Features Jonathan Aneja Program Manager Microsoft Visual Basic

10 Auto-implemented Properties Property FirstName As String Property LastName As String Initializers: Property ID As Integer = -1 Property Suppliers As New List(Of Supplier)

11 Collection Initializers Dim x As New List(Of Integer) From {1, 2, 3} Dim list As New Dictionary(Of Integer, String) From {{1, “Bart”}, {2, “Lisa”}, {3, “Homer”}} Array Literals: Dim a = {1, 2, 3} 'infers Integer() Dim b = {1, 2, 3.5} 'infers Double()

12 Statement Lambdas Dim items = {1, 2, 3, 4, 5} Array.ForEach(items, Sub(n) Console.WriteLine(n)) Array.ForEach(items, Sub(n) If n Mod 2 = 0 Then Console.WriteLine(n) End Sub) 'Count the number of even items in the array Dim total = items.Count(Function(n) Return (n Mod 2 = 0) End Function)

13 Implicit Line Continuation Function Go( ByVal x As Integer, ByVal y As Integer ) Dim query = From n In { 123, 456, } Order By n Select n + x

14 Python Binder Ruby Binder COM Binder JavaScript Binder Object Binder.NET Dynamic Programming Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching IronPythonIronPythonIronRubyIronRubyC#C#VB.NETVB.NETOthers…Others…

15 Interop with Dynamic Languages 'Load a file from Python into memory Dim random As Object = python.UseFile("random.py") Dim items = {1, 2, 3, 4, 5, 6, 7} 'Dynamic (late-bound) call to Python function random.shuffle(items) 'Print out the shuffled array Array.ForEach(items, Sub(n) Console.WriteLine(n))

16 Generic Variance Dim apples As IEnumerable(Of Apple) = New List(Of Apple) 'Covariance (Apple inherits from Fruit) Dim fruits As IEnumerable(Of Fruit) = apples 'Contravariance - Func(Of In T, Out R) Dim predicate As Func(Of Fruit, Boolean) = Function(f) f.Color = "Red" apples.Where(predicate)

17 Compiling without PIAs Use PIAs at design-time, not runtime No need to deploy PIA to user’s machine Compiler embeds the specific members of the specific types used into your assembly. (Prevents assembly from becoming bloated)

18 Compiler as a Service Compiler Source code Source File Source code.NET Assembly Class Field public Foo private string X X Meta-programmingRead-Eval-Print Loop Language Object Model DSL Embedding

19 Compiler as a Service Jonathan Aneja Program Manager Microsoft Visual Basic

20 DTL05 – HOL What's New in Microsoft Visual Basic 9 DTL03 – INT Meet the Microsoft Visual Studio Team DTL402 – How LINQ Works: A Deep Dive into the Visual Basic and C# Implementations Related Content DTL315 – Getting the Most from Lambda Expressions DTL321 – Microsoft Visual Basic IDE Tips and Tricks DTL331 – The Future of C# DTL12 – HOL Microsoft Visual Basic 9 and LINQ

21 Track Resources VB Team Blog – http://blogs.msdn.com/vbteam http://blogs.msdn.com/vbteam Beth Massi's Blog – http://blogs.msdn.com/bethmassi http://blogs.msdn.com/bethmassi MSDN VBasic Site – http://msdn.com/vbasic http://msdn.com/vbasic Questions? Comments? Feature Requests? E-mail me at JonAneja@microsoft.comJonAneja@microsoft.com

22 Track Resources Visit the DPR TLC for a chance to win a copy of Visual Studio Team Suite. Daily drawing occurs every day in the TLC at 4:15pm. Stop by for a raffle ticket http://www.microsoft.com/visualstudio http://www.microsoft.com/visualstudio/en- us/products/teamsystem/default.mspx Please visit us in the TLC blue area

23 www.microsoft.com/teched Sessions On-Demand & Community http://microsoft.com/technet Resources for IT Professionals http://microsoft.com/msdn Resources for Developers www.microsoft.com/learning Microsoft Certification and Training Resources www.microsoft.com/learning Microsoft Certification & Training Resources Resources

24 Complete an evaluation on CommNet and enter to win!

25

26 © 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.


Download ppt "Jonathan Aneja Program Manager Microsoft Corporation Session Code: DTL336 Anders Hejlsberg Technical Fellow Microsoft Corporation."

Similar presentations


Ads by Google