Entries tagged 'tools' ↓

Typemock Bundle Launches

The folks at Typemock have come up with a cunning viral way to market a new software bundle comprising of their renowned Typemock Isolator and Ivonna tools. Having mentioned Typemock in this blog previously, and being something of a unit testing zealot, I’m happy to be a pawn in their campaign!

Unit Testing ASP.NET? ASP.NET unit testing has never been this easy.

Typemock is launching a new product for ASP.NET developers – the ASP.NET Bundle - and for the launch will be giving out FREE licenses to bloggers and their readers.

The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both Typemock Isolator, a unit test tool and Ivonna, the Isolator add-on for ASP.NET unit testing, for a bargain price.

Typemock Isolator is a leading .NET unit testing tool (C# and VB.NET) for many ‘hard to test’ technologies such as SharePoint, ASP.NET, MVC, WCF, WPF, Silverlight and more. Note that for unit testing Silverlight there is an open source Isolator add-on called SilverUnit.

The first 60 bloggers who will blog this text in their blog and tell us about it, will get a Free Isolator ASP.NET Bundle license (Typemock Isolator + Ivonna). If you post this in an ASP.NET dedicated blog, you'll get a license automatically (even if more than 60 submit) during the first week of this announcement.

Also 8 bloggers will get an additional 2 licenses (each) to give away to their readers / friends.

Go ahead, click the following link for more information on how to get your free license.

NHProf

The inimitable Ayende Rahien is close to releasing version 1.0 of his NHibernate Profiler tool, and it really is shaping up to be a rather lovely little addition to my developer toolbox.

In much the same way that we can use SQL Server Profiler to monitor database activity, and ANTS Profiler to monitor the performance and memory usage of .NET applications, NHProf profiles the activity of the data access layer (NHibernate), and even goes as far as providing helpful hints for potential improvements.

NHibernate is powerful object relational mapper, but has a (perhaps deserved) reputation for having a steep learning curve. One of its major benefits is that it abstracts away much of the drudgery of writing data access code from the developer, but as an unfortunate side effect of this it can make it easy to create inefficient data access layers.

NHProf aims to reduce this risk by providing:

“Cognitive application awareness.

Visual insight into the interaction between your database and application code.

Analysis and detection of common pitfalls when using NHibernate.”

Sounds good, doesn’t it? So what does that mean in practice?

Here’s a screenshot of the release candidate. Note that the Session Factory Statistics functionality is disabled in the current build.

NHibernate Profiler

Each profiled NHibernate session can be selected individually from the pane in the top left, and from there we can drill down to see the details of each SQL statement executed against the database (formatted in nice readable manner), along with details of any parameters, and even an option of viewing the rows resulting from the statement.

The statements are interpreted, and suggestions and warnings are flagged as alerts, along with hyperlinks to online guidance explaining how the data access can be improved.

NHibernate Profiler

A stack trace is also provided for each statement, allowing us to identify the code that caused the data access to occur. It’s possible to double-click on a row within this trace to jump straight to the code in Visual Studio.

NHibernate Profiler

In addition to showing the SQL statements executed by each session, details of the entities loaded by each session are also given.

NHibernate Profiler

…and there’s a summary of the NHibernate usage for each session.

NHibernate Profiler

As well as providing session-by-session detail of what’s happening, NHProf allows us to analyse the overall activity. Here, I’m looking at unique queries containing the string “study” (note that differing parameters don’t count towards “uniqueness”):

NHibernate Profiler

We can also obtain analysis by Method, Url (for web applications) and Overall Usage statistics:

NHibernate Profiler

In my opinion NHProf has the potential to become an essential tool when creating or maintaining a solution which leverages the power of NHibernate. In addition to highlighting performance and other issues, it is a great aid when learning about NHibernate, or when familiarising oneself with an inherited solution. Overall, it’s the next best thing to having Ayende sat by your side lending a guiding hand.

TFS: Using Alternative Diff/Merge Tools

There are many things I love about Team Foundation Server, but the supplied diff/merge tool is not one of them. It is - how can I put this? – somewhat basic. Indeed, I’ve heard tell of people going out of their way to avoid merges purely because they find the process so clunky.

Here’s the good news – you can easily configure TFS to use a different, third-party, diff/merge tool, perhaps the one you’ve grown to know and love over many years of happy software development using other SCM products. Maybe you like WinMerge, or love TortoiseMerge. Perhaps you’re like my friend John and swear by SourceGear DiffMerge. Or maybe, like me, you’re a Beyond Compare fanboy. No problem, they can all be used by TFS. Here’s how:

  • Open up the Visual Studio options (Tools –> Options).
  • Expand the Source Control –> Visual Studio Team Foundation Server section.
  • Click the Configure User Tools… button:

dm1

  • Click the Add… button to set up a new file extension operation:

dm2

  • Set up a Compare operation to run against all files (extension of *):

dm3

  • Repeat the process to add a Merge operation to run against all file extensions.

At this point, you’re probably thinking “wooah, what do those argument parameters mean? How do I know what to enter?”. MSDN won’t help you out (“type any arguments that your tool requires” – thanks for that!).

Fortunately James Manning has posted a blog article which not only explains what the argument parameters mean, but also suggests recommended parameters for various popular tools, including those mentioned at the beginning of this post. Thanks, James! 

Voila! OK your way back out of the dialog boxes, and your Compares and Merges will now be displayed using your favourite Diff/Merge tool. Feel your productivity and confidence soar!

Tool Time

The readership of this blog is generally split between a minority of visitors who know me in “real life” (hello, mother!), and a majority who have an interest in .NET, SQL Server, and associated software development topics. There is of course, some significant overlap between the two groups (I hope you’re remembering this – I’ll be asking for a Venn diagram later!)

Anecdotal evidence reveals that some of the techies amongst you appreciate it when I blog about the tools, components, services and techniques which I regularly use in my day to day work. So, I shall try to include more of that kind of content in the future.

In the meantime, you might like to check out http://ianfnelson.com/pc-build/ , where I keep a crib sheet listing the software currently installed on my laptop. This is ostensibly to assist me with any rebuilds, but I will enhance it to include links to the application websites and any reviews I might have written on this blog.

I hope you find this useful.