One of the perks of working in R&D at Medidata is “Innovation Time”. Twice a year, engineers get to spend two weeks building whatever they want. Ideally some of the things we build will go back into direct product development but if not, we are encouraged to open source the work.
Fresh from attending Microsoft’s Build 2013 conference in San Francisco, I wanted an excuse to use all the latest Microsoft web stack tools. Namely:
- Visual Studio 2013 Preview
- ASP.NET MVC5 Beta
- Entity Framework 6 Beta
- SignalR 2.0 Beta
I also wanted to test out CouchDB, which was made infinitely easier with the awesome MyCouch library by Daniel Wertheim. The result of which is “Cognition” – a cross between a wiki and a CMS that can be used as a basic CRM, a job board or knowledge base. The result of two weeks work can be seen on the company repo at https://github.com/mdsol/cognition – a test site can be seen hosted on Azure at http://cognition-demo.cloudapp.net. There is quite a lot of rough code with scant test coverage, unfortunately necessary to get the experiment out the door in two weeks. It does however show what is possible with the .NET web stack.
Here is a short video showing the current state of the app (no audio – visit the full post page to view): Read more
I’ve got the Microsoft Money style cashflow chart going with the flot library and some massaging of ASP.NET MVC 3 to output JSON.
The chart correctly predicts future cashflow based on your set bills and future transactions. Next up is multiple accounts and currencies at once.
I am finally fed up of having to install Microsoft Money and set up syncing of the data file, so I’ve decided to try and build a web based version. Mint.com does not support non-US markets and apparently does not even support adding your own transactions that have not been downloaded from a bank. “Private Money” is the codename and it looks a bit like this at the moment:
- ASP.NET MVC 3 as the application framework
- Entity Framework 4.1 for ORM
- NInject for a modular design with dependency injection
- MigratorDotNet for database versioning with some tweaks to get it to work over different modules
I am planning on replicating the parts of MS Money that I use the most, mainly the transaction logging, reports and cashflow chart (which should be fun to make on a canvas element). Visually I am going for the Windows Live/Metro motif.