Click here to Skip to main content
Click here to Skip to main content

A Brief Discussion On Visual Studio 2010 Top Features

By , 10 Mar 2010
 

Introduction 


You guys all know that Microsoft Visual Studio 2010 will be launched on 12-April-2010 worldwide and currently it is in Release Candidate (RC) state. I am exploring it for a while since Beta 2 & found it really useful than the earlier versions. There are lots of features added into the account of Visual Studio 2010 which will improve the productivity of application development. Developers can use it for faster coding, collaborating among the whole team & more. In this post I will describe the new features of Visual Studio 2010 which I already explored. I think this will be beneficial for all.


Following are the new features in Visual Studio 2010.

Multi-targeting Application Development:


Using Visual Studio 2010 you can not only develop applications for the .Net 4.0 but also can use it for the development of earlier versions of the framework. While creating a new project in the IDE you will see the option to select between different types of .Net Framework (i.e. 2.0, 3.0, 3.5 & 4.0).

image  
Depending upon your choice it will filter the project templates in the New Project dialog. If you select “.Net Framework 4.0” it will show all the project types but if you select “.Net Framework 2.0” it will only show the projects supported by .Net Framework 2.0.

image  
Not only this, as Visual Studio 2010 builds on top of Windows Presentation Foundation (WPF), you will find it more useful while searching for a specific project type. Suppose, you want to develop an application for your client in WPF & you are finding it very difficult to search within a huge collection of project types. Don’t worry. There is a “Search Box” right to the dialog for you to help finding the same. Just enter the keyword (in this case “WPF”) & see the magic. While typing, it will auto filter based on the keyword you entered.

image

 


Faster Intellisense Support:

Visual Studio now came up with faster intellisense support. It is now 2-5 times faster than the earlier versions. The IDE will now filter your intellisense as you type. Suppose, you want to create an instance of “WeakReference” & due to the search algorithm of the VS2010 IDE, you don’t have to write the full word of the Class. Just type “WR” and it will automatically filter out that & show you “WeakReference” in the intellisense. Try it out.

image

 


Editor Zoom Functionality:
 

You will find this feature useful while you are showing some presentation or doing a webcast. Earlier VS2010 you have to open the options panel & then you have to change the font size of the editor, which was little bit troublesome. Now that issue is gone. You don’t have to follow where to go to change the text size. While inside the editor window, just press the control key (CTRL) and use your mouse wheel to increase/decrease the zoom level.

image

 


Faster Assembly loading in “Add Reference”:

In Visual Studio 2010 loading of assemblies in the “Add Reference” dialog is pretty fast. In earlier versions, it freezes the dialog for some time to load all the assemblies. In 2010 IDE, by default it focuses on the “Project” tab & in the background loads the other tabs. In case it is opening the dialog focusing on the “.Net” tab you will notice that instead of loading all the assemblies at a time, it loads those in a BackgroundThread. Thus improving the loading time a bit faster.

image

 


Detach Window outside IDE:
 

Are you working on dual monitor? If so, you will find this feature very useful. VS2010 IDE now supports detaching Window outside the editor. Suppose, you want to detach your “Error”, “Output”, “Solution Explorer” or “Properties” window in the second monitor while working in the editor in the first monitor, you can do that now. Thus it gives you more space in the editor & separating your important windows outside the IDE.

image

 

Reference Highlight:

Another feature of Visual Studio 2010 IDE is the reference highlight. By this feature, it will highlight you all the call to that method or member variable, which you can find easy enough to search all the position of the reference wherever it has been called.

image

 


Faster Code Generation:

Before discussing about this feature with you, let me ask you a question “Are you using TDD i.e. Test Driven Development?”. If so, you will find this feature not only useful but very much attractive. So, what is that? Wait, lets ask yourself another question “How to write code while doing Test Driven Development?”. Thinking? Right, you have to implement the skeleton of the class & methods first and then you have to write the UnitTestcases to implement the actual logic. VS2010 came up with the excellent feature of generating codes for you. Have a look into the following snapshot:

image
As you can see, I don’t have a class named “Person” in my project and hence it is marking it as UNKNOWN by highlighting it in Red. If you look into the first snapshot in depth you can find out that though the class is not present in my namespace or even in the project, it is creating the class reference in the intellisense. Great, right? Wait a minute. If you now place you cursor on top of “Person” and press F10 while holding down ALT+Shift, you will see a dropdown comes up in the screen with two menu item asking you to either generate the class for you or generate a new type.

The first option you can find it easy. If you chose that, it will generate a class file named “Person” for you in the project. Lets go for the second choice where you will get more options & will find it much more interesting. This will open up a new dialog “Generate New Type” for you. There you can chose which access modifier you need (private/public/protected/internal), you can chose different types of code to generate (enum/class/struct/interface), you can also modify the location of the class file. You can either put it in the same project or you can chose a different project available in the solution. Not only that, you can also create a new file for the class or append the class in another file. In short, this feature gives you various options to customize.

image
Same thing is applicable while generating methods. Have a look into that.

Box Selection:

This is another nice feature of Visual Studio 2010. Let’s describe this using an example. Suppose, you declared some properties as public & in near future you want to mark them as internal. How can you do this? You will go and replace the access modifier one by one to internal. Am I right? Yup, in Visual Studio 2010 you can do this work very easily. Press Alt+Shift and draw a Box Selection using your cursor which will look like the first snapshot. Then type the desired characters to replace the text within the selected boundary.

image
Here in the example, the public keywords of the properties has been marked using the Box Selector and when typing, it is actually changing in all the lines. Have a look into the second snap where I am typing “internal” to replace “public” and that’s populating in all the lines where I marked.


Easy Navigation:

It is very easy now when you want to navigate to your specific code. As Visual Studio 2010 is built on top of WPF hence it has now proper filtering as and when you type. Press CTRL+, to open up the “Navigate To” dialog and this will show a list of matching criteria once you start typing in the “Search terms” field.

image

 

Better Toolbox Support: 

Visual Studio now came up with better Toolbox support. You can now search Toolbox Item very easily. Just type the desired name of the Toolbox Item and the IDE will jump into the focus of matched element. Pressing TAB will bring the focus to the next matching element.

image

 

Breakpoints: 

It has now a better feature in terms of Bookmarks. A team can now collaborate bookmarks between them by using the import/export bookmarks. You can now pin the debug value so that you can access it in later point of time, also you can now add a label to your bookmark.

image

Lets give a brief idea on this. Suppose, you are debugging your module & while debugging you found an issue in another’s module and want to let him know that there is a bug in his code and creating issues in your module. Just sending out an information requires debugging to the code again & finding out the issue by the another team member. Now in VS2010 IDE, you can now pin the debug value and export that bookmark with proper comments as an XML & send it out to your another team member. Once he imports it to his IDE, he can see the bookmark with the debug value available from the last session. From this point he can debug the root cause instead of finding out the area again. This is very useful in terms of collaborating debug information with the team.

image

The only thing that I don’t like here is, the XML which uses line number to store the breakpoint information. If the code has been modified in the other member side, it will not work correctly. The only requirements of the import/export to work correctly is “There should not be any modification in the shared code file”.

IntelliTrace: 

Visual Studio has now the feature called “IntelliTrace” by which you can trace each step of your debug points. This is very useful when it comes to a larger UI where you can find the calling thread information in the IntelliTrace Window.

image


Conclusion  


There are more features like better TFS Support, in-built support for Cloud development, modeling, reports etc. which I have not explored till now. Once I explore those, will post it as a separate thread. So for now, go ahead and learn Visual Studio 2010 features and get familiar with it for productive development.

 

 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

_ Kunal Chowdhury _
Software Developer
India India
Member
Kunal Chowdhury is a Microsoft MVP (Most Valuable Professional) in Silverlight Technology, a Codeproject MVP & Mentor, DZone MVB (Most Valuable Blogger), Speaker in various Microsoft events, Author, passionate Blogger and a Software Engineer by profession.
 
He is currently working as a Software Engineer II in an MNC located at Pune, India. He has a very good skill over XAML, C#, Silverlight and WPF. He has a good working experience in Windows 7 application (including Multi-touch) development too.
 
He posts his findings in his technical blog. He also writes for SilverlightShow and Codeproject portal. Many of his articles were highlighted as "Article of the Day" in Microsoft sites.
 
He also has another website called Silverlight-Zone.com where he posts article links on Silverlight, Windows Phone 7 and XNA accumulated from various web sites to help the community grow on specified technologies.
 
You can reach him in his Blog : http://www.kunal-chowdhury.com
He is also available in Twitter : http://twitter.com/kunal2383

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralMy vote of 4memberEswa7 Dec '10 - 22:35 
Nice Article for beginners.
General[My vote of 1] Box SelectionmemberGiri Ganji19 Mar '10 - 3:35 
Box Selection is an old feture, it is not newly added in the VS2010. You can verify the other versions like VS2008 or VS2005 for your information. Big Grin | :-D
GeneralRe: [My vote of 1] Box SelectionmemberAndromeda Shun23 Mar '10 - 21:22 
The selection of code is old, so this part of your statement is correct. However there is a new feature related to the box selection, as described in the article: If you select a box of text and then type something new each instance of the selected word in each line is replaced by what you type. Just read the article again and look at the pictures Wink | ;)
AnswerRe: [My vote of 1] Box SelectionmentorKunalChowdhury8 May '10 - 7:05 
Hi Giri,
 
First of all, sorry for the late reply. Yes, the box selection is not a new feature in Visual Studio, but you can do a lot here. It was possible to do the box selection in earlier version, but here I mentioned the feature of modifying texts after selecting multiple lines at a time.
 
Please read the whole point and also check the image snapshot. You can understand the feature easily.
Let me know, if you have any queries or comments. Wish you all the best... Thumbs Up | :thumbsup:
Don't forget to Click on [Vote] and [Good Answer] on the posts that helped you.


Regards - Kunal Chowdhury | Software Developer | Chennai | India | My Blog | My Tweets | Silverlight Tutorial

QuestionErrors highlightingmemberKirill Kovalev10 Mar '10 - 19:48 
Does Visual Studio 2010 support error highlighting as it Resharper does in VS 2005, 2008?
AnswerRe: Errors highlightingmemberKunalChowdhury20 Mar '10 - 4:59 
No, as of now there are no news on that. Resharper is best towards it.
Regards - Kunal Chowdhury | Software Developer | Chennai | India | My Blog | My Tweets

GeneralAdd References DialogmemberWilliam E. Kempf10 Mar '10 - 9:29 
The add references dialog isn't really faster, and it's actually (IMHO) a major step backwards. http://digitaltapestry.wordpress.com/2010/03/03/visual-studio-2010-rc-add-reference-dialog/[^]
William E. Kempf

GeneralRe: Add References Dialog [modified]membertonyt10 Mar '10 - 11:25 
I Agree
 
The lack of a search box to filter the list of assemblies is a major sore point with me.
 
The toolbox could use one too.
 

-- Modified Thursday, March 11, 2010 6:36 AM
GeneralRe: Add References DialogmemberWilliam E. Kempf11 Mar '10 - 2:19 
Like I said in one of my replies in that blog post, search capabilities won't fix what's wrong with the new Add References Dialog. Actually, search capabilities already exist, and are entirely useless with the new dialog. It's filtering that people want, which would help, but the new dialog takes so long to load the assemblies that there will be plenty of times that even a filter won't get you in and out of this dialog as fast as you could with VS2008. Frown | :( div class="signature">William E. Kempf
GeneralRe: Add References DialogmemberKunalChowdhury11 Mar '10 - 6:18 
Yeah, that's one thing that it takes some time to load the dll assemblies asynchronously, but for me I will tell that it is a bit faster to open up the window than the earlier version of Visual Studio. Atleast the Window is opening & then we are seeing the assemblies to load.
 
That's a very good suggestion to load up all the assemblies on application startup. Adding a refresh button in the dialog will be again great. So, if some assemblies installs after app_load clicking on Refresh button will load those then.
 
Placing a search box is again a great idea. Smile | :)
Regards - Kunal Chowdhury | Software Developer | Chennai | India | My Blog | My Tweets

GeneralDetach WindowmemberWilliam Winner10 Mar '10 - 7:31 
Detaching a window outside of the IDE is nice, but it's not new to 2010. You could do the same thing in 2008, and in fact, in 2010, detaching the window and putting it on a different monitor has a bug. If you get an unhandled error, the detached window on the second monitor will often snap to the point of the error, meaning that windows move when they shouldn't, and they won't stay in place while there is an error.
GeneralRe: Detach Windowmemberrembo66610 Mar '10 - 9:31 
You could detach "Pane"-type windows and put them on a different monitor in VS2005 as well. The feature that would be useful is detaching the editor windows. Can 2010 do that?
GeneralRe: Detach WindowmemberWilliam E. Kempf10 Mar '10 - 9:56 
Yes.
William E. Kempf

GeneralRe: Detach WindowmemberKunalChowdhury11 Mar '10 - 6:25 
William, I don't think that this feature was there in Visual Studio 2008. Regarding Visual Studio 2005, clearly I don't know. Are you sure that, you are not using any plugin in Visual Studio 2008 to detach any panel window?
 
I tried it in my 2008 IDE but was unable to do detaching any panel window outside the main IDE. Can you please re-confirm that?
Regards - Kunal Chowdhury | Software Developer | Chennai | India | My Blog | My Tweets

GeneralRe: Detach WindowmemberWilliam E. Kempf11 Mar '10 - 6:44 
I can confirm that you can detach panel windows in 2008, and I believe this was possible in 2005 as well.
William E. Kempf

GeneralRe: Detach WindowmemberWilliam Winner11 Mar '10 - 8:27 
VB 2008 Express[^]
 
An example of how I run VB 2008 Express with two screens. You'll notice that the right screen is considerably smaller, so you can see there are two screens. The right screen has the Errors and Output Window and the Solution Properties window.
GeneralRe: Detach WindowmemberKunalChowdhury11 Mar '10 - 15:55 
I searched in MSDN & here is the link: http://msdn.microsoft.com/en-us/library/dd465268(VS.100).aspx[^]
 
For your information, I was unable to detach any of my panel windows outside my Visual Studio 2008 IDE. I am using Visual Studio 2008 SP1.
Regards - Kunal Chowdhury | Software Developer | Chennai | India | My Blog | My Tweets

GeneralRe: Detach WindowmemberWilliam Winner12 Mar '10 - 11:25 
Well, I can't say that yours works, but I know 2008 had it. What that article is saying is that now you can move the document window. That is a new feature and pretty nice. So, now if you have written a class and want to be able to see your implementation while coding in another window you can do that. Or if you want to see the a form designer window while coding for that form, you can do that now.
 
I'm running 2008 SP1 as well, and you can move the Output, Properties, Error, etc... just not the document window (where you code stuff). I'm just saying that what you said was new, isn't.
GeneralRe: Detach WindowmemberKunalChowdhury12 Mar '10 - 18:43 
Thanks William for the informations...
Regards - Kunal Chowdhury | Software Developer | Chennai | India | My Blog | My Tweets

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130523.1 | Last Updated 10 Mar 2010
Article Copyright 2010 by _ Kunal Chowdhury _
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid