Big changes are coming to BizArk!

Mar 12, 2016 at 3:34 AM
BizArk started over 10 years ago as a very basic command-line parser and slowly improved over the years to become something that could be used in a large number of projects. In that time, .Net has changed a lot and it is entirely possible that I have learned a few things in that time as well. So it's time to do a little Spring cleaning. BizArk v3 is now available for source code preview on GitHub.

BizArk v3 is a big update, here is a summary of the major changes we've made:
  • The command-line parser is now in it's own project.
  • The command-line parser has been completely re-written. It now supports POCO objects, better "Console App" integration, and much more.
  • The main command-line object you will be interacting with is now called BaCon (stands for BizArk CONsole). BaCon provides some nice utilities that you can take advantage of in your console app.
  • Data type conversion has been completely refactored. Externally it is mostly the same, but the internals have been completely replaced.
  • Removed WebHelper. There seems to be some decent open source projects that accomplish this better now (see RestSharp). Removing it reduced the size of the dll considerably. (if there is interest in keeping this project alive, I could be talked into moving it into it's own project and improving it, I've got some good ideas for it).
  • StringTemplate has been improved to support more complex scenarios.
  • Various other deletions and refactoring
There are also a couple of new features that I'm excited about.
  • BaObject - this is an object that can be used as a dynamic object or a dictionary, It keeps track of data changes for you so you can efficiently update just fields that have changed. It also implements the INotifyPropertyChanged interface. You can configure it to be strict or not. If not strict, you can ask for anything and it will return null if you haven't added the field to the object.
  • ObjectDictionary - This is another object that implements the IDictionary interface, but this one wraps an existing object. The cool thing about this object is that it supports keys that use dot notation to access properties. So keys like MyProperty.Numbers[0] and AnotherProperty.MyDictionary[MyKey].SomeValue work. In order to work with a large variety of objects, BizArk will frequently convert objects to property bags (basically an IDictionary<string, object>). This is the property bag created for objects and is super useful when working with StringTemplate.
So come on over to GitHub and check it out. If you have ideas for the project or would like to share your code, feel free to send me suggestions or make pull requests. The updates are still in progress and we don't have an automated build yet, but once everything is ready, we'll put up a NuGet package for anybody that wants to get the project that way.

BizArk Version 3 on GitHub