NetQuarry has been used to develop OptionEase.com, a software-as-service application that manages stock option expense tracking for the new (as of Jan 1, 2006) FASB 123R accounting rules. The team that built the application (Version 1.0) was composed of 3-4 developers over about a 3 month period. They have generated a large amount of interest with CFOs in the last couple of months, even signing up their 2nd real customer. We think this proves the promise of NetQuarry well. From concept to customer, with a small team in a little over 6 months. A demo-able version of the application was running in the first 3 weeks.
A few interesting ideas came out of the building of this application. Perhaps the most significant is the addition of what we are calling “TypedMappers.” A TypedMapper is a helpful, extrememly lightweight type-safe wrapper class around a NetQuarry Mapper object.
You typically use a TypedMapper as a helper class in an extension. You can create a TypedMapper and attach it to the sender (IMapper) of the event or you can use the TypedMapper derivative to create a new mapper – either for the purpose of creating a new row or reading/updating an existing one. Connecting a TypedMapper via one of the constructors or TypedMapper.Attach is very inexpensive and generally a safer way to work with a mapper.
The TypedMapper is an abstract base class, which means that you have to use our generator to generate derived classes that wrap your mappers. The ONLY potential drawback to using a TypedMapper derivative vs. the Mapper as is is that you will need to update (re-generate) the classes as you make metadata changes. On the applications that we (NetQuarry) are personally managing we are putting the generation code after we save the metadata and check-in the class file. We are recomending that you keep the generated classes more or less stand-alone (e.g. in its own assembly) and without any dependencies on other code.
The help is updated (NetQuarry Help) if you want to see code samples–Search for TypedMapper.
NetQuarry develops and licenses the NetQuarry Enterprise Application Platform. The NetQuarry platform helps professional software development teams develop significantly better enterprise and hosted applications.