Reviewer's Mandate

Here's an interesting problem for reviewing products in the .NET/Visual Studio toolspace: What are the boundaries? For instance, in our September issue we just reviewed a product that supports creating Office applications and another product for creating PDF documents More

Posted by Peter Vogel on 09/08/201034 comments


Reading the CodeRush Screen

A couple of years ago I spent a month driving around England. While there, I noticed how much information the British pack into their roadscapes. There's information on the signs, information on any overpass you go under, and a ton of information on the road itself.

This "roadbed" information not only includes actual messages but also packs in an enormous number of symbols. It took me awhile to be able to pick out what was actually important to me at any one time and ignore the rest -- initially, I tried to read it all (which was hard, what with all the honking that seemed to occur wherever I was driving).

All this is relevant to the hands-on review of JetBrains ReSharper and Developer Express CodeRush, which I wrote for the August issue of Visual Studio Magazine. Because any developer who adopts DevExpress CodeRush will have to make the same kind of mental adjustments that I did while driving around on those English roads. CodeRush, you see, adds a lot of information to the Visual Studio screen. The result, initially (and, at least, for me) is information overload. It took me about 30 or 40 minutes before I got really comfortable with the amount of visual feedback that the tool was giving me.

After that 30 minutes, however, I found that my eye was automatically ignoring what I wasn't interested in and picking out the information that I did need when I wanted it. At the very least, when I was working in C#, the thin red lines down the left hand side of every code block (classes, methods, if blocks) was invaluable. I'm still prone to having problems getting my braces to match up and those guidelines were tremendously helpful.

I've never been a big user of bookmarks. However, I found them so easy to invoke in CodeRush (Ctl_Numeric Keypad +) that I started using them more. Part of the reason was that the visual marker for a bookmark was so easy to spot that I felt more comfortable about scattering them around my code. And the little number that CodeRush adds to the end of my methods that provide a measure of the member's maintainability started to trigger me to refactor code that I would have otherwise ignored.

After 30 minutes, I was still feeling a little overwhelmed by what CodeRush added to Visual Studio's display. However, it gradually transitioned from being "clutter" (my initial reaction) to becoming "feedback." I suspect that, given a day or two, I'd adjust and come to depend upon those markers. And, of course, anything that I decided I didn't like, I could always turn off in CodeRush's Options dialog.

Posted by Peter Vogel on 09/02/20102 comments


Supporting Test First Development with CodeRush

CodeRush doesn't claim to have as many new features in its Visual Studio 2010 version as JetBrain's ReSharper did in their new version. And I'm not sure that's a bad thing: The product is actually packed with features. In my first review of CodeRush back in 2009, I noted that I had a hard time mentally managing all the key stroke combinations used to access all the functionality in the package. More

Posted by Peter Vogel on 08/26/20105 comments


The Dangers of Spam-a-Lot

Every day I'm reminded that what cost of sending email is (virtually zero). As a product reviewer, I get lots of e-mail from vendors. Some of it is from software suppliers who I've had products from in the past and am now one of their registered users. Some is from vendors who would like me to review their product. Some of this is spam.

Recently I got a press release from "Emily." I'm already suspicious when e-mail comes from a so-called friendly name rather than a full name. A glance at the subject line showed that this was a general mailing and business related. Now I'm doubly suspicious because not only should e-mail come from people with a full name, general mailings should come from an identifiable company.

The product turned out to be completely unrelated to our magazine and the products we review (it was a phone switching exchange for IP communications). The company, rather than managing its press release, just sent a blanket e-mail to anyone who might review anything anywhere, confident that I'd feel that having their... stuff... clogging my in box is a value-added activity. It's the functional equivalent of spammers who simultaneously sending me spam for Viagra and breast enhancements. This is just poor mailing list management, folks.

Posted by Peter Vogel on 08/25/20100 comments


Managing Options in ReSharper and CodeRush

In our August issue, we reviewed JetBrains ReSharper and Developer Express CodeRush ( Two Productivity Tools for Visual Studio 2010 ). Today's I'll look into dealing with one of the quirks of these useful tools.

Both ResSharper and CodeRush have their very own Options dialogs, separate from Visual Studio's Tools | Options dialog. There's a reason for this: both have an enormous set of options that you can use to customize the behavior of the tools. While you may normally be the kind of person who just accepts the default settings for your tools, getting to know these options can be useful if you find that, after installing one of these add-ins, Visual Studio gets sluggish in its response time.

More

Posted by Peter Vogel on 08/19/20100 comments


Navigating in ReSharper

In our August issue, we reviewed JetBrains ReSharper ( Two Productivity Tools for Visual Studio 2010 ). I had to be careful because I was testing ReSharper in Visual Studio 2010, which is so new there was a real danger that I could mistake some cool new feature in Visual Studio for something that ReSharper has given me. More

Posted by Peter Vogel on 08/18/20100 comments


Top Dev Tool Categories

I was surfing the Devdirect site , which seems to list every new software development product release ever made and I ran across two interesting lists: The top 10 best selling products and the top 10 software categories by sales. I realize that these are snapshots and may just reflect one day's sales, but I found them intriguing.

The top 10 products actually had a couple of surprises:

  1. ASPPlayground.NET SQL Forum
  2. Color Tab Control .NET
  3. SpreadsheetGear 2010
  4. RadControls for ASP.NET AJAX Q2 2010
  5. RadControls for WinForms Q2 2010
  6. RadControls for Silverlight Q1 2010
  7. Telerik Reporting Q2 2010
  8. GdPicture.NET
  9. Diagram Editor Tool for VB, .NET and VC++
  10. 3-Heights™ PDF Viewer

The predominance of the Telerik RadControls and reporting products probably has more to do with their recent release than market dominance. But it does suggest that programmers are still primarily interested in control toolkits -- not much different from the days of Visual Basic 3. But it is interesting that a tool as specialized as one designed to create forums in .NET for SQL Server databases can outsell the more general purpose tools.

The top 10 categories reveal an even more traditional perspective:

  1. Calendar, Date & Time
  2. File Upload/Download
  3. Graph & Chart
  4. Grid
  5. Image Acquisition
  6. Image Processing
  7. PDF View
  8. Reporting, Report Writers
  9. Scheduling & Diary
  10. Tab & Tabstrip

I suspect that these would have been the top 10 categories ten years or even twenty years ago when I was a Visual Basic programmer (well, maybe not the File Upload control).

Posted by Peter Vogel on 08/17/20100 comments


Lessons for Would-Be Software Vendors

I used Jason Short's experience with VistaDB to discuss the challenges of moving from software developer to software. It seemed reasonable to give Jason the last word with some lessons learned:

#1 – Have a pricing model that will make money on what you sell now, not next year. A small company can't afford a subscription model (only five percent of VistaDB users renewed their subscription, for instance). And, by the way, there are no economies of scale. Charge higher and get fewer customers that you can afford to support better.

#2 – Don't include support. You can't afford it. On average, I spent almost $1,000 per user in tech support during year two. Free tech support is an open invitation to get a call for every compiler error message. No amount of documentation will prevent this. People who are solo coders want someone else to bounce ideas off, play out designs, etc. They end up hitting whatever vendors they can get free support from in order to have that sounding board. That's consulting, not tech support.

#3 - No free updates. You have to get a constant revenue stream and upgrades are one part of that. Naming matters, here: Version 4.0 was my first major upgrade and its name scared buyers off. If I had called it version 3.6, my base would have moved to it without a second thought.

#4 - Big companies should pay big prices. I have to agree with Joel Spolsky that having a corporate edition at any price is a bad idea. You'll end up with a megacorp that should have paid you 10,000 developer licenses only buying one corporate license. Give corporate buyers a deal, but don't give them the farm.

#5 - Pick a tight niche. If we had an ASP.NET-specific database engine that only worked in that environment and handled caching, replication, etc., we could have charged a lot more for it and specialized the code, as well. Pick the tightest niche you can and stick to it: You can charge more money.

#6 - Free trumps everything for most companies. SQL CE is not perfect, but it is free and it's flattening the database market. It's hard to compete against free.

Posted by Peter Vogel on 08/13/20100 comments


Versant's German Viscuso on OLTP Databases

Recently I reviewed the Versant db4o object database . I used the opportunity to talk to German Viscuso, who manages db4o's developer community, about the database market from the perspective of an object database company. You can read the first part of our interview here More

Posted by Peter Vogel on 08/06/20101 comments


Two Questions with db4Objects' German Viscuso

German Viscuso is director of community management at Versant, which makes the db4o local database that we recently reviewed . Since db4o is a free, object-oriented databases that integrates easily with .NET applications, it made sense to ask German "Why an OO database?"

Peter Vogel: Why object instead of relational?

German Viscuso: Faster development and evolution of the code base, because no mapping between runtime objects and persistent storage is required. Faster runtime execution, because the relational Primary Key-Foreign Key (PK-FK) relationships are natively stored by [the] object database, which means they are resolved at runtime without CPU intensive JOIN operation. Storing the PK-FK relationship directly in the database is akin to creating the complex index overlays required in a relational database to speed JOINs. Object Databases (ODBs) are just a substantially more efficient way to store and retrieve data.

Object databases are good at dealing with complex, domain specific models. The JOIN operations of a relational database become unavoidable when the model gets complicated. If the model is sufficiently complex, there's no way to create performance-oriented single table mappings between objects and tables. You often end up with tertiary tables and even more JOINs -- this not only kills performance, it makes development difficult. Object databases allow you to avoid this completely by using pure object identity indexing from inside of database, transparent to the application developer.

PV: Is there still a place for relational databases?

GV: Yes, and there always will be. The relational database (RDB) is great technology for basic business data management and supporting ad-hoc queries in small to medium sized data environments. It's only when data gets complex and is domain driven that object databases show an advantage. When it comes to ad-hoc queries, the RDB is still the best solution -- until you pass some medium-sized data levels and move into terabyte-plus ranges. In that case, newer data warehouse solutions are clearly a better choice.

Still, if you're doing data analysis against large amounts of data using existing domain realationships, then ODBs show a significant advantage. That's why ODBs are used heavily in large scale modeling and simulation type applications like weather forecasting, defense analytics, financial risk management, online gaming, etc.

Then, of course, you have the truly massive, non-transactional, "mostly-read" space where Google FS and like technologies provide the only feasible solutions (given today's hardware). However, these application areas are outside that of the traditional database application space.

Posted by Peter Vogel on 08/03/20100 comments


The VistaDB Story

I think that a lot of developers working for someone else think about working for themselves either as an independent consultant (like me, for instance) or as the owner/vendor of a killer software product (I tried that once, too). Over the last few blogs I've talked about the history of a developer (Jason Short) who bought a software product in 2007 (VistaDB, reviewed here More

Posted by Peter Vogel on 07/26/20103 comments


Life and Death of a Software Company (Part 3)

In my last two blog posts I discussed the history of Jason Short, who moved from being a developer to a product vendor with VistaDB (which we reviewed in July ). In the middle of June, VistaDB sent out an e-mail discussing an upcoming platform shift for VistaDB (I discussed the impact of platform shifts on product in More

Posted by Peter Vogel on 07/22/20100 comments


Subscribe on YouTube