October 10, 2012 09:34 by
Scott
This post discusses the new language features that is introduced in Visual Studio 2012. One of the main things that language team introduced is the idea of producing windows 8 App. These APPs are talking to new API called windows runtime.
This release also brings iterators to Visual Basic. The main discussion in this post is around Asynchronous programming in C# language.
If you want to give importance on responsiveness of client and scalability in server App then you probably call Asynchronous API’s. These API’s take Callbacks as parameters and uses that Callback to notify you about result of available. When you start write these call backs then it is harder maintain the code but with new Async language support that introduced in Visual Basic and C# and it is easy consume these API’s.
Below is the synchronous code in C#
The code basically Searches the movie index in Netflix using OData by taking Year as parameter. While it is downloading the movies using above code , you can notice you can not interact with your user interface. You can scroll along UI and explore the movies only after the search operation is complete. Users expects more responsive apps.
Why the above code is Unresponsive?
The call to DownloadString is of webclient type and it asks you to wait till it returns string. During this process your UI is going to hang-up and holds the thread until it returns the result back you.
Two different options here, you can put this code on background Thread and it is bit complicated. You may have to marshal and unmarshal the code. The second option is to interact with Asynchronous API there you have an overloaded function DownloadStringAsync, But when you use this method you are no longer take back data as result. You need to sign-up a call-back when a result is available. If you have multiple Async calls then you have to write multiple call-backs. In this case your code is getting more difficult to understand.
Solution
The new overload method is DownloadStringTaskAsync, This method now returns string of type Task, Task of string is object that notify you when result is available. Now you can change the signature of the method QueryMovies and mark this as async. This tells the compiler that this method is pausable and resumeable , they can wait without locking to the UI thread. Now change the return type of method from Movie array to Task<Movie[]> array. Write a word await to get the string from Task of objects from DownloadStringTaskAsync call.
Now you can call the above even from while loop
The compiler is now able to figure out how to handle the await inside the while loop and resume it when it gets the result. Now you should be able to interact with your UI without any hang-ups.
November 1, 2011 07:38 by
Scott
“Track Change” one of the best interesting features in visual studio which indicates the code changes with a color indicator at the beginning of the line. Generally we know about the two color indicator “Green” and “Yellow” which are used indicting the color change till VS 2008 along with those VS 2010 introduced another new color “Orange” which indicates some additional track change for undoing file after save. In this blog post I am going to explain how those color indicator helps developers to track the code changes.
In Visual Studio 2010, there is three color indicator
Green color indicates the lines which you have edited before your last save. Save again the file and green mark will be disappear.
Yellow color indicates the lines which you have edited since the last save of that file. Yellow becomes Green after saving of the file. Once you close the file that indication disappears.
Orange color indication has newly introduced in VS 2010. This color will come when user does an undo after a save operation for that current file. Orange color indicates that current changed line is different from the saved version of the file.
How to Enable / Disable Track Change features ?
To enable or disable the “Track Change” features, Goto Tools > Options > TextEditor . In General section, you can checked or Unchecked the “Track Change” option
Key Note : While you are using “Track Change” option, you have to select “Selection Margin” display option other wise, “Track Change” Won’t work.
One Quick Flow of “Track Change”
You have opened one code file in visual studio 2010 which having below lines of code. By default there is not color indicator with line number.
Now, you have started editing the file Yellow indicator shows , you have made changes on those line.
When you are done with your changes, Save the file. Green indicator shows, all of your changes has been saved.
Now, you have undoing the files after save, orange indicator saying that, the lines is different than the save version. It means, you have changed something on original file, saved it and again undo it.
When you first undoing it, it will be showing as “Yellow”, which means you are editing with this line, but when you have done with all the undoing for that line which is different the saved version colors becomes “Orange”. Which means, it is different than the saved version.
To get a clear , just compare the below two image . Yes, all the orange color marked line are similar with default version image.
But, the Saved version of the file is
Similarly, This Track changes also works for config files also.
Summary : “Track Change” is one very useful features in Visual studio , by which You can see where you have edited / saved on a file for that current VS IDE state . Green color indicates the lines which you have edited before your last save.Yellow color indicates the lines which you have edited since the last save of that file. Orange color indicates that current changed line is different from the saved version of the file.
If you want to know more about editor setting options , please check the below link
How to: Set Text Editor Options