Quantcast
Channel: Red Bit Blue Bit » alt.net
Viewing all articles
Browse latest Browse all 2

Live blogging from the IndyALT.NET meeting – Entity Spaces

$
0
0

Tonight was (is?) the inaugural meeting of IndyALT.NET. While not intending to replace the IndyNDA .NET User Group, it will cover other third party tools and ideas outside the typical Microsoft fold. Since I was the only one to show up with a laptop, I guess I’m the only one live blogging the event. Here goes… sorry its so disjointed, but that’s how these things go.

Introduction by Shane Milton (@jaxidian)…

What is ALT.NET? It is looking at the bigger picture: from requirements to design to development. More than just development. But for development, it looks much more closely at third party components.

Initial funding for the IndyALT.NET group has been provided by Tridge Alliance as a platinum sponsor.

Other sponsors for this event are:

There are a number of upcoming “geek” events:

  • Indy Geek Beer is happening next week.
  • IndyPASS (SQL Server user group) next week on Tuesday, but in a new location.
  • IndyNDA .NET user group meeting next month.
  • IndyTechFest.com – October 4th.
  • Administrative meeting next Thursday to get the ball rolling on this group. Leaf Solutions offices.

Mike Griffin presenting EntitySpaces 2008

Entity Spaces is a total virtual company. They have been in business for two years.  They have a hosted subversion repository and do weekly planning meetings via Skype. The three guys who own the company have never actually met. Mike Griffin lives here in Indianapolis. David Parsons and Scott Schecter are the other two developers.

Their mantra is “Maintenance starts the moment you start a project.”

This is a platform that goes across multiple operating system configurations including medium-trust support, the .NET Compact Framework and MONO.

No reflection or funkiness under the hood.

Runs against multiple database sources (SQL Server, Oracle)

Built in Paging.

Available for 2.0 and 3.5.

Generated and custom classes – takes the database schema and reverse engineers it to generate the classes. Custom classes override the generated classes so you never have to touch the generated classes. The custom classes are generated one time

EntitySpaces automatically generates three types of objects: Class – Collection – Query.  They use myGeneration to create the objects.

Doesn’t use SQL injection. The framework can build SubSelect and other JOIN queries. LINQ queries are supported in the 2008 version…. LINQ queries get passed to EntitySpaces which handles the execution.

David does massive unit tests for the project. They run unit tests against all of the different database types to ensure everything works.

EmployeeMetadata.ColumnName.Address

Can serialize to XML. It can also be used as a proxy for web services. Lightweight proxies that are like dummy objects. This allows you to use these objects on the other end of the pipe and not have to implement the EntitySpaces objects there. These lightweight proxies can still remember rows state.

The future: release of 2008. Then need they want to build out the API. Supporting myGeneration and CodeSmith templates for both C# and VB. They have built their own templates, and they get the benefit of using the same templates between the two generator. But the future is to use the Microsoft IDE to generate the objects using the shell app architecture. This would allow generation right in Visual Studio or in stand-alone mode. It’ll be their own code generation technique that doesn’t require myGeneration or CodeSmith.

Using transaction scope prevents having to pass around a transaction. Everything within the USING uses that transaction scope.

They added a namespace (es) inside the query object to wrap their properties to prevent collisions with field names in the database. So you could have Query.PageCount (from a field in the database) and the es.PageCount won’t conflict with it.

EntitySpaces uses map files in order to handle the differences between the different databases. Specified in the app.config to know which one to use.

The generators can use custom aliases, so you can get rid of the crappy names the DBAs came up with and make the names useful. It’s in the EntitySpaces metadata.

EntitySpaces has allowed him to make fast changes to the system by just updating the database structure. He could make changes in 4 hours that would take other consultants 2-weeks and much complaining to get done.  Consulting companies are using this quite a bit to kick out projects very quickly. Let’s consulting companies abstract away scary things like Oracle databases.

EntitySpaces runs at $149 for the Developer license ($499 including the source code). For a couple hours of consulting work it’s probably worth it.

Some benchmarks have shown its faster than WORM, LLBGen and even LINQ.

Summary

Three years ago I worked on a project that ran on a server but also had a mobile device. I had to go through a lot of work to get a consistent set of classes I could reuse to build both halves of the application. With EntitySpaces, this could have been created in no time had it existed at the time. I can definitely see a use for EntitySpaces.

As a fan of Subsonic, though, I’m not sure I see the benefit of EntitySpaces in an ASP.NET environment. Although code generation is pretty well baked in with myGeneration or Codesmith, these are still tools that need to be downloaded, installed and configured. With Subsonic, there is very little configuration.

I won a door prize: a copy of EntitySpaces… so I’ll get a chance to check it out myself!


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images