Nightly news, 18 March 2011

We’ve been amused this week to hear a major vendor patting itself on the back for adopting a release strategy that means “we don’t have to wait a year or more for new functionality” in their ORM. And it’s absolutely true. Eleven months is less than a year. Good work, chaps!

Meanwhile, on an entirely unrelated note, here’s what Mindscape has delivered in the last week alone.


  • Added basic auditing support (created by and last modified by columns, plus deleted by for soft deleted entities)
  • When hosting migrations in your application, you can now log the SQL
  • The designer now supports discriminators of enum type
  • Fix for an error in joins where the join key was a nullable GUID and was null
  • Added designer policy to allow overriding of default engine when creating a MySQL table
  • Fix for LINQ error when conditional operator was nested inside a logical expression

WPF Elements

  • Added support for double-clicking a schedule item

Silverlight Elements

  • Stacked bar charts (StackedBarSeries) now support multiple side-by-side stacks

Phone Elements

  • Added a radial gauge control. You asked for it, you got it!
  • Fixed an issue in the Chart control which could occur when data series were added through code rather than XAML

All these are in the current nightly builds. You can get free versions from the downloads page, and full versions from the store.

3 Responses to “Nightly news, 18 March 2011”

  • HI,

    Glad to see you’ve implemented the created by, updated by, and deleted by auditing features. I have the latest nightly builds I’m guessing the designer doesn’t yet support these attributes.

    How do I implement them in the code? what are the field names? Thanks.

  • The field names are CreatedBy, UpdatedBy and DeletedBy. Just specify these as string fields (DeletedBy must be nullable in the database; CreatedBy and UpdatedBy need not be nullable); ideally you should make the fields read-only to prevent anyone messing with them, but that’s not required. Make sure the database columns are long enough to support the longest permitted user name.

    You must also specify how LightSpeed is meant to determine the user name. To do this, set LightSpeedContext.AuditInfoMode. The default is None, which means LightSpeed will not set the XxxBy fields at all (this ensures backward compatibility for existing apps that do manual tracking using fields of these names). The built-in modes are WindowsIdentity, which is suitable for client apps like WinForms or WPF, and HttpContext, which is suitable for Web apps (obviously the Web app must authenticate users e.g. using Forms authentication for this to work). You can also specify Custom, implement IAuditInfoStrategy, and set LightSpeedContext.CustomAuditInfoStrategy to use your own custom means of identifying users. See the XML docs for (a bit) more info.

    I’ll try to push out a blog post on this in the near future, but in the meantime hopefully this will be enough to get you going. As always, please let us know if you run into any bugs or have any feature requests!

  • I’ve posted more info at

  • Leave a Reply


Join our mailer

You should join our newsletter! Sent monthly:

Back to Top