Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Hartmut Wilms on Aug 13, 2008 11:02 PM
Fluent NHibernate is an API for creating NHibernate mappings programmatically instead of XML configuration files. Its goal is to reduce the difficulties faced when incorporating NHibernate in a project by providing improved readability, testing capabilities, and compile time safety.
James Gregory, project owner, introduces Fluent NHibernate and raises his concerns about NHibernate’s XML configuration files:
[…] I think we all also have a bit of a dislike for the amount of XML you need to write to get your classes mapped; not only that, but also how the mappings are distinctly separate from the rest of your application. They’re often neglected and untested. One of the core tenets of the project is that we need a more succinct, readable, and testable way of writing your mappings.
In addition, Fluent NHibernate provides a fluent interface. Piers Cawley provides a good summary and explains that “client side complexity […] is reduced by moving object construction behind a thoughtful, humane interface”.
Fluent NHibernate reduces the complexity further by adhering to the convention over configuration principle, which means that the most common setup for any part of a mapping is chosen by default.
Besides compile time checking Fluent NHibernate adds to the robustness of your mappings by providing an API for testing. “We also want to help you verify that your mappings are set up properly, not just syntactically valid”, says James Gregory.
Last but not least Fluent NHibernate features a framework, which helps to setup a reference architecture and plays well with your IoC container of choice:
Our framework is a layer that sits on-top of the API to provide an even better experience. We’re looking to integrate with your favorite container, which will reduce the code you need to write to integrate NHibernate into your system. Then we’re going to tackle extensible conventions, which will allow you to specify your own implied conventions for your application. For example, if you’re always going to call your identifier “ID”, then why should you have to specify it every time? You shouldn’t!
Bobby Johnson gives a detailed step-by-step example of using Fluent NHibernate in his article “Skinning the Cat with Fluent NHibernate”.
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
No comments
Watch Thread Reply