VistaDB 3 and beyond
What can you expect going forward? I fiercely believe that VistaDB is a premier database product, and that being the world’s first managed embedded database is a big deal. Otherwise I would not have incorporated it into my own products so heavily. I personally felt that the 3.0 ship date was a little too aggressive and that it should have been tested more thoroughly before it went into production. Before a build of our Emerald Spam Shield engines go live on production servers they undergo over 5,000 unit tests, and over 250,000 known problem emails from the past are transmitted through the system to ensure no old problems have been reintroduced. These test emails include bogus formatted data to exercise error cases, and all sorts of illegal characters and encoding to ensure that not just good data is sent through the system. Many of these test emails were built to exercise a condition in the engine. In addition to the normal tests we also run periodic load and stability regression tests as well. How well does the engine perform throughput wise ( to ensure no recent changes have impacted performance). I am a very scientific programmer by nature. When I have written a test case for some problem, I don’t ever want to write it again. Nothing bugs me more than resolving the same problem a year down the road just to discover we already had a fix and forgot. I have been a little surprised at bugs that “come back” from the dead to resurface. Regression testing I am a big fan of failure case testing. Once an issue has been identified and fixed, test scripts should be built to ensure that this test case is checked prior to each subsequent release of the product. We will be implementing this ASAP. We will also be adding a new forum for unit and regression tests so you can run them. These tests and their formats will hopefully become an easy way for you to write tests to show us when we have a problem in a repeatable manner. Then we can incorporate the tests written by the community to help ensure our level of quality stays very high. Test cases prior to shipping – including performance How do you measure performance? By testing it and measuring it. Test cases must include max usage scenarios. These tests need to also be available for running locally so you can see for yourself how we measure things. I call these tests “EXTREME” tests. Because some of them will generate multi-gigabyte databases, and really use a lot of RAM. Those tests still need to be run, but not a daily basis. Most of these types of tests will be run prior to any production build, and then during weekends when no one is using the servers. We can automate this type of testing with NUnit and get failure reports automatically to the developers. MSDN – We’ve got that As was recently lamented in the forums, VistaDB did not have an MSDN subscription to test the engines on a wide variety of platforms. Well, we now have an MSDN subscription, and we are a Microsoft ISV partner. That gives us access to several tools within Microsoft that have not been available to the team before. And we run both XP and Vista on our own developer workstations, so we feel your pain. These are the current systems we use to test with. 3 – Dell 400SC P4 Servers 1 – Compaq Quad XEON 2 – Core 2 Duo Dell machines 2 – Compaq AMD 64 1 – AMD 64 X2 4200 10 – Compaq Celeron workstations Virtual PC and VM Ware FreeBSD 6.x with latest Mono builds Novell Suse Linux 10 with Mono builds Windows XP Home / Pro / Media Edition Windows 2003 Server (R2 / 32 bit / 64 bit / Web Edition / Enterprise edition) Windows Vista (32 bit / 64 bit / all editions) These are the systems and OS’s we currently test our existing software against on an ongoing basis. There is nothing to build or setup, it is all in place already. It is only a matter of building the test harnesses and running the tests through an automated means. Documentation – Achilles heel of VistaDB How often have we each complained about the documentation? I know I have used my share of unkind words to express my dislike of it. The community site VistaDBDocs did a great job with version 2 docs, but it should not have had to do that. I do things a little different when it comes to documentation. I believe that code speaks more than anything else. That means LOTS of examples of HOW an attribute or method is used. The same sample can show more than one thing, sure, but it needs to explain each of them in turn. I think the newer MSDN help is particularly bad at this. Some of their examples show 4-5 things and don’t explain any of them very well. I am not opposed to code fragments, as long as the fragment is clear and concise in what to do with the objects in question. Now, I am not much of a VB.Net person myself, so the initial example code will be in C#. It is usually not too hard to convert between the two and I will make my best efforts to ensure we get VB code for each example too. Community Involvement VistaDB has always been about strong community involvement. The forums are the BEST resource for any new user. I plan to continue that tradition, and improve it in a few areas. I want to add the unit tests to the forums for users to share their own unit tests. And I want to include a lot more sample projects and best practices documentation. There are a lot of different ways you can implement the same thing in any programming language. By the VistaDB team documenting what we feel is the best ways of doing things you can learn how to get more performance and scalability from your own apps. Many times you need to write tests to perform the same task multiple ways to see which performs best for your situation. I think that posting these tests provides benefits to users as well by learning from our mistakes. WIKI needed? Does VistaDB need a WIKI? I personally feel the community is strong enough that a WIKI might be just the answer to the documentation problem. User committed and supported, with clarification and core examples from the VistaDB team. What do you think? In Summary Is all of this going to happen overnight? Certainly not. But without a roadmap and a set of goals how do you know where you are going? I am committed to making VistaDB the world class product that I know it can be. The 2.x engine has performed brilliantly for me in production systems for almost 3 years. I really like the new 3.x architecture and firmly believe in the future of Dot Net and managed systems. It is going to be one heck of a ride! Won’t you come along with us? -Jason
Similar Posts
- Looking ahead to 2008, and back at 2007
- devLINK 2007 – post show analysis
- The GC does not solve all memory leaks
