Monday, March 02, 2009
« Parallel and Concurrency Futures for Mic... | Main | Working with WPF or Silverlight? You nee... »

I have put a new 3.6.2 release online for Windows and Silverlight. I am considering this a beta release, and am now moving toward final release of 3.6.2.

Version 3.6.2 contains important bug fixes, and several enhancements to existing features based on feedback from people working with 3.6.1 so far. Highlights of the enhancements include:

  • For both Windows and Silverlight
    • New methods on the ObjectFactory base class to better enable creation of a DAL object
    • Better support for lazy loaded fields, where an exception is thrown if the field is mis-used accidentally (thus reducing bugs)
    • ErrorDialog control for WPF and Silverlight to enable XAML-only handling of exceptions from CslaDataProvider
    • CslaDataProvider now has a Saved event to simplify some UI scenarios
    • RegisterProperty() now accepts a lambda expression to identify the property name, allowing the compiler to check the name, and avoiding the use of the string literal
    • MobileDictionary type, so you can create a dictionary that serializes between Silverlight and .NET
  • For Silverlight only
    • Better type name resolution, so you can now specify a type by "Namespace.Class, Assembly" without supplying the generic "Version=..." text
    • New InventoryDemo sample project (C# only right now - it is a work in progress)
    • Code snippets for async factory and data access methods

At this point 3.6.2 is feature-complete and is in test mode. Only bug fixes will be added at this point, with the plan being to release in the next couple weeks.

Tuesday, March 03, 2009 9:26:10 AM (Central Standard Time, UTC-06:00)
Do you have an example of this?

RegisterProperty() now accepts a lambda expression to identify the property name, allowing the compiler to check the name, and avoiding the use of the string literal
Tuesday, March 03, 2009 9:39:59 AM (Central Standard Time, UTC-06:00)
ProjectTracker (in C# at least) now uses this syntax. Some other samples do too.

private static PropertyInfo<string> NameProperty =
RegisterProperty<string>(c => c.Name);

Private Shared NameProperty As PropertyInfo(Of String) = _
RegisterProperty(Of String)(Function(c) c.Name)
Tuesday, March 03, 2009 10:25:11 AM (Central Standard Time, UTC-06:00)
Thanks, This really cleans up the code quite a bit :).
Friday, March 06, 2009 7:32:51 AM (Central Standard Time, UTC-06:00)
Hello,

I think I found a bug. You can't set the RelationshipType if you use the new lambda expressions constructor:

private static PropertyInfo<string> NameProperty =
RegisterProperty<string>(c => c.Name);

The only two method definitions that include it are:

public PropertyInfo(string name, string friendlyName, T defaultValue, RelationshipTypes relationship)
public PropertyInfo(string name, string friendlyName, RelationshipTypes relationship)


Thanks
-Blake Niemyjski

Comments are closed.