I’ve spent some time lately playing with VSTE for Database Professionals (CTP5 refresh).
Well, let's see what we have here: VSTE for DB Professionals was announced in May, a couple CTPs were released since. There are still some bugs. Some were fixed in this CTP, other will be fixed (I am sure) in upcoming releases.
This edition was supposed to bring us tools for Database schema management, Unit testing and life cycle management and supply us, for the first time an integrated solution for database Unit Testing and Change Management. The first two are accomplished quite nicely; the third one has a descent way to go to be able to deliver all it promises.
- Unit testing includes robust data generation mechanism (not so simple to use at this stage). Testing can be performed on dedicated sterile database as part of VSTS solution test/build process
- The Change management provides us with the ability to develop in a private "sand box" environment, and to store changes in Team System source control or any other MSCCI compliant provider. You can perform schema and data comparison and share changes through TS "shelving" capability.
- Schema management. The tool allows us to manage database objects through scripts. You can import scripts into project from existing database or external files. Scripts conveniently arranged in familiar hierarchy of Tables, Stored Procedures etc. New T-SQL editor with syntax colorization introduced to work with DB scripts. But… Maybe Visual Studio environment has pampered me, but for me this version lucks the most basic features:
- There is no IntelliSense in T-SQL editor. It is not even planned for V1. I’m aware of the complexity of implementing IntelliSense for SQL, but there are a lot of tools doing a good job in this field. Guys you are smart, you can do it too
- There are no visual designers for database objects. No Table/View designer, no Query builder for T-SQL. Editing is possible in text mode only. Some of those designers exist in other parts of VS (Server Explorer for example). Why not to add a design view for the database project as well? Even better idea will be to create DSL for database objects.
- There is no support for Stored Procedures/Functions debugging. Yes, you can initiate debugging through Unit Test or some custom test project, but I would like to debug SQL while I’m developing, directly from T-SQL editor.
- MS-SQL schemas are not reflected in the database project
- There is no support for ERD or similar diagrams. I would like to see integrated DSL based solution instead of using Visio with separate code generation.