Welcome to MSDN Blogs Sign in | Join | Help

Lisa Feigenbaum

Visual Studio Languages Community Program Manager
TechEd Europe 2009 and Twitter Analyzer 1.0

I’ve included my session materials here from TechEd Europe 2009 in Berlin.

Powerpoint Presentation

“Twitter Analyzer” Demo Solution

 

(Note: This application was built using Visual Studio 2010 Beta 2, IronPython 2.6 CTP for .NET 4.0 Beta 2 and Office 2007.)

 

DEV314 - A Lap around Microsoft Visual Basic in Microsoft Visual Studio 2010

Come learn about what’s coming in the next release of Visual Basic. Code faster with language features like implicit line continuation, auto-implemented properties, statement lambdas, interoperability with dynamic languages, simplified Office application deployment, and more! Understand, navigate, and test code more easily than ever with the latest code-focused tools. Take advantage of multi-monitor support, zoom, and rich extensibility in the newly designed IDE. In this demo-packed session, we’ll show how to use all of these new capabilities to boost your development experience with Visual Studio 2010!



Visual Basic Code for .NET Parallel Extensions Video

Here’s a great video with Stephen Toub and Jason Olson that gives a 15min overview of what’s new for managed developers doing parallel programming with .NET 4.0.

Video: Using the Parallel Extensions to the .NET Framework

Welcome back to another Visual Studio 2010 and .NET Framework 4.0 Week video. In this latest installment, we catch up with Stephen Toub, Senior Program Manager on the Parallel Computing Platform team. Stephen takes us through a whirlwind tour of many different Parallel Extensions features, showing them in action. Covered are features like Parallel LINQ, Parallel.For, the Task Parallel Library, and some of the new Coordination Data Structures.

image

I’ve included a VB version of the code below, in case you want to follow along in Visual Basic. I’ve also attached the solution at the end of this post. The solution runs on Visual Studio 2010 Beta 2.

Code Snippet
  1. Imports System.Threading
  2. Imports System.Threading.Tasks
  3. Imports System.Collections.Concurrent
  4. Module Module1
  5.     Sub Main()
  6.         While True
  7.             'Non-Parallel LINQ example
  8.             Console.WriteLine("Non-Parallel LINQ Example")
  9.             Console.WriteLine(Time(Sub()
  10.                                        Dim dict = (From i In Enumerable.Range(0, 2000000)
  11.                                                   Where IsPrime(i)
  12.                                                   Select i).ToDictionary(Function(x) x)
  13.                                    End Sub))
  14.             'Parallel LINQ example (PLINQ)
  15.             Console.WriteLine(vbCrLf & "Parallel LINQ Example")
  16.             Console.WriteLine(Time(Sub()
  17.                                        Dim dict = (From i In Enumerable.Range(0, 2000000).AsParallel
  18.                                                   Where IsPrime(i)
  19.                                                   Select i).ToDictionary(Function(x) x)
  20.                                    End Sub))
  21.             'Parallel, Ordered LINQ example
  22.             Console.WriteLine(vbCrLf & "Parallel & Ordered LINQ Example")
  23.             Console.WriteLine(Time(Sub()
  24.                                        Dim dict = (From i In Enumerable.Range(0, 2000000).AsParallel.AsOrdered
  25.                                                   Where IsPrime(i)
  26.                                                   Select i).ToDictionary(Function(x) x)
  27.                                    End Sub))
  28.             'Non-Parallel, Non-LINQ (uses a For loop)
  29.             Console.WriteLine(vbCrLf & "Non-Parallel & Non-LINQ Example (uses a For loop)")
  30.             Console.WriteLine(Time(Sub()
  31.                                        Dim primes = New Queue(Of Integer)
  32.                                        For i = 0 To 2000000
  33.                                            If IsPrime(i) Then primes.Enqueue(i)
  34.                                        Next
  35.                                    End Sub))
  36.             'Parallel, Non-LINQ (uses Parallel.For, which is part of the Parallel Task Library in System.Threading.Tasks).
  37.             Console.WriteLine(vbCrLf & "Parallel For Example")
  38.             Console.WriteLine(Time(Sub()
  39.                                        'Queue is not thread safe.
  40.                                        'Dim primes = New Queue(Of Integer)
  41.                                        'Instead use ConcurrentQueue, which is a new .NET 4.0 collection in System.Collections.Concurrent.
  42.                                        Dim primes = New ConcurrentQueue(Of Integer)
  43.                                        Parallel.For(0, 2000000, Sub(i)
  44.                                                                     If IsPrime(i) Then primes.Enqueue(i)
  45.                                                                 End Sub)
  46.                                    End Sub))
  47.             Console.ReadLine()
  48.             'BlockingCollection Example
  49.             Dim primes2 = New BlockingCollection(Of Integer)
  50.             Dim t As Task = Task.Factory.StartNew(Sub()
  51.                                                       For Each prime In primes2.GetConsumingEnumerable()
  52.                                                           Console.WriteLine(prime)
  53.                                                       Next
  54.                                                   End Sub)
  55.             For i = 0 To 2000000
  56.                 If IsPrime(i) Then primes2.Add(i)
  57.             Next
  58.             primes2.CompleteAdding()
  59.             t.Wait()
  60.             Console.ReadLine()
  61.         End While
  62.     End Sub
  63.     Function IsPrime(ByVal valueToTest As Integer)
  64.         If valueToTest < 2 Then Return False
  65.         Dim bound As Integer = Math.Sqrt(valueToTest)
  66.         For i = 2 To bound
  67.             If valueToTest Mod i = 0 Then Return False
  68.         Next
  69.         Return True
  70.     End Function
  71.     Function Time(ByVal a As Action) As TimeSpan
  72.         Dim sw As Stopwatch = Stopwatch.StartNew()
  73.         a()
  74.         Return sw.Elapsed()
  75.     End Function
  76. End Module


Visual Studio 2010 & .NET Framework 4 Beta 2 Training

Make sure to check out the training kit and online training course available for Visual Studio 2010 & .NET Framework 4 Beta 2. These are great tools to get up to speed on all the updates in the latest release!

These materials are brought to you by our Framework & Tools Developer Evangelism team. Here’s where you can find these Developer Evangelists:

Enjoy,
Lisa


Here’s an update from Drew Robbins & team, with information on the training materials:

clip_image001[4]

Visual Studio 2010 & .NET Framework 4 Training Kit

This week, we released the October preview of the Visual Studio 2010 & .NET Framework 4 Training Kit. The content in this training kit has been tested with Beta 2 and is ready for you to use. clip_image002

Download: Visual Studio 2010 and .NET Framework 4 Training Kit

Training Course on Channel 9

Today, Channel 9 launches an online learning center that will play host to developer focused training courses created by developers for developers.  Channel 9 has always been about giving direct access to the engineers and future technologies from Microsoft.  These videos and labs, with links to extensive training kits, allow developers to get started on hands-on-learning about emerging technologies at your own pace.  clip_image004

Explore Visual Studio 2010 Beta 2 with a new training course on Channel 9

The developer evangelists who bring you the 10-4 Show are providing videos and labs for you to get familiar with .NET Framework 4 and Visual Studio 2010. This exclusive opportunity lets developers access free courseware online in a self-paced learning experience.

The online training course allows developers to search for and browse the content without downloading the full training kit.

Browse: Visual Studio 2010 and .NET Framework 4 Training Course

How to Download and Install Visual Studio 2010 Beta 2

Visual Studio 2010 Beta 2 is here! In this episode of 10-4, Brian Keller takes us through downloading and installing Visual Studio 2010 Ultimate Beta 2 and Visual Studio 2010 Team Foundation Server Beta 2. This time-compressed video will take you through all of the key things you need to know to get up and running quickly with beta 2. clip_image006

Watch: Brian’s 10-4 Episode on Channel9

Check out our show on Channel9:

clip_image008

Subscribe

clip_image009

See more VS10 at PDC!



Announcing Visual Studio 2010 Beta 2 and Videos Galore

There are a lot of Microsoft announcements that happened today!

Many of these disclosures happened today at 9am during Steve Ballmer’s keynote at the SharePoint Developers Conference (Video, Twitter). Please help spread the word!

In honor of VS 2010 Beta 2, we have a lot of great content prepared. The following MSDN pages aggregate our VS 2010 content, by language.

We also have a number of new videos prepared, which have been produced by Charlie Calvert, and presented by various members of the team (Sam Ng, Eric Lippert, Karen Liu, Dustin Campbell, DJ Park, Jonathan Aneja, Chris Smith, Avner Aharoni, and Chris Burrows). We will continue adding to these series leading up to RTM.

C# 4.0 Video Series

(Please click on the images below to access the videos. The full series is posted here.)

By Sam Ng and Charlie Calvert

clip_image002

 

By Sam Ng and Charlie Calvert

clip_image004

 

By Eric Lippert and Charlie Calvert

clip_image006

 

By Eric Lippert and Charlie Calvert

clip_image008

Channel9

(Please click on the image below to access the video.)

By Chris Burrows, Sam Ng and Charlie Calvert

clip_image024

VB and C# IDE Video Series

(This series includes both VS 2010 content and earlier. Please click on the images below to access the videos. The full series are posted here: VB & C#.)

By DJ Park and Charlie Calvert

clip_image010

By Karen Liu and Charlie Calvert

clip_image012

By Karen Liu and Charlie Calvert

clip_image014

 

By DJ Park and Charlie Calvert (this feature is C#-only)

clip_image016

 

By Dustin Campbell and Charlie Calvert

clip_image018

 

By Dustin Campbell and Charlie Calvert

clip_image020

 

By Dustin Campbell and Charlie Calvert

clip_image022

Visual Basic 10 Video Series

(Please click on the images below to access the video. More Visual Basic videos are available here.)

By Jonathan Aneja and Charlie Calvert

How Do I: Use Auto-Implemented Properties?

clip_image002[8]image

 

By Jonathan Aneja and Charlie Calvert

How Do I: Use Implicit Line Continuations in Visual Basic 10?

clip_image004[4] clip_image006[4]

F# Video Series

(Please click on the image below to access the video. More F# videos are available on http://fsharp.net.)

By Chris Smith and Charlie Calvert

How Do I: Use the Let Keyword?

clip_image002[11]



VB 2008 and VB 2010 Session Videos from TechDays Belgium

Here are two videos that were recorded from my sessions this year at Microsoft TechDays in Belgium:

Visual Basic 2008 Tips and Tricks

Future Directions for Visual Basic

image

image



MSDN.COM Refresh!

http://msdn.com has been refreshed! Please take a look and let us know what you think. Here are the three managed languages sites, where our team aggregates Visual Basic, Visual C#, and Visual F# content:

Visual Basic – http://msdn.com/vbasic

Visual C# – http://csharp.net

Visual F# – http://fsharp.net



Connecting with IronPython & IronRuby Team Members

The IronPython and IronRuby members on our team are very active in community. Here are some places where you can connect with them.

WEBSITES

The IronRuby & IronPython websites are used for posting releases, aggregating resources, inviting contributions, and providing a place to enter bugs. They also host samples on the following pages: IronRuby & IronPython. IronRuby sources are managed in GitHub, and IronPython sources are managed on CodePlex.

· IronRuby website: http://ironruby.net

· IronPython website: http://ironpython.codeplex.com

MAILING LISTS

The IronPython and IronRuby mailing lists are open for discussion and are also used as forums. Here are the links to subscribe to the lists or view current posts.

IronRuby: Subscribe, Read Forums

IronPython: Subscribe, Read Forums

BLOGS & TWITTER

The team is active on blogs and Twitter. Here are a few of their recent posts.

clip_image002

Jim Deville
Blog: IronRuby 0.9 Perf gains Monday, August 3rd, 2009
Twitter (@jredville): “but writing tests for untested existing code can prevent regressions, thus it prevents bugs” 10:40 PM Sep 30th

clip_image004

Harry Pierson
Blog: Hybrid App Debugging – The Debug Window Friday, October 09, 2009
Twitter (@DevHawk): “Git works nicely regadless of language and unit tests framework.” 10:35 AM Oct 10th

clip_image006

Dave Fugate
Blog: What do you want to know about IronPython? Thu, Aug. 27th, 2009
Twitter (@davefugate): “IronPython 2.6 Release Candidate 1 is now out - http://bit.ly/11eAWn” 2:59 PM Sep 22nd

clip_image008

Jimmy Schementi
Blog: IronRuby 0.9 Released! Saturday, August 01, 2009
Twitter (@jschementi): “Finished the dnrTv screencast: posting the code snippets shortly. The show should be out in 3 weeks ... 0.9.2 will be out by then =P” 11:30 AM Oct 9th

clip_image010

Dino Viehland
Blog: Two IronPython releases in 1 week  Thursday, July 23, 2009
Twitter (@DinoViehland): “We really want to do 3.1 compat but our first .NET 4 release will likely just be a stepping stone between .NET 2 & 4. 3.1 next.” 8:46PM Oct 9th

clip_image011

Shri Borde
Blog: GitDiff.bat - power-diffing with GIT  Monday, April 13, 2009

clip_image012

Tomas Matousek
Blog: Python says hello to Ruby April 15, 2009

image

David DiCato

MVP PROGRAM

The Dynamic Languages MVP program is growing. (“MVP” = Microsoft Most Valuable Professional) Here are the current IronPython and IronRuby MVPs:

clip_image002[1]

<-

Michael Foord (IronPython)

clip_image004[1]

<-

Michael Letterle (IronRuby)

clip_image006[1]

<-

Sarah Dutkiewicz (IronPython)

           

clip_image008[1]

<-

Ivan Porto Carrero (IronRuby)

clip_image010[1]

<-

Jeff Hardy (IronPython)

   

RELEASES

The latest release for IronRuby is 0.9.1 and for IronPython is 2.6 RC1. Both IronRuby and IronPython will be releasing Visual Studio 2010 Beta2-compatible releases at the time of Visual Studio Beta2.

RECENT NEWS

IronRuby highlighted on Ruby on Rails blog in Interview with Jimmy Schementi August 11, 2009

InfoWorld Press Release: Microsoft Visual Studio upgrade holds dynamic language capabilities August 20, 2009

Gestalt: Ruby and Python in the browser July 21, 2009

CURRENT EVENTS

2009-09-14 Denmark university tour by Harry Pierson

2009-11-09 TechEd Europe: Pumping Iron: Dynamic Languages on the Microsoft .NET Framework -and- Developing a Language with the Dynamic Language Runtime by Harry Pierson

2009-11-17 PDC: Dynamic Languages on the Microsoft .NET Framework by Dino Viehland

2009-11-19 RubyConf: Jimmy Schementi



Microsoft Anniversary: 5yrs = 5 batches of banana muffins

I recently passed my 5-year mark at Microsoft. The tradition for “anniversaries” here is to bring in x times of something, where x is the number of years you’ve been an employee. Most commonly this ends up being x pounds of M&M’s... My tradition has been to bring in x batches of banana muffins, so that’s what I’ve continued this time. 5 years = 5 batches of banana muffins!

IMG_9604



Interview on Visual Basic and C# in Visual Studio 2010 with DotNetMania

This past summer I was interviewed by C# MVP Octavio Hernandez and VB MVP Pep Lluis Bano for an article that was published in the Spanish magazine DotNetMania. The Spanish text is available as an attachment at the end of this post, as well as in summary form on the DotNetMania site. I've included the full English version of the text in the blog post below.

image

Interview with Lisa Feigenbaum

Normally, interviews are often of interest to the restless and eager curiosity, but in the background of every one of the biggest concerns is to reveal the what, who, how and when, whether with regard to more personal or scenario in which the character develops professionally. It is clear that the interest of an interview is increased depending on the respondent's reputation and credibility of the interviewer. In the present case, we have Lisa Feigenbaum, Community Program Manager on the Visual Studio team at Microsoft, interviewed by a C # MVP, Octavio Hernandez and another VB, Pep Lluis Bano. We recommend you to take a good seat, relax and enjoy this conversation.

Pep Lluis/Octavio. Hi, Lisa! It's a real honor for us to be able to interview you. Would you be so kind to introduce yourself to our readers?

Lisa. Hi, Pep and Octavio! Thanks for inviting me. My name is Lisa Feigenbaum, and I’m a program manager on the Microsoft Visual Studio Languages team.

Octavio. I'd like to know a little more about your role within the VB.NET team, and also about your implication with the VB.NET development community.

Lisa. I started on the VB.NET team in 2004 as a feature program manager for the VB IDE. I had a great time designing the Visual Studio editor and debugger features in that role. My work on the IDE spanned VS 2005, VS 2008, and early VS 2010. A few features that I worked on include IntelliSense, code snippets, XML comments, error correction, edit-and-continue, and LINQ. In 2008, I switched roles and became a community program manager. As a community program manager, I create and organize content for the Visual Studio managed languages team. This includes the Developer Center websites, blogs, forums, articles, videos, podcasts, and the MVP program that you’re both a part of! I’m also involved in the planning for several Microsoft conferences. Finally, another part of my job involves listening to customers in the various interactions I have, and using that feedback to help drive the product strategy and future direction. I’ve always enjoyed participating in community activities, so I’m happy that I get to be even more involved in my current role!

Pep Lluis. Well, if Octavio which is a C# MVP has asked you questions related to VB, I'll have to "counterattack" and ask you the same questions, but in relation to the C# team and development community. :)

Lisa. To be honest, a big part of this answer is “the same”! Since we merged the VB and C# teams in 2008, and decided to co-evolve the two languages, I’ve been finding more similarities than differences in what the best community activities are for each. We have two developer centers, http://csharp.net and http://msdn.com/vbasic, and two MVP programs. The conferences that the VB and C# teams attend, and the recorded and written content that our team produces apply equally to both C# and VB.

Octavio. There has been a certain controversy in the development family related to the so called "language parity" between C# and VB. Many of us are asking ourselves whether this could "dilute" the identity of each of those languages. What do you think about that?

Lisa. I don’t think that’s true. Today, VB and C# are built on the same CLR and can be used to access the same framework technologies. However, they’ve managed to maintain their own identities through their individual syntax, style, and IDE experience. I see things working the same way with language parity. Though we’ll add the same general features to both, they’ll each be added in a way that makes sense and fits naturally with the rest of the language.

Pep Lluis. Am I wrong if I say that the amount of application developers using C and VB is more or less the same, i.e. about 50%?

Lisa. No, you are not wrong. Our data shows that the number of professional developers using C# and the number of professional developers using VB.Net are approximately equal.

Octavio. Many of those who use C#, the "purists" in the first place, have the opinion that the new dynamic feature could negatively influence the quality of C# code, being misused by novices and not-so-novices… What can you say about that? What is the accumulated experience in that respect by VB.NET, where Option Strict Off has been always present?

Lisa. I should first mention that there are many merits to the new dynamic feature. It provides a much more elegant way to work across language and object model boundaries, which helps scenarios such as python interop and COM. As you mention, although dynamic is extremely advantageous in those scenarios, it is not intended to be used everywhere. IntelliSense support for dynamic variables is limited, so that should help influence people to only use it when appropriate. Finally for the true purists, you can also remove your reference to Microsoft.CSharp.dll, and that will prevent any dynamic dispatch from occurring.

In VS 2010, VB will also have the same DLR support and language interop scenarios that are enabled through the new C# dynamic. In VB, this functionality is implemented using the VB late binder. Late binding has been a feature of Visual Basic since before .NET, and has been very popular when working with COM. It also has similar intelliSense limitations as mentioned above for C# dynamic.

VB late binding requires Option Strict Off (which is what I’m assuming the second part of this question refers to). However I’d like to clear up a misconception, which is that it would be inaccurate to say that when Option Strict is Off all variables are declared late bound. Even with Strict Off you still have to explicitly opt-in to late binding by typing your variable As Object (assuming you’re using type inference, which is on by default starting in VS 2008). Therefore, Option Strict On does not necessarily make your code “more type-safe”. Option Strict On just means that you’re forced to insert the same casts that the compiler would insert for you when Strict is Off. Therefore the resulting runtime code isn’t any safer, since a cast can always throw.

Pep Lluis. Whenever I review C# or VB code, used to old-time programs, I always have the sensation that programming relies every time less in language keywords and more in the use of the facilities provided by .NET Framework classes. Could you give us an estimate of how many new classes will be added in the new .NET 4.0 with respect to .NET 3.5 SP1? Which will be the main new libraries available?

Lisa. Since I’m on the languages team, of course I believe that languages are still an important part of the stack. :) However I would agree that there’s a lot of important innovation happening in the Framework, particularly in.NET 4.0!

One area I’m really excited about is the parallel computing support. .NET Framework 4 includes new libraries that support task and data parallelism (the Task Parallel Library), a parallel implementation of LINQ to Objects called Parallel Language Integrated Query (PLINQ), and new data structures for synchronization and concurrency. Visual Studio 2010 also includes new support for these .NET 4 features, including profiling and debugging features. Together, .NET 4 and VS 2010 provide a revolutionary way to utilize power of multi-processor and multi-core machines.

.NET 4 includes a new common language runtime (“CLR 4”). CLR 4 features include ETW events, code contracts, lazy initialization, improved profiling and garbage collection, and covariance and contravariance. It includes the dynamic language runtime (DLR), which makes it easier to develop dynamic languages to run on the .NET Framework. It includes in-process side-by-side, which enables an application to load and activate multiple versions of the CLR in the same process. It includes No-PIA, which means that you no longer have to use primary interop assemblies (PIAs). (Instead, the VB.NET and C# compilers embed the parts of the interop assemblies that the add-ins actually use, and type safety is ensured by the CLR.)

.NET 4 includes additions to the base class libraries, such as BigInteger, SortedSet Generic Class, Tuples. It also includes improvements to I/O, reflection, threading, and Windows registry.

The Managed Extensibility Framework (MEF) is a new library in the .NET Framework 4 that enables you to build extensible and composable applications. Components of Visual Studio 2010 were written using MEF.

Finally, .NET 4 also includes some additions to Windows Communication Foundation (WCF) and a new model for Workflow (WF).

Octavio. Besides dynamic typing, C# 4 will add optional and named parameters, co- and counter-variance and some facilities oriented to simplify interaction with COM. Can you talk a little bit about those features, especially under the light of your experience of how people have used similar facilities available in VB since long ago?

Lisa. These features have been a huge success for VB and I anticipate they will be the same for C#. There’s been a lot of pent-up demand for this functionality. If you’re programming against Office and using C#, VS 2010 will make a big difference.

Pep Lluis. Talking about VS 2010, we should then review what's going to be new for VB developers. I don't think we will have any problems with automatic line continuations, but do you think that automatic properties, collection initializers and lambda expressions will be easily assimilated by VB programmers?

Lisa. I do. The automatic property syntax is fairly straightforward. It’s essentially the same syntax as the current expanded property syntax, but just the first line. Whenever I see VB and C# code samples from VS 2008 which involve properties and I see how much longer the VB code is, I can’t wait for VS 2010!

To be honest, I didn’t anticipate the demand for VB statement lambdas to be as high as it is, but since the C# feature has been available, there has been a lot of demand for it in VB. Statement lambdas have proven to be very useful for programming against various technologies. The parallel extensions library in .NET Framework 4.0 are one good example.

Collection initializers build on the object initializer syntax that was introduced in VS 2008, so I expect the concept to be fairly familiar.

I don’t expect most people to go back and update their existing code to use these new features. However, I do anticipate that they will use them to simplify new development!

Octavio. Well, that leaves only iterators and unsafe code in C#, and XML literals in VB, and we'll have full parity! Should be a tremendous satisfaction to see the culmination of all those efforts when the product is ready to ship, right?

Lisa. Our plan for co-evolving VB.NET and C# involves adding major features to both languages at the same time, and filling in the holes where they currently differ in capability. We don’t expect to finish this work in VS 2010. It will take 2-3 releases to fill in the holes. We also don’t expect to reach 100% parity. At some point, we believe that people will prioritize new features over filling in the smaller holes.

We made significant progress towards co-evolution in VS 2010. We added collection initializers, auto-implemented properties, array literals, and statement lambdas to VB. We added named & optional parameters, late binding via dynamic, and the ability to omit ref on COM calls for C#. Finally, we added interop with dynamic languages, generic variance, and no-PIA deployment to both.

Iterators are the next feature most likely to make their way into VB in future releases after VS 2010. C# XML literals and VB unsafe code are not currently in the plans.

Pep Lluis. An idea from VB 8 that seemed to be great but has not had much success is the My namespace. Which, do you think, could have been the reasons?

Lisa. Actually, we haven’t had the experience you describe regarding the uptake of My. Like all features, it takes time for people to start using it. However, the response from the VB community on “My” has been overwhelmingly positive! VB folks who advocate for VB as the rapid application development (RAD) language felt “My” was a great innovation. It has also been requested by some C# developers. :)

The surface area of the .NET Framework is quite huge, and finding the right class to do a specific task can often take longer than doing the task itself! “My” provides a “speed-dial into the framework” that gives you easy access to lots of common operations such as reading from files, getting an application’s current directory, or even checking if Caps Lock is On.

If I had to conjecture why some VB developers might still not be using “My”, the number one reason I would guess is that they haven’t discovered it yet. Another reason I’ve heard is that people are concerned about the additional size it may add when deploying their application; however, we’ve found the size difference to be quite negligible. Finally, another reason might be that people wanted to know in more detail about how the code was running. (However all the “My” code is highly optimized, so there is not a lot of reason to need to know the underlying details. Instead you can focus on getting the job done!)

image

Octavio. We know about your commitment to the developer communities. I'd like to know the plans for the future, the new resources for developers on which you are working now.

Lisa. I’m currently working on building good content for VS 2010, so that we will have resources available when we ship. I recently created two new pages on the C# and VB MSDN Developer Centers, to highlight the top VS 2010 resources:

C#: http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx

VB: http://msdn.microsoft.com/en-us/vbasic/dd819153.aspx

Those sites include early versions of the C# 4.0 and VB 10 language specifications, VS 2010 overview documents, samples, walkthroughs, blog posts, presentations, Channel9 interviews, and more.

Looking forward at the rest of the year, I am planning to continue the kind of content creation that we have on the VS 2010 sites. I plan to conduct more videos, podcasts, and interviews with the team (like this one!). I plan to continue partnering with MVPs and highlighting MVP content on the VB and C# Developer Centers (like the article you’ve contributed on LINQ: http://msdn.microsoft.com/en-us/vcsharp/aa336732.aspx). I will also be involved in organizing Visual Studio conferences and events.

Finally, I’m also working quite a bit on making sure that we have good VB.NET content for Microsoft technologies. Today there are many places where samples are created only in C#. I am working to improve that situation and create parity for VB.NET.

Pep Lluis. Many people has curiosity to know how many groups and people in general contribute to such a complex product as Visual Studio, how many lines of code all its parts sum, and which languages they mainly use. Also, it should be really complex to coordinate all those groups…

Lisa. It certainly is a huge undertaking to manage all the teams and the code that make up Visual Studio! There are 30 product units that make up Visual Studio. Our product unit (Visual Studio Languages) has about 100 people. In total, there are about 1000 people who work on Visual Studio. There are another 800 or so who work on the .NET Framework. Between all those teams, there is a lot of code that is constantly changing. In order to maintain stable builds, there is a complex branch system as well as various quality measures. Features are developed in individual “feature branches” and aren’t integrated into main builds until they are complete. Whenever an integration occurs, a series of functional and performance tests are performed to ensure that it doesn’t “break the build”. There is also a rigorous process that occurs for a couple of months leading up to any public release, whereby all changes across the division are reviewed by a central committee called “shiproom”.

Visual Studio is written in multiple languages, including C++, VB.NET, and C#. There are about 42 million lines of code in VS 2008, and more coming in VS 2010. It’s a pretty massive solution! In order to build the product from scratch, it takes up to an hour to sync the code, 5-6 hours to build, and then another 6-7 hours to build setup packages for the normal daily layouts.

For more information on the processes that occur while building the Visual Studio product, we recently posted a great interview with Matt Gertz, developer manager of the engineering execution team: http://channel9.msdn.com/posts/funkyonex/How-We-Do-It-Building-the-Visual-Studio-Product-Line

Octavio. Could you take the risk and confess which feature is your favorite regarding VS?

Lisa. I think Pep knows the answer to my favorite feature. I can’t seem to hide it when I present! My favorite feature is IntelliSense. IntelliSense has been part of the product since before .NET, and continues to be a core part of the Visual Studio experience. It is one of the first productivity features that originally excited me about VS.

Pep Lluis. Knowing you I know you have done a great work in promoting the usage of the excellent IntelliSense capabilities in Visual Studio, and particularly the usage of code snippets in the editor. I'm sure that VS 2010 will offer a great implementation of all that. Can you tell us what's going to be new in the VS 2010 user interface?

Lisa. There is a lot happening in the user interface in VS 2010! For one, we have rewritten the Visual Studio editor and shell in WPF. When you open VS 2010, you will immediately notice the new look and feel. There are many end-user features that have been added as part of this change. There is improved multi-monitor support, which allows you to dock code editor windows on separate monitors. There is the ability to easily zoom the code editor in and out by pressing the Ctrl key and scrolling the mouse. There is improved outlining support and block selection. There is also a new Start Page and New Project dialog, equipped with search capabilities. Visual Studio extensibility has improved, and there is also a new extension manager and Visual Studio Gallery, to make it easy to find extensions. The list goes on…

As far as the VB and C# IDE features in VS 2010, there are quite a few of those too. We call them “Code Focused” features, since they provide deeper understanding and searching into your code. My favorite is “Navigate To”. Typing “Ctrl+,” in VS 2010 causes a dialog to appear, which helps you quickly navigate to a file or member in the solution. Another great new feature is “Generate From Usage”. “Generate From Usage” allows you to refer to members in your code before defining them, and then rely on the code editor to stub out the definitions for you. This will be a great productivity tool, and is especially interesting for those doing Test-Driven-Development (TDD). There have also been improvements made to intelliSense for TDD, to avoid over-aggressive completions. Finally, two new features to help with code understanding are Highlight References and Call Hierarchy. Highlight References allows you to easily see how a symbol is used in the current code file, by highlighting all the references for you. Call Hierarchy provides a visualization of all the calls to and from a method in the current solution; however, it is currently C#-only.

Pep Lluis. In 2008, we had the privilege of having you in Spain visiting the user groups in Barcelona/Tarragona/Valencia/Murcia/Madrid. I must recognize we weren't able to get enough developers to attend such a unique occasion for interacting with you and Jonathan Aneja. I think the industry is accusing some "apathy", and with each new version of VS the distance between those who know and use the latest features and those who remain knowing only the older ones is growing… My question is: which do you think should be the messages we from the user groups must transmit in order to correct this tendency?

Lisa. I don’t know whether it is “apathy”. However, I would agree that there are more technologies being released each year in the software industry, and it’s getting harder for people to keep up. I would encourage user group members to continue attending and learning the latest features. Each release of Visual Studio contains new capabilities which continue to help improve productivity, so taking some time to learn them will save time in long run. :)

Pep Lluis. I like to think that we will soon have another opportunity to meet here in Spain with members of the C# and VB teams. So don't forget that you have a permanent invitation to come. Just as a last comment, I'd like to say that is moving to see the implication of people like you in the development of Visual Studio and of .NET and in transmitting all that knowledge to developers.

Lisa. Thank you, Pep! It was an honor for me to meet with the developer community in Spain and I hope that I will have more opportunities in the future.

Octavio. Please, any final words to our readers?

Lisa. Please visit the VB and C# Developer Centers, for the latest and greatest information on VB.NET and C#: http://msdn.com/vbasic and http://csharp.net.

Please try out the Beta 1 release of Visual Studio 2010, available for download here: http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx.

Finally, please write and let me know what kind of content you’d like to see more of, for Visual Basic and C#: Lisa.Feigenbaum@microsoft.com.

Thanks for reading!

Pep Lluis/Octavio. Thank you very much, Lisa! We really hope to see you soon in Spain.

 

This article is an excerpt from the DotNetMania July-August 2009 edition:

portadagr[1]



Welcome

After a series of team blogs, I’ve decided to finally start my own. Here’s where you can find my previous posts.


IDE

VS2010 Beta1 Extensibility News

Walkthrough: Quick Search for Files and Symbols in Visual Studio 2010

Walkthrough: TDD Support with the Generate From Usage Feature in VS 2010

VB 2008 Keyboard Shortcut Posters -- Download your copy today!

Did you know? There are many ways to insert a snippet into your code

Code Focused Development in Visual Studio 2010

Did you know? 300+ Visual Studio Tips & Tricks

WANTED: Your feedback on a potential Call Hierarchy feature

WANTED: Your feedback on a potential Quick Search & Navigate feature

Did you know? You can now manage your snippet highlighting

Did you know? VB IntelliSense now filters as you type!

Did you know? What you can do with Debugger Datatips...

Did you know? Ctrl+Tab to navigate windows in VS

Did you know? IntelliSense is now transparent in VS2008!

Did you know? IntelliSense Everywhere

Refactoring in Action

Working with Shortcut Keys

Save Time – Use Keyboard Shortcuts!

Want to see the VB 2005 IDE in action? Check out this video!

Visual Studio 2005 IDE: Top Ten Feature List

Missing the Navigate Forward and Navigate Backward commands on your Toolbar?

Need to create a new file without opening a project?

Want to Customize your menus in Visual Studio 2005? Here's how...

Have a Question about Code Snippets? Try this FAQ!

LANGUAGE

XML Literals, WCF and LINQ Article by Steele Price

Luca Bolognese on Asynchronous HTML caching in VB.NET

What's the list of new language features in Visual Basic 10.0 and C# 4.0?

Walkthrough: Dynamic Programming in Visual Basic 10.0 and C# 4.0

Walkthrough: Office Programmability in Visual Basic and C# in VS 2010

Using both VB.Net and C#?

Panel: Developers moving to VB.Net for projects using XML

Tutorial: Functional Programming with Visual Basic 9.0

VB Video Tutorials on ASP.Net Dynamic Data

Have a background in C#, and starting to write some Visual Basic?

INTERVIEWS

InfoQ Article on the Future of VB.NET (Lisa Feigenbaum)

Misfit Geek Podcast - Episode #2 "Does VB have a Future?" (Lisa Feigenbaum)

"Future Directions of Visual Basic" Interview with Paul Vick (Lisa Feigenbaum)

"Visual Basic 10: New Features" Interview with Paul Vick (Lisa Feigenbaum)

Community Interview with Lisa Feigenbaum (Beth Massi)

Visual Basic and CSharp IDEs Uncensored (Lisa Feigenbaum)

Nice to meet you! A Nine Question Interview (Lisa Feigenbaum)

CHANNEL9

Channel9 Interview with Luca Bolognese: VB.NET and C# Co-Evolution

Concurrent Basic on Channel 9

VB XML Literals with ASP.NET MVC

Visual Basic 10 on the 10-4 Channel9 Series!

10-4 Episode 2: Welcome to Visual Studio 2010

Video: Downloading and Using the Visual Studio 2010 September CTP

Announcing 10-4! Weekly video podcasts on Visual Studio 2010 and the .NET Framework 4.0

Channel9 series: Visual Studio 2010 and the .NET Framework 4.0 Week!

VB 2010 Language Features: The Channel9 Version (Lucian Wischik, Lisa Feigenbaum)

Channel 9 Interview: Refactoring in Visual Basic with Refactor! (Lisa Feigenbaum)

Channel 9 Interview - Visual Basic Intellisense Improvements in VS 2008 (Lisa Feigenbaum)

Code Snippets on Channel9 - Ken Levy and Lisa Feigenbaum

Code Snippets on Channel9 (Lisa Feigenbaum)

PODCASTS

CodeCast Episode 20: Biz Apps Team and VB with Beth Massi (Lisa Feigenbaum, Beth Massi)

CodeCast Episode 17: Visual Basic 2010 Preview with Lisa Feigenbaum

CodeCast Episode 12: Visual Basic and the VB Community (Lisa Feigenbaum, Dustin Campbell)

EVENTS & PRESENTATIONS

.NET Rocks! with Beth Massi on the Open XML SDK and XML Literals

TechEd Video: Future Directions for Visual Basic, by Anders Hejlsberg and Jonathan Aneja

TechEd North America, here we come!

MIX 09 Video: Making XML Really, Really Easy with Microsoft Visual Basic

Visual Studio at MIX 09

Presentation Materials from Belgian TechDays 2009 (Lisa Feigenbaum)

Visual Basic at MIX '09

Video: Microsoft Visual Basic 2008 Tips and Tricks (Lisa Feigenbaum)

Video: The Joy of Writing Code in Visual Studio 2010 (Karen Liu)

Spain User Group Tour: All Good Things Must Come to An End (Lisa Feigenbaum)

My *V*Birthday with VB friends in Spain! (Lisa Feigenbaum)

Visual Basic en España (Lisa Feigenbaum)

TechEd Barcelona: Session Materials (Lisa Feigenbaum)

VS 2010 Announcements at TechEd EMEA

What to watch, as a VB Developer at PDC

PDC Dinner in honor of VB and C# MVPs

I'm a VB!

Experience PDC 2008 whenever and wherever - for FREE!

TL12: Future Directions for Microsoft Visual Basic

VB 2010 Unveiled at PDC 2008!

Where is the VB Team going to be over the next few months?

"Future Directions of Visual Basic": Don't miss this talk at the Professional Developers Conference!

Malay Mail coverage of TechEd SouthEast Asia

Visual Basic at TechEd SouthEast Asia (Lisa Feigenbaum)

Visual Basic at TechEd South Africa 2008 (Lisa Feigenbaum)

Around the World with Visual Basic (Lisa Feigenbaum)

TechEd US 2008: Presentation Materials for TLA325 (Lisa Feigenbaum)

Come hear about VB 2008 Tips & Tricks at TechEd US! (Lisa Feigenbaum)

LINQ Deep Dive and Best Practices Presentation Materials (Lisa Feigenbaum)

VB 2008 IDE Tips & Tricks Presentation Materials (Lisa Feigenbaum)

Come join me on a Southern California user group tour (Lisa Feigenbaum)

Slide Deck and Samples for LINQ Best Practices (Lisa Feigenbaum)

Talking about the Future: LINQ, Atlas, and VSTA at the PDC

VB CONTENT

VB Entity Framework Samples Now Available

The Silverlight Toolkit Adds Visual Basic Samples

Composite Application Guidance for WPF and Silverlight: VB QuickStarts, Hands-On-Labs, and How-To Topics released!

VB Developer? Read MSDN Magazine? You're in luck!

Are you a VB developer and interested in Silverlight?

Are you using Silverlight with Visual Basic?

Are you using Expression Encoder 2 with Visual Basic?

Are you using Windows Presentation Foundation with Visual Basic?

Are you using the ASP.Net MVC Framework with Visual Basic?

RELEASES

Try Out Dotfuscator in VS 2010 Beta 1!

Visual Studio 2010 and .NET Framework 4.0 Beta 1 Released Today!

CodeRush Xpress Released Today!

CodeRush Xpress 9.1 Beta: 59 Refactorings, 17 Consume-first providers, and Much more!

Download the CTP and Submit Your Feedback!

Microsoft Announces Visual Studio 2010 and .Net Framework 4.0

Visual Basic 2005 is now available!

MISCELLANEOUS

History of Microsoft Video: Bill Gates Talks about Altair Basic

Ask Kathleen: Working with MEF

Visual Studio 2008 Voted Best IDE!

Happy New Year!

Join the Visual Basic team on Facebook!

Make sure you apply this fix before your VS2010 CTP VPC expires!

Happy 10th Birthday to the Italian VB Tips and Tricks Community!

Did you know there's a VB user group meeting each month at Microsoft Redmond?

Visual Basic Developer Center Revamped!

VB2008 Outperforms VB2005!

The VB IDE team joins the VB Team blog

Check out the new VB IDE blog!

VB IDE Blog finds a new home - Please Update Your Subscriptions!

Interested in Learning More About the Visual Studio Debugger?

Interested in Learning More about the Visual Studio Debugger?

Welcome to the Visual Basic IDE Blog!


Page view tracker