Columns

A review of ReSharper 1.0.1 and Pivia Performance Suite 4.0

JetBrains moves in on .NET

ReSharper 1.0.1
Cost: $99
JetBrains
Prague, Czech Republic
www.jetbrains.com
Rating: 4 out of 5 stars

JetBrains has been in the Java world for a while, producing the popular IntelliJ Idea IDE. Now it has moved in on .NET with this product, an add-in for making C# code editing more efficient. (Sorry, users of other .NET languages need not apply yet.)

The package is loaded with functionality and has a steep learning curve. Although everything is available through a main menu, and occasionally through a context menu, you should learn the keyboard shortcuts for efficiency.

Refactorings are perhaps the coolest feature here, or the one for which JetBrains is best known. You can extract a method, change it to a property, do various smart renamings and so on. I tried these out, and they work well and quickly. Anything that lowers the bar for refactoring code is a good thing, as it makes it possible to backtrack past old mistakes without fretting too much about side-effects.

But there is more than refactorings. There are advanced types of code completion, the ability to quickly insert code structures, and live templates that fill in gobs of code with little effort and then prompt you to fill in variable names.

There are also plenty of fit-and-finish touches. These range from a richer syntax coloring than the VS .NET default to showing you matching braces to marginal symbols that indicate when a method overrides a method of a parent. All of this stuff just works, and it is easy to get used to it, as well as to the enhanced error checking that lets you find dubious code without needing to compile.

ReSharper also offers functions for navigating code and finding the usage of various things. For example, you can quickly navigate to the base class declaration that you are modifying or highlight all the uses of a variable in a file.

Overall, I like the way ReSharper turned out. The flow is smooth and well-integrated with VS .NET, and the functionality is useful. My only hesitation comes from the exclusively C# focus. If it also worked in VB .NET, I would say any .NET developer needs a copy. If you are a C# person, it is definitely worthwhile to take the free test drive.


Pivia aims to speed page delivery
Pivia Performance Suite 4.0
Cost: $50,000
Pivia Cupertino, Calif.
www.pivia.com
Rating: 5 out of 5 stars

Pivia calls its product a “Web application delivery and optimization” package. In simple terms, that means that their software speeds up the delivery of your Web app bits to the browser. I spent some time chatting with some of the Pivia folks, and here’s what they tell me about it.

Pivia uses a raft of techniques to speed up page delivery. This includes caching static objects, compressing the HTTP stream, offloading SSL functionality, and opening multiple connections so that more of the page can be downloaded in parallel than a browser would normally do. No browser changes, plug-ins or ActiveX controls are required for any of these techniques; they just work. If a browser would render your site before Pivia, it will do the same with Pivia.

What won’t be the same is speed or load. With Pivia caching things, delivery times of complex sites can be sliced considerably; some portal pages might go from 60 seconds to 10 seconds. All of the magic happens on the Pivia box (which is commodity PC hardware running Pivia’s software) so that your Web server does not have to be sized to handle the maximum load. Instead, it needs to be sized to hand off unique bits to Pivia.

All of the basic techniques require no developer intervention, but there is another level of performance improvement that Pivia calls “Application Smart.” Using Application Smart technologies, your Web application can let Pivia know when dynamic content has been invalidated and needs to be recached (similar to the way that ASP.NET parameter-based caching works, but much more sweeping). With application smart caching, a database operation or an HTTP event can invalidate a cache. As long as an object is valid, Pivia will serve it without bothering the generating application.

There are other bits to the Pivia solution as well; in particular, there is a remote office server that can help to eliminate bottlenecks on a WAN, which looks very attractive for distributed organizations. You will find plenty more information on their Web site, and they have an impressive list of clients who have found this software to be of use.

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.