• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!


Rhino Tools

Page history last edited by Tim Barcz 15 years, 1 month ago

In this session we dove into the projects around Rhino.  This talk was combined with another talk of "building production ready applications" but during the talk this topic did not come up much.  Discussion seemed to stay focused on the code base(s).


Ayende went through the projects in the Rhino-Tools repository to describe what they do and their current state.


NHibernate Generics is no longer useful

NHibernate Query Analyzer (write HQL and see what happens) which is different from NHibernate Profiler


Projects in Rhino:


  • NHibernate.Query.Generator (Built around 2005) - code generator using DSL - will be moving to deprecated folder within six months.  This is no longer needed since LINQ
  • Rhino-commons (production ready)
  • Rhino-DSL (production ready)- codified patterns that can be used to create DSL quickly
  • Rhino-ETL (production ready)- (extract transfer load) replacement for SSIS/DTS
  • Rhino-Igloo - brought opinionated ideas to webforms (no tests with this code)
  • Rhino-Mocks (production ready)
  • Rhino-Security (production ready)
  • Rhino-Testing - Automocking container


Rhino Commons:

  • HttpModules/PagePerformanceModule - module which logs request durations for page URLs using Log4net
  • TimeBombHack - allows you to put into code instead of //TODO:, this will cause the code to fail on certain date rather than a simple message in task list.
  • FutureQuery - allows for self optimizing query
  • FetchingStrategy - allows you to create interfaces that demonstrate intent
  • Unit of Work - allows for multi-tenant applications.  Allows session factories to work with multiple database


Rhino ETL:

  • Replacement for SSIS in code
  • Pipelines in code which allow which handle processing


Building Production Quality Code:

(As mentioned above, not much was discussed here in as we tended to stay around

  • Catch and rethrow exceptions adding value and assitive messages to generic exceptions (Dru)
  • How do you refactor when people are relying on your code:
    • Downlevel client - handle older scenarios and new scenarios at the same time
    • Versioning strategies - "it is always going to work" (backward compatiblity)public interface vs published interfaces

Comments (0)

You don't have permission to comment on this page.