NHydrate

Last updated

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.

Object-relational mapping in computer science is a programming technique for converting data between incompatible type systems using object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language. There are both free and commercial packages available that perform object-relational mapping, although some programmers opt to construct their own ORM tools.

.NET Framework software platform developed by Microsoft

.NET Framework is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large class library named as Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

A relational database is a digital database based on the relational model of data, as proposed by E. F. Codd in 1970. A software system used to maintain relational databases is a relational database management system (RDBMS). Virtually all relational database systems use SQL for querying and maintaining the database.

Contents

nHydrate is free as an open source project on GitHub.com under the MIT License.

MIT License any of several permissive free software licenses originating at the Massachusetts Institute of Technology

The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT). As a permissive license, it puts only very limited restriction on reuse and has, therefore, an excellent license compatibility. The MIT license permits reuse within proprietary software provided that all copies of the licensed software include a copy of the MIT License terms and the copyright notice. The MIT license is also compatible with many copyleft licenses, such as the GNU General Public License (GPL); MIT licensed software can be integrated into GPL software, but not the other way around.

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.

NHibernate

NHibernate is an object-relational mapping (ORM) solution for the Microsoft .NET platform. It provides a framework for mapping an object-oriented domain model to a traditional relational database. Its purpose is to relieve the developer from a significant portion of relational data persistence-related programming tasks. NHibernate is free as open source software that is distributed under the GNU Lesser General Public License. NHibernate is a port of Hibernate.

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 4.0.

From version 5.0 and above, the entire framework has been reworked to use only Entity Framework as it internal data access layer. The modeler is now visual with a main diagram like other modeling products. All code interactions are simply Entity Framework now so there is no learning curve for developers when using the generated output.

Entity Framework (EF) is an open source object-relational mapping (ORM) framework for ADO.NET. It was a part of .NET Framework, but since Entity framework version 6 it is separated from .NET framework.

Feature summary

nHydrate's primary feature is mapping .NET objects to an SQL 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 Microsoft SQL Server. There is an internal project to use MySql but this is not yet a public release.

SQL is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS). It is particularly useful in handling structured data where there are relations between different entities/variables of the data. SQL offers two main advantages over older read/write APIs like ISAM or VSAM. First, it introduced the concept of accessing many records with one single command; and second, it eliminates the need to specify how to reach a record, e.g. with or without an index.

Language Integrated Query is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages, originally released as a major part of .NET Framework 3.5 in 2007.

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 visual model and edit a model.

History

nHydrate was started by Michael Knight, and later added Chris Davis. By 2006, the platform had much of its current functionality, minus LINQ, and was being used in applications in the Atlanta area. By 2009, the advanced functionality had been added like inheritance, LINQ, and VS.NET integration.

Related Research Articles

Object-relational database database management system

An object-relational database (ORD), or object-relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object-oriented database model: objects, classes and inheritance are directly supported in database schemas and in the query language. In addition, just as with pure relational systems, it supports extension of the data model with custom data-types and methods.

In computer software, a data access object (DAO) is an object that provides an abstract interface to some type of database or other persistence mechanism. By mapping application calls to the persistence layer, the DAO provides some specific data operations without exposing details of the database. This isolation supports the single responsibility principle. It separates what data access the application needs, in terms of domain-specific objects and data types, from how these needs can be satisfied with a specific DBMS, database schema, etc..

Hibernate ORM is an object-relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object-relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

ADO.NET is a data access technology from the Microsoft .NET Framework that provides communication between relational and non-relational systems through a common set of components. ADO.NET is a set of computer software components that programmers can use to access data and data services from a database. It is a part of the base class library that is included with the Microsoft .NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems, though it can also access data in non-relational data sources. ADO.NET is sometimes considered an evolution of ActiveX Data Objects (ADO) technology, but was changed so extensively that it can be considered an entirely new product.

In software engineering, the active record pattern is an architectural pattern found in software that stores in-memory object data in relational databases. It was named by Martin Fowler in his 2003 book Patterns of Enterprise Application Architecture. The interface of an object conforming to this pattern would include functions such as Insert, Update, and Delete, plus properties that correspond more or less directly to the columns in the underlying database table.

iBATIS is a persistence framework which automates the mapping between SQL databases and objects in Java, .NET, and Ruby on Rails. In Java, the objects are POJOs. The mappings are decoupled from the application logic by packaging the SQL statements in XML configuration files. The result is a significant reduction in the amount of code that a developer needs to access a relational database using lower level APIs like JDBC and ODBC.

The Java Persistence API (JPA) is a Java application programming interface specification that describes the management of relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition.

Qcodo is an open-source PHP web application framework which builds an object-relational model (ORM), CRUD UI pages, and AJAX hooks from an existing data model. It additionally includes a tightly-integrated HTML and JavaScript form toolkit which interfaces directly with the generated entities. It is a robust, comprehensive framework which can be utilized by small and large Web applications alike.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software that requires access to stored data, such that the database system is "hidden" from the application’s end-user and requires little or no ongoing maintenance. It is actually a broad technology category that includes

The Doctrine Project is a set of PHP libraries primarily focused on providing persistence services and related functionality. Its prize projects are an object-relational mapper (ORM) and the database abstraction layer it is built on top of.

Quick Objects is a powerful object-relational mapping tool for Microsoft .NET Framework with a built in framework for business logic and validation. The architecture for Quick Objects is different from other ORM tools. Focus of Quick Objects to provide the advantages of code reuse, code generation and object relational mapping in a single tool set.

DataObjects.NET is a persistence and object-relational mapping framework for the Microsoft .NET Framework. It allows the developer to define the business logic directly in one of the .NET languages like C#. The persistent objects can be retrieved by LINQ queries. Persistent data can be stored in SQL Servers or in even simpler DBMS which only provide simple indexing operations. In contrast to many other ORM frameworks the database model is generated and maintained automatically.

Dapper is an object-relational mapping (ORM) product for the Microsoft .NET platform: it provides a framework for mapping an object-oriented domain model to a traditional relational database. Its purpose is to relieve the developer from a significant portion of relational data persistence-related programming tasks. Dapper is free as open source software that is distributed under dual license, either the Apache License 2.0 or the MIT License.

QxOrm is an Object Rational Mapping persistence framework for C++ with Qt. It supports cross compilation and is available for the platforms Windows 64/32 bit, Linux 64/32 bit and Mac OS.