I have already blogged about Vault and source code control here: http://www.dualbotic.com/DasBlog/What+Visual+Source+Safe+Doesnt+Do+For+Us.aspx
We are a seven man MS dev team and have been using Vault for nearly a year. First things first it is a huge improvement on VSS 6.0d, because it uses compression combined with a webservice our dev’s can work from home over broadband hardly noticing any slow down in check ins/outs. The other killer feature is the Diff tool this is big step up from VSS. It also has some neat reporting although it takes a while to figure this out as the UI is not designed all that well. The one bug bear we have is that there is no plug in for VS2002 only for VS2003 over time this will cease to be a problem as we move more of our code base to VS2003.
I haven’t looked at the newest MS VSS which ships with VS2005 Team System so I am not sure whether Vault has some competition coming it’s way but we will probably be using VS2003 for at least the next couple of years so we are very pleased with the utility we are getting from it.
One thing I have noticed with all source control products is that the less experienced members of the Dev team struggle with the concepts that lie behind source control and that the UI of most tools doesn’t do much to assist them in their plight. It would be good to see more narrative in the UI that would help them make the right decisions and not overwrite local changes by mistake.
I was compiling a release script the other day, and needed to check if all data items in a column were unique before adding a Unique constraint to a table. I wanted a way to stop Query Analyzer (QA) from executing the batch if the check revealed there were duplicate items in the column. I tried a few obvious things like Return and raiserror but these didn’t work. I then realised that the issue lay with the GO command. I found this in BOL “GO is not a Transact-SQL statement; it is a command recognized by the osql and isql utilities and SQL Query Analyzer.” unfortunately there isn’t a corresponding STOP command so you cannot easily perform a test in T-SQL and then tell Query Analyzer (QA) to stop processing the rest of the batch.
I did however find a dirty way around this problem. Using a While loop and the Print command I was able to repeatedly display a message to the user explaining the problem and instructing them to cancel the execution. Not very elegant but it did work.
BOL Search Terms: Batches, Batch Processing
Following on from http://www.dualbotic.com/DasBlog/Using+Typed+Datasets+In+VBNet.aspx
I have been using the typed datasets for a few months now and have learnt more about their behaviour. If you alter the stored procedure you used to generate your dataset there is every chance your application will runtime error. It is possible avoid recompiling your application if say you have added a column to the query in the sp then simply refreshing your typed dataset in VB.NET and deploying the newly generated XSD file should do the trick. Of course if you have removed a column that your code was referencing your screwed but the same would normally be true even if you weren’t using TD’s.