Home » Blog

rounded header

Archive for the ‘Beta’ category

LightSpeed.MetaData, coming in LightSpeed 4

tag icon Tagged as Beta, LightSpeed

LightSpeed MetaData is crazy delicious

I’m pleased to announce that we’ve just shipped our last functional enhancement release for the LightSpeed 4.0 release and it includes the last major feature addition: LightSpeed.MetaData.

Blimmy, what’s this all about then?

Over the years we’ve had consistent requests from our users that they’d like to be able to access the LightSpeed Meta Model. This gives developers the power to access the entity models, field models and other interesting stuff that we keep tucked away. Typically, keeping things tucked away is a good thing as it keeps LightSpeed easy to learn and not too intimidating for the common use cases which is why we’re implementing this in a different assembly.

With LightSpeed 4 we will be shipping a new assembly: Mindscape.LightSpeed.MetaData.dll

From this library developers can use handy extension methods to pull out information about an Entity. This means three things:

  • No need to write messy reflection code to access our internal model
  • No need to worry that we might change something internally and break your code
  • You now have even more ways of doing crazy cool stuff with LightSpeed.

What does the API look like?

Currently the API is nice and simple. We have implemented the MetaData capabilities through Extension Methods so the first thing you’ll need to do is add a reference to Mindscape.LightSpeed.MetaData.dll and then add a using statement:

using Mindscape.LightSpeed.MetaData;

Once that’s done you’ll have an extension method on any entity:

      Car car = new Car();
      EntityInfo entityInfo = car.EntityInfo();

Easy as that. From the EntityInfo object you can access information such as if SoftDelete is enabled, if Versioning is enabled, if CascadeDeletes are enabled and more. The interesting thing is that you can also walk the fields off an entity and inspect their information such as type, if they’re associations, read only status etc.

What would I use this for?

It really depends on your situation if you’d find a use for this capability. For example, in LightSpeed 4 we will be shipping an EntityModelBinder for ASP.NET MVC that is built using the LightSpeed.MetaData library so that we don’t need to rely on ugly reflection. We also have developers who want to do perform generic cloning operations who would find this useful. This is why we’re excited to see what people do with LightSpeed.MetaData – the only limit is on your imagination.

Right, so how do I get my hands on this?

LightSpeed 4 Beta is available to all LightSpeed customers who have active subscriptions right now. You can download it from your store account.

If you’re waiting for LightSpeed 4 to ship before purchasing then don’t – grab a LightSpeed 3.11 license and you’ll get updated LightSpeed 4.0 release on RTM.

WPF Elements 4.0 beta is out now!

WPF Elements 4.0 beta is out!

The key focus for WPF Elements 4.0 was to include a high performance suite of charting controls to add to the existing 30+ controls. We delivered a fantastic range of charting controls for Silverlight in 2010 and had great feedback that developers wanted to see the same offered in WPF Elements.

Chart types included in WPF Elements 4.0

  • Bar
  • Line
  • Area
  • Pie
  • Doughnut
  • Bubble
  • Scatter
  • Spline
  • Spline area
  • Stacked bar
  • Stacked line
  • Stacked area
  • Stacked spline area

Of course new releases aren’t just about new controls – it’s also about improving the existing controls. We’ve added several new features to the scheduler, property grid, outlook bar and drop down edit box. New disabled visual states were added to the Office style themes as well. Bug fixes have been rolled up from the WPF Elements 3.0 nightly builds also.

This is on top of all the existing controls in the suite such as the WPF Property Grid, WPF Scheduler, Coverflow, Multicolumn TreeView and many many more.

Of course with the power of WPF you’re able to customise the look and feel of these charting controls (and in fact any control in WPF Elements) to suit your application’s design aesthetic. WPF Elements includes 5 themes to help you start out with a great look and feel.

Give it a test drive!

Currently all existing WPF Elements customers have access to the beta install bits from their account (You should see “WPF Elements 4.0 – Beta”). Betas are currently only available to customers however we expect to be shipping the final version very soon. If you’re not yet a customer but are working with WPF you should have a look at WPF Elements 3.

Screenshots

Here’s a taste of the charts that are included. They’re from the development team and include examples of custom styles. The screen shots are just a sample of what is possible and obviously don’t show off how fast and interactive the charts can be.

Custom WPF Chart Style with a stacked bar chart
A custom chart style for the stacked bar chart

WPF Bar chart with custom axis labels
Bar chart with custom axis labels

WPF Cylinder Chart
WPF cylinder chart in action

WPF bar chart with data dependant styles
WPF bar chart with data dependant styles – notice how the bars change colour depending on their value

WPF spline chart
WPF spline chart – smooth curves

WPF Stacked Area Chart
WPF stacked area charts

WPF Stacked Spline chart
Of course you can stack spline charts as well.

Logarithmic YAxis WPF chart
Axis scaling is possible, here we have a logarithmic Y axis scale

WPF Doughnut Chart
Doughnut charts – both delicious and useful for showing your data

WPF Pie Chart with partial display
The classic Pie Chart for WPF. Notice that partial pie rendering is possible, in this case one segment is not displayed.

Horizontal Stacked Bar Chart
Data does not need to be displayed vertically. Many different options exist in all charts for controlling the display of the chart data.

We’d love your feedback

As with everything we do, we love to hear our users feedback. Either post a comment below or fire something into our WPF Elements forum.

Introducing Visual Tools for SharePoint

tag icon Tagged as Beta, Products, SharePoint

With Office 2010 and SharePoint 2010 being released today to MSDN subscribers it’s time to take the wraps off our latest creation: Visual Tools for SharePoint. Stunning name, very Microsoft inspired! ;-)

Visual Studio 2010 Visual Tools for Sharepoint

Get Visual Tools for Sharepoint FREE

The first 50 people to create accounts with Mindscape (click here to register) and then email their username and email address to jd@mindscape.co.nz will get a free license to Visual Tools for SharePoint. I’ll update this post when the give aways are complete, but be quick! UPDATE: All the free copies have been taken sorry!

What would you say…. you do?

Visual Tools for SharePoint is our first SharePoint related product and one of the exciting new features in SharePoint 2010 is “LINQ to SharePoint”. As many of you will know, our LightSpeed product has a fantastic LINQ provider and design surface for databases, so we are interested in all things LINQ. Microsoft have not made a visual design surface in Visual Studio for modeling things in SharePoint that you wish to query – you need to use an arcane command line tool. We love our Visual Studio integration and decided we could do better!

Here’s a screenshot (click to see it larger):

Visual Studio 2010 showing Visual Tools for SharePoint 2010

So you can connect to SharePoint from the VS 2010 Server Explorer, drag and drop your lists and have us create LINQ to SharePoint contexts and classes for you. No more mucking around with command lines and XML configuration files! This helps developers save time, makes generating your objects to query much easier and saves you having to leave Visual Studio 2010. Plus you can quickly update your models from the SharePoint site so as to see what’s new or changed.

What do you think?

With any new product we need end user feedback – that’s why we’re giving away copies to the first 50 users. You’ll get immediate access to the beta and a free copy of the toolkit when the retail version ships. (You’ll need Visual Studio 2010 Professional or above, and SharePoint 2010, to use the product.)

We want to evolve all of our products based on the feedback we receive and make all the changes available to users through our much loved nightly build process. Please let us know what you think in the comments on this post or in our forums :-)

So what are you waiting for? Sign up and email us your username and email address now!

LightSpeed 3.0 Beta Release

I’m pleased to announce the immediate availability of LightSpeed 3.0 Beta 1 to existing LightSpeed customers.

Huge querying enhancements

LightSpeed has undergone a massive overhaul of its internal querying capabilities. With 2.0 we included a LINQ provider that had support for most of the capabilities included in the core LightSpeed querying API. With 3.0 we’ve beefed up both the core querying capabilities and the LINQ API to support grouping, joining, and other such goodness.

Schema migrations support

LightSpeed now has its own Migrations framework! Chances are that if you’re working with a database then you’re having to manage your change scripts so we’ve tried to make this process more manageable.

And it just wouldn’t be a Mindscape product if it didn’t integrate into Visual Studio!

Create LightSpeed Migration

The reason for the integration is because of the great schema round tripping features in the LightSpeed Designer. If you’re making changes to your model then you’ll want to be capturing those changes into a migration to run on various other machines such as Test and Production machines. All you need to do is work as you normally would with the designer and when you’re ready select “Create Migration” from the Migrations menu and we’ll pick up all your changes and give you a choice of what schema changes you’d like to include in the migration.

Create new migration from code changes dialog

When it comes time to deploy you can use the lsmigrate.exe utility to run your migrations when Visual Studio is not available. Alternatively, when you elect to run the migrations you can select the option to generate SQL instead.

Visual Studio Migrations runner dialog

Oh, and the migrations framework works with SQL Server, Oracle, MySQL, PostgreSQL, SQLite, SQL Server CE, VistaDB and DB2! Moving between database engines just got a lot easier!

Designer enhancements

We’ve made a load of improvements and fixes to the LightSpeed designer. In addition to handy ease-of-use features such as making it easier to zoom, importing common attribute namespaces, and copying a picture of your model for use in a Word or PowerPoint document, some of the major features are:

  • Refactoring. You can perform a solution-wide rename of an entity or property, with the option to retain the existing database mapping. You can also have the designer create partial classes and convert generated property implementations to manual ones ready for customisation.
  • XML documentation support for entities, properties and associations.
  • Filtering the designer view. You can choose to view just a particular entity and its associated entities, or a particular subdomain, inheritance hierarchy or aggregate. This reduces the clutter on very large models and makes it easy to locate a particular entity with just a few keystrokes.

We’ve also rounded out support for the full range of LightSpeed modelling capabilities including designer support for through associations and database synchronisation support for inheritance hierarchies, plus a variety of smaller features that we’ll talk about in more detail in a later post.

Better support for legacy databases

Composite key lovers rejoice! LightSpeed now includes support for composite keys across the board – from the designer through to the core framework. This was one of the last remaining constraints that prevented some developers from using LightSpeed with a legacy database they couldn’t alter.

For environments where database access is restricted to stored procedures, LightSpeed also now supports CRUD procedures so you can specify how your entities are loaded and saved using stored procedures.

Testing enhancements

We’ve taken feedback on the testability of LightSpeed models and based improvements in 3.0 off that feedback.

Creating entities for testing has been more frustrating than it should be due to the restrictions on assigning the Id property. To resolve this LightSpeed now provides an EntityFactory class as part of the testing namespace.

Here’s an example of how to create an entity of a given state with a provided Id:

var entity1 = EntityFactory.Create(EntityState.Deleted, 15);
var entity2 = EntityFactory.Create(EntityState.Default, 16);
var entity3 = EntityFactory.Create(EntityState.Modified, 17);
var entity4 = EntityFactory.Create(EntityState.New, 18);

Keep in mind that this is entirely for testing purposes and you should not use this code in your actual solution.

To help use these entities in a testing scenario we also now provide a TestUnitOfWork implementation. This is like mocking out a unit of work to return specified results when a query is run and is especially helpful if you’re not working with the Repository pattern. Each query method (e.g. Find()) has the ability to have the result set for it and therefore allows for testing completely in memory.

We will be pushing out blog posts on this soon + some new screen casts.

Granular change tracking

LightSpeed users have been asking for the ability to inspect that changes made to entities for some time and now they can. Entities now contain a public ChangeTracker. This change tracker can be used to examine what fields have been changed, what the original value was and what the new value is.

Change tracking is disabled by default due to the extra memory weight it can add to each entity however you can easily opt in an entity to be tracked:

  customer.ChangeTracker.TrackingMode = ChangeTrackingMode.ChangesOnly;
 
  foreach(var change in customer.Changes)
  {
    Console.WriteLine("Property: {0}", change.Name);
    Console.WriteLine("Original value: {0}", change.OriginalValue);
    Console.WriteLine("Modified value: {0}", change.ModifiedValue);
  }

Database provider improvements

Support for SQL Server 2008: LightSpeed now provides first class support for SQL Server 2008 allowing users to leverage new data types such as SqlGeography. Previously developers could re-use the SQL2005 provider when targetting a SQL 2008 database however this didn’t allow for the use of user defined types such as the spatial types.

Support for IBM DB2: Complete designer and core support for DB2 comes out of the box with 3.0.

Support for VistaDB 4.0: VistaDB 4.0 is fresh out of the oven and LightSpeed 3.0 supports this new version along with VistaDB 3.x. This includes our rich designer integration for working with your VistaDB models.

We’ve also made numerous improvements to the other providers to ensure we’re shipping with the latest provider assemblies.

Much much more

This is an absolutely huge release and this blog post could go on for many more pages listing all the enhancements. Over the coming weeks we will be posting more details about all the changes that have been made to help you develop faster and improve the robustness of your solutions.

Where can I get it?

LightSpeed 3 Beta 1 is available to existing customers through the store. Take it for a spin and let us know what you find – we appreciate all the feedback you have!

Data Products Visual Controls Community Store
LightSpeed ORM
NHibernate Designer
SimpleDB Tools
SharePoint Tools
WPF Elements
WPF Diagrams
Silverlight Elements
Forums
Blog
Register
Login
Subscribe to newsletter
Buy Now
My Account
Volume Discounts
Purchase Orders
Contact Us