Santa's Got a Brand New Bag

In the spirit of the season, here's hoping that Santa comes bearing some good programmer support tools, like JetBrain's ReSharper or Developer Express' CodeRush. A computer with enough CPU and memory to ensure that Visual Studio stays snappy with these add-ons would be a nice gift, as well. Personally I like ReSharper, but really it's a lifestyle choice.

For those out there building and managing database changes, a copy of Red Gate's SQL Compare and SQL Source Management will save you many a night's sleep.

Of course, Windows and ASP.NET developers always like to have a big bag of controls to draw from. While DevExpress and Infragistics keep winning our Readers Choice Awards, I have a soft spot for Telerik even if their documentation makes me wish for more. Office developers should make sure that Santa didn't leave without dropping off a copy of Add-In Express. SharePoint developers, on the other hand, probably had visions of ComponentOne's Studio for SharePoint dancing in their heads.

And, when it comes time to deploy, if your complex application is going to be installed on multiple computers without your supervision, perhaps you found a copy of InstallShield 2011 under your tree. But keep in mind: Just because you didn't find it under your tree doesn't mean that you can't have more. There are lots of free tools out there.

But, mostly, I hope that you have lots of interesting apps to build... and an understanding family.

Posted by Peter Vogel on 12/21/20100 comments


Future of SQL Source Control

In my last blog post, I talked to Stephanie Herr and David Atkinson, product managers for SQL Source Control, about the market for their product. This week, I wanted to ask them about the future of SQL Source Control and Red Gate's related products.

Peter Vogel: What were your goals for the product? What were the challenges in developing it?
David Atkinson: Our goal was simple: to extend the well-understood benefits of source control to SQL Server developers, eliminating the need for manual change management scripts.

Our biggest challenges came from making the source control process as easy and intuitive as our existing Red Gate tools, particularly since these are tasks that developers will perform on a day-to-day basis as they make changes to their database.

Based on user experience sessions with our initial prototype, we learned that database developers needed something directly integrated into Microsoft's SQL Server Management Studio. It also had to be so simple that there would no longer be an excuse not to source control their databases. This meant overcoming a variety of technical challenges in order to achieve tight integration with Management Studio.

PV: How do you see the SQL Developer Bundle that SQL Source Control is part of developing? What's the future in supporting developers?
Stephanie Herr: While it's perfectly possible to use SQL Source Control by itself, the SQL Developer Bundle provides a rich set of complementary tools that extend and enhance SQL Source Control. By linking the tools with each other and embedding them directly into SQL Server Management Studio, the SQL Developer Bundle provides a rich and integrated development experience. For that reason we find that many customers who begin with a trial of SQL Source Control end up purchasing the full SQL Developer Bundle.

As for the future, we are actively working on SQL Source Control to support additional source control systems as well as adding support for static data and object filtering.

More generally, for ten years Red Gate's business has been to provide simple, ingenious tools that solve problems for developers. SQL Source Control is the latest of those tools and, to judge from the high levels of interest that it has generated, we can see that the lack of a source control solution has been a big problem for the industry.

Technology is always evolving and out of changes come new opportunities for Red Gate to support developers. Without giving any secrets away about our future plans, everyone is aware of the move to Cloud Computing, e.g. SQL Azure, and we believe the Entity Framework is also going to be an important future technology.

Posted by Peter Vogel on 12/17/20100 comments


Source Control for Database Development

This month we reviewed Red Gate's SQL Source Control package (Managing the Changes to Database Design). I took the opportunity to talk to Stephanie Herr and David Atkinson, product managers for SQL Source Control, about the world that SQL Source Control competes in.

Peter Vogel: What's the market that SQL Source Control is part of? What are the main drivers in this market?
Stephanie Herr: SQL Source Control is an ALM (application lifecycle management) tool that's part of the general application development tools market. It enables engineers and teams to extend the good development practices that they already employ in their application development to their database development.

David Atkinson: Users fully understand the benefits of source control. But, until now, it's been a somewhat embarrassing fact for the industry that database development has lacked equivalent basic change management capabilities. SQL Source Control enables developers to use their existing source control tools (e.g. SVN, TFS, Vault or VSS) to support changes to their database design. It also allows database developers who are unfamiliar with source control to enjoy its benefits for the first time.

Because SQL Source Control provides an audit trail of who changed what, when and why, database administrators can have confidence when pushing changes up the development chain. This database development audit trail can also help with compliance requirements -- SOX and HIPPA legislation, for instance.

PV: SQL Source Control is sort of an interesting product because it's the intersection between your SQL Compare Tool and some source control management tool -- and that's ignoring its integration with SQL Server Management Studio. What made Red Gate decide that this was a product that needed to be brought to market?
SH: SQL Compare was primarily designed to promote changes to production databases, hence the detailed comparison results screen and the numerous confirmation dialogs. However we knew that many users also employ it within a development environment because of the lack of dedicated source control tools.

SQL Source Control specifically takes the perspective of the developer who wants to share changes made to their development environments and to have a way to get back to previous versions. The tool also allows a team to work collaboratively in sync by enabling members to track and manage their changes together without any manual scripting overheads.

Posted by Peter Vogel on 12/13/20100 comments


Working with the CA ERwin Interface

There's a lot of talk about "fluid" these days and whether your interaction with your tools is "fluid." It's not a bad metaphor for discussing how you interact with your user interface. In fact, when your interface with a tool isn't fluid -- when you hit a bump or a detour -- it does feel a little like hitting rough water or having your shower suddenly turn off (or switch to cold water). After reviewing CA ERwin Data Modeler in the December issue, I'd probably characterize the tool's UI as 'sort-of' fluid: lots of stuff where you expect it, doing what you expect, and helping you do what you want. Then there's the odd bit of rough water.

When you start up CA ERwin, your first reaction is probably going to be, "Whoa, that's a lot of toolbars." I counted seven, stacked three deep along the top of the window, not including the tool icons at the top of the three tool windows. When I see that many toolbars when I first open an application, I'm never sure if that means that there's a lot of functionality in the application or if the vendor just wants me to be aware of how many toolbars there are. Sort of a "Gosh, this must be a terrific app -- look at all those toolbars!"

When I check the Windows menu I notice that all the toolbars are checked -- I don't think there's any application where I actually use all the toolbars straight out of the box. Or even long after it's been out of the box.

ERwin's screen layout is so familiar -- just like Visual Studio -- that it made me realize how ubiquitous that layout has become. It really has just six items: editing window + tool windows + menu + dialog + toolbox + context menus. You can start mousing around almost immediately and figuring out how to get things done.

There's the odd difference from the Visual Studio paradigm. I notice right away, for instance, that in the editor window the tabs appear along the bottom. Which, I guess, isn't the end of the world. Sometimes, it's hard to tell if an interface isn't "fluid" or if I'm just getting set in my ways.

It took me awhile to figure out the other difference: none of the tool windows have captions. I ended up looking at the list of tool windows on the Windows menu to figure out what each window did. I recognize the need to reduce visual clutter, but I would gladly have given up one row of toolbars to get headings on the tool windows.

One real UI annoyance, though: Help is always on top. If you open it, you'd better be prepared to read it and don't expect to be able to switch back to ERwin. The only way to make the Help Window go away is to minimize it or close it.

Fluid? Sort of.

Posted by Peter Vogel on 12/10/20100 comments


Starting a Data Model in CA's ERwin

In the December issue of Visual Studio Magazine, I reviewed a pair of data handling tools: CA ERwin Data Modeler 7.3 and Red Gate Software SQL Source Control. In this blog entry I dive into using ERwin.

If you've been building relational database models as long as I have, you'll start into CA ERwin Data Modeler by selecting File | New and, in the dialog box, select Logical model. Others may go to the Logical/Physical model, which requires that you specify your target database engine and prevents you from doing things not supported by that database engine.

Once you do, you get an editor window to draw your diagram in and a default set of nodes in the Model Explorer on the left-hand side of the editor window. Some of those node names won't be familiar to you unless you've got some grounding in relational database theory -- how many developers, for instance, know that every column has a domain that is the list of valid values for the column? ERwin does, and it populates the Domain node in the Model Explorer with some default domains (e.g. string, number). But it's going to require some study on the part of the data modeler to exploit this powerful feature by defining custom domains that represent their organization's business rules.

ERwin gives you a choice between two notations: IDEF1X or James Martin's Information Engineering (IE). I've used IE for years so that's not a problem for me. But if you're an adherent to Chen or Bachman, then you'll have to make the minor mental adjustments to moving over to one of the supported notations.

You might expect to start creating your model by dragging an Entity (the "E" in "ERwin") icon onto the editor window from a toolbox. However, ERwin expects you to first add entities to the Entity node in the Model Explorer. Once you've added an entity to the model, an Entity icon does appear in the diagram in the editor window (and always in the same place: you'll need to drag your icons somewhere else or they'll just stack up on top of each other). To my mind, this is the right way to do it and reflects, I think, a serious attitude towards the fundamentals of data modeling.

ERwin shows a commitment to specifying domains and defining entities separate from their appearance on some diagram. As someone committed to relational database design theory, I'm already impressed. However, casual users (and should you be letting "casual" users design your database?) might be distressed about the background they'll need to acquire with this tool.

Posted by Peter Vogel on 12/09/20100 comments


Next Month: Reader's Choice Favorites Reviewed

We've lined up two products for review next month, both of which earned top honors in our 2010 VSM Reader's Choice Awards in November. We'll be looking at Infragistics' NetAdvantage for .NET: Win Client and Developer Express' DXperience Universal component suites.

I often think that I'm not paying enough attention to the Windows Client environment so reviewing the Infragistics package (the top ranked product in the "Component Suite: Desktop" category) will help to address that imbalance. But, being primarily a Web developer, our other review will be DevExpress' DXperience Universal, the winner in our "Component Suite: Web" category.

It says something about how a handful of companies dominate these component categories (and have captured developers "hearts and minds"). While Infragistics took home the honors on the desktop, Developer Express was close behind as our readers' number two choice. In the Web suite category, meanwhile, Developer Express and Infragistics finished in a dead heat for the top spot. In both categories, Telerik took the third spot.

Posted by Peter Vogel on 12/07/20100 comments


Visual Basic 6: Old Tools Never Die...

It's been twelve years since the last release of the "non-.NET" version of Visual Basic and five years since support was terminated. But there's still room in the toolspace for new products.

This month eXontrol released their eXCalendar, eXEdit and three other OCX controls (all part of their eXsuite package). Also this month, BCL Technologies released easyPDF SDK for "any language that supports COM objects." And Korzh.com released EasyQuery.Ax, a COM/ActiveX extension to their Easy Query product line.

All of these products are available in .NET versions (or are part of a product line that includes .NET versions). But what's interesting is that these product announcements all featured COM/ActiveX/OCX implementations. I made a very good living from Visual Basic 6 for a long time and, while I'm not currently developing in it, it's a testament to the power of the tool that it (and its COM brethren) still provide a market for tool developers.

Posted by Peter Vogel on 12/01/20106 comments


What's Ahead for Flexera Software

This is a continuation of the interview I had with Blair Symes (marketing manager for Flexera Software) about InstallShield. In this part of the interview, I wanted to ask about what the company's product does for its customers now and what they expect to deliver.

Peter Vogel: What do you see InstallShield doing for your customers?
Blair Symes: We want to make it easy for developers to handle even the most complex installation requirements with minimum effort for desktop, web, server, and mobile applications. So automated tools and wizards and easy-to-use project views are important to keep installation authoring simple while cutting down development time. But we also include advanced features to give developers complete control of installation behavior as well as the look, feel, and functionality of installer dialog boxes. We also support the entire application lifecycle by making it easy to create updates and patches. That includes ensuring that the applications uninstall smoothly without aggravating end users.

P: Where is InstallShield going? Where do you want to take the product?
B: Many of our changes are driven by our customers changing software practices. Many software companies follow Agile Software Development best practices by building their installations from the beginning and continuously integrating them with their product builds. InstallShield Standalone Build licenses enable developers to follow Agile Software Development best practices by automating and integrating installation builds with their product builds.

Customers are also asking us for support for distributed development and deployment of installation packages. We currently provide tools like InstallShield Collaboration, Pre-requisites editor and MSI chaining to support this. But we're also looking to enhance and provide a more robust solution to support these needs and, in turn, provide a richer installation experience.

P: What do you see as the biggest change in the environment?
B: More and more software vendors providing their applications to customers as Microsoft App-V packages. It's a shift comparable to what happened with Windows Installer (MSI) ten years ago when the industry moved from script-based installs to MSI installs but this time the shift is to application virtualization. Software companies are having to provide their applications both virtual packages and traditional MSI packages. InstallShield makes that easy. When you build a traditional MSI project, InstallShield can simultaneously build it as an App-V package. It can also automatically convert your legacy MSIs to App-V packages. InstallShield handles all the conversion work, so there's no learning curve for developers new to application virtualization.

Posted by Peter Vogel on 11/30/20101 comments


Talking About InstallShield

It's often interesting to find out how a company sees itself. I recently asked Blair Symes, marketing manager for Flexera Software, how the company views its product and customers. We reviewed Flexera's InstallShield in the November issue of Visual Studio Magazine.

Peter Vogel: From your point of view, what is InstallShield?
Blair Symes: InstallShield is the gold standard for building Windows software installations (and has been for over 20 years). InstallShield gives developers a flawless localized installation experience for their software, keeping their end users happy and support costs down.

P: Who are your target customers?
B: The target audience for InstallShield is software developers working for software vendors that sell applications commercially and developers working for enterprises (in any industry) or government agencies that develop custom applications for their organizations.

P: Those are big categories.
B: We break them down into two different roles. We distinguish between "Setup authors" (also known as "release engineers," "build engineers," or "software developers") and "Development/Configuration managers." Both groups are risk averse: They want a reliable process that guarantees a successful installation. The first group -- the setup authors -- also want the software installation creation process to take as little time as possible (and require as little effort as possible). They're working on tight schedules and budgets and don't want to have to learn a new tool on each development cycle.

The second group -- development/configuration managers -- are typically managing multiple projects with no time for mistakes and release dates that must be kept. So they're interested in managing their resources efficiently and ensuring collaboration. Reliability and predictability within a project schedule matters to them.

Posted by Peter Vogel on 11/29/20100 comments


InstallShield Tools

Continuing my exploration of Flexera Software InstallShield, it would be irresponsible of me not to mention some of the additional tools that come with the InstallShield package. While InstallShield doesn't have all of the tools that, for instance, Wise provides there is some overlap.

You can read my reviews of InstallShield and Wise Package Studio here.

InstallShield includes two tools that you can use from the Installation Designer to support those installation packages that need more than the Wizards that Visual Studio provides. There's a dynamic scanner that analyzes an application as it runs and determines what DLLs it actually uses. This helps ensure that you include all the necessary components in your installation package (and specify all the appropriate dependencies among those components). There's also a static scanner that, analyzes the files in your project (EXEs, DLLs, OCXs) to find the dependencies embedded in them and adds those dependencies to your installation package.

Not integrated into the Installation Designer are a number of tools for analyzing MSI files (Windows installation packages). An MSI Diff tool compares two MSIs and highlights differences, answering the question, "What are the real differences between these two versions of our product?" Two other tools support modifying a few of the attributes on some of the standard dialog boxes that InstallShield uses.

Posted by Peter Vogel on 11/21/20100 comments


Also Coming Up: SQL Source Control

Deploying an application is only half the battle -- probably less, in fact. You also have to set up the environment that the application will run in. A huge part of setting up that environment is ensuring that the database the application will work with has all the changes made to it that the application requires. As changes accrue in the development system, how do you ensure that those changes are made to the production system before your new application starts? You could count on developers remembering and reporting all of the changes they make. You could have a risky way of ensuring all changes to the database structure are tracked. But I repeat myself.

Red-Gate's newest offering, SQL Source Control, deals with your changes to your database the same way that you deal with changes to your code: Through source control. At least that's their plan. As I said in my last blog post (Next Up: Designing Databases), in the December issue of Visual Studio Magazine we're looking at one of our readers' favorite design-time tools for databases (ERWin). We're also going to look what could be a key tool for getting those designs into production: Red Gate's SQL Source Control.

Posted by Peter Vogel on 11/19/20100 comments


Working with InstallShield

In the November issue of Visual Studio Magazine, I reviewed a pair of Windows installation and deployment packages--Flexera Software InstallShield and Wise Package Studio. Today I'll dive a little deeper in InstallShield.

InstallShield actually provides you with two interfaces for creating deployment packages. One is integrated with Visual Studio. The other is the standalone InstallShield 2011. This interface allows you to choose between a wide variety of project types. These include a number of Wizards (including one for Visual Basic 6) and a ClickOnce deployment project.

However, when the Wizards aren't enough, you'll need to use one of the InstallScript projects. Typically, you'll use an InstallScript project when you want to take control of the installation user interface or when there are tasks that you need to perform after your software package is installed (and, occasionally, before installing your package). While using InstallScript isn't for the faint of heart, InstallShield does go a long way towards managing the process.

For instance, if you select the most "free-form" of the InstallScript projects, the base InstallScriptProject, InstallShield presents the project to you in the Installation Designer, a treeview that organizes the components of the installation package. It's not a Wizard (there's no attempt to walk you through the steps) but the treeview does structure the tasks you need to perform.

The first step, for instance, is to define the "Features" that make up your deployment package. As you add features, a dialog (available from the Feature's property sheet) allows you to create dependencies between features (i.e. don't install this feature without this other feature). Each feature has a set of events associated with it, listed in its Properties Window, that you can tie InstallScript code to.

Further down in the Installation Designer you can write your InstallScript functions that you can tie to your events. The UI isn't as slick as I might like. There's no way to create the skeleton of a function from the Properties Window of a feature as you can when adding event handlers in Visual Studio, for instance. This necessitates some bouncing back and forth in the TreeView between the script node and the features node. But the InstallScript editor is more than just an implementation of Notepad and includes, for instance, IntelliSense-like support.

As I said, InstallScript isn't for the faint of heart (and C programmers will feel more at home with InstallScript than Visual Basic programmers will), but the InstallShield UI goes a long way to managing the complexity.

Posted by Peter Vogel on 11/18/20100 comments


Subscribe on YouTube