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

  • Stop wasting time looking for files and revisions. Connect your Gmail, DriveDropbox, and Slack accounts and in less than 2 minutes, Dokkio will automatically organize all your file attachments. Learn more and claim your free account.


Rhino Tools

Page history last edited by Tim Barcz 11 years, 11 months 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.