VBCorLib for VB6

Thursday, April 07, 2016

Renaming for Clarity

When I started VBCorLib all those years ago I was trying to match class names with .NET as much as I could.  As it turned out, VB6 already had already taken a few names for itself, leaving me with some naming decisions. Well back then, I was associating VB6 names a bit more with the dark world of C/C++ and ended up prefixing my class names with the letter 'c'. This led to the atrocious cString, cArray and cDateTime classes. Seeing their usage such as cString.Format or New cDateTime simply ground on my spine. Something feels dirty when using prefixes like this. It was even hard to type those names when using them in my projects.

Heading into this version 3.0 revamping of VBCorLib, I decided that there would be some major breaking changes. This is allowing me to refactor the code, but also the interfaces and names. And I haven't been going easy with the breaking changes. Everything has been a target. I could remove those terrible Hungarian notations with class names. I wanted to align the classes with VBCorLib so I used the name prefix I had used to provide easy access to constructors, the Cor prefix. So now those original class are CorString, CorArray, and CorDateTime and even though they are a couple letters longer, their spelling and appearance feel more natural for this library.

Sunday, February 28, 2016

SimplyVBUnit and VBCorLib Activity Abound


It's been a very long time since my last post and with all the activity in the last year or two, I thought I'd take this opportunity to summarize what's been going on.

Firstly, SimplyVBUnit has been going strong and has become a popular unit-testing framework in the VB6 world. I've been updating it since the version 4 release and it continues to improve. There are still some things I'd like to do with it, such as learn to integrate it with Team City. I've never attempted anything with Team City, so that might be an enlightening experience (succeed or fail). There are some minor code related updates I want to get to as well. Overall SimplyVBUnit is fully fleshed out and very stable.

There's been an unusual amount of activity within the VBCorLib code-base over the past year or two. Many of the classes had not kept up with where .NET has gone and I wanted to bring some of them up to speed where they no longer align with their .NET counter-part. There have been many bug fixes, code refactorings, and interface changes. Version 3 is turning out to be a cleaning party as I apply all I've learned in the many years since the version 2.3 release back in 2008. Overall, I've been enjoying squeezing as much out of VB6 as possible in this endeavor.

VB6 still enjoys a passionate following and that's great! I don't use VB6 outside of these projects, but I still enjoy going back to some old-school days and making code do things that weren't being done in those days. So if you're still using VB6, either maintaining legacy applications or even starting new projects, I hope these apps can be helpful!

Thursday, October 25, 2012

SimplyVBUnit 4.0 Release in the Wild!

Long time since the last post. And interesting enough it, too, was about the release of SimplyVBUnit. Well after much time thinking about updating the framework I had worked on it on and off over the past couple years. But now it's finally being release with more capabilities to make VB6 unit-testing even better.

The primary update to the framework is support for categories. Now tests and test fixtures can be categorized to help deal with tests that may not be applicable or take too long by simply categorizing them and running them only when you see fit.

So head over to SourceForge and download your copy.

Wednesday, April 01, 2009

SimplyVBUnit 3.0 Released

I've released a new version of SimplyVBUnit for VB6. Though this is not a VBCorLib specific post, I felt it should be shared anyways.

After using NUnit for awhile now, I've come to love the constraint based assertion model. It provides a great deal of constraints right out of the box. The constraint based method allows me to create my own constraints if necessary. Then I started using the TestCase attribute (originally RowData) and have enjoyed that ability. So with that I decided to update SimplyVBUnit to provide as much capabilities with regards to constraints and test case data functions as I could.

SimplyVBUnit provides numerous constraints like NUnit and you can write your own if necessary. The constraints can be changed together providing even greater capabilities than the old method. In the old method there was no built in way to assert that a value was equal to more than one value.

The old way for asserting against multiple values:
Assert.IsTrue MyValue = 1 Or MyValue = 2

The old method does work for the most part, but it doesn't help you when it fails. All you get is that the assertion was false.

The new constraint based method:
Assert.That MyValue, Iz.EqualTo(1).OrElse.EqualTo(2)

The new method reads exactly what you want and if there is a failure you're told exactly what was expected. Anyways, this is a very very tiny portion of the power of constraints when using SimplyVBUnit.

The test case capabilities can be involved so I won't go into any details here. Since VB6 doesn't support attributes like .Net I made a pretty good alternative. It's still very powerful in providing the ability to pass parameters to test methods.

So if you unit test in VB6 give SimplyVBUnit 3.0 a try.


Monday, July 07, 2008

Classic ASP Helper Project

So a few people have been attempting to use VBCorLib from within a classic ASP web page, and can have difficulties achieving success. There is a mismatch when dealing with ASP and VBCorLib, especially when dealing with arrays. In ASP all variables are held in a Variant. Arrays are expected to be a Variant with a subtype of the specific datatype. VBCorLib deals with strictly typed arrays. This presents a problem and can cause much frustration. So I've created a helper dll that allows for easy conversion of one array type to another. This makes it easy to convert the Byte() VBCorLib returns into a Variant(), or vis-versa when needing to pass a Byte() by reference into a method. Also, there are a few wrapper classes that make things a big smoother when dealing with classes that make heavy use of arrays, such as the cryptography classes.

So anyways, I hope the helper dll will provides benifit to those still developing in class ASP and would like to include some of the functionality provided by VBCorLib.

You can download the helper dll from Source Forge.


Wednesday, June 11, 2008

Version 2.3 Released

Long time no posty! I finally got around to dealing with the DEP problem that VBCorLib would raise on certain systems. I can only hope it is fixed for all systems! I also did some minor updating.

Someday I'll get time to just dig into the thing again. I'm aching to write and rewrite some better tutorials. I'm not satisfied with the few that exist and some of those are out of date. So we'll see how things go.

Anyhow, you can grab the newest version from Source Forge.


Tuesday, October 23, 2007

Updating VBCorLib to Version 2.2

So I don't get a lot of time to spend with VBCorLib, but sometimes I have to make an update available because I feel an issue needs to be resolved. So I've done some work and uploaded the latest to SourceForge.

I've integrated the BigInteger class with VBCorLib to bring all the functionality into a single package. Along the way a few issues were resolved. The Queue class had a sneaky glitch that could cause an application to crash. The DSAParameters class was updated to derive the J parameter from the P and Q parameters. This was accomplished using BigInteger.

Along with the new uploads on SourceForge I have included the current set of unit tests. It is a separate download because if its size. But for those interested, it is available. It will require the use of SimplyVBUnit to run those tests.