Milestones - Data Persistence and Plugin Framework

​We just hit our first two milestones. Two major pieces of the framework are complete, our data persistence layer, and the plugin structure. We finished them a week ago but I wanted to be sure before posting it on the blog.

Our incomplete object model can now read and write from any database, including Microsoft SQL, Oracle, DB2, and MySQL. We anticipate most users simply using the Microsoft SQL database, but larger enterprise shops may prefer one of the other options. The tricky part here was finding a code library that mapped our rich object model into a database.

We were planning on using Microsoft's Entity Framework but ran into some irreconcilable speed issues. So instead, we're using NHibernate, the Dot Net port of the Java Hibernate framework. It's much more streamlined and has a lot of miles on it. It also lets us store multiple similar classes into the same underlying table, which keeps the database simple.

The second big piece is getting the plugin structure working. The software is designed so that the core project does almost nothing but define interface points, and "mash" the different modules together. All of the code modules, like Alerts, Data Access, Cost, Calculations, Reports, etc. are now in separate libraries that can be easily plugged into or out of the framework. We are developing all of our own modules exactly the same way our end users would create add-ons. In the software world, this is called "eating your own dog food", and it's essential to good software

Now we're working on the calculations, starting with Cost.

Topics: Development

Looking For a Few Good Advisors

​Andy Gluck at Financial Advisor Magazine wrote a nice article about FinFolio. It also discusses the last year of Techfi, through the Advent acquisition, which I talk about in more detail on WealthFly.

Maybe we shouldn't be talking to the press when we've barely started to write code, but I'm serious about wanting to work with advisors as we build the software. This was as an easy way to poke our heads up and see who may be interested in working with us.