Recommended

Skip Navigation LinksHome / Articles / View Article

Silverlight - ready for business applications?

+ Add to SilverlightShow Favorites
20 comments   /   posted by Ivan Dragoev on Oct 22, 2008
(10 votes)
Categories: Misc

Since the Silverlight 1.1 was released I and my colleagues started using it in a commercial business applications for some small tasks, where the benefits were obvious. Even the fact the Expression Blend crashes and the lack of controls at that time didn't stop us. We were impressed of the tempo of the improvement and we expected to see reliable and ready for business use platform when the final is released.

So, now the final is a fact, but is it really ready for real-world business application?

Shortly - no. Not yet.

There are several reasons for my "No".

Lack of productivity

Each new technology should solve some problems or give a solution of existing ones in a new, more efficient way. Yes, now with Silverlight you are able to make beautiful UI, full with animations and effects using the power of the .NET platform. But using it in common scenarios like editing data is a hell of a job. (If you are asking yourself why we want to use Silverlight for CRUD I'll tell you - because we have some specific logic, because we have the business objects already created and because we have other parts written in Silverlight and we want to use one platform instead of many.)

In our real world application, 80 percent of the functionality is about editing records - selecting a record, editing the data, saving or canceling the changes. Until now, the BindingSource gives us all we need and editing is nothing more than calling AddNew()/EndEdit()/CancelEdit().

Now, in our beloved Silverlight 2, nothing like BindingSource is available and handling this scenario involves implementing some custom solution. Here you might say "Hey, there is IEditableObject where you can handle this!". Indeed! But hey, now I need to change all my business objects, just because the Silverlight miss something like BindingSource? Moreover - we are using these business objects not only for Silverlight but also for our WinForms and ASP.NET applications. And why should I need to change the business logic to solve UI problem?

As a result, the time spent for implementing add/edit/delete functionality is irrelevant: it takes MUCH more time than making it in WinForms or ASP.NET.

Lack of Security

Supporting only basic HTTP binding in WCF makes the picture even worse. The only way to secure is to use certificates. Well, does it means we have to pay for issuing certificates?

What about obfuscation?

Keep the flow

Before WPF and Silverlight the developers were able to build and design applications in one consistent manner - all in one IDE. Of course, design made by programmers is something... hm... controversy, but the application were built faster. So, following some well known design principles gives the companies the option to save some costs for designers and to keep the productivity. Especially using third party components (Telerik, DevExpress, ComponentOne or other) drastically reduce the need of a designer. Now, the integrated designer for WPF and Silverlight is awful, and even for some really simple tasks you have to switch between Expression Blend and VisualStudio.

Tooling

So, leaving the design to the designers has one more consequence - now you have to pay for the designer's tools. It is not enough to buy VisualStudio, oh no! You will need to take some of the Expression's. This means you have to pay more to do the same as before!

Conclusion

As a conclusion I would like to say, that I really like Silverlight and I really want to see it used in the real world, in a real business applications. I'm tired of tons of demos, video players and some other well designed but useless examples. What I really need, is to see Silverlight behind rich business application, full with interactivity and easy to use. I also want to keep the productivity and the design concepts known from .NET in Silverlight. "Minimum learning curve" - That's what they say, right? I like to use what I have in Silverlight with minimum changes.

So, please, except this as constructive criticism!

Your comments are welcome.

Share


Comments

Comments RSS RSS
  • RE: Silverlight - ready for business applications?  

    posted by Bart Czernicki on Oct 22, 2008 11:28

    I could not disagree with this anymore on multiple levels; from your perspective and the very near future.  Furthermore, you also comparing this to classic Winforms/ASP.NET development.

    Lack of productivity

    Compared the Winforms yes.  Compared to ASP.NET...you must be out of your mind.  I can code in a single language and have no postbacks/page life cycle/viewstate nonsense/AJAX bridge (unitl MVC is ready for production and won't be until it matures).  You have a specific example of data entry and modification.  There are a lot of applications that are read-only or high-read only.  For example, Business Intelligence applications.  I wrote a whole new solution with looking at data from a different perspective completely that is not possible inside ASP.NET (I should say "classic" ASP.NET, because MVC is going to change that).

    I can give you 100 examples comparing it to web or other RIA technologies where this is wrong.  For example, if I want to do an animation on the web now...I am using jQuery/Scriptaculous and JavaScript essentially with HTML and C# controls.  Silverlight all in one spot.  I want to refactor a piece of code from my RIA/JavaScript/HTML to my backend service...can I copy and paste?...LOL.  Silverlight...no problem for the most part.

    Lack of Security

    Once again...I am not sure if you are the type of person that is like me (that isn't 100% purist with words).  So, I can only take what you write here: "The only way to secure is to use certificates."...wrong.  For services, you have options to encrypt your SOAP messages with custom logic.  This also applies to RESTful services.  Granted this means that encryption/decryption logic is on the client, however this can be protected as well.

    What about obfuscation?....what about it?  Silverlight supports it 100%.

    Let me tackle a couple of your points.  First, for internet applications where security is of the upmost concern...obviously Silverlight not being the best answer.  However, your also missing INTRANET applications where security on the inside of the firewall is a little more lax.  Furthermore, there are plenty of business applications where security doesn't need to be NSA proof.

    I have an application with relatively static data.  I have the data inside a XAP package and it is obfuscated with the string info is encrypted.  Not only that the data doesn't make sense without the whole app.  Furthermore, this is to protect against my competitors not hackers necessarily. 

    Keep the flow

    I agree that you need to jump between the different apps, but that was design intended.  You are making it sound like Microsoft dropped the ball here (other than not fixing some issues with the designer..ie drag and drop).  The whole point is to seperate the design from the coding.  You want the apps to look like a pro designer did it or a developer?  Your arguement here is so flawed that  I am not going to waste typing trying to argue.  By your assertion then, Flash/Flex dropped the ball becaue you have to go to PhotoShop/Illustrator to do any advanced graphics.

    Tooling

    Most people have an MSDN license and that should cover a single developer.  MSDN Expression (which includes: Expression Design, Web, Blend, Visual Studio 2008, Office 2007, Vista and a couple more things) is a few hundred dollars.  If I am hiring a developer and setting up his workstation...paying a few hundred dollars to get dev licenses for ALL of those tools isn't bad if you ask me.

    You are absolutely right that we need to see more complete applications and not see demos of how to change the color of a data grid header.  However, keep in mind that Silverlight 2 until recently was in beta.  I would not be surprised to see a decent amount of new applications starting to pop up in the next couple months.  Microsoft has released the Blue Prints for SharePoint development...which is huge in the business/enterprise.  They also plan on doing Silverlight on Symbian, Android and Windows Mobile.  I would argue that you need to think out of the box more...when .NET came out in 2002...ALL I HEARD was how it is a copy of Java and Microsoft should not enter this market directly.  FFWD a few years later and every single API MS releass is based on .NET/C#.  You don't think Microsoft is going to use the comibnation of this UI and their strong product vertical/horizontal in combination???

    Strictly comparing Silverlight to existing RIAs (Flash, JavaFX, Google Gears (not really RIA, but web 2.5)), Microsoft has the products and technology to make this a success.  What is Adobe going to do with Flash?  They already are integrated with their graphics suite.  Sun?....LOL.  Google Gears has potential, but if you want to make a next-gen UI app...HTML/CSS/JavaScript != Flash/Flex/Silverlight.  Silverlight should be looked at as an RIA technology to invest in if you want to make $$$.  If you want to make a movie intro site or a corporate logo site...Flash is fine.  Silverlight is the RIA that will be integrated with Microsoft's bohemoth product offereing and THUS be the tool for business applications.

    I have written 2 business applications with Silverlight that are client's are using/will be using soon.

    Bart Czernicki

    http://www.silverlighthack.com

  • RE: Silverlight - ready for business applications?  

    posted by Ivan Dragoev on Oct 22, 2008 12:05

    Hi Bart,

    Thanks for your comment. Actually, I expected such comments and I found sharing opinion with the other is really useful. I must admit, that I wrote this article in more provocative way to see what the people will say and to come with some conclusions based on real world experience – you are saying you have 2 business applications so far.
    But here my comments to your post:
    Lack of productivity – From WinForms point of view its true, from ASP.NET – not. But the fact is that WInForms is most productive approach and Silverlight must try to be as close as possible with that productivity. I also think that there will be applications that need good design because of their complexity while other will need rapid development approach. But what will force the people, the ISV to adopt Silverlight? Because they already have their products and they cannot just wipe all the code and start from scratch? Silverlight should propose productivity on acceptable price, not only as money, but also as time, reusability of existing code, significant optimization, performance and everything that could save some money.
    Lack of security – yes, you are right. You always can make something custom. But why? Should everyone implement custom solution? What about decompiling? It’s all on client’s machine. You say you can obfuscate – have you ever tried to protect you IPR?
    For me the real world is mostly bored business applications with tons of data, not the beautiful Sci-Fi interface. So adopting Silverlight and use it in such application can guarantee its success.
    Is it appropriate? Yes, because If I can make everything using one platform – cost saving and much more optimized development process. Also, we share common business logic between Silverlight and WPF.
    Keep the flow – the Idea behind this is to keep the timeproven flow and productivity from WinForms. Not to keep it forever, just for help developers by allow them to make smooth transition and to tune the process in accordance with the new concept. Don’t get me wrong – I fully support this separation design/code. But still the good practices should be preserved.
    Tooling – again I might admit that the tools are not what they should be at this moment. Yes, they are improving, but still not working in the way it should be in order to guarantee the productivity.
    I do not want to compare with the other RIA, just because I think that we have to choose technology to use if the technology can solve our problems. So if I’m .NET based company Silverlight is the logical solution for me. Even if at this moment Flash/Flex is better.
    As conclusion I can say that Silverlight is the technology that I think in 1 year from now will bring to us all we need to start using it without even think to research another alternative. I also would like Microsoft and the guys from Silverlight team to use the knowhow from WinForms productivity and to incorporate the missing things that will improve the productivity.
    Actually we are always trying to solve problems, to save some costs and to be more efficient, right?
  • RE: Silverlight - ready for business applications?  

    posted by Bart Czernicki on Oct 22, 2008 13:42

    I only will respond to two of them...the rest of these are debatable.  I can see your coming from a different point on these and there is no point in debating most of them

    Winforms dev - Like I said, I agree that winforms dev has the superior productivity.  However, you also tradeoff that you now have to deal with deployment issues.  Even WPF/ClickOnce are not perfect.  Deployment is always a pain that no one likes doing...the web solves that insanely great.  Silverlight is bringing the desktop to the web :)

    Security - You are right that one of the things WCF solves is no plumbing code and because of the poor/no support of WS* standards in Silverlight's core this is a problem.  However, I see that changing really quickly by MS simply providing an add-on assembly for additional bindings for WCF.  Like I mentioned above large scale applications like FaceBook/MySpace have what  Icall "good enough" security....Silverlight is at that point where its good enough with transport Https/obfuscation.  You can write somethign custom if you want more.  Furthermore, in my opinion if you are really uptights about security you should not be using .NET anyway :)

    Just to give you some ideas of what my apps do and why Silverlight solves some of the problems...with LINQ/large cache/multithreading it allows me to do A LOT of small database processing on the client without having to constantly poll the server for more data or to do a simple (order, group, filter etc).  Both my applications are "Business Intelligence" applications...so Silverlight makes sense not only from a glitz/pretty UI/animations but also it adds what I call a "Client Side BLL layer" that other technologies are trying to solve with JavaScript (i.e. facebook/google with javascript+SQL Lite).  There is a lot more I did with this, but this is a huge step forward that honestly a non-RIA web technology simply doesn't solve.

     

  • RE: Silverlight - ready for business applications?  

    posted by Jax on Oct 24, 2008 03:47

    Just a comment on changing your object just for UI.

    We've worked around this problem by declaring our model objects as partial classes. We then share the model code into a silverlight project, and extend the model classes with UI specific binding needs (collections are wrapped in ObservableCollection<T>, and base object extended with IEditableObject behaviour.

    That way the original business objects which are re-used elsewhere are not polluted with UI logic.

  • RE: Silverlight - ready for business applications?  

    posted by Joseph Ghassan on Oct 24, 2008 06:53

     This is all bullshit.

     

    Silverlight Rocks your boxers!

  • RE: Silverlight - ready for business applications?  

    posted by moglir on Oct 24, 2008 07:53

    I use CSLA.NET for Silverlight to evercome some of the problems you stated in your article. Please see also this post: www.lhotka.net/weblog/IsSilverlightReadyForBusinessApps.aspx

  • RE: Silverlight - ready for business applications?  

    posted by PB on Oct 24, 2008 08:17

    Check out www.zignals.com  Up and running see the best real world financial markets charting application on the web.Unbelievably fast and rich and stunning and Silverlight! Compare it to Yahoo charts or a bloomberg terminal

  • RE: Silverlight - ready for business applications?  

    posted by mr on Oct 24, 2008 09:33

    Visual Web GUI has a pretty good framework that allows you to create winforms applcations that are streamed to the browser either through DTML or Silverlight. Wherein the browser is a essentially a thin-client.

  • RE: Silverlight - ready for business applications?  

    posted by ThoseBug on Oct 24, 2008 10:58

    sorry Ivan, but may be this kind of post are a waste of time, instead of we should start to work finding solutions to our doubts. For me Silverlight is a good product like winforms, asp.net and wpf, how ar eyou going to use? are you thinking to use Silverlight like winforms? or aspx ? well you must think what you want to do, I hardly recomend to you compare with other technologies, may be Flex is a good point to compare, because Microsoft never come up with a product like this. (multiplatform, cross browser, etc) About you Buisness object, why you are not using WCF? if is like you are saying and your business layer is well done, you can use [ServiceContract] attribute on your interfaces and [DataContract] on your classes and you have the same layer running trough WCF. May be I missunderstood your question but for me what Silverlight need to be ready to Business App is more tutorials (about binding, data services, etc.) About security, why not use certificates? are you thinking you use real business aplications, with full data access without it? mmm something to think, not to complain or write "interesting" posts.

    hope this help.

  • RE: Silverlight - ready for business applications?  

    posted by idragoev on Oct 24, 2008 11:35

    Hi ThoseBug,

    Yuo are completely right, but the problems are not the business objects and the services....Its more about editing data scenarios and the lack of useful components for making editing data really easy and without need to change existing business logic.

    Actually, I'm a big fan of Silverlight, but I also compare with the other technologies on the base of productivity and best practices.

    What I just wanted to say is that there are a lot of good practices, approaches and proven solutions that could be included in Silverlight.

  • RE: Silverlight - ready for business applications?  

    posted by Ken on Oct 25, 2008 11:18

    I agree that Microsoft dropped the ball on promoting Silverlight as a business tool. There's tons of info on doing glitzy rollovers and shading but try to find a simple *working* demo of doing CRUD against a secure WCF service. The lack of guidance is shocking and unusual for DevDiv.

    Also, the tools support for Silverlight in VS 2008 is dismal. The read-only display often won't render the XAML brought in from (<spit>) Expression Blend. Rather than waiting til  VS 2010 to provide decent tooling support, MS should update VS 2008 (Release 2) to work properly with its shipping Silverlight 2 product.

     

  • RE: Silverlight - ready for business applications?  

    posted by David on Nov 19, 2008 15:24

    I'd thought about using Silverlight as a way of rapidly developing a rich admin back-end for a website.  Since the admin section would essentially involve CRUD and security, I found this post a very helpful warning.

  • RE: Silverlight - ready for business applications?  

    posted by chris on Nov 24, 2008 10:45

    What about www.gizmox.com?

    I'm not a programmer but that toolset seems to really spedd up the ability for programming.  I'm trying to determine whether or not Silverlight would be viable for our next application - because the GUI makes for easier marketing.

  • RE: Silverlight - ready for business applications?  

    posted by Rich on Nov 25, 2008 11:11

    Watch the Microsoft PDC session on "Building Business Focused Applications" for Silverlight.  I was there and spoke with some MSFT people afterwards.  They are investing heavily in making SL even more ready for business apps. They have a team of people dedicated to just that.

    Excellent discussion.  Thanks for the article and thread.
     
    Note the cool login control in the PDC presentation.
     
  • RE: Silverlight - ready for business applications?  

    posted by idragoev on Nov 26, 2008 03:06

    Hi Rich,

    yes, I know about his. And I think it will be realy cool once it is released. I also believe, they will do a lot of work to make Silverlight ready for business. For me personally is important when this si released to solve problems for the most common situations like starting new project, migrating existing products etc. Thus I believe the adoption of Silverlight will be improved. Because it is not only for the new products. There a lot of existing products that could benefit from the Silverlight and how to do that is important. Also I wanted to see that the good practices should not be abandoned and thus making the transition easy.

  • RE: Silverlight - ready for business applications?  

    posted by John McFetridge on Jan 09, 2009 10:53

    1. Silverlight simplifies the development and support process by allowing the development of a rich UX using the same server side tools that we have been fostering throughout the organization such as C#, Linq and WCF. Thus there is no need for Javascript. This is huge as it allows our developers to work in the same object-orientated patterns that they are now using in server side development. As such, they can be much more productive then using Javascript where object support is not native. It can be done using tools like Prototype, however even these do not support important OO concepts such as polymorphism. Additionally all events are handled locally in the SL client application using the same model (IObservable, INotify) that are used in WPF , the rich data binding models allows for easy two-way binding between UX elements and serialized forms of our business objects. The same event model allows development of rich interaction between different controls on a page such as a Slider and a Chart. As a result, it is easy to deliver a highly responsive UX without the need for Javascript. The beautiful example was mentioned above zignals , I love this as it true desktop functionality is a browser hosted app. Sure u can do this with javascript but the effeot and support is much greater.


    2. Silverlight allows developers and designers to work together this is especially a factor as the user expectations rise. Tools like Expression Blend can be used by the designer as the developer is working on the code in Visual Studio. Developers (which I am one) should NOT design UI. I am always surprised by how many insist on trying and indeed believe they should but we should stick to the code.

    3. SL is a strong subset of WPF so the application can be run on the desktop natively, if required and properly designed.


    4. There is no need for Ajax or Viewstate making application development much simpler.

    5. State can be maintained on the client. There is by default a 1M Isolated storage on the client again easing the development effort. This 1M limit can be configured higher and streams read and written to the store.



    6 Silverlight is cross browser so support for Mac or Linux is included and one does not
    have to fight with CSS to resolve browser differences. I have expended way to much time in addressing these issues in the past even when we employed toolsets like telerik.



    7. Asynchronous programming model that allows a background thread to carry out tasks while the application is freed for user interaction.


    8. We also must keep in mind that the development of a product is actually a small part of the lifecycle of the product as support and extensibility take much more time. Not only will SL lead to faster development time but the support and extensibility will be much less as the model and debugging tools are so much better.


    Additionally there are benefits for the end-user:

    XAML is the Silverlight's Lingua Franca for user interface design. As it is interpreted by the .Net runtime, a much richer experience such as scalable vector graphics can be delivered then thru HTML.. C# code runs magnitudes faster then Javascript/Ajax as it is compiled. This again allows for development of UX that were not possible in ASP.NET

  • RE: Silverlight - ready for business applications?  

    posted by idragoev on Jan 09, 2009 12:29

    Hi John,

    yes, you are right, but this is only technical issues, not related to the business usage of Silverlight. Yes, yuo have all these benefits, but you do not have security using services. Yes, you can have it if you have certificates, but this means some investments for certificates.

    Also, there is legacy, which does not fit the new flow or cannot be converted to it easely.

    When we are talkin for busines we need to know how much does it costs to use it, what investments should be made and what the benefits will be. I believe in the near future this will be changed, but for now....not quite sure.

    However, there are many cases Silverlight is the perfect choice. Mainly for entertainment.....

    But hey, how many examples you can name for business usage of SL, for commersil usage?

  • RE: Silverlight - ready for business applications?  

    posted by steve on Feb 08, 2009 11:09

    by John McFetridge - it would be nice to be able to afford having both UI designers and coders on staff, but in the real world many IT dept don't have the budget for it, and you have to make due with what you have.

    I agree with the author about silverlight when it comes to CRUD. CRUD makes up almost all of our in-house applications. Unless SL offers something relatively easy to use and something that will make end-user more productive, I cannot see taking the time to learn this technology; at least not now.  Increasing productivity is the holy grail of business apps. If a technology does not address this, it has little business use in my opinion.

  • RE: Silverlight - ready for business applications?  

    posted by jman on Jul 29, 2009 19:46

    "Hey, there is IEditableObject where you can handle this!" Where is my commitedit event when I need it? Thats right, they took it out in the version I have :'(

    I wonder if SL3 will be tinkered around like this too making ppl have headaches?

  • RE: Silverlight - ready for business applications?  

    posted by En on Sep 18, 2009 09:50

    I've been developing LOB apps with web forms as the UI layer since .Net 1.0 beta.
    So I had a bit of a natrual resitence to changing over to (and re-investing in) the new kid on the block stright away....

    Though after seeing RIA serives; it's removed alot of the reservations i had about the platforms commuincation with LOB services. 

    VS2010 with ria services = Time to jump on the wagon with great exitment!

    I'd much rather spend my time doing real work than testing javascript and css in x number of different browser types!

     


Add Comment

 
 

   
  
  
   
Please add 4 and 7 and type the answer here:

Join the free SilverlightShow webinar 'Silverlight Behaviors for Designers' on July 14th 2010, 3:00pm EDT.
In this session on adding interactivity UX Designer and Consultant Zhivko Dimitrov will show how to bring your designs to life without writing a single line of code! Find out how to use drag & drop behaviors to control animations, add navigation, and simulate validation states. Read more | Register Now (hide this)