Mixed-Environment Development Capabilities
Borland has aimed C#Builder squarely at enterprise developers who need to make applications interact. It approaches application integration from two directions: Web services and J2EE integration. It's easy to build or consume Web services in C#Builder. To create one, C#Builder has a Web service project type. To consume them, you add Web references. C#Builder creates a typed class for each Web reference, based on the names and types defined in the service's Web Service Description Language (WSDL) file.
Web services aren't always the most efficient way to integrate applications, so C#Builder includes Janeva, a .NET-compatible implementation of its VisiBroker product, that lets .NET applications interact with Java components running on application servers.
C#Builder's included Borland DataProvider supports fast managed-code ADO.NET providers for Microsoft's SQL Server, Borland's InterBase, Oracle, and IBM's DB2 databases, as well as the somewhat slower generic ODBC support.
Although compiling code to Microsoft's Intermediate Language (MSIL) has many benefits, one side-effect is that it's easy to decompile the code, just as with Java byte code. The solution for both Java and .NET is code obfuscation, which dramatically increases the difficulty of creating usable code from the intermediate formats. Therefore, it's not surprising that both Visual Studio and C#Builder now include obfuscation tools. C#Builder includes WiseOwl's obfuscator.
Overall, after just a brief introduction, I found I was as productive in C#Builder as in Visual Studio. Both products have nice special touches, and they look slightly different, but overall, their similarities are far greater than their differences, if you're working in C#. Although C#Builder lets you build applications with VB.NET, it's obvious that VB is not its primary target. VB.NET developers will feel like second-class citizens using this IDE.
The documentation integrates Borland C#Builder help, the .NET Framework SDK, and help for Crystal Reports and the ComponentOne tools; however, the documentation for the IDE itself is sparse, to be kind. For example, if you type "Project Manager" into the index, you get one entry, which simply points to an unsatisfying two-paragraph description in a "Tour of the IDE" page.
There are some very convenient features. I found Code Snippets easy and intuitive, although they could be a bit smarter about where they insert code. Using the Object Inspector is straightforward and improves on Visual Studio's Properties window in several respects. For example, C#Builder makes it easy to hook multiple controls to a single event handler. On the other hand, it lacks some of Visual Studio's capabilities, such as the ability to switch a Boolean property setting from True to False (yes, it uses the capitalized versions even for C# projects) by double-clicking on the property name. Instead, you have to select the desired setting from a dropdown list, which takes several times as long.
All in all, C#Builder is an excellent .NET IDE choice for people planning to work primarily in C#, for those who want to use Borland's database engine, or who need integrated development support for interacting with J2EE EJBs.