Wednesday, September 25, 2013

New Features in Vistual Studio 2013 Release Candidate

It has been great movement, great work done by VS team for making easy to use Visual Studio. There has been lot of new features in Visual Studio 2013 preview, which has some very cool features in XAML, intellisence, goto definition and many more. But in RC, most of these features are extended. Today I'll try to cover as much as possible about all these new features. So, let's start by taking them one-by-one.

1) Intellisence in XAML - Earlier versions of VS were pretty cool but I hope, whoever working in WPF would have surely miss intellisence feature. But in RC, that is no more a limitation. So, if we let editor know where the data is, it will help us out like a friend and will make our work easier. VS2013 rc supports intellisence for DataBinding and Resources. Let's have a look of this feature in below screen shot:

Intellisence for DataBinding


Intellisence for Resources

2) Go To Definition in XAML - This new feature in available in VS2013 RC on right click of relevant object or by pressing F12 key in XAML. If you are pressing F12 on built in control, then it will pop-ups an Object Browser. This feature works for any valid user defined objects as well as for User controls. Below screen shot will give you better insight of the feature.

3) Insert snippet - Another cool feature is "Insert snippet...". If you will right click on XAML file, you will get this new feature in context menu. So, if you have any snippet, you can insert it or you can use any built-in snippets.
4) Intellisence matching - Let's say instead of typing DockPanel, you typed ockPanel. Well, from now onwards this will be taken care by VS2013. It will autmatically detect ockPanel as DockPanel. You can also type by lowercase and it will be automatically rectified by editor. It's not 100% matching, but yeah, it's still very helpful. Isn't it cool? Let's have a look at below figure for better understanding.

5) Refactoring - VS2013 RC also provide us the refactoring capabilities. Let's say, you want to change your Stackpanel to some other container. In this case, as soon as you will change starting or ending node, the other one will automatically get changed. This is one of the awesome feature, which reduces lot of typing.

6) Type Script - Another major enhancement is done in the area of Type Script (TS). Hope most of you are aware of TS. When you build your application, TS code automatically gets converted to JavaScript code. As TS is very easy to write, one can write code in TS and later get it converted on application build. To check out this enhancement, you can create a web application and get this Type Script option on right click of Scripts folder or in 'Add New Item' dialog. This feature was available in VS2012, but instead of integrated version, it asks you to download from Nuget or from But in VS2013 RC, one need not to download any external tool because this is built with the product itself as shown in below figure. The good thing is, VS2013 supports, intellisence for type script too.

7) Peek Definition - This is the new capability, which was added in Visual Studio 2013 preview. It allows you to view the other source file from your opened source code file. Let's understand this in another way and forget about this Peek Definition feature. With current editions of Visual Studio, if one want to see the information about particular method or class or any object from our current file, then only two options are available as either by using F12 or by using Go to Definition. Now problem here is, if the file is very huge then there are very high chances that user will loose the context or might forget where he/she was. So, Visual Studio team came up with a very brilliant idea of showing the object's information in the current window itself as shown below. Let's say developer wants to see the information about Employee class, then -

Here you might have noticed that being in the same window, user is able to view the source code of another object via an inline window. Infact, you can go further down in a nested way and can go back and forth among those nested windows also.

Another best thing is, user can also do code modification in these inline window and similarly, there are little other optimizations are done around the coded window.

8) CodeLens capability - If your Visual Studio 2013 is connected to Team Foundation Server (TFS) then you will get lot of additional features which can help developers as well as reviewers to ease their task. So, let's look at the source code in VS2013, you will find a small header at the top as shown below:

In above screenshot, I have a function named BasicEmployeeViewModel which has 5 references, 3 unit test cases. Now if you will click on references, it will show you all the references as:

By clicking on any of the references above, you can jump on to that particular part of code.
Now let's quickly jump on to another screenshot for unit test case:

By clicking on Run All, developer can run all the unit test cases at once. So, whenever you are making a change to your code, at the same time, you can run your unit test cases also.

The third part of codelens is available, only and only when your Visual Studio is configured with TFS. This part of codelens says as who has last modified this method. Let's see below screen shot:

Here developer can identify the person, who has last touched this method. This feature is also available at class level also. And in above figure, one can also get to know about the number of changes and what all the changes are done as shown below:

One more fabulous thing is, if you want to connect to any of the authors listed above, then you can click on that icon (orange square) and can communicate with him or her. If require, you can chat or e-mail to that concerned person. Definitely, here you will need a Lync integration ;)

9) Addition of Charts in TFS- There are few enhancements done in web interface of TFS. Below is the screen shot of web interface 2013 RC.

As part of release candidate, a new Chart capability is added on Queries tab as shown below:

This is a web based chart and one can select the chart of the choice from the given list as Pie chart, stack chart, etc. Now on click of queries, you will get the list of all the assigned items. As of now, only one item is assigned to my name, so only 1 is listed here as:

Now, when you will click on Charts, you will get the corresponding chart with all the items assigned to you. You can also select the group items for which you want to create a chart and it seems to be very flexible. Below shown is the Pie chart -
10) Addition of Features in TFS - One more feature is added into Backlog management as below:

Feature can be think of as one higher level abstraction. So, let's say you have one or more features, backlogs, then you can sort them by categories and can do lot more than this.

11) Others - 
Apart from all above. there were lot of major enhancements done in Office365 to host LoB apps in much more easier way. To meet this goal, a new template is added for building business apps having lot of plumbing done. This is not a 100% business app, but we can say, it's a good start.

Hope above list of features gave you a gist of Visual Studio 2013. So, let's wait for the release of VISUAL STUDIO 2013 :)

Thursday, September 12, 2013

Visual Studio 2013 RC is available for download

Visual Studio 2013 Release Candidate is available for download now. This release includes new tools for line of business applications, Web applications, games, mobile devices, services and of course applications targeting our latest platform Windows 8.1. With the Visual Studio 2013 Release Candidate (RC) and Windows 8.1 RTM for MSDN and TechNet subscribers, developers now have everything they need to start building and testing  the next generation applications for the Windows Platform. More...

Wednesday, September 4, 2013

WPF Error: IOException - Cannot locate resource

Recently I worked on a WPF application which supports localization using LocBAML tool. I created a sample application, having a very simple UI, consist of a button inside a window. Here I am assuming that most of you are aware on how to generate satellite assemblies. So, quickly coming to the point, when I build my application, build was successful. But when I launched, my application crashed with reason stated as IOException :(

After spending almost an hour, I came to know that it was due to Culture settings. Let's have a look at my code first:

Apart from this above code, I also updated my project file (.csproj) for development language so that my satellite assembly contains the neutral language resources. Following line was added in the project file:

Apart from this, I did nothing special in my app. After hitting my head on msdn, I got an idea on why culture changes was causing an exception.

Well, no need to get panic. Solution is pretty simple. Let's move ahead and  open your file and uncomment below line:
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]

After this minor change, we are good to go.
By uncommenting this line, we are telling runtime that culture information needs to be read from satellite assembly.

Hope, this tip will save your time :)