Not signed in (Sign In)
  • CommentAuthorAdnan
  • CommentTimeJul 29th 2008 edited
 
What is the Orasis Mapping Studio?

Orasis Mapping Studio is a comprehensive Object to Database Mapping Tool that builds your Data Access code from the ground up. It is an IDE and a Code Generator that allows you to build your mapping layer between custom .Net Objects and existing Relational Database through SQL queries. The Orasis Mapping Studio (OMS) is the only IDE of its kind that allows users to build their mapping layer from the ground up to their requirements with no overhead, excessive languages, frameworks and libraries involved. It's in IDE that not only lets developers build their data access layer, but also allows DBAs and Data Architects to be part of the development process.

What is a Mapping?

A mapping an association of data between relational Data and Objects. It is made up of three parts; a SQL Query, a .NET Object Model and a set of Field Mappings that associate the columns from the query to the .NET Object Model's properties. Once a mapping has been completed, the OMS stores the mapping and generates a method that translates the mapping into .NET code instructions that execute the mapping and return the results.

Mappings can be either for reading Objects, where data is read from the relational database into .NET objects or for persisting Objects where data from .NET Objects is stored in a database. A read mapping consists only of a SELECT query while the persist mapping maybe of an INSERT, UPDATE or DELETE statement.

What is a Mapping Layer?

A mapping layer is a class or set of classes that contain data access and mapping methods. The OMS builds the mapping layer by building an Assembly out of all the mapping methods and classes and compiling it into a single, simple to use DLL that can be called by any .NET code. It has all the methods, comments, that the user created when building his or her mappings. The mapping layer has a place to set the connection string if the user decides to use a different connection string. The mapping layer classes are built using the DB provider of the user's choice and are compiled within the IDE for SQL and .NET errors. The mapping layer can be built using either C# or VB.net as language providers.

What is a Mapping Project?

A mapping project consists of all the mappings, mapping classes, Assembly reference and database settings that are needed to build and maintain a mapping layer. It is stored in XML format and can be easily read and distrbuted amoing project team members for collaboration.

What does the Code Generator Generate?

The OMS has a sophisticated code generation engine to translate all the mapping layer, mapping and database information to generate efficient, clean, easy to use, and human readable .NET code to build a data access layer. The code is gauranteed to compile with no syntactical errors and is written in partial classes for extensibility. The code has comments that are associated with the mapping methods, classes and assemblies for a developer to be able to use the Assembly as a fully documented data API. The code generator uses basic ADO.NET constructs and Database Provider information to generate code for performing all the database access activities necessary.

What is the Unit Tester?

The OMS provides an easy to use Unit tester, that allows users to test their mappings in the generated code. This allows the users to unit test their mappings and the generated code for performance, data accuracy and execution. This is a must have for any software developer to be able to unit test his or her own code before using it in the application.

Does OMS help developers build their SQL?

The team at OMS understand that writing SQL Queries is not an easy task for most developers. To ease the pain, OMS has a powerful SQL designer that allows user to build sophisticated queries with INNER, OUTER JOINS, UNIONS, nested queries and WITH clauses with an easy to use drag and drop graphical query builder and powerful Intellisense enabled SQL editor. Building queries with the OMS is truly a breeze.

My .NET objects are complex with inheritance, nested objects, and other Object Oriented constructs. Does the OMS handle them?

The OMS was developed with the most advanced Object Oriented developers in mind. It allows mapping of data into nested object graphs. It also allows users to select their Objects from any .NET assembly. It checks of constructor availability and only allows mapping to Public, writeable properties where rules of OOP are not violated. The most powerful feature of the OMS Type mapper is that it allows users to instantiate properties of Interface or Abstract types with concrete instances to map to, all with easy to use GUI commands.

Do the Objects that are used for mappings have to follow certain constructs, i.e. attributes, base class, interfaces, etc.?

No, not at all. The OMS is flexible enough to allow users to map into any Plain Old CLR Object (POCO) or even an Object that has base classes, interfaces, etc. as long as it has a default constructor and Public Properties of primitive .NET types such as string, int, float, datetime, etc. The Object does not have to be decorated with any Attributes, or derive from any base classes or implement any Interfaces.

Does the Mapping layer have transactions?

No. The mapping layer has methods that perform low level database access. It is the job of the calling code to wrap the method calls in Transactions using the TransactionScope class of .NET. Any mappng methods called within a single Transaction scope. See
http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx for further details on Transaction scopes.

Does the Mapping layer have any caching?

No. The mapping layer is returns fresh data from the database every time a mapping method is called. Any object level caching can be done by the caller if required.

What Databases are supported?

The OMS currently supports Microsoft SQL Server 2000 and up, Oracle, MySql and Mircosoft Access. We are constantly adding new databases support so please send us your database requirement that we may add it our list.