By now, if you are a regular reader, you know that I worked on the AIIM iECM Committee’s CMIS Demo for the AIIM 2009 Conference, Info360. If you read my initial write-up on the effort, you saw that we built the thing using .NET. Specifically, ASP.NET for the UI and I wrote C# for the guts of the search federator. The question you may be asking is why did Pie choose to use Visual Studio 2008 when he has been living in the Java world of Documentum and open source for so incredibly long?
Well, the decision to use .NET was based on simple math. A free, reliable, IIS Server to host an application is better than paying for a server to host a LAMP stack. The other thing you may not realize is that I used to be a certifiable Microsoft developer, or is that certified? No matter…let me explain.
My Life as a VB Demigod/Developer
This section is a history of my Microsoft experience, skip to the next section if you want to read about my recent experiences.
A long, long time ago, I graduated college with experience having developed in Visual Basic 3.0 with Access 2.0 database back-ends. This wasn’t just developing for a class, but a real project that was deployed to a local non-profit student-run Book Exchange in Auburn University. It was pretty cool and came complete with subliminal messages which never seemed to work. The messages appeared but nobody ever acted upon them.
My first job was, wait for it, COBOL. Ugh. It paid bills and I got to use it to create a DLL once, which was pretty cool for a COBOL project. During that time, I assisted friends with VB problems and finally got to start using Visual Basic and SQL Server in my job. My second job allowed me to do advanced design and really take a leadership role as a developer. It also was my first Document Management project doing Correspondence Tracking for the Air Force.
How Microsoft was I back then? I didn’t just take the exams needed for my Microsoft Certified Solution Developer cert. Check it out:
- Networking Essentials
- Implementing and Supporting Windows NT Workstation 3.51
- Visual Basic 5.0 Programming
- Designing and Implementing Desktop Applications with Visual Basic 6.0
- Implementing a Database Design on SQL Server 6.5
- Windows Architecture I & II
So when I agreed to jump into this effort, I was really just going home for a visit. I’m still a decent developer, but I’ll probably never be as good with Java as I ever was with Visual Basic. That doesn’t bother me as don’t make a living on my development chops anymore.
Enter Visual Studio 2008
So I committed to using C# and Visual Studio 2008. The last time I used Visual Studio, C# didn’t exist, so I was slightly concerned. I knew I had C# developers to lean upon that work for me, so I figured I might be able to find some volunteers to assist. While I did get some volunteers to assist, Visual Studio and a little help from a friend made getting started easier.
If you know Java, and you ever used Visual Basic, C# isn’t that hard to pick-up. The language is similar enough to Java, with a little help from Visual Studio, to pick right up. The applications are structured like the Visual Basic apps of old, so with that, I was able to get started. What made it even easier was some code from a friend.
Craig Randall, that wonderfully brilliant and helpful guy, placed on the EMC Developer Network (EDN) a simple application that used the CMIS SOAP binding to query a Documentum repository. He wrote it in C#. It wasn’t complicated, or very broad in its use of the CMIS standard. What was important was that it was illustrative of how to connect, using CMIS, to a repository in a Visual Studio solution. The fact that it was developed and tested against one of the repositories that I would be accessing for the CMIS demo was gravy.
I got it to work and started to change it around. Things have evolved a bit, but the IDE was still simple and straight-forward. As I used it I remembered why I have always disliked most Java IDE’s and spent the first several years of my Java existence using Notepad. Microsoft has invested a lot of time in making it easy for developers to get started building applications in the .NET world.
Of course, this takes me back to the negative of Visual Studio. Years of experience in the .NET development world does not necessarily make you a good, much less a great, developer. When I first used Visual Basic, I already knew a few languages. Back in VB 3.0, you still had to do a lot of work to get some really cool interfaces and speedy performance. As VB became part of Visual Studio and the whole suite evolved, it became easier and easier to do things without actually writing code.
Now, this isn’t a bad thing, but it did make evaluating developer talent a little challenging. Someone could come into an interview having created COM components and impressive client-server applications using ActiveX controls to do the heavy lifting. I hated interviewing those people. Not because it was a waste of both our times, which it was, but because I never had to heart to say that they weren’t a mid-level developer, much less a senior one.
Things haven’t changed. You can still do advanced things, quite easily in Visual Studio, with little “development” experience. You can still do some amazing things that require advanced development and design skills. I imagine people trying to hire senior developers still conduct interviews with people with advanced-looking resumes but tool-centric experience.
This is fine. You can’t have the power of Visual Studio to make life easy without those side-effects. It is still a great tool and while using it, I missed the old days in the developer bullpen crafting cool applications integrating PC DOCS and Watermark with a custom workflow processes driven by business rules stored in our database.
Those were some good days.