Mindscape LightSpeed 3.0 – initial impressions

Over the past few days I’ve finally had some time to give LightSpeed 3.0 a bit of a test drive. Nothing extensive so far, but enough to get some initial impressions.

The quick summary? I like it.

My testing has been with a couple of different projects / databases. One is a greenfield ASP.NET MVC application I’ve been playing about with, and the other is a quick test project I've created in order to run a few tests with LightSpeed against Ignition’s existing Site Foundation Framework codebase (mostly there I wanted to test the single table inheritance features, but it also gave me a chance to test out how easy it was to move to LightSpeed from LINQ to SQL).

A few quick (and I mean quick!) initial thoughts;

I really like how the ID fields aren't visible in the designer's view of entities. It shows the resulting relationships, but excludes the ID properties themselves. It might end up to be something I dislike later on, but for now it really makes it easier to view the model in the designer at a glance.

Being able to push schema changes back to the database is an incredibly useful feature. Previously when working with simple applications, all I really needed to use SQL Management Studio for was to create tables/columns/relationships. It certainly didn't feel a lot like a "design" process, and using the LightSpeed designer surface instead is a much more pleasurable and visual experience. I haven't looked at Migrations yet, but can easily see how that's going to take things to a new level entirely.

Plugging in Dynamic Data was pretty painless, and there's a screencast you can watch which makes it even simpler. Dynamic Data support is one of those things you'll either care about, or you won't. Personally I find it a pretty useful thing to have around when you need to scaffold up some basic CRUD pages incredibly quickly. Especially during the initial stages of a project, when you want the ability to enable testers/developers to be able to edit data in your database but haven't got around to creating the admin pages yet.

I came across an issue with a couple of reserved keywords in my database, however I quickly found a couple of posts in the Mindscape forum with the fix. One describing the incredibly simple workaround, along with a bit more information covering the pros and cons of the workaround. Nice.

The support for table level inheritance looks good. So far I've only had a quick tinker, but it looks like LightSpeed will do what we need to do, and do so easily. We have some serious issues with our current L2S model not playing nicely with Dynamic data in a couple of places due to the table inheritance we're using, meaning we need to do a few manual edits to the model after it's been generated. It's a real pain, and one of the main drivers for us to be looking at other data access technologies (however I also hear those problems are fixed in Dynamic Data 4.0). The edits required are fairly small changes, but having to do them every time you touch the model is a bit (!) of a pain.

In order to test whether LightSpeed’s model had the same issues I tried to convert our existing model over to a LightSpeed one. Initially it wouldn’t convert, but after copying and pasting our model across to a new DBML file and migrating that one everything came across perfectly – almost too good to be true. I ran up Dynamic Data and it all seems fine. Also testing with a couple of other (smaller/simpler) L2S models they all converted fine first time (which confirmed my suspicion that the problem with our first conversion was to do with my model, and nothing to do with LightSpeed).

So as I said these are initial impressions only, and I feel like I really haven’t even touched the surface of what LightSpeed can do yet. Rather it’s been a quick test as to whether it’s going to be a fit for what myself and Ignition needs, and so far the fit feels good. As superficial as this sounds, having access to a slick looking toolset is a nice feeling.

It’s also nice to be using a product where the roadmap feels a lot more definite, and where product support has a personal and accessible feel to it. After some of the time we’ve spent working around L2S, that support option is an important factor which helps to justify using a commercial O/RM over the free options of L2S and Entity Framework.

Tags: , , , ,

DotNetKicks Image

 Print | Posted on Friday, January 15, 2010 1:13 PM |



# re: Mindscape LightSpeed 3.0 – initial impressions

how can i submet my story ? how ..?

1/17/2010 8:59 AM | Khawaja

Post Comment

Website / Url

Your comment

Ensure the word in this box says 'orange':
Please add 3 and 7 and type the answer here:

Due to excessive comment spam, all comments are now being moderated. If you're a comment spammer then you're wasting your time here. Your comments will not be published - ever.

About me

My name is Ross Hawkins and I'm a developer, consultant, business owner and writer based in Auckland, New Zealand (pictured below!). My current work revolves around ASP.NET, C#, jQuery, Ajax, SQL Server, and a mix of other Microsoft development technologies.

I also have about 15 years of experience with IBM Lotus Notes/Domino and associated technologies. While Notes/Domino is no longer my primary focus I still like to dabble and keep my skills up to date.

I own and run 2 businesses - Hawkins Consulting Services, and Ignition Development.

Bethells Beach, located in sunny West Auckland, New Zealand


Subscribe to this feed


Popular Content

Troubleshooting WebResource.axd

The .NET 2.0 framework changed the way clientside JavaScript is delivered to the browser. Previously, ASP.NET 1.1 used the aspnet_client directory whereas now 2.0 uses WebResource.axd.

Published on October 8, 2006

Useful IIS Rewrite Rules

The IIS Rewrite Module is easy to use, however for some rules it can take a bit of trial and error to get your syntax correct. After using it for many projects across multiple customers, I thought it might be useful to put up a post containing a small collection of the useful rules I’ve come across, for your copying and pasting pleasure.

Published on January 14, 2014

jQuery Wildcard Selectors - some simple examples

I wrote about jQuery wildcard selector syntax briefly back in 2009, and since then that post has received a lot of views – way more than a post that brief should ever have seen..

Published on October 14, 2011

Microsoft AJAX Extensions: Sys.Debug is null or not an object

One of the breaking changes which was made with the 1.0 release of the Microsoft Ajax Extensions was the renaming of the 'Debug' class to 'Sys.Debug' for reasons of compatiability with other frameworks. Breaking changes like this can often be a source of frustration..

Published on May 22, 2007

Simple ASP.NET Character Counter

A textbox character counter is a pretty simple piece of functionality, and there's a lot of different ways to apply one to your application. The following method is nice and simple, and can be done using only clientside JavaScript if required, or combined with server side code in order to create a more dynamic effect

Published on December 4, 2006

Simple ASP.NET Character Counter - with Master Page Support

A quick update to my previous character counter article adding some changes for those using it with Master Pages.

Published on February 7th, 2009

Adding Tooltips to Gridview Headers

As the title says, this is a very simple but dynamic way of achieving tooltip text on a header column. It's not overly flash, but it's lightweight and quick to implement.

Published on April 15, 2007

SQL Server Web Report Viewer Issues on Windows 2008 Server/IIS7

A fix for another AXD related issue, this time with the SQL Server Web Report Viewer Control which was being served up via IIS7 on a Windows 2008 server.

Published on June 2, 2007
Updated on April 10, 2008


December, 2014 (1)
November, 2014 (3)
October, 2014 (2)
August, 2014 (3)
July, 2014 (1)
June, 2014 (2)
May, 2014 (4)
April, 2014 (1)
March, 2014 (4)
February, 2014 (3)
January, 2014 (4)
December, 2013 (6)
November, 2013 (2)
October, 2013 (3)
September, 2013 (5)
August, 2013 (5)
July, 2013 (3)
June, 2013 (2)
May, 2013 (3)
April, 2013 (2)
March, 2013 (2)
February, 2013 (3)
January, 2013 (5)
December, 2012 (4)
November, 2012 (4)
October, 2012 (3)
September, 2012 (3)
August, 2012 (4)
July, 2012 (1)
June, 2012 (4)
May, 2012 (2)
April, 2012 (4)
March, 2012 (2)
February, 2012 (4)
January, 2012 (3)
December, 2011 (3)
November, 2011 (8)
October, 2011 (9)
September, 2011 (8)
August, 2011 (5)
July, 2011 (4)
June, 2011 (7)
May, 2011 (5)
April, 2011 (3)
March, 2011 (8)
February, 2011 (4)
January, 2011 (3)
December, 2010 (8)
November, 2010 (5)
October, 2010 (6)
September, 2010 (7)
August, 2010 (11)
July, 2010 (12)
June, 2010 (8)
May, 2010 (8)
April, 2010 (4)
March, 2010 (8)
February, 2010 (6)
January, 2010 (12)
December, 2009 (13)
November, 2009 (11)
October, 2009 (12)
September, 2009 (12)
August, 2009 (2)
July, 2009 (7)
June, 2009 (12)
May, 2009 (9)
April, 2009 (9)
March, 2009 (9)
February, 2009 (8)
January, 2009 (7)
December, 2008 (6)
November, 2008 (7)
October, 2008 (9)
September, 2008 (12)
August, 2008 (9)
July, 2008 (6)
June, 2008 (24)
May, 2008 (13)
April, 2008 (16)
March, 2008 (8)
February, 2008 (10)
January, 2008 (1)
December, 2007 (14)
November, 2007 (11)
October, 2007 (11)
September, 2007 (13)
August, 2007 (11)
July, 2007 (5)
June, 2007 (15)
May, 2007 (11)
April, 2007 (9)
March, 2007 (9)
February, 2007 (10)
January, 2007 (8)
December, 2006 (18)
November, 2006 (11)
October, 2006 (14)
September, 2006 (9)
August, 2006 (10)
July, 2006 (4)
June, 2006 (4)
May, 2006 (6)
April, 2006 (3)
February, 2006 (6)
January, 2006 (10)
September, 2005 (2)
August, 2005 (4)

Post Categories

NZ Trains
Visual Studio
Web Development