TracePoint : An awsome feature of Visual Studio

Have you ever wanted to see the intermediate values of a variable which is inside a loop without pausing the execution via breakpoint?

I am sure you will say YES. A visual studio feature called Tracepoint can be very helpful in these scenarios.

Breakpoint allows to stop at a point where you can see the variable value but you may loose the track of it loops for more than 4-5 times.

Tracepoint is an awesome feature of Visual Studio and it is available since Visual Studio 2005. It allows you to write the values in output window without even stopping at any point or you can stop it after the loop and see how the loop progressed based on your needs. I recently started using it and found is very useful. I am sure it is relatively less used.

Let’s see an example. Here I have created a simple program which finds out the nth number in a fibonacci series. Lets see the code

Now I am going to set a tracepoint at line #41. To set up a tracepoint, one need to set up a breakpoint and right click on it which provides few options, then select Actions which opens window as

(In earlier versions of Visual Studio, the options was named as Choice which is Actions as mentioned above)

Here I have written i={i} => result={result} . The values insde {} are the variable names in the program and the value of these variables will be printed.

The messages will be logged in output window. See here the check box Continue Execution which is self explanatory. If you uncheck this then the breatpoint would be hit as normal and pause the execution. So lets run the program and see the output window

I have provaide value 7. Here you can see that the value got printed here for each loop iteration. This is quite useful if number are pretty high.

Debugging is also get tricky in case mutli-threading and asynchronous programming scenarios which is pretty common nowadays.

There are few others pseudo variables available which can be used display various other useful information as

Hope you have enjoyed the post.

Cheers,
Brij

Advertisements

[Video] Visual Studio Tips to make you Super Productive – Part 3

Hi All,

This video is in continuation of my last two video posts where we discussed some awesome visual studio tips which makes you super productive. In first video, we talked about tips related to Class and in second video, we discussed some other common tips for adding very common code snippets. Please find my previous two videos below

[Video] Visual Studio Tips to make you Super Productive

[Video] Visual Studio Tips to make you Super Productive – Part 2

In this video, we are going to discuss another 10 tips related to Visual Studio IDE which will help in day to day development, debugging, code review etc.

Use these tips in day to day activities and be few steps ahead 🙂

Cheers,
Brij

Top 12 tricks to insert common code snippets : Productivity Tips

This post is in line with my previous post where I talked about how one can be more productive with Visual Studio. In last post, We discussed top 12 shortcuts that helps a lot while writing and reviewing code in day to day work. While writing code we need to follow to follow certain rules and constructs that also becomes very repetitive say, you are writing classes for your domain or adding properties or defining constructors or putting try block and lot more where we just need to write the code in similar pattern and are no brainer. Spending time in these types of code are kind of waste of time and energy. To see my previous post, use the link below

Top 12 Visual Studio short cuts – Productivity Tips

In this post, I am going discuss 12 tricks that can insert code snippets just by few keystrokes.

1- Writing a class is a one of the most common repetitive code we write. Use

  class press TAB

1-Class

 

 

 

Once the snippet inserted, it puts the cursor at MyClass which allows to change the name of class instantly without any extra keystroke.

2- Writing constructor is also another task which is very common and many times we many constructor for the same class. To write constructor use

ctor press TAB

ctor

 

 

 

3- Now Class is created. Let’s add property now. Use

prop press TAB

2-Prop

 

 

Similar as 1st trick, it puts the cursor to change the type and after that change the property name itself. I found really cool when I used first.

It comes with many other flavor. Use propg  to create a auto implemented property with private set.

4- Second trick allows us to write auto-implemented property which requires less code but there could be many scenarios, when we need to write Full property definition that we used in earlier to C# 3.0 then use

propfull press TAB

3-propfull

 

 

 

 

Changing type and name can be done similar to above.

5- Need to write an indexer, use

indexer press TAB

indexer

 

 

 

6- Many times while code review we see that some part of code is not under try catch block or we need to write the block. Use

try press TAB

5-try

 

 

 

 

There is another flavor, if we just want try and finally then use tryf.

7- Want to create enum use

enum press TAB

enum-6

 

 

 

Similarly use struct to insert struct block.

8- Want to create switch block, use

switch press TAB

7-switch

 

 

 

Similarly use for, foreach, do, while etc to insert respective code blocks.

9- Many times we need to write our own custom exception class that should inherit from Exception class. It can written easily by

Exception press TAB

It creates a serializable class as

8- Exception

 

 

 

 

 

 

10- Want to override Equals method for your class. Use

equals press TAB

It will insert as

9-equals

 

 

 

 

 

 

 

 
 

 

 

 
11- To write static void main, use

svm press TAB

svm

 

 

 

Similarly you can use sim for static int main.

12 – last, many times we write console.writeline in our application. Just use

cw press TAB

10-cw

 
 
 

In this post, how can we save lots of keystrokes and time while writing some very common repetive code. This is not complete list but very common ones that can be used a lot in our day to day coding. if you know any other snippet which is very useful, do share in comments.

Cheers
Brij

Top 12 Visual Studio short cuts – Productivity Tips

Visual Studio is very Rich IDE and it provides in-numerous features that makes our day to day life easy. There are some very useful hot keys and tips which can increase our productivity significantly. Earlier I used few hot keys but recently I learned few which I found awesome which drastically reduce my time while writing/debugging/reviewing the code. So learn these and make a habit of these keys and feel super charged while writing code.

  1. While code review I find many time scattered and unaligned code which I hate. I use CTRL+K+D for aligning it.
  2. While debugging or testing the code, commenting/commenting codes are done a lot. Use CTRL+K+C/CTRL+K+U for the same.
  3. How do you up/down certain line of code. Select the code block and use ALT+up/down
  4. You have a used a lot F12 to go to Definition of class. Use CTRL – to go back.
  5. How do you resolve the classes by mouse click. Use CTRL+. to resolve it quickly.
  6. Refactoring is very important. Use CTRL+R+M for extracting a method.
  7. Find All References -> Use Shift + F12. Very helpful while debugging and fixing bugs.
  8. Want to put few lines of code in try block. Try Ctrl + K + S, it provides lot more options
  9. Ever tried selecting a rectangle code. Use ALT click drag.
  10. Lots of code in a single file. Use  CTRL + M + O and CTRL + M + X in collapse/expand code groups like regions, methods etc.
  11. Lots of code and there are no groups. Use CTRL+M+H/CTRL+M+U
  12. Another super sweet. ALT+F4 to close the window.

Try using the above in your day to day coding and be more productive.

Cheers
Brij

 

A starter guide to Page Inspector

There is a very exciting tool that was launched by Microsoft with Visual Studio 11 Developers Preview. That is Page Inspector.

Web development has always not been a very simple job. Every web developer must have spent lots of time to give a better look to the web page and have worked a lot with HTML syntax.

There are a lots of tools that helped the web developers a lot and became a lingua franca in web development community. Some of these tools are

Browser diagnostics tools

Browser diagnostics tools

Continue reading

Could not load file or assembly ‘PresentationCore’ or one of its dependencies. An attempt was made to load a program with an incorrect format. : A solution

Few days back, I was migrating my application for VS2008 to VS2010 and it was done successfully except  some people started running the application. They faced the error as below

Could not load file or assembly ‘PresentationCore’ or one of its dependencies. An attempt was made to load a program with an incorrect format.

I tried to diagnose the problem and tried to find a solution.<!–more Continue reading… –>

So whenever you  upgrade to VS 2008 to VS 2010 and also upgrade ASP.NET version to 4.0. And if your website hosted on IIS, when you open your VS 2010 IDE it prompt a message asking to upgrade to asp.net version to 4.0. When you say yes it upgrades the version at IIS.

So let’s come back to our original problem. When I diagnosed I found the machine was having 64bit OS.

And at IIS, there is setting “Enable 32-bit Applications” at application pool level that is by default set false . So if you are having 64 bit OS and your application target 32-bit applications then this property must be true.

So how to set it. I have included the images for IIS7.  So first you need to know, which application pool your virtual directory points. So to check this

Goto -> cmd prompt -> type inetmgr -> click on your virtual directory and click on basic settings

Basic settingsNow you can see the Red oval that that is the name of Application pool set for this directory.

Now click on Application pool-> Click on DefaultAppPool -> and click on Advance settings.

App pool advance settings

Here you can see Red oval, I have set Enable 32-bit Applications to true.  Now restart the IIS.

Now run your application and it must be working.

Cheers,

Brij