Make your own free website on


Microsoft ObjectSpaces (OS)

Gopalan Suresh Raj


Installing Microsoft Object Spaces (Beta)


Design Issues

Modeling using Object Spaces

A Bank Account Example

Developing a Simple Banking Application
Developing Object Spaces Persistence-Aware Applications

Remoting Object Space Objects

Remoting Object Space objects

COM+ Enterprise Services and Object Spaces

COM+ Facade to Object Space Objects



.NET Enterprise Developers need a standard way to store objects persistently in transactional data stores. Furthermore, they need a standard way to treat relational database data as objects, and a standard way to define transactional semantics associated with those objects.

Microsoft Object Spaces provides for interface-based definitions of data stores and transactions; and selection and transformation of persistent storage data into native .NET programming language objects.


Figure illustrates The Object Spaces Architecture

Microsoft Object Spaces is designed to work on all .NET platforms. All .NET platforms - desktop, server, personal, embedded, and card - can use this API to access data.

The ObjectSpaces architecture lets you expose data as objects and lists of objects rather than as tables, columns, rows, or XML elements.

Objects defined within the ObjectSpaces architecture are known as persistent objects.

Once you've defined a persistent object, you can use an ObjectSpace to create instances of the object and to persist the object data to a data store, retrieve and persist objects back to the data store, as well as delete instances of the object from the data store.

Microsoft ObjectSpaces provides both an XMLObjectSpace to connect to an XML datastore and a SqlObjectSpace to connect to Sql Server. Both provide facilities to edit, update, add, and delete data.

MS ObjectSpaces provides a protective transactional business logic layer for your source data layered on top of ADO.NET. You use the Object Query Language (OPath) to write queries that use conventional C# operators. OPath also handles updates to the source database or XML document and supports transactions.

In summary, as Microsoft says,

Microsoft .NET ObjectSpaces are a set of classes and interfaces that enable you to treat data as an object (or objects), independent of the underlying data store used by an application. ObjectSpaces builds on and contains a set of new data access APIs within the Microsoft .NET Framework to provide access to relational data sources such as Microsoft SQL Server®, OLE DB data sources, etc.

You can use the ObjectSpaces to perform the following data related tasks/steps:

Get data as objects from a data source using a particular query criteria
Navigate one-to-many or one-to-one relationships using the objects returned
Modify the values/properties of the objects
Resolve changes back to the data source

Latest Update on Microsoft ObjectSpaces
Wednesday, October 02, 2002 9:14 PM

According to Guang-an Wu who works for the company, Microsoft have utilized the feedback received via newsgroups and through customer meetings to improve ObjectSpaces further. Currently, ObjectSpaces is being developed as a part of the next major .NET framework release.
Stay tuned for further announcements at the PDC next year.

Since the component is still under development, many of the details are still being decided and are not yet available for public release. However, here are some of the highlights, with the usual caveat that all details are subject to change without further notice. And Additional details beyond these highlights are not available at this point for release.

  1. Unlike the PDC 2001 Technology Preview, classes don't need to be abstract. The goal is to make ObjectSpaces available for all .NET objects.
  2. The foundation is a better optimized streaming model for fast retrieval of objects.
  3. Key features like simplicity of OPath queries for retrieving objects, choice of span or delay loading are being enhanced and improved.
  4. More sophisticated support is planned for inheritance and advanced mapping between classes and one or more tables.
  5. Further, tools support for application development lifecycle is in the works.



More to come soon...


click here to go to
My Advanced C#/.NET Tutorial HomePage...


About the Author...
Gopalan Suresh Raj is a Software Architect, Developer and an active Author. He has co-authored a number of books including "Professional JMS", "Enterprise Java Computing-Applications and Architecture" and "The Awesome Power of JavaBeans". His expertise spans enterprise component architectures and distributed object computing. Visit him at his Web Cornucopia© site ( or mail him at

Go to the Component Engineering Cornucopia page

This site was developed and is maintained by Gopalan Suresh Raj

This page has been visited times since July 19,1998.

Last Updated : July 19, '98

If you have any questions, comments, or problems regarding this site, please write to me I would love to hear from you.

Copyright (c) 1997-2002, Gopalan Suresh Raj - All rights reserved. Terms of use.

All products and companies mentioned at this site are trademarks of their respective owners.