.NET RIA Services, DataForm control etc.

.NET RIA Services, DataForm control etc.

Old forum URL: forums.lhotka.net/forums/t/6638.aspx


davido posted on Thursday, March 19, 2009

Has anyone undertaken to do a kind of gap analysis between the new features of SL3 and CSLALight? Probably a bit early to be asking but it looks like there may be some overlap??

Justin replied on Thursday, March 19, 2009

There does seem to be some overlap. They are doing some sort of build process that takes your BO in full .net and makes a SL proxy or version of it if its marked with an attribute This is basically their version of linked file solution that CSLA light uses, but not sure at this point what that would mean for the BL that is in the BO.

BTW the off line, out of browser mode for a SL app is very nice, I think this will be a big deal as MS basically just provided a way to write a cross platform app, that looks and feels like a real app, but the sandbox limitations may still be an issue for a lot of scenarios.

RockfordLhotka replied on Thursday, March 19, 2009

There are some direct similarities, in that they are projecting some elements of the "real" business object from the server into the client. They don't quite go as far as CSLA, where the actual business object is on client and server, but it is close.

On the other hand, they own Visual Studio, and so their integration will certainly be stronger - they do a lot of "magic" in VS and get some pretty cool results. This may irritate some people, who dislike too much magic in their development - it will be interesting to watch feedback over the next few months.

From my perspective, I think it is very interesting, and is a validation of the mobile object ideas I've been pushing for 12+ years. Now Microsoft can catch some of the flak I've dealt with, and perhaps their support of the concept will help generate more buy-in overall :)

From a selfish perspective, I note that RIA Services are "after SL 3" and so are maybe two years away from reality. By that point CSLA .NET for Silverlight 4.x or higher will exist, so in a very real sense they are playing catch-up to CSLA.

And they'll only do SL, while CSLA objects support SL, WPF, Web Forms, ASP.NET MVC, Windows Forms, Workflow, WCF, asmx and console interfaces (maybe more) - all against the same set of business logic.

And they'll probably limit their data access story to one of the Microsoft technologies. I think it unlikely they'll support all the Microsoft data options, much less non-Microsoft ones. CSLA is intentionally agnostic in this regard, and works as well with raw ADO.NET as it does with EF, and I think that flexibility is beneficial.

Then again, Microsoft has amazing resources at its disposal, and so RIA Services could expand to encompass a broader set of CSLA-like concepts if they chose to do that - time will tell.

In the meantime, some of the fallout from RIA Services is ending up in SL 3 - including support for navigation, deep linking and much improved data binding. This means that some of the features we've built to make SL 2 useful can be removed in a future version of CSLA, because they'd be redundant with core SL 3 features. That makes me happy, as it means less stuff to support over time, and that allows me to work on other cool stuff ;)

James Thomas replied on Monday, March 23, 2009

No chance they can't just adopt CSLA as the way of doing it in VS? ;-)

Thinking about the future of CSLA for Silverlight, one useful addition would be support for isolated storage - the ability to take an application offline, do work and then reconnect and upload your changes at a later date. This would work nicely alongside Silverlight 3's 'out of browser' capabilities.

http://silverlight.net/getstarted/silverlight3/default.aspx

RockfordLhotka replied on Monday, March 23, 2009

CSLA .NET for Silverlight supports isolated storage today. If you use the data portal in local mode, your data access methods run on the client workstation, and so can access data via isolated storage or remote service calls or both.

I'm not real interested in writing my own data synchronization engine - which is what is really necessary for good occassionally connected/disconnected application scenarios. I'm personally hoping that SQL CE ends up working on SL at some point, because (presumably) that'd mean you could use Sync Services to sync the client-side and server-side databases.

Today your only real option is to use XML files, or make up your own file format for isolated storage - neither of which is really ideal. And you have to manage your own synchronization with the central database, and that's not fun either.

Just because SL3 will go offline doesn't mean they'll directly address the data sync issue - and so it is beholden on all of us, as users of the technology, to let Microsoft know how important it is that they have a good story for offline data sync in SL3.

brada replied on Monday, March 23, 2009

I just wanted to echo what Rocky says above.. .NET RIA Services is just the latest entry in a long line of products that seek to make n-tier development easier. I have personally been a big fan of CSLA.NET for years and I think it does an amazingly good job at addressing this space. We had Rocky out to campus more than a year ago to talk about what would later become .NET RIA Services. He provided very good feedback then and he still does.
.NET RIA Services is still very new (this is our first public preview release) while CSLA.NET is built on 10+ years of real world experience. If someone is looking at building a solution today, I’d highly recommend evaluating CSLA.NET. It is going to take .NET RIA Services several releases to catch up to where CSLA.NET is today… even then each model has a slightly different “personality” so you may find one works better for your needs than another.

We continue to work hard to make sure that all the work we do in Silverlight and .NET generally works well with CSLA.NET and other related technologies.

Happy coding!

..brad
Brad Abrams
Product Unit Manager for .NET RIA Services
Microsoft
http://blogs.msdn.com/brada


Copyright (c) Marimer LLC