Developer Preview Available

We just posted the developer release to the site. This is a toolkit for writing macros, automating downloads, and building extensions on top of our framework. There aren't any screens in this release, nothing but code. If you aren't an intermediate to advanced Microsoft .Net developer (or have one on staff), this is not the time to dive in--wait for the beta.

I'm very happy with our progress so far. All of our different development branches were tied together over the last couple weeks, and the end result is a clean, cohesive portfolio management engine. We're eager to get feedback from other developers.

Most of the last six months has been spent playing with different technologies, without much concern for time or completing specific functionality. We'll still be making many changes, but this release represents an internal shift from "ivory tower" mode into "let's build a product" mode. With the sole exception of the reporting engine, all of the big architectural decisions are behind us. Things should start moving much faster now.

Topics: Development

Object-Oriented Portfolio Management

It has been our busiest month yet, as evidenced by the lack of blog posts. We've been preparing the code drop for our Developer Release, which involves tying together all the different modules we've been working on. While the rest of the team toils, I'm going to talk about one of the bigger issues we've been dealing with over the past few months--data persistence, which is developer-speak for "saving information in the database".

Designing object-oriented software yields almost total control over modeling business concepts. Traditional database-driven design may have a Transaction table that holds all transactions, each with identical fields. An object-oriented approach allows the creation of separate objects for each type of transaction, endowing each transaction with the properties and functionality that make it unique. Why have a Share amount in a Dividend? Dividends don't actually have shares, after all. With an object-oriented approach, Dividends not only remain share-free, but also add other unique fields, like PaidDate and ExDate, and specific functionality to utilize them.

Sounds great, right? It is. Much of our next-gen functionality is dependent on FinFolio using a modern object framework. Time-sensitive ownership, n-level account/portfolio trees, the extensible plug-in framework, alerts, and even on-the-fly cost allocation is all dependent on a pervasive object model.

Topics: Development