Hello world!
Mhm Hello World indeed.
To kick off the blog I’d like to share a bit about my experiences with Microsoft SourceSafe 2005.
To make a long post short: Dont’.
While this is nice that SourceSafe finally enables users to do many new and cool things (like the automerge function, which allows multiple users to work on the same file at the time), the overall application interface really misses the point.
As a ToirtoiseSVN user what I really miss is the confidence I have in the engine. SourceSafe, especially when integrated with Visual Studio sometimes asks you a weird question, (e.g. “The file in the repository is newer than your local copy, do you want to update your copy?”) and gives a choice of either: Replace, Leave or Merge. Which would be fair enough, but you don’t have an idea what actually happened in the repository while you were working on the file, and there’s no way of previewing the result of your action - what you can do is to figure out the “safest” button and pray that SS won’t erase you or your coding partner’s work.
The biggest shame about SourceSafe is - it has the infrastructure in place, but the workflow is either inefficient (while locking files before other users) or unsafe - and the dialogboxes are misleading :-/
What is good about it - it now supports integration with external commands, e.g. running some scripts after each CheckIn.
The shame is noone seems to know how to use it or where to find these options, let alone, to be actually interested in how to use it to make work more efficient.
What I learned while developing PHP code on Open Source environment - that a full control of the process is King in software development. That’s why I’d like to see Microsoft’s Tools actually empowering users, not making some “magic in the background” for them.
Maybe you’ve noticed the word “users” highlighted in last paragraph - that’s how I feel while working in Visual Studio - not much of a Developer, just a “System User”, working in an environment, which knows better and helps me with almost everything so I won’t have to think too much.
While all these small aids and shortcuts are crucial when working with such a complex framework - some of them are actually leading to a poor code practices.
Consider the “drag and drop” of a table from Sql Server onto your Web Form.
What Visual Studio will create for you is a full stack of classes you need to access that particular database on that particular page - but it hardcodes the database connection string, and uses a non-optimised number of adapters, connections and supporting classes, and if you won’t refactor that “page” in the future your whole application will turn in a big ugly mess.
Sometimes I’m not sure if the direction of Visual Studio is actually the “proper one” in terms of developers’ coding practices - I’d like to know your views on that subject.