What's best technology for CSLA after Silverlight

What's best technology for CSLA after Silverlight

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

richard@rgsoft.co.uk posted on Tuesday, May 19, 2015

I am after advice on 'life after Silverlight' (2021) and the preparation beforehand.



Sole developer (currently with 1 main commercial application (50 clients) (1 one other), using csla 4.5.3 and Silverlight, MS SQL)


My assumption is:

1) I will need to rewrite my application(s) to be ready around 10/12/2012 (I'm assuming there will be a 12-18 month time lag on this to take this date to say 10/21/2022)


Due to limited time between now and then I need to consider the above questions soon.


I would like to keep CSLA.net so am after advice on which development technology to use.


2) I am sure I will need a web-based solution (users are schools and teachers - ICT skills are poor (sorry teachers) and so I need a solution that can be deployed remotely without (minimal) user intervention)


3) I don't particularly like html (or should I say CSS), however at the age of 51 I would be prepared for one final push to learn/become expert at this.


I think some of you may suggest WPF as it is close to Silverlight - my concern is... can WPF be guaranteed to be strong post 2021.  I need a solution that is good for at least 15-20 years (my application is subscription based and will provide my pension to 65 and beyond - hopefully!! - hence why I am leaning to html5 etc.).


There are so many current frameworks etc. that I'm getting a little bogged down and confused.


I am thinking of using MVC6 (I've not done mvc before previously using win forms but not a lot and am happy to switch as I like the pattern [MVVM/MVC]) 


If I use MVC6 should I also learn Web API?  Is this a better fit for CSLA?


Which front end / binding framework?  Angular, Knockout etc and are these compatible with CSLA? - can these of other frameworks 'bind' to CSLA objects?


Any views on this would be warmly welcome - and I hope benefit others in this scenario.


One final thought might be to wait to say 2019 and hope that MS (or others) may have come up with a more streamlined (html) technology that is as good and as easy as Silverlight.

skagen00 replied on Tuesday, May 19, 2015

I lead a team on a CSLA based Silverlight application which may be one of the more substantial ones out there - potentially one of the larger SL LOB apps out there - I love it, it's really powerful in a way a traditional HTML/JS app (SPA or otherwise) really doesn't match from my experiences...

In most cases WPF may not be a good choice, unless it's an internal application to your own company.

The promise of Silverlight - the reason why it was so compelling - was the cross-browser deployment that it allowed - and then iPad happened :).

The way it appears, there are really two options for those of us who need to be cross-platform....

1) Write HTML/JS against the CSLA assets we have (be it AngularJS with MVC or what have you)

2) Pursue Xamarin

There have been glimmers of "maybe"s .... some sort of CSLA using JavaScript (there's some repository out there with a few check-ins)...as well as a drive to have Xamarin (especially the promise of Xamarin.Forms) deliver cross-platform in a manner that supports the richness we've come to love with CSLA and Silverlight.  I just haven't seen enough activity/buzz/examples around Xamarin.Forms w/ CSLA continuing to suggest it's something truly viable.  I feel bad saying that as I've been around CSLA for a long time and have hoped for the potential here - but hard to take a significant commercial application in that direction.

I frequently pop around and see what's hopping on Xamarin.Forms, Rocky's twitter/blog, etc, - but I feel like the only commercially safe way to go is with "#1" - leveraging CSLA business objects in HTML/JS...  I was at Microsoft Build when rumors were out there about Microsoft buying Xamarin which might have made things interesting, ... didn't happen...  excited about Miguel's session but unclear as to how to make things happen. 

So at present, we are almost certainly going to be pursuing #1... it's not as "good and easy" as Silverlight and one of the more interesting challenges will be to support the uber-richness we've been able to accomplish in Silverlight in an HTML/JS application in a way that satisfies the current users of the Silverlight application.  It'll be quite a ride. 

Bottom line, though, is that I can't imagine abandoning my CSLA business objects, their data access, and all the integration/unit tests.  It's the ultimate promise that CSLA has given us - allow us to avoid fully losing business assets when things like the UI changes.

richard@rgsoft.co.uk replied on Wednesday, May 20, 2015

Thanks for the prompt and full reply - you have echoed many of my concerns.

There have been glimmers of "maybe"s ...  this is so true.  Not having a team is making the decision of which direction to go (although as I have hinted and you have also echoed the only 'commercially viable' way looks like html5/js) and which 'framework' or 'frameworks' to go with (yes its sad that we had one - Silverlight and now I'm sure any LOB html5 solution will need several frameworks bolted together - not good). Whilst they all have good documentation and some code examples the limited time I have to explore them means I try/play around with one for a period of time but then hit a real-life scenario and get stuck - so I end up jumping in to another to repeat the process.

Realistically with limited time to devote to this I envisage a  good 12-18 months learning curve to be in a position to start develop a commercial LOB type project - hence my concern at getting it right as I don't want to spend so much time only to find some requirement can't be met and I have to adopt another 'framework/technology'.

So in essence to what I am trying to do (and what we do as developers I think) is the be able to write server code to do our CRUD / business stuff and then pass back (via js etc) that 'Unit of work' complex type object [containing one or more lists/collections and other data items] which is then easily binded / parsed to the controls on a page.  So what is / will be the best at doing this?

RockfordLhotka replied on Wednesday, May 20, 2015

This is the topic of our times isn't it? :)

I do think it comes down to native vs JavaScript.

Although we are exploring the csla.js concept, it is slow going because the JavaScript world is so fluid, and because CSLA (historically) has relied on the underlying platform to do basic things like data binding. In the JavaScript world there is no stable underlying platform, and (to me) it seems risky to hitch my wagon to any one of the existing data binding frameworks (Angular 1 or 2? Knockout? Aurelia? Something else?) because that only reaches a subset of all developers, and there's constant churn in that space.

I suppose at some point we'll have to just pick one and live with that choice for a few years - just like everyone does that builds an app in JavaScript. Then in a few years we'll all rewrite our apps to use a then-current framework.

Fwiw, my personal preference remains .NET and therefore Xamarin. We've put a lot of work into making CSLA work pretty seamlessly across Windows, iOS, and Android. That work will continue into version 4.6 as we add support for UWP (Windows 10 PC/mobile/Xbox/etc.) and the ongoing updates from Xamarin.

Then again, as a user I'm also partial to native mobile apps over browser-based solutions on my phone. Yes, some of the mobile sites out there are OK, but I find that they are never as smooth or friendly as a good native app. As a developer I prefer to build the kind of solutions I'd like to see as a user.

Jav replied on Thursday, May 21, 2015

This is undoubtedly a stupid question, but I'll ask anyway. 
I read everywhere that C# works great with Xamarin. Okay, I got that. 
Does that mean Xamarin takes the place of WPF, SL etc. 
I hear about Xamarin Forms, but there are so many user controls such as DataGrid, ListBox, ComboBox, StackPanel, WrapPanel, autocompletebox etc.  Every discussion immediately turns to iPhones, androids, and the like.  What about business applications?  Xamarin website has a lot of big photographs of happiness but I was unable to find any nitty gritty details.



Mick_G replied on Friday, May 22, 2015

Just so happened I was at a Xamarin Days event this last weekend in Mountain View. First Xamarin is basically for phones and tablet devices. Xamarin forms gives you quite a few controls but maybe not all that you would like. Having said that the players in the mobile controls market are entering the fray. I got a free subscription for Synchfusion for Xamarin, haven't even perused it yet. Anyway I think Xamarin is sort of building steam. 

Jav replied on Friday, May 22, 2015

Thanks Mick.

It appears that as for as Microsoft devices are concerned, phone, tablet, Surface, Xbox, laptop, pc, and Microsoft HoloLens (whatever that is!), Windows 10 is supposed to make it possible to create an App-for-all by using the universal application platform (UAP) (wow - what a title).  Xamarin may not be needed here. 

I suppose one could justify paying Xamarin their (too) high dues if one already has a successful app on one platform, or a company wanting to do the same with their app because of customer demand.  Nirvana, I am not a believer.  Would probably wait until the building steam leads to a steady sound of chugging along.

ajj3085 replied on Wednesday, May 27, 2015

If you want to ignore Apple / Android, then Windows Universal apps may be the way to go.  If you do need to reach IOS and Android however, Xamarin is probably going to be well worth the money.  This is the route we are going as we can't ignore IOS and Android.  We're hoping that 90% of our UI code will be shared between all three platforms (Android, Apple and Windows) so we think Xamarin will more than pay for itself given that we won't need to have more developers and / or skills like XCode, Java and XAML.  We're just now getting started, so once we're further in I'll try to remember to post an update.

skagen00 replied on Wednesday, May 27, 2015

Andy, I have a question for you since you're going the Xamarin route - one thing that I never explored but one thing that you may know the answer to -

As I understand it, with Google Play, Apple's store, etc - there's a certain revenue % one is required to share.  For larger LOB applications this could be pretty substantial.  What is the deployment story with Xamarin?  Does it basically come with a recognition that you will be giving up 20% or what have you?  Or is your app internal and not commercial (if that matters)...?


ajj3085 replied on Thursday, May 28, 2015

I'm not really sure; our app is a free download, and our main application is a SaaS clickonce solution which the apps supplement.  you need to login to the app to make it work, but who can login is controlled via the main desktop app.  I though you only had a % of the app price itself, not your total revenue.

Jav replied on Wednesday, June 10, 2015

Having created an App on the Apple platform right after iPhone ver.1, I can tell you what Apple's charges are.  They charge 30%.  For Apps costing a few dollars that was actually greeted as good news.  For large LOB's apps, that sounds nothing less than a pound of flesh!


RockfordLhotka replied on Wednesday, June 10, 2015

All the platforms have some mechanism for "side loading" LOB apps though.

In Apple's case for example, your organization can get a 'private store' so your employees can install/update your business apps. In this case your org is paying Apple for an enterprise dev license, not 30% of the $0 you are charging your employees to download your apps.

Copyright (c) Marimer LLC