Archive for the ‘LightSpeed’ category
Nightly news, 11 May 2012
A strange week at Mindscape HQ as the troops have been primarily focused on working out how to use the motion-activated candy dispenser… and then how to stop it again. But fear not, in between all the wild Kinect-style gesticulations, we have managed to bash out a good crop of features and fixes. Here’s what you’ll find in this week’s nightly builds.
WPF Elements
- Added DataGridColumn.Foreground property
- DataGridColumn.DisplayTemplate is now respected when using DisplayMemberBinding
- DataGridColumn.DisplayMemberBinding now supports StringFormat
- DataGridColumn now respects DisplayNameAttribute when using PropertyName or DisplayMemberBinding
- Added ToolTipBinding property for charting data series
- Scatter charts now support missing data points (when a value is null or NaN)
- You can now set the starting (Minimum) value of a logarithmic axis scale
- Charting performance improvements
- Added built-in nullable type editors to DataGrid and PropertyGrid
Web Workbench
- CoffeeScript compiler now warns if a file contains mixed tabs and spaces
- Fix for Less compiler error when calling colour functions on a named (not hex) colour
- Fix for performance problem when using Pro Power Tools Enhanced Scroll Bar with the ‘show bookmarks and breakpoints’ option
- Fixed a couple of highlighting errors
LightSpeed
- Added MarkPropertyChanged method so that properties can be manually marked as dirty — for example, when changing properties of a mutable user-defined type. Mutable value objects! Forsooth!
WPF Diagrams
- DiagramBitmapRenderer now handles dynamic resources
As usual the free editions of the nightly builds are available right now from the downloads page, and the full editions from the store.
Implementing a layer supertype in the LightSpeed designer
Tagged as LightSpeedLayer supertype. Supertype. Sounds pretty impressive, eh? A technique so puissant it needs not one but two pictures of Plush Ninja, that’s how earth-shakingly puissant it is? The sort of post where by the third paragraph your brain is asploding with all the category theory and a talking frog reveals the secret of monads while a psychedelic spaceman dances the rumba in your b**rd?
Sadly, no. What ‘layer supertype‘ means is simply ‘I want all my business entities to derive from my entity base class instead of directly from Entity<T>.’ (More generally, ‘layer supertype’ means ‘I want all my classes in a certain layer to derive from a particular base class.’ You could also have a layer supertype for your UI layer, where all your Web pages derive from MyWonderfulPageClass instead of directly from Page. But we’re only concerned with the entity layer here.) A layer supertype can be handy if you have a bunch of common services, interfaces or helper methods and want them to be available on all your entities.
To implement a layer supertype in the LightSpeed designer, you can set up a Defaults Policy which specifies a Base Class. The designer will apply this to all new entities you create.
To set up a Defaults Policy with a defaults base class:
- Open the LightSpeed Model Explorer tool window: View > Other Windows > LightSpeed Model.
- Open the Policies folder. If you’ve already got a Defaults Policy, select it.
- Otherwise, right-click the Model node and choose Add New Defaults Policy.
- With the Defaults Policy selected in the explorer, go to the Properties window and locate the Base Class property.
- Choose the desired layer supertype class.
Usually, you’ll create an entity in the designer to serve as your layer supertype. Even if the entity doesn’t define any fields and all the work happens in the partial class, it can still be handy to have the entity there to stop the designer worrying that you might have sneaked something in that could interfere with Update Database. However, if you’re worried about clutter on the diagram, you can hand-code the supertype entity. In this case, you’ll need to tell the designer about it by right-clicking the Model node and choosing Add New External Class Reference. Once you’ve done that, you can choose it in the Defaults Policy Base Class drop-down just as if it were a designer entity.
It’s important to realise that the Defaults Policy controls defaults for entity creation. If you’ve got existing entities that already inherited directly from Entity<T>, the Defaults Policy won’t change their base classes. And it won’t stop lollards and schismatics from changing the base class back to Entity<T> after creating the entity. LightSpeed doesn’t enforce your layer supertype; it just helps you to implement it.
And that’s all there is to it. If you want a default base class, LightSpeed can deliver it. Just be sure to call it a layer supertype at cocktail parties.
So back to the cupboard, Plush Ninja. Your time will come again.
Nightly news, 4 May 2012
LightSpeed
- Updated SQLite provider to 1.0.80
- Fix for cascade delete across a STI hierarchy where the cascade enters the hierarchy in a derived class and we were trying to proceed through an association declared in a sibling class
Web Workbench
- Added JSHint support
- Fixed syntax highlighting for identifiers starting with an underscore
- Fixed incorrect ‘less than or equal to’ operator in Less mixin guards
- Added highlighting support for inline data URLs
- Fixed highlighting when using a comparison expression was used as a function argument
- Fixed highlighting of interpolated variables in URLs
- Fixed highlighting when a function call contained arguments that were spaced lists, and a nonfinal element of such a list was another function call
- Switched Sass compiler from IronRuby to ‘proper’ Ruby
WPF Diagrams
- Fixed a bug with connection point positions in a rotated nested node
- Added sample of removing a groupable node from its parent
WPF Elements
- Fixed a couple of issues when changing DataGrid.ItemsSource from null to a collection instance
- Fixed a hit testing issue with DataGrid cells
- Fixed an issue when a DataGrid contains a mix of star-sizing and absolute-sizing columns
- DataGrid DisplayMemberBinding now supports UpdateSourceTrigger of LostFocus
- Fixed a validation bug in DisplayMemberBinding
- Fixed the TrackingElement sample to support duplicate values
- Fixed an error if a chart XBinding or YBinding was set to a nonexistent property
Silverlight Elements
- First drop of spell checking for the HTML rich text editor
- Ctrl+Left and Ctrl+Right in the HTML editor now respect symbols
- Fixed a bug in ContextMenu where if it was forced closed due to the browser window being resized, it would never open again
All these updates are in the current nightly builds — free editions from the downloads page, full editions from the store.
Nightly news, 27 April 2012
WPF Elements
- Charting performance improvements
- The Chart control now provides a FinishedPlotting event
- Fixed a bug with displaying lots of data in a stacked chart
- Added support for customising the scheduler recurrence dialogs
- ScheduleFormatter now provides an option for customising the default name of newly created schedule items
- Fixed a bug in the TimePicker control
- You can now customise the background of individual cells, rows and columns of a DataGrid
- The DataGrid no longer performs highlighting on mouse-over in RowAndCell mode, except when the mouse is over the row header
- Added validation support to DataGrid DisplayMemberBinding
- If you set the Value directly on a numeric text box, it now constrains the value to the permitted range instead of throwing an exception
LightSpeed
- Fix for error during database update if a design-time assembly could not be found
- Fix for error in SaveChanges under heavy load
- Improvements to grouping support: better support for functions and traversals in grouping keys
- Change to allow non-nullable GUID, DateTime and blob columns to be added to existing SQLite tables
Web Workbench
- Added an option to show generated files when choosing files to merge during minification
NHibernate Designer
- Added support for table per subclass inheritance
- Added support for creating MySQL MEDIUMTEXT and LONGTEXT columns
All these features and fixes are in the current nightly builds — free editions from the Downloads page, full editions from the store.
Nightly news, 20 April 2012
If there’s one thing the weekly updates are about, it’s beards, and it looks like that laser-like focus is finally paying off. But if there’s a second thing, I guess it would have to be keeping customers informed about what’s new and improved in the current nightly builds. Here’s what we’ve been busy on this week.
WPF Elements
- Big charting performance improvements. We’ll have more to say about this in a future post. Ho yes.
- Fixed a chart zooming bug when using non-primitive numeric types
- Fix for bug in .NET 4.0 TextBox when used in a numeric DataGrid column
- Fixed potential crash if axis properties were updated in an unexpected order
Added a Tag property to DataGridColumn - Added a DisplayMemberBinding property to DataGridColumn. This simplifies creating complex bindings for a column without needing to create a custom template.
LightSpeed
- You can now have multiple QueryFilterAttributes on a class, allowing you to build filters compositionally even in the absence of characterising interfaces.
- Table names are no longer Pascalised if you have a design-time naming strategy and set UseClrNamingConventions to false
- Added IOverrideClrConventions extension to IDesignTimeNamingStrategy to override default singularisation behaviour
- Design-time assemblies with partial paths are now checked from the model directory as well as the current directory. This facilitates deployment of design-time assemblies via source control as part of the project.
- Fix for error when performing a cast in LINQ Sum() or other aggregate operators but specifying the column in the Select()
- Fixed projections into DateTime and nullable values when using query objects rather than LINQ
Web Workbench
- Added option to default the “compile” setting to false
- Added ‘stop on first error’ option for when a changed file has a lot of dependencies
- Fixes for non-ANSI characters in Sass
Silverlight Elements
- Added initial tab-indent support to HTML editor. Set CanHandleTabKey to enable this, and TabSize to customise the number of pixels that a tab indents by.
The latest nightlies are always available on the Downloads page (free editions) and in the Store (full editions).
Categories
BrainDump (1)
Community Code (4)
Events (16)
F# (14)
General (53)
Lab Samples (2)
LightSpeed (268)
MegaPack (8)
News (71)
NHibernate Designer (26)
Nightly news (53)
Phone Elements (24)
Products (87)
Projects (5)
Screencast (6)
SharePoint (3)
Silverlight (14)
Silverlight Elements (66)
SimpleDB Management Tools (20)
Visual Studio (9)
VS File Explorer (7)
Web Workbench (39)
WPF (44)
WPF Diagrams (57)
WPF Elements (110)
WPF Property Grid (32)




Posted by Ivan Towlson on 10 May 2012 





