Modivate is Pleased to Announce the Release of O/SP Mapper 2.0 Beta for .NET during Q2 2011
"O/SP Mapper - A new alternative to traditional O/R mapping tools".
What is O/SP Mapper?
O/SP Mapper is a library and tool bundle designed to map .NET domain object methods directly to database stored procedure parameters and return values. O/SP Mapper provides all of the benefits of a traditional O/R mapping tool with none of the typical limitations, security holes and performance issues.
Traditional Object/Relational (O/R) mapping tools generally allow for the mapping of domain object properties to relational database table columns. While this useful concept has helped developers create and/or modify applications more efficiently by eliminating the need to manually map existing data and its underlying code, the use of O/R mapping tools has been known to induce performance and security issues in the process, not the least of which are execution of unknown SQL queries, security holes and obvious separations of domain and database layers of an application.
O/SP Mapper was designed to account for these typical issues which have frustrated developers (and clients) and lead to quick-fix, "band-aid" style solutions to get the applications back up and running on-line. Without sacrificing the development time reduction provided by O/R mapping tools, O/SP Mapper was specifically architected from the ground up to eliminate the above issues and to help maintain the integrity of application data by enforcing proper data architecture practices and assisting in the seamless integration with .NET applications.
Why O/SP Mapper 2.0 over traditional O/R Mapping tools?
The number one priority when developing O/SP Mapper was to enforce proper database architecture standards without sacrificing performance and scalability in an enterprise environment. Modivate's DBAs had final approval over all aspects of the design. Most existing O/R mapping tools and solutions, it appears, were designed with only the application layer in mind leaving the actual data storage concerns as an afterthought.
Enterprise / Scalable Performance - O/R mapping tools while effective, often are not feasible solutions to use on an enterprise application that processes thousands of transactions an hour. There are two reasons for this. First, unknown or unaccounted for SQL queries could be executed against the database during development and run time. If the O/R mapping tool devises and executes a query that will perform poorly, this can cause the developer to waste valuable time and energy debugging and working around the problem. Secondly, most O/R mapping tools utilize .NET Reflection to perform the actual assigning of values from the database to the domain object properties. Since Reflection is painfully slow, this can easily bottleneck applications that move large amounts data to the client UI from the database or in applications with a high transaction rate.
O/SP Mapper is designed to map .NET Domain methods directly to database stored procedure parameters and return values. For basic CRUD (Create, Read, Update, Delete) operations, the developer writes only a couple of lines of .NET code, modifies a developer friendly XML mapping file and auto-generates the CRUD stored procedures. For complicated database operations or infinite domain object hierarchy population and modifications, the developer can allow the O/SP Mapper to conduct these operations intelligently via automatic domain hierarchy-based execution of the CRUD procedures or develop stored procedures that execute desired operations faster and more efficiently. All of this is controlled via the XML mapping file. The enforcement of the mapper using only stored procedures for database operations eliminates performance concerns, because all potential SQL queries are now defined solely in the stored procedures and therefore exist in one place where they can be optimized and/or pinned in memory by the DBA.
O/SP Mapper does NOT use .NET Reflection for the population of domain objects. Instead, the first time an object is accessed by the .NET worker process, a set of .NET IL (Intermediate Language) libraries are executed that emit a light weight dynamic .NET assembly of the property mappings for both Set and Get operations. No longer is the property assignment a bottleneck. The limiting factor in object manipulation performance is now the speed of the database. This technology has proven to boost the performance of Modivate's own highly data driven web applications by ten-fold over tests of the same applications using O/R mapping tools that utilize .NET Reflection for the hydration of objects!
Security Enforcement - O/SP Mapper improves database security over O/R mapping tools implicitly by its well defined separation of the .NET and database layers. Since only database stored procedures are executed by O/SP Mapper, DBAs need only grant SP execution privileges to the single database login that O/SP Mapper uses for database transactions. No longer is it necessary for the login to have full SQL execution rights to the database. Since full SQL execution rights are not needed, this eliminates the possibility that your application will provide security holes allowing SQL Injection attacks on your application.
O/SP Mapper will initially be available for SQL Server 2005/2008 and Oracle 9 and up. Future versions are being planned to incorporate MySQL and other database engines.
O/SP Mapper will support .NET versions 2.0 and higher.
O/SP Mapper will additionally include libraries to allow seamless integration with new DNN© Module development, assist in the automatic generation of domain objects and will also include scripts to assist with the creation of CRUD stored procedures.