Nhydrate
Encyclopedia
nHydrate is an object-relational mapping
(ORM) solution for the Microsoft .NET
platform providing a framework for a relational database
to be mapped to .NET objects. It is designed to alleviate the drudgery software developers experience writing persistence domains.
nHydrate is free as an open source
project on Codeplex.com under the Microsoft Public License (Ms-PL).
nHydrate was originally created in 2003 as a private project to solve the issues with the .NET Framework 1.1. Using ADO.Net Datasets is cumbersome and error prone, so a small generated framework was created to relieve developers of the CRUD work. As a private project it was later inspired by the work of the NHibernate
group.
nHydrate was a private project from 2003 until 2009. It was used at various companies in the Atlanta, Georgia
, area but never widely released. It was publicly released on September 10, 2009.
nHydrate is built on the .NET Framework 3.5.
server database. The CRUD layer (create, update, delete) is also implemented. There are numerous retrieval mechanism facilities. nHydrate generates the SQL for all CRUD operations as well as advanced LINQ capabilities. The product is not database portable. The framework is designed to work exclusively with SQL Server.
The tool is entirely sited within Visual Studio.NET and all model maintenance and generation is handled directly from the environment. There are no XML files or other complex configuration scenarios to navigate like almost all other ORM tools. The VS.NET plugin GUI editor provides an interface to interact with a model and use it.
The data access layer (DAL) is very robust right out-of-the-box with no setup required to use it. An imported database model can be used to generate a DAL layer with no other configuration required.
nHydrate does provide a DTO (data transfer object) layer as well. This functionality consists of POCO (Plain Old CLR Object
) to transfer objects and an extension layer (using .NET extension methods) to extend the retrieve and save functionality of the DTOs. When an application is written against the DTO layer as opposed to the DAL layer, an application can swap out the generated middle layer to provide test driven development (TDD), mocking, or WCF services. This functionality implements the Inversion of Control
pattern described in many computer science texts.
There is a REST-ful (Representational State Transfer
) layer as well that provides REST services of all database objects. There are based on native JSon and XML capabilities. Currently the project is adding the finishing touches on accessing the generated objects from JavaScript. Some LINQ capability will be present in JavaScript as well. This new functionality will allow developers to build Web 2.0 applications.
Object-relational mapping
Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language...
(ORM) solution for the Microsoft .NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
platform providing a framework for a relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...
to be mapped to .NET objects. It is designed to alleviate the drudgery software developers experience writing persistence domains.
nHydrate is free as an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
project on Codeplex.com under the Microsoft Public License (Ms-PL).
nHydrate was originally created in 2003 as a private project to solve the issues with the .NET Framework 1.1. Using ADO.Net Datasets is cumbersome and error prone, so a small generated framework was created to relieve developers of the CRUD work. As a private project it was later inspired by the work of the NHibernate
NHibernate
- External links :*** *NuGet...
group.
nHydrate was a private project from 2003 until 2009. It was used at various companies in the Atlanta, Georgia
Atlanta, Georgia
Atlanta is the capital and most populous city in the U.S. state of Georgia. According to the 2010 census, Atlanta's population is 420,003. Atlanta is the cultural and economic center of the Atlanta metropolitan area, which is home to 5,268,860 people and is the ninth largest metropolitan area in...
, area but never widely released. It was publicly released on September 10, 2009.
nHydrate is built on the .NET Framework 3.5.
Feature summary
nHydrate's primary feature is mapping .NET objects to an SQLSQL
SQL is a programming language designed for managing data in relational database management systems ....
server database. The CRUD layer (create, update, delete) is also implemented. There are numerous retrieval mechanism facilities. nHydrate generates the SQL for all CRUD operations as well as advanced LINQ capabilities. The product is not database portable. The framework is designed to work exclusively with SQL Server.
The tool is entirely sited within Visual Studio.NET and all model maintenance and generation is handled directly from the environment. There are no XML files or other complex configuration scenarios to navigate like almost all other ORM tools. The VS.NET plugin GUI editor provides an interface to interact with a model and use it.
The data access layer (DAL) is very robust right out-of-the-box with no setup required to use it. An imported database model can be used to generate a DAL layer with no other configuration required.
nHydrate does provide a DTO (data transfer object) layer as well. This functionality consists of POCO (Plain Old CLR Object
Plain Old CLR Object
Plain Old CLR Object or POCO is a play on the term POJO, from the Java EE programming world, and is used by developers targeting the Common Language Runtime of the .NET Framework....
) to transfer objects and an extension layer (using .NET extension methods) to extend the retrieve and save functionality of the DTOs. When an application is written against the DTO layer as opposed to the DAL layer, an application can swap out the generated middle layer to provide test driven development (TDD), mocking, or WCF services. This functionality implements the Inversion of Control
Inversion of Control
In software engineering, Inversion of Control is an abstract principle describing an aspect of some software architecture designs in which the flow of control of a system is inverted in comparison to procedural programming....
pattern described in many computer science texts.
There is a REST-ful (Representational State Transfer
Representational State Transfer
Representational state transfer is a style of software architecture for distributed hypermedia systems such as the World Wide Web. The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation...
) layer as well that provides REST services of all database objects. There are based on native JSon and XML capabilities. Currently the project is adding the finishing touches on accessing the generated objects from JavaScript. Some LINQ capability will be present in JavaScript as well. This new functionality will allow developers to build Web 2.0 applications.