This thread looks to be a little on the old side and therefore may no longer be relevant. Please see if there is a newer thread on the subject and ensure you're using the most recent build of any software if your question regards a particular product.
This thread has been locked and is no longer accepting new posts, if you have a question regarding this topic please email us at support@mindscape.co.nz
|
Hello, Simple question: does LightSpeed play nicely with Breeze.js? Googling is of no help, and neither are Breeze nor LightSpeed forums. Breeze.js is becoming hotter and hotter now with all the SPA samples using it, so it would be nice to know whether LightSpeed has something to offer here. Best regards, Roman |
|
|
Nothing? Is there anyone from MindScape here? I have a feeling that either LightSpeed is not a high priority product for MindScape anymore, or MindScape gave up on LightSpeed because of EF... :( Sad if it is so. |
|
|
Hi, We don't do anything specific to support Breeze.js (personally I'd just heard about it from this post). Sorry for the delay. LightSpeed is still very much a priority and sales keep growing (helps that EF is not a good product ;-). The delay is entirely because Jeremy who leads the LightSpeed product, and usually manages this forum, has been unwell for a couple of days. Jeremy may know more about Breeze.js, but I know we've not talked about it internally at all so I wouldn't think we're doing anything specific to help Breeze.js developers. Perhaps you could detail some of the issues that LightSpeed would have at present with working with Breeze? I'm personally not sure how the back end ORM would 'support' a client side JS framework -- but I'd love to know what you're thinking :-) Kind regards, John-Daniel Trask |
|
|
Hi, I agree that LightSpeed is much better than EF (this is why we are using LightSpeed and not EF). The only problem is that EF is getting a lot of attention because it is a) made by Microsoft itself, and b) it is open sourced now. So, many 3rd party tools/libraries/frameworks are supporting EF out of the box, while LightSpeed is in the shadow. Regarding your question about Breeze. It is gaining popularity and gets a lot of attention on the web, especially if we talk about SPAs (Single Page Application) - practically all real-life SPA templates use Breeze. It provides a lot of data services, including client data caching, change tracking, rich LINQ-like queries, navigation between entities, DTO transformations, etc. There is much of info at http://www.breezejs.com/, so I will not repeat it here. To provide all these services, server-side involvement is needed, and Breeze supports EF out of the box by means of adding a single simple Web API controller acting like a data gateway. This controller is simple because Breeze server components do a lot of work behind the scenes. It is possible to create other implementations of the same thing using something else than EF to access data, but the amount and complexity of work is likely nontrivial. Now, it would be really nice if MindScape would do something about Breeze, as Breeze is clearly a product interesting for your target audience (.NET developers developing for web). Also, LightSpeed would get one more point in its favor when doing comparison between EF and LightSpeed. Breeze team seems to be interested in getting more technologies supported too, but I guess they would need to get some help with that (e.g. see http://www.breezejs.com/documentation/faq and http://www.breezejs.com/blog/handcuffed-microsoft). Best regards, |
|
|
Thanks for the information Roman. I'm not overly worried about the perception that LightSpeed is 'in the shadows' - sales grow every single month and have been doing so for more than 5 years. Open sourcing of EF is perceived to many as a step backwards, in fact many companies won't touch things associated with open source. Further to that, our own testing shows EF is performing worse in recent versions than it did previously. Certainly our brand isn't as big as Microsoft's. There's equally a huge number of developers who won't look outside the Microsoft toolbox until something is wrong -- typically a system that's reached production and then falls over. That's when they're forced to look elsewhere for something that performs better and they discover the magic that is LightSpeed. It's rare to have a customer who starts using LightSpeed ever go back to EF which is nice for us :-) We'll continue selling more and more licenses to more and more unhappy EF users and we'll continue evolving the product like we always do. The best bet is to add items to our feature request page so that interested users can vote up features they'd like to see LightSpeed support. You can find that here: http://www.mindscapehq.com/thinktank/product/9 3rd party integration's do add value but we do need to ensure there's a real audience there for that 3rd party product. There's no value in one or two customers expecting us to support a 3rd party framework as it evolves -- it's just not economic. I'm not saying that's the case here but as you can appreciate, we need to ensure we're betting on winners. We'll investigate Breeze.js and I'd encourage you to post on the feature request forum to gauge interest in supporting it further. I really appreciate you bringing Breeze to my attention -- certainly we're living in a time where JS frameworks are in full bloom :-) Kind regards, John-Daniel Trask |
|
|
I understand your position. Posted suggestion both at http://www.mindscapehq.com/thinktank/suggestion/968196 and https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions/suggestions/4202095-support-mindscape-lightspeed-orm . Also created a question at StackOverflow: http://stackoverflow.com/questions/17738837/mindscape-lightspeed-combined-with-breeze-breezejs-breeze-js-is-it-possible . Hope someone will come up with some ideas/solutions. |
|
|
Thanks! I've been reading up on it. I can see that the Breeze team is equally trying to show it's not just and EF product. I've arranged a tweet from the @MindscapeHQ twitter account to see if we get much more interest in support. If there's a mass of people keen, then we'll certainly investigate it. John-Daniel Trask |
|
|
Great! I have spent now quite much time selecting technologies for our new product, and trust me - Breeze is really in its own league here, as is LightSpeed. ;) So it would be really nice to see these two working together either out of the box or in form of sample / community project / extension module / whatsoever, especially if (I really hope so) it means not too much work from your side. |
|
|
I have used Breeze in a previous Single Page Application (SPA) project and intend to use it in a new project we are just starting. I am a long time user and fan of Entity Framework working with SQL Server, especially code first. We have to support multiple databases in the new project, particularly DB2 and I am currently evaluating Lightspeed. So far it is great! The huge advantage of Breeze is that it supplies the client javascript with the model in the form of metadata so that the model does not need to be recreated in javascript. Then there are all the other things Breeze can do. So it looks like I need a solution to marry Lightspeed and Breeze and anything you guys can do would be great. |
|
|
I'm also looking for a way to link our LightSpeed data model to BreezeJS. So far it looks like the only option would be some kind of T4 code generation template (e.g. http://www.mindscapehq.com/documentation/lightspeed/Working-with-Models-in-the-Visual-Designer/Customising-the-Generated-Code) or manually defining the BreezeJS Entity model (not going to happen for 100s of Entities!) At this stage, I'm not even sure if we want a one-to-one mapping from our LightSpeed Model to our ASP.NET Web API and BreezeJS layers so some sort of custom DTO template generation is probably our only option anyway. That said, out of the box support for BreezeJS could be very useful for smaller projects and useful as a prototyping device to help us validate the client-side aspect of the new website/SPA we're building. The BreezeJS docs ( http://www.breezejs.com/documentation/ef-design-tool ) suggest that we can automatically build metadata by using Entity Framework data annotations even if we don't use EF at Runtime. However, they seem to peter out into a useless reference to "other docs elsewhere" without actually explaining how to do it. Am I right in assuming this means that adding some kind of .NET EF Attributes to our LightSpeed generated model could provide automatic support for their metadata generator? Is adding these EF attributes to the LightSpeed model an option? Has anyone made any progress with LightSpeed and BreezeJS recently? Any hints, advice or sample code to share? Thanks, Chris |
|
|
Hey Chris, we are also investigating how to use Breeze with lightspeed. Did you make any progress? Thanks, David |
|
|
Yes, probably! We’ve got a VS2013 project to integrate Breeze and LightSpeed with the help of an Entity Framework metadata representation of our data model. We’ve only just finished the main implementation of it today and as with everything we do at our small charity, we’re cutting as many corners as possible just to get something that works as quickly as possible so I suspect there are a few issues waiting just around the corner. That said, I think that the project and the corresponding T4 templates that convert a LightSpeed model to an Entity Framework model could be at least a useful starting point for others interested in going down this route so I’m hoping to be able to release this code as open source soon. Everyone in the organisation is on board with the idea of releasing the code but we just need to double check a few legal questions and determine the appropriate license to use since this will be the first time we’ve released our work in this way. Hopefully I’ll have some more news on this in a couple of weeks. A quick spoiler though: It is very difficult to represent a LightSpeed model in Entity Framework; some features are impossible to replicate, for us they are edge cases that we can hack around with various degrees of ugly in client or server code but for other models it could be a bigger problem. Despite Breeze’s accurate claim that Entity Framework is not the only data framework that you can use with it, any other ORM is definitely a second class citizen unless the modelling patterns and conventions very closely align to those in Entity Framework. I’ll post back soon when I have more news and at least some code snippets to share, hopefully the entire project. Chris |
|
|
Thanks Chris! I appreciate the response. We have actually made some progress faking the use of EF per instructions provided by Breeze (we went the non DTO route): http://www.breezejs.com/documentation/ef-design-tool Once we got past this tough to diagnose error we were able to generated metadata. We aren't far enough along with breeze yet to say that the metadata works, so I will try to post back when we do. I did want to post something on the error we encountered that was tough to get by (because the exception was misleading).
The error above was caused by EF encountering the Mindscape.LightSpeed.Validation class and as you can see throwing up because it has no key defined. If you import that class and us the ignore statement you will get by the issue:
We also had to download a lot of nuget packages that aren't listed on the breeze website. I have attached a screen shot of our references (I am not sure if all are necessary, but I don't have the time to tease out which ones I absolutly need). |
|
|
Another find: While attempting to evaluate angular with breeze using lightspeed we ran into an issue where a get all users query for only 120 users was taking around 32 seconds. We eventually figured out that it was the ASP.NET degubber that was causing the SPA to be slow. Make sure you turn that debugger off before you run your web project. right click on web project select properties select web uncheck ASP.NET in the debuggers section |
|