Posts categorized 'Articles'

Using SqlBulkCopy to move data from VistaDB to SQL Server

Bulk copy from VistaDB to SQL Server Did you know you can use the SqlBulkCopy object to move data from VistaDB to SQL Server? The SqlBulkCopy object allows you to take any IDataReader object to copy. Source and Destination must match The only trick is that the source and destination tables must be setup...

Continue reading "Using SqlBulkCopy to move data from VistaDB to SQL Server"

Unit Testing Explicitly Hidden Methods

In this article I want to explain the differences between using the override modifier versus the new modifier on a method. I will also point out a specific reason why it is important to test the way you use published API's in your software via unit tests. Below is some example code for reference during...

Continue reading "Unit Testing Explicitly Hidden Methods"

Good customer service, how often do you say that?

We have been having a nightmare with our phones (office and cell) for the past few months. Billing problems, lost messages, dropped calls, voice mail that disappears, you name it. Typical day trying to get help Me: This billing is not correct. Cust Svc: That is not this department, call this number....

Continue reading "Good customer service, how often do you say that?"

Does your code pass the Turkey test?

I saw this one on Dot Net Kicks today. I have seen all of this in different places before, but this blog nicely summarizes all the differences and shows great examples to boot. Code Turkey Test The basic jist is whether your dot net code could run in Turkey. Their date format is different, they have...

Continue reading "Does your code pass the Turkey test?"

Graffiti up and running

Graffiti CMS is now up and running on our test server with the full blog. 

The XML export from WP trashed a lot of the formatting from the pages, lots of manual edits will now ensue...  sigh

 

VistaDB 3.3 Code Coverage

The code coverage in VistaDB continues to get better.  The graph below shows the percentage of coverage by namespace for the past ten months or so.  I generated this in Excel, I wish there was a code coverage tool that could generate this type of report. I am very pleased with our progress at getting automated tests for all of the code.  We have just hit 65% coverage for the entire engine.  Our goal is to reach 80% by the 1 year anniversary of 3.0 (April).  This is pretty amazing considering there were zero tests when 3.0 was released.  The current NUnit suites consists of over 525 public tests.  Internally we are going to start breaking up the NUnit tests to be categorized by the test type.  It takes too long to run all of them after every build on your workstation, the server should be doing that nightly anyway.  What I really want is the quick test that each programmer can run after any code change by category.  If you were working on the DDA Code just run the DDA tests quickly while working.  Then run the full workstation test suite at the end of the day. Here are some interesting metrics about the VistaDB Engine.

  • Files: 109
  • Classes: 808
  • Functions: 6,952
  • Total Sequence Points: 39,976

Continue reading "VistaDB 3.3 Code Coverage"

Set any 2008 Resolutions or goals?

I am not one big on New Year Resolutions. Never have been. I have seen many people set them and motivate themselves for a few weeks, maybe a month, and then go right back to old habits. It takes more than a New Year to break habits, it takes discipline and patience. Right now is Epiphany and I think...

Continue reading "Set any 2008 Resolutions or goals?"

Looking ahead to 2008, and back at 2007

Looking ahead to 2008

Happy New Year! Wow, what a year 2007 turned out to be for me both personally and professionally. Last January Anthony and I were still talking about the company and its future. I spent some time yesterday reflecting on the year, and I have to say it was pretty amazing. You can’t look to the future without examining your past, so that I what I did first. I broke them down by quarter in my own mind, so that is how I am going to write it up as well.

Q1 2007 – Talks with VistaDB were just starting. 3.0 was entering final design phase for the release, and some pretty major changes were made at the last minute. SQL Server datatypes were not even introduced until the very end! We had zero NUnit tests, no code coverage analysis, and the build was in bad shape. 3 Builds in the first quarter, and each had its share of regressions and changes. There was no formal bug tracking in place, and bugs were never added to any sort of regression suite to ensure they didn’t return.

Q2 2007 – I officially took over VistaDB April 1 (which is my birthday). I was involved prior to that, but this was the official switch over date. On almost the same day I signed the papers to acquire VistaDB I got the news that my Grandmother had brain cancer and was not expected to live much longer. Talk about highs and lows. NUnit tests were added (we had around 40 at the time). Regression testing started in earnest with my taking over the builds and formalizing the process. FogBugz was purchased and setup to stabilize the bug reporting and tracking. No more email box tracking of open issues! This was a great thing for everyone. We produced 11 builds this quarter, some were good, and some were bad. Regression testing was still rough and we slipped a few times. Overall though the engine was starting to stabilize, and features were becoming more fully tested. And my Grandmother passed away. It was a very emotional time for my entire family. I know I was short with people during this time without anyone understanding why, I apologize. There was a LOT going on and I felt a tremendous amount of stress during this time.

Q3 2007 – New features started being added for the first time. New documentation and tests were being written on a daily basis. And we started testing for SQL Server compliance in a lot of the parser syntax (this had never been done before). We also formally decided to delay the server edition to stabilize the engine and get TSQL Stored Procs in before we went to the server version. We laid out a development plan for the rest of the year, and we actually did a pretty good job of following it. We produced 9 builds during this quarter, but the most important aspect of it was that major new development took place. 3.2 was released and the engine really started to stabilize with the additional testing and regression tests we put in place. I really feel that the momentum swung in our favor around this time. New features were being added without breaking existing functions, and we continued our quest to improve the SQL parser and compliance.

Q4 2007 – It became clear to us that the existing website was long in the tooth and needed to be overhauled. What was not clear was how and when we were going to do it (see below for the conclusion of this saga). We also attended a tradeshow (DevLink) and got to meet a lot of interesting users, but more importantly we got to speak with people who use VistaDB on what they really need. 3.3 features were decided upon, and work piled on for us to complete before the end of the year. We produced 9 builds this quarter as well. I thought we hit a good mix of development builds versus stable builds. We exposed new features rapidly to get feedback from users. The feedback was fantastic, even if it did make us add more to the list of things to accomplish for 3.3. We really pushed the schedule for 3.3 and added a ton of new features from user requests. 3.3 is going to be a fantastic release. VistaDB 3.3 was released on the very last day of the year. Overall I think we were a little over aggressive in adding features, but they really did all need to be there. There are just some things you can’t add half way, and we added a lot. TSQL Procs and User Defined Functions (UDFs) turned out better than I had hoped at the beginning of the quarter. The guys did a fantastic job of adding new features without breaking the build, and without regression of the engine. Major new features were added without stepping on each other toes in the code. Documentation has continued to come along slowly, and the NUnit tests improve with each new build.

 

Continue reading "Looking ahead to 2008, and back at 2007"

To Collect or not to Collect

One of the first things it seems most people do when they get the code to VistaDB is remove the GC.Collect() call we have in the MinimizeMemory code for the Tree class. This class specifically is used to hold portions of the database, indexes, etc in RAM. Periodically it is combed to attempt and minimize...

Continue reading "To Collect or not to Collect"

VistaDB Temp Table Support

Temp table support, and table as a variable As was sort of hinted at on the forums today, we will be adding temp table support to VistaDB 3.3. I got a number of emails from people asking if it was true (and could they test it), so I wanted to write up a brief entry about it for everyone. VistaDB 3.3...

Continue reading "VistaDB Temp Table Support"

Options:

Size

Colors