Archive for the ‘dotCover Tips&Tricks’ Category

Meet dotTrace 5.3.2 Performance with CLR 4.5 support

Tuesday, May 14th, 2013

Today we are happy to announce availability of a new maintenance release of our .NET performance profiler. Please feel free to download and try the latest dotTrace 5.3.2 Performance.

Starting from this update dotTrace Performance supports the latest version of CLR. In case you have already updated CLR to version 4.5 or just plan to do it, we would recommend to use this version of the profiler.

dotCover 2.2 is Here!

Wednesday, November 21st, 2012

We are happy to announce the availability of dotCover 2.2! Please feel free to download and try it.

dotCover 2.2 is released

What’s new in this version:

  • Integration with the recently released ReSharper 7.1
  • Support for Windows Store Application Tests. Please note that with this version of dotCover you’ll be able to get overall coverage statistics, without percentages per single test
  • This update also includes a series of bug fixes and improvements

For more details on improvements introduced in dotCover 2.x, please check out What’s New in dotCover page, and don’t forget to grab the latest build! Updated MSpec and xUnit plug-ins compatible with dotCover 2.2 are also available for downloading.

In case your dotCover maintenance period or upgrade subscription is still valid, this would be a free upgrade for you. And as usual, please feel free to provide us with any feedback.

dotCover 2.2: Early Access Program is Open

Monday, October 8th, 2012

Today we are opening the Early Access Program for the new version of dotCover, code coverage tool with integrated unit test runner. You are very welcome to download and try the latest build of dotCover 2.2.

The main purpose of this minor update is providing integration with the latest ReSharper’s 7.1 builds (best served with ReSharper 7.1.3.130 and 7.1.5.2).

Please download dotCover 2.2 EAP build, and let us know about any issues you might be facing via dotCover issue tracker.

dotCover 2.1: What’s inside

Monday, September 17th, 2012

As you might already know, last week we released an update to dotCover. This minor version includes a series of bug fixes and improvements as well as a couple of important features worth noting in details.

Visual Studio 2012 Integration

dotCover 2.1 now integrates fully within Visual Studio 2012, either as a standalone product using its own Test Runner, or integrating tightly with ReSharper.

dotcover_vs2012_integration

In addition, it also comes with support for both Light and Dark theming, as well the ability to choose the icon set we want to use.

dotcover_vs2012_theming_support

We’ve also added support to help with people with color-blindness.

Windows App Store Application Supportdotcover_windows_store_applications_support

dotCover now allows the coverage of standalone Windows App Store applications, formerly known as Metro Applications.  This support is possible to the underlying engine that dotCover is built in, which is the same profiling engine that dotTrace Performance uses.

We have many more features planned for the next upcoming version of dotCover so stay tuned. And as always, please provide us with any feedback.

You can download the latest version which integrates with ReSharper 7.0.1 from here.

dotCover 2.1 is Released!

Thursday, September 13th, 2012

We are happy to announce the availability of dotCover 2.1 RTM build! Please feel free to download and try it.

dotCover 2.1 released

This new version is notable for:

  • Visual Studio 2012 support including the ability to choose icons and menu style according to the theme you prefer.
  • Integration with the latest ReSharper 7.0.1.
  • Calculating code coverage statistics for Windows Store applications (without unit test coverage yet).

For more details on improvements introduced in dotCover 2.x, please check out What’s New in dotCover, and  then download the new release!

Please note that if your dotCover maintenance period or upgrade subscription is still valid, this would be a free upgrade for you.

dotCover 2.1 Release Candidate

Friday, September 7th, 2012

dotCover 2.1 Release Candidate has arrived! Please don’t hesitate to download and try the RC build.

If any critical issues are still bothering you, feel free to report them and have them fixed before release.

dotCover 2.1 Beta is available

Wednesday, August 29th, 2012

We are glad to announce that dotCover 2.1 Beta is now available for you to download and try.

dotCover 2.1 beta

Calculating code coverage statistics for Metro applications, integration with Visual Studio 2012 including theming support and full integration with ReSharper 7 are the main changes of this update.

Please feel free to download dotCover 2.1 Beta, and let us know about any possible issues via dotCover issue tracker.

dotCover 2.1: Early Access Program is Open

Friday, August 10th, 2012

Today we’ve opened the Early Access Program for the new version of dotCover, our unit test runner and code coverage tool. Please, feel free to download and try the latest build of dotCover 2.1.

Here’s what’s new in this version:

  • Integration with Visual Studio 2012 including support for Light and Dark themes. We have added Visual Studio 2012 theming support by updating menus and icons, so you can choose which appearance suits you best:
  • Integration with ReSharper 7.0
  • Calculating code coverage statistics for Metro applications (no unit test coverage just yet though):

Please download dotCover 2.1 EAP build, and let us know about any issues you might be facing via dotCover issue tracker.

dotTrace SDK: An API for Your Performance Needs!

Thursday, August 9th, 2012

As of version 5 of dotTrace Performance we started shipping as part of the package, an SDK which allowed us to programmatically make use of dotTrace Performance engine. We are excited to announce that we are now offering this as its own standalone product, with its own installer, and available for free. Download it here.

Making performance snapshots child’s play

Performance issues generally are a pain. They usually only appear in production and are hard to pinpoint and even worse to reproduce. When performance issues arise, the first step is to run analysis on the application to try and find the bottlenecks, and this isn’t always easy in production. To begin with, we need to interact with the machine where the application is running. With dotTrace Performance we’ve made this somewhat easier by allowing remote profiling. Secondly however, we need to have some knowledge to collect this information, in other words, know how to work with dotTrace Performance. This usually means a member of the support team or developer. Not the customer.

Wouldn’t it be great however if this weren’t necessary? Imagine if we could just instruct the program to profile itself. Well that is what the SDK is bringing to the table, and more!

Scenarios

Let’s take a look at some of the scenarios that the SDK enables.

Self-Profiling

As mentioned previously, one of the great advantages of the SDK is to allow an application to profile itself and gather performance metrics. In ReSharper 7 we are already making use of this functionality. When you install ReSharper, you will notice a new menu entry under Help menu:

ReSharperHelpMenu

When we execute this option, the dotTrace performance engine kicks in and attaches itself to the running process. It then starts to gather information about everything that is going on in the application. Once enough information has been gathered, it creates a snapshot file that can be analyzed by dotTrace Performance and more importantly, it can be detached from the process. As we know, running an application under a profiler has a performance penalty so it is fundamental to only do it for the minimum time required.

By default, when invoking this functionality, the dotTrace Controller pops up:

dotTraceController

However, this functionality can be customized to one’s own needs, so we can in fact have something that blends in more with our application and we also have access to events that allow us to intercept the snapshot and do what we want with it.

Application-Centric Profiling: Profiler API

When analyzing performance snapshots, we usually focus on our own application code and ignore system code such as the BCL calls or libraries and frameworks that we cannot necessarily do anything about. With some applications this is easy to accomplish as dotTrace Performance grays out irrelevant code and allows us to focus on our own. However with certain types of applications, it’s not always straightforward as it’s hard to often distinguish entry points from the users perspective.

The SDK now allows us to indicate where we want to focus our performance analysis by allowing us to define entry points. For instance, in an ASP.NET WebForm application, we can add the following code to the Application_Start event:

CodeSnippet

This means that if we’re running under dotTrace Performance (in other words profiling the application), to start monitoring our code. We can then indicate where we want to stop monitoring also:

CodeSnippet

and thus allowing the focus to stay within the bounds of the code we are interested in. Notice how we do not have to make explicit calls to the profiler. We just indicate when we want to start and when we want to finish.

By doing this, we can now activate the Use Profiler API checkbox in dotTrace Performance

dotTraceConfig

and thus removing all irrelevant infrastructure code that we are not interested in from the analysis.

On-Demand Profiling

Although not a scenario as such, the ability to pause and resume performance, gives us the ability to provide on-demand profiling in our applications. We can have SDK calls in the code and activate them on demand.

Getting Started: Show me the code

Once we download and install the SDK, the application folder where it is installed contains 4 folders:

Folders

The Doc contains the documentation for the API classes which we’ll examine briefly in a moment. The Lib folder is the two assemblies that are referenced in applications that use the SDK. An important folder is the Redist. This contains a redistributable copy of the dotTrace Performance engine which should be shipped with your application if you’re using the Self-Attach functionality. Finally Samples provides two documented samples of how to work with the SDK in the scenarios depicted previously. One of them is the VSTool Visual Studio self-profiling add-in and the other is an ASP.NET WebForms application.

The SDK itself has a small surface area, with only a few classes. Namely the important ones include:

  • ProfilingControl: Class to control the starting, stopping, pausing, attaching and detaching of the profiler to the application. We need this class in order to use the Use Profiler API option in dotTrace. An example usage of this is the ASP.NET WebForms sample that ships with the SDK.
  • SelfAttach: Class to allow self-profiling. Covered in the VS add-on sample that ships with the SDK.

When using the SelfAttach class, we can indicate how we want the behavior to be once a snapshot has been taken. We can opt on opening the snapshot file, saving it or have it processed by a third party assembly. Each of these options have their own settings and are defined by different classes:

  • OpenProfilingConfig: Open the snapshot once completed
  • SaveProfilingConfig: Save the snapshot once completed
  • ProcessSnapshotProfilingConfig: Process the snapshot once completed

We pass as constructor to argument to SelfAttach an instance of one of these classes. The VSTool demo shows example usages of all three.

An important option among the configuration classes is the ProfilerControlKind property which indicates how the profiling process is controller. The default option (as described above in the Self-Profiling) is to use the dotTrace Controller window. Alternatives are None or using the API.

Summary

This is the first big release of the SDK and based on the feedback we receive we want to improve it and make it more versatile, so we appreciate any and all comments. As mentioned the SDK is freely available. You do not need to own a license of dotTrace Performance to distribute it. You do however of course need dotTrace to analyze the results. The point is though to make it simple and cheap for you to include this functionality inside your applications

You can download the SDK from here.

Enjoy and please give us any feedback.

ReSharper 6.1, dotCover 1.2 and dotTrace 4.5.2 Performance Released

Tuesday, December 20th, 2011

Christmas is only a few days away and we’ve decided to celebrate it a little earlier by releasing not one, but all three of our main .NET tools: ReSharper 6.1, dotCover 1.2 and dotTrace 4.5.2 Performance.

ReSharper 6.1

As covered in previous posts, this release of ReSharper is much more than a few bug fixes.

Settings

In ReSharper 6.0 we laid the foundations for what would be the new settings management engine. This was quite a substantial change, both from an architectural point of view as well as functional. Unfortunately due to that pesky little annoyance called time, we did not manage to finish it for the 6.0 release. We have now though and ReSharper 6.1 introduces a wealth of new possibilities for sharing settings across solutions, teams, machines and even company-wide policies. And we’re still not done with settings, so keep your feedback coming for further releases.

image

Performance improvements

For every single release of ReSharper, we invest a large amount of time in performance improvements. This often isn’t an easy task since new releases also include new functionality. In 6.0 we had some serious performance issues with certain types of web projects. This has now thankfully been resolved in 6.1 and we’ve made 6.1 faster in many areas. Numbers are impressive: we have fixed 140 performance problems for 6.1.

Async and Visual Studio 11 support

Async support in C# is still in CTP stage. Visual Studio 11 is in early developer preview. Trying to support technology that is not entirely finished proves not only challenging but also risky. Any major changes could deem most of the work we’ve performed as obsolete. However, we know that you, our users, play with the early bits and miss ReSharper.

image

That’s why in 6.1 we provide support for Async features in C# and VB.NET, as well as initial experimental support for Visual Studio 11. Support for Metro style applications is not yet included, and in order to install ReSharper into VS11 Developer Preview, you have to use a separate .vsix installer available at ReSharper downloads.

Optimizing assembly references

Many users rely on ReSharper in streamlining their project maintenance tasks, and this new feature is a nice addition to the existing project-level toolset. In any project in your solution, ReSharper 6.1 detects assembly references that are not effectively used, and helps remove some or all of them.

image

SDK

During 6.0 development we invested heavily in trying to provide a better API for extending ReSharper. 6.1 also sees the birth of this effort. Along with an improved API, we also now provide a testing framework, Visual Studio templates for creating plug-ins, samples, as well as online documentation. ReSharper 6.1 SDK is available for download as a .msi or .zip package.

image

More awesome features

Here are a few more great features also added:

  • Structural Search and Replace for HTML and ASP.NET. You can now use Custom Patterns to refactor both HTML and ASP.NET markup.
  • Call tracking for ASP.NET MVC. Same call tracking features, extended to ASP.NET MVC 3.
  • New code inspections. Access to disposed closures, covariant array conversions and more.

We have also fixed many outstanding issues. Look for more blog posts describing 6.1 features and improvements in future here on the JetBrains .NET tools blog.

dotCover 1.2 and dotTrace 4.5.2 Performance

These are mainly maintenance releases with a primary focus of supporting ReSharper 6.1. In addition, dotCover 1.2 works side-by-side with TypeMock 6.2.x, provides performance improvements in report generation, reduces HTML report size and memory consumption.

Note that we are already working on next major dotCover and dotTrace Performance releases. EAPs are expected soon, exposing a ton of new functionality and improvements, so stay tuned for that.

Download them all!

You can download ReSharper 6.1, dotCover 1.2 and dotTrace 4.5.2 Performance right now!

Last but not least, we’d like to wish everyone very Happy Holiday season. Stay safe and see you all in the New Year!