
I used to be an exclusive Microsoft developer. That meant I normally interacted with Microsoft
SQL Server. Yes I know. It is sacrilege. Just recently I subscribed to the
MSDN magazine to read up on the latest Microsoft technologies. There were a lot of articles that referenced programming
APIs to access databases. I thought I would share some of them here to mix things up.
The first topic is ADO.NET. We use it in some of the newer applications in our system. This is included with the .NET framework from Microsoft. It is used to access a relational database like Oracle. The technology started as an evolution of Active X Data Objects (ADO) from Microsoft. A data provider provides access to a data source. In the case of Oracle, the data provider is the Oracle Data Provider for .NET.
A related topic is
EF, which stands for Entity Framework. That is short for the ADO.NET Entity Framework. This is a set of data access
APIs. It is similar to the Java Persistence
API. An entity has a primary key. An entity data model maps data to a database schema. The programmer then uses either Entity
SQL or
LINQ to Entities to access the entity data model. This abstraction allows the programmer to access the data independent of where the data is actually stored.
Next we have
DTO, which stands for Data Transfer Objects. These were previously called
VO, or Value Objects. They implement a simple design pattern. They are used with
DAO, which is short for Data Access Objects, another Microsoft technology. The main idea behind
DTO is that they just provide
accessors and
mutators. There is no functionality provided other than get and set.
Finally we have
POCO, which stands for Plain Old
CLR Objects. The
CLR is the Common Language
Run time from Microsoft. This term is a play on
POJO, or Plain Old Java Objects.
POCO pokes fun at the complexity of accessing data using Java.
POCO are simple access objects compared to hard to use
ORM objects.