Planning LightSpeed 3.0 – what do you want?

With LightSpeed 2.2 out the door it’s time to start planning our next version.

We receive a heap of feedback on enhancements and improvements that people would like to see throughout the life of LightSpeed – every single request gets discussed and put on a feature backlog and then prioritised for a future release. We already have a big list of things that we want to achieve with LightSpeed 3.0 but now is the best time to let us know what major features you would like to see.

So – post a comment telling us what you want to see in the next generation of LightSpeed. No feature too small or too big.

In the near future we’ll publish the planned roadmap for the journey to LightSpeed 3.0.

Tagged as LightSpeed, Products

43 Responses to “Planning LightSpeed 3.0 – what do you want?”

  • One thing that has just occured to me, that would be useful in the model designer is some sort of ‘go to’ or ‘find’ option. i.e. You would enter in the name of an entity (or maybe select from a list) and the model would scroll so that entity was in view.
    A zoom in/out feature on the model would also be handy.
    Not sure how difficult it would be though !

  • Thanks for your comment Paul. Good idea on the find capability – thanks.

    For zooming, hold down CTRL and roll the mouse wheel :-)

    – JD

  • Correct me if I’m wrong, but the last time I looked the LINQ support was only partial. So if I’m correct, a fully fledged LINQ implementation for LightSpeed would be great.

    Thanks

  • +1 for better LINQ support

  • Carel & James – That is planned, thanks for the feedback. I deliberately did not want to lead the feedback from people by listing out what we already have planned. We’re hearing you loud and clear :-)

    – JD

  • Stored procedures are supported for SQL Server 2005, SQL Server 2008, Oracle, MySQL and, via functions, PostgreSQL.
    Are stored procedures supported in Firebird?

    1 to 1 relationship, eager load
    There is no option for an eager load when a child item has a 1 to 1 relationship with a parent. We have split our 1 large table into 2 logical entities, want to use an aggregate for optional eager loading, it does not with with a 1 to 1 relationship. could you please change / add this functionality?

  • Another wish…
    I would like to use a binary clone to clone large object tree’s (there is a great performance increase over hand coded / XML cloning.
    Then add that new cloned item (with children) to the Unitofwork. Problem is that the ID’s are duplicate, ad the statuses are “modified” and not “new”. I would like a “reset” option so that the ID’s get re-generated, and this entity gets recognized as a new entity (with child items) in the collection. This would help us tremendously.

  • - More flexible lsgen.exe with xml config file…
    – Expression.SQL
    – More best practices, examples and documentation
    – “Tests”

  • Maybe this could be added in 2.x but my request will be: Calculations inside LINQ query (http://www.mindscape.co.nz/forums/Thread.aspx?PostID=3149)

  • +1 for search in designer. Similar to property grid search where items disappear if they dont match the search would be awesome and
    a Contains like search not a StartsWith

    Also INotifyCollectionChanged or IBindingList on ThroughAssociations. Lazy Load of ThroughAssociations still doesnt work.

    And a way to Detach items from a UnitofWork and from the LightSpeedContext

    A way to Purge SoftDeleted Items.

    Associations on unique keys

    Associations on multi column unique keys

    If you are asking for us to reach the skies in requests – a peer to peer change notification of objects so all applications can update their local cache from the database (or update peer to peer if you want to really reach).

    Perhaps some of these solutions exist but I am not aware of them yet.

  • Another nice to have in the designer would be to be able to right click on an object and get a menu option to go to the generated code and vice versa.

  • 1. Proper designer integration with Firebird please :)
    2. When creating a SQLite Database from the designer, all relations are lost (ie: columns NOT created in tables), and I have to add them manually. I would love this to be addressed.

  • Support for mono would be great!

  • The ability to traverse through the entity’s properties in a foreach would be great. with a position, or a name to get to the property

  • Additional inheritance mapping schemes – specifically the “map each concrete class to its own table” scheme.

  • Here is my short list:

    1. Support for only including modified fields in update statements. This is really important when the entity contains BLOB fields.

    3. A way to determine what the original (persisted) value of a modified column is. (may be related to above request)

    2. More complete LINQ support.

    4. Better task oriented help.

  • Thanks for the feedback, keep it coming :-)

    @Csa Lsgen enhancements are planned and as you’ve seen, we’re starting to add them already. You’re certainly the heaviest user of lsgen that I’m aware of! :-)

    @Webio We’ll certainly be looking at this feature request since we know it would be valuable. As Ivan stated, there would be significant infrastructural changes needed and therefore it would have to be in the 3.0 version.

    @MiddleTommy Thanks for the great ideas. Certainly reaching for the sky is a good idea at the moment.

    @Paul Interesting idea about seeing the generated code. I’ve discussed this with Ivan and the challenge there is likely just getting the Visual Studio API to play nice (which may, in turn, make it impossible).

    @Anthony Designer support is constantly improving for everything and I know Ivan has some plans to improve Firebird support. Mono support is currently actively being worked on. Your other requests will be taken into consideration as well – thanks :-)

    @Carel We’ll investigate this approach.

    @Neal I’ve done some research work on building partial updates and it doesn’t present too much of an issue (in fact, it was working in my test branch). We’re just working out how this ties in with concurrency concerns. One benefit of updating everything is that you can always be sure your data is in a valid state when taking into account entity validation. Coming up with a nice way to deal with this is really the only issue. We’ll also look at the other three points you raise (LINQ improvements will certainly be in there).

  • 1. Rich Code generation support for SOA bassed scenarios. This needs to publish POCOs and allow for default mapping back to entities. I know 2.2 just added this but we need continued improvements here.

    2. REST based support for models via Astoria(ADO.Net data services) or an out of the box REST exposure layer from LS models.

  • Scott, I’d be interested to hear any suggestions you have for how we can better support SOA scenarios. One thing I’m thinking about is a more contract-based approach (e.g. freezing and versioning of the DTO interface, data mapping between entities and non-current DTOs, etc.): is that the sort of thing you’re thinking of?

    REST support (probably via Astoria rather than our own layer) is on the radar though I have to emphasise that we have not yet made any final decisions or commitments. Thanks for the feedback!

  • Every OR mapper out there seems to ignore the need for SOA contracts and slaps it on as an afterthought. What you get is a mess of exposed entities that require .Net on the client and server or look like someone puked in the WSDL. There is a reasonable impedence mismatch between OR mappers and the concept of SOA messaging. I believe the best way to close this gap is with the correct runtime hooks coupled with a solid code generation model that supports customization scenarios well.

    I think your lightweight entity model is good and if it is augmented with solid code generation with support for good SOA patterns we would have something great.

    REST with Astoria would be a huge plus and if you are adding full LINQ support you are pretty close. Just make sure you test well because there are some oddities with Astoria that can be annoying. You will note this if you try to get a LTS model working in Astoria.

  • microsoft access support ?

  • 1. Access support

  • Designer to support Many to Many modeling

  • Validation would it be possible to extend the validation on the entity so that you can call Validate(PropertyName) and then get the error message back just for that property?

  • [...] Mindscape is asking for enhancement requests for Lightspeed. [...]

  • Database schema & data migrations would be great. Better linq support is always a plus.

  • How about the ability for LightSpeed to return objects changed in local cache that have not be updated or inserted to the database yet but still match the query.

    example
    internally
    query the database
    query the local cache with the same query
    add those from the local query not in the db query to the results

    very easy if your cache is in a SQL type cache other wise you would have to translate your query into and object query (like linq).

  • Hi,
    I’m hardly thinking about buying your product because it looks for me like this is the best ORM Mapper.

    But im missing a feature and im not sure if this is possible:

    For example, with the Telerik Open Access ORM, it is possible to make DataSources in design modus.
    Is it possible for you to add such a feature?

    regrads
    David

  • Hello David,

    You can use LightSpeed entities as ASP.NET object data sources — we have customers doing that at the moment I believe. We have looked at building a custom LightSpeed data source but are not sure of the demand.

    Could you clarify what you are looking for in respect of “making DataSources in design mode”? Then we can let you know whether it’s already possible, and we can put it on the plan if not. Thanks!

  • Hey Ivan,
    I just read the article at the Documentation how to work with DynamicData and Lightspeed (http://www.mindscape.co.nz/help/ls20/Index.aspx).
    To make this even more simple, it would be nice to see a Toolbox item just like the LinqDataSource which you can Drag & Drop on the Website.

    David

  • Thanks for the clarification David. We implemented the LightSpeedLinqDataSource control for dynamic data, but there’s probably no reason it couldn’t be used as a data source control in other ASP.NET applications. We’ll look into this, but in the meantime you might want to just add it to the Toolbox manually. I guess one issue is that we don’t currently have a nice configuration UI for it — we’ll add this to the 3.0 wishlist. Thanks again!

  • - AuditLog

  • Db2 Support

  • Multi-valued attribute support for SimpleDB would be great.

  • bool Transient (Temporary) property on Entity base class preventing creation or update to database.

  • The possibility to enable/disable Triggers.
    (Im missing this in linq2sql/linqtoentities)

  • ability to add “using” or “import” statements on top of LS generated code (Needed for custom attributes in different library)

  • MiddleTommy – custom using/imports statements will be in the 14 May nightly build, available from about 1430 GMT. Open the “LightSpeed Model” window (View > Other Windows > LightSpeed Model), right-click the model icon and choose Add Imported Namespace. Hope this helps, and please let us know in the forums if you run into any problems.

  • When you right click on an entity, property, association, etc… you have a Goto Code option that takes you to your selection in the code file

  • Could you say a bit more about the use case for “Go to Code”? Although it’s useful to be able to look at the generated code, we don’t want to put up big signposts inviting people to open the generated code file, because it tempts them to edit it, which inevitably leads to disappointment when their changes get overwritten. (A shortcut for opening/creating a partial class for an entity might be handy though.)

  • well It would be usefull to go to the generated code when you are changing an item from Generated to FieldOnly. Then you could copy the code and paste it somewhere else as a starting point. Maybe a “Make Non-Generated” or “Make Editable” would be a better option that would “move” the generated code to the non-generated partial class and set its generated option to Field-Only

    going to the non-generated partial class would be awesome too.

  • Since LightSpeed is advancing to .NET 3.5 you could and a private notification of property changing. In model designer have an option for Notification (None|Both|Before|After). Then depending on the selection have partial methods in the generated class that are called before a property changes (with cancel support would be great), after a property changes or both. This may eliminate the need for the Generated option. But both would be great.

  • I would love to see update/save of single entities.

    like
    unitofwork.Update(MyEntity);

    where all changes are saved to the database from an entity and its relations.

    And even a
    unitofwork.PullUpdate(MyEntity);

    where all changes in the database to an entity and its relations are applied to local object

    Thanks for a great product

  • Leave a Reply

Archives

Join our mailer

You should join our newsletter! Sent monthly:

Back to Top