locked
An Open Letter to Scott, Tim, and the Silverlight Team: Please Slow down and Tighten up RRS feed

  • Question

  • First off, congratulations as now the Silverlight plugin is on 50% of all web-connected computers (see StatOwl). Silverlight is a great and much needed addition to the web community. Also congrats on building such a great product in such a short time.

    May I suggest that you now focus your resources on tightening up your product and learning resources?

    Particularly with respect to RIA Services and the Business Application template, there are few good working examples. The tutorials are out of date, and the source downloads mostly don't work. Even the ones that do work are quite fragile. I've yet to find one I can't easily break. And there are serious unexplained bugs with VS2010 that cause errors and restarts.

    To use a military metaphor, you've been successful in driving deep into enemy territory, but you have outpaced your supply lines. It's time to pause and make sure they are secure.

    With Silverlight now an important part of the web eco-system, you are going to have more developers heading your way. You want them to find a plethora of solid and well documented examples that they can build from. This is much more important than getting the "next best feature".

    Please take this as criticism meant only in the most respectful and constructive manner.

    Thursday, June 3, 2010 10:15 AM

Answers

  • batpox - thanks for the post and feedback.  The balance of innovation and pace is something we talk about a lot internally as well with our customers.  After MIX10 we met with about 100 customers and this was the first question we asked...how quickly we have been doing releases.  As you could imagine (when you ask any question to 100 different people) the feedback was mixed.  There was no clear winner of slow down, keep the pace, or make it faster.  In general though, the feedback we received led us to believe the pace (about annual) was better than most products.  No doubt the SL3->4 pace was the fastest.

    With regard to resources, this is well put.  It is also an area where we have to balance our own resources as well.  Add to the complexity that you have multiple people doing multiple resources in various places.  Sometimes tracking them down is half the battle...but that is no excuse.  When releases happen we do our best effort to update the code to ensure that it matches any breaking changes APIs, etc. on all the videos on the http://silverlight.net/learn section.  Sometimes we miss some.  Sometimes we decide just to deprecate them.

    Have you seen the Silverlight 4 training kit? (http://www.silverlight.net/learn/handsonlabs/) -- these were recently updated to match the Silverlight 4 release.  If you haven't seen those, please check them out.  Additionally I know the Expression team is preparing some Blend-specific content updates as well.  RIA Services is an area we know we can improve upon and I can tell you that a conversation was started a few days ago about this specifically to get more recent RIA Services updates here in the learning resources.

    Thanks for the letter and feedback, it is much appreciated!

    Thursday, June 3, 2010 11:28 AM

All replies

  • I second this..., please slow down a bit. Think a little harder about some of the APIs and make them a little more open (i.e. less Internal).

    internal is a statement of "I'm not really sure this is going to stay like this", and I can appreciate there are alot of scenarios where this is true when you are moving so fast. 

    But think of it from the communities perspective, we are smart people and can probably provide alot of the functionality being asked for ourselfs if we had a little more access. I also believe this approach would lead to smaller downloads, as it would facilitate far more code reuse.

    I have spent alot of my time on each version from 2-4 writing behaviors, etc. to fix or work around bugs, some of them pretty fundamental.

    With each version things have improved which is cool, but please just take a little more care, or release more regular fixes.

    And take some time to think about and USE new features that are implemented, theming for example, all of the themes have been updated to use implicit styles, yet this won't work when you do things like "New Child Window" in VS2010 because styles are looked up using the specific type rather than the DefaultStyleKey. In addition to this there is no {x:Type} markup extension, so you cannot easily create a named style based on an implicit style to work around this.

    Also, focus on constistency, with the new INotifyDataErrorInfo if you raise an event with an Empty or Null property name it doesn't work the same as with INotifyPropertyChanged.

    I don't want to focus on these issues, they are just close to my heart at the moment, and I think demonstrate that more thought needs to be put in...

    Again, please take this as criticism meant only in the most respectful and constructive manner.

    Thursday, June 3, 2010 11:07 AM
  • My sentiments entirely. A well thought out and written case for reliable and stable technology with good help and examples. Microsoft are not the only ones guilty of rushing ahead with code.

    The assumption that a product that has been 'beta tested' by a bunch of unpaid members of the dev community makes it ready for release is possibly the root of the problems in the software industry. It's like a car manufacturer waiting for customers to tell them about a fault before they think about fixing it...oh wait I forgot Toyota!

    What we want and need is reliable code that works and dev tools that make coding easy and quick to get our clients of our backs and the money in the bank. Visual Studio has gone a long way to providing this but just when one has got one's head around one version of .NET and the way of doing things, along comes another way to learn, SQL - LINQ, RDO, ADO, etc.

    Mark Newton
    Contributing editor PcPro
    Thursday, June 3, 2010 11:08 AM
  • batpox - thanks for the post and feedback.  The balance of innovation and pace is something we talk about a lot internally as well with our customers.  After MIX10 we met with about 100 customers and this was the first question we asked...how quickly we have been doing releases.  As you could imagine (when you ask any question to 100 different people) the feedback was mixed.  There was no clear winner of slow down, keep the pace, or make it faster.  In general though, the feedback we received led us to believe the pace (about annual) was better than most products.  No doubt the SL3->4 pace was the fastest.

    With regard to resources, this is well put.  It is also an area where we have to balance our own resources as well.  Add to the complexity that you have multiple people doing multiple resources in various places.  Sometimes tracking them down is half the battle...but that is no excuse.  When releases happen we do our best effort to update the code to ensure that it matches any breaking changes APIs, etc. on all the videos on the http://silverlight.net/learn section.  Sometimes we miss some.  Sometimes we decide just to deprecate them.

    Have you seen the Silverlight 4 training kit? (http://www.silverlight.net/learn/handsonlabs/) -- these were recently updated to match the Silverlight 4 release.  If you haven't seen those, please check them out.  Additionally I know the Expression team is preparing some Blend-specific content updates as well.  RIA Services is an area we know we can improve upon and I can tell you that a conversation was started a few days ago about this specifically to get more recent RIA Services updates here in the learning resources.

    Thanks for the letter and feedback, it is much appreciated!

    Thursday, June 3, 2010 11:28 AM
  • Thanks for the feedback and for stepping up to voice your concerns.

    We're currently working towards deploying some significant changes at silverlight.net and windowsclient.net including both new content as well as updated structure. The aim is to make it easier for you to learn, to simplify the process of getting up to speed, and to make the content more relevant.

    That includes culling out old content, some changes in how content is presented, and how it is categorized and tagged. Of course, it also includes creating new, better learning materials.

    I'm pretty excited about the changes, and feel they'll help address the majority of the concerns about the training materials. We'll continue to monitor the success of the changes, and focus based on the results. Your feedback is a very key part of that.

    Thanks.

    Pete

    Thursday, June 3, 2010 12:03 PM
  • Tim,

    Thanks for your quick and gracious reply.

    And, yes, I went through nearly all of Ian's tutorials and found them very helpful. At the end there is not a robust application (after all, that was not his intent) but it was a very good learning tool for me.

    I think you hit on one point that would be well covered. It is often not at all obvious when an example or learning tool is 'deprecated', or what version it applies to. It would be good if each item listed what the target was in the intro. I would not delete them, since your hour long video was informative even though it is 'deprecated', but a warning or caveat would be nice.

    So on behalf of all Silverlight developers, let me thank you in advance for mature and robust examples and quality learning tools, as well as a quality Silverlight product suite.

     

    Thursday, June 3, 2010 12:25 PM
  • Batpox, Suedama and mnew, First, thank you, this is exactly the kind of feedback that is most helpful: where are the pain-points in learning Silverlight.  You have identified areas that we must and are focusing on.   I revel in the fact that we have many audiences, and Pete and I are working hard to come up with organizational and content plans for Silverlight.Net that will meet these needs and that will be easily discoverable.  Among the groups that I tend to keep in my head are
    • Silverlight Newbies
    • Silverlight programmers who want to know what's new in 4
    • Silverilght Programmers who want to start Windows Phone 7 programming
    • Silverlight Programmers comfortable with features but want to see complete start to finish examples
    • Silverlight Programmers who want to see how Silverlight fits in with related technologies and industry best practices
    While Tim and Pete alluded to some things we're doing for each of these groups, let me also point out a few other existing and emerging resources... not to suggest that there isn't a great deal more to do, but to encourage discussion about the direction of each of these: 

    Silverlight Newbies

    Programmers come to Silverlight from HTML, Java, .NET, WPF and numerous other backgrounds.  We are developing a better set of Getting Started videos, and I've committed to writing a series of Getting Started Mini-tutorials.  I've also added a Key Topics folder on my blog to locate tutorials and articles related to Getting Started. Much more coming here, along wtih dedicated mini-sites on transitioning to various aspects of Silverlight programming from other backgrounds


    What's New

    Total agreement that we need to beef this up and have it ready at release and going forward.  Pete and Tim have addressed this and I can only add that this is a major area of commitmentLearn WP7
    While there is an entire site dedicated to Windows Phone 7 developers we have also been producing videos and mini-tutorials on the topic, and I've started a series directed at experienced Silverlight programmers who want to add Windows Phone 7 development.  WP7 will also be a central component in the next iteration of the Silverlight HyperVideo Project

    Start To Finish and Best Practices

    This is near and dear to my heart, and I've been spending quite a bit of time trying to create videos and tutorials arising out of the open source Silverlight HyperVideo Project.  In this project we've embraced Test Driven Development, Agile and Kanban, MEF, MVVM and much more.  I've also been documenting RIA Services, LINQ and etc. but nearly as much as I will be in coming months.
     

    All of this can sound very defensive, and it isn't meant that way at all. What I'd like to do is strongly encourage a discussion about whether we're going in the right direction with this coverage (more more!) or whether we need to take a different approach, at least for some users.
    Please feel free to reply here and/or in the comments section at each of the links above.Thanks again Jesse Liberty 
    Thursday, June 3, 2010 1:04 PM
  • @batpox Our organisation depends on silverlight's pace very much. In order to stand out in this competitive world, our organisation embraces new technologies. Silverlight is top in the list. Lot of new technologies and products are depending on silverlight now. Ex: Web Applications, SharePoint and most importantly Windows Phone. In fact,we are looking out for silverlight 5.

    In order to keep the momentum going on, I strongly believe that it is required to keep up the pace wrt silverlight. Silverlight core runtime is well tested and is already deployed in production environments by many. Silverlight team has done really an awesome job to release new silverlight versions in short span of time. I agree that some of the tutorials are outdated, but silverlight 4 books are already available and more are coming soon.

    Blogposts of Shawn Wildermuth, Laurent Bugnion,Jessy Liberty, Tim Heuer, Mike Taulty,John Papa, Dan Wahlin, Victor Gaudioso, Nikhil Kothari, Justin Angel & several other silverlight geeks do have lots of updated silverlight 4 content. Check silverlight sessions from near by user groups. Check PDC09 & MIX10 video recordings. You can also get help from stackoverflow. There are lot of silverlight geeks out there on twitter and they are always ready to help us out. My recent experience was, I asked Victor Gaudioso on how to apply more than one bitmap effect on a silverlight element on twitter. He created a video tutorial for me in about 30 minutes and posted on his blog to help me out. Who on the earth is going to be more friendlier or more helpful than this?

     

    @Silverlight team.

    Silverlight rocks!!! Awesome job.Great platform,Fantastic tools,Excellent geeks and Fabulous team. Make Silverlight the ultimate platform to develop and experience.

    Thursday, June 3, 2010 1:22 PM
  • Thanks all for your responses, it really is appreciated. I would like to say I am in no way trying to put the team down. I've been working with Silverlight since version 2 beta, have hit many problems, and worked around (nearly) all of them. I only want this platform to be the best it can be. When I say go slow and tighten up, I do not mean make less frequent releases, if anything I would like more frequent releases. What I mean is that the releases should contain well thought out, extensible code that has been thoroughly tested in real life scenarios using best practices such as MVVM, IoC etc. Thanks again for your responses..., when I get off my current project I'm hoping to post more of these issues and workarounds I keep alluding to :)
    Thursday, June 3, 2010 3:27 PM
  • "That includes culling out old content (...)"

    I would suggest to avoid removing and moving to "deprecated" section or flagging as out of date. Just leave it available as it is sometimes better to see how things were and how they have changed. I'm no specialist but from my perspective taking a grip on a smaller part and then moving on with the changes while knowing the cause of each one is a nice helper.

    Thursday, June 3, 2010 3:28 PM
  • @funwithcoding.

    I hear your points. I too have been building Silverlight apps since version 2.0 as well, and I've been to most (if not all) of the sites you've mentioned. There is good stuff there as well as a lot of broken examples. Perhaps it is just the arena that I'm currently in (Silverlight 4 with RIA Services) that is looking a bit threadbare.

    If you are working with this, perhaps you (or anyone) can point me to a robust code example using the Release versions of VS2010, Silverlight 4, and RIA Services 1.0. And I mean a fully functioning one, perhaps using a realistic DB (e.g. AdventureWorks) and believable patterns for exception handling. All the ones I've found are either broken, use the beta (and therefore have too many breaking changes), are too simplistic (use a single table) or are very fragile (I can cause them to generate exceptions easily).

    Just a side note: I've been building MS products since NT 3.5. I build software for an industry that runs 24/7. I hate re-inventing code, so I always look for a good starting base for projects. I've yet to find it this time, which is why I posted.

    What I (and some others) are asking for is for the team to change the mix a bit so the tutorials and examples are better. I've no argument with your statement that it is a fabulous team. I guess these are the trade-offs that arise within a diverse developer community, and that the Silverlight team must always balance the Cheaper-Better-Faster paradigm.

     

    Thursday, June 3, 2010 4:17 PM
  • @batpox.

    WoW! You have been building MS products since NT 3.5. Thats awesome. Glad to know someone who has lot of experience.  

    You might want to check Nikhil Kothari's Book club application http://www.nikhilk.net/RIA-Services-MIX10-Slides-Code.aspx . It might be based on Silverlight 4 RC or beta because silverlight 4 was not released yet but it should be easy to migrate it for silverlight 4.

    There is a NYC Silverlight 4 Firestarter simulcast Event this saturday. You can watch it online too

     
    Start Time: Saturday, June 05, 2010 6:00 AM Pacific Time (US & Canada)
    Language(s): English.
    Product(s): Microsoft Silverlight.
    Audience(s): Pro Dev/Programmer.
    Duration: 300 Minutes
     

    Event Overview

    Microsoft Silverlight 4 is a powerful development platform for creating engaging, interactive user experiences for Web, desktop, and mobile applications when online or offline. First introduced in 2007, Silverlight has come a long way, with four major version releases in less than three years. By now, you’ve likely heard about the Silverlight platform. You’ve probably even seen a quick demo or two of an application running cross platform with some streaming media, or even a simple animation. But now you want to learn how to build real-world business applications using Silverlight!

    Join us a for a full-day learning event at the Silverlight 4 Firestarter in New York City. We'll spend the whole day bringing you up to speed on all you need to know about the platform to build Silverlight applications, with a focus on line-of-business applications. We'll cover how to use Microsoft Expression Blend and Sketchflow to make your apps look better.

    Firestarter Agenda (Pacific Time):

    6:00 AM – 6:45 AM  Keynote: The Silverlight 4 Platform Overview

    6:45 AM – 7:45 AM  Silverlight LOB Application Basics

    8:00 AM – 8:45 AM  A Little Fun With Media: Webcams, Mics, & A/V

    8:45 AM – 9:15 AM  Application Navigation & Windows

    10:00 AM – 10:30 AM  Sketchflow in Action

    10:30 AM – 11:30 AM  Blend for Developers

    11:45 AM – 12:45 PM  MVVM Pattern in LOB Applications

    12:45 PM – 1:45 PM  Doing Data with WCF

    Presenter: Peter Laudati, Senior Developer Evangelist, Microsoft Corporation

    https://msevents.microsoft.com/cui/r.aspx?t=4&c=en-us&r=1306266186&a=0

    I am sure that they will cover RIA services. Demo code is not meant to be robust code, they are designed to demonstrate a particular feature/concept. If they involve too many things, then it will be very difficult for the audience to understand and the actual concept the presenter is trying to explain will be lost. Though it would be nice to have,we cant expect exceptional handling and design patterns in demo apps.

    Probably what you are looking is a reference application. I also did not come across any reference application with UI design patterns, programming design patterns,exception handling, managing performance etc in one app.

    I recommend to Watch for the Silverlight 4 firestarter event. As it is a silverlight 4 event, we can anticipate some working silverlight 4 code on the blogs just after the event.

    Hopefully this will help you out. 

    PS: sorry! I cannot give out the application I am developing for my organization 

    Thursday, June 3, 2010 5:39 PM
  • Re: batpox:

    If you are working with this, perhaps you (or anyone) can point me to a robust code example using the Release versions of VS2010, Silverlight 4, and RIA Services 1.0.

    Hi batpox,

    You can have a look at
    Brad Abrams: PDC09 Talk: Building Amazing Business Applications with Silverlight 4, RIA Services and Visual Studio 2010

    http://blogs.msdn.com/b/brada/archive/2009/11/19/pdc09-talk-building-amazing-business-applications-with-silverlight-4-ria-services-and-visual-studio-2010.aspx 

    -----------------------------------------------------
    Re: There is good stuff there as well as a lot of broken examples.

    I agree with you when you say there is good stuff as well as a lot of broken examples...
    or should I say unfinished or incomplete series ... Nobody's perfect.  That was actually the case of someone
    who started an interesting series on Organization Chart...It started well but stopped right in the middle
    at the most important stage... then no follow ups... Why bother starting it in first place then?.
    You see I've worked in video production for 10 years prior to making the move in computer programming
    and the key of succes always was that when came the time to enter in final editing, about 99.9% of the job was already done...
    All needed to be done at this stage was the final video printout...Maybe that's why I'm a bit fussy when it comes
    to contents...

    Fortunately it's never been the case for Pete and Tim and Brad in their blogs. Always real good stuff and pretty well documented with
    sample code... Thank's a lot for sharing all your informations... much appreciated...

    I'd also like to take the occasion to thank John Pappa and all The Silverlight TV team, you guys
    have done an excellent job... I'm impressed... If you want a French/English station in the Montreal area and need a senior video vet (converted to ASP.net/SLV) Gimme a call... :)  

    Friday, June 4, 2010 2:44 PM
  • @funwithcoding

    Thanks for the tip. I had not been to that nikhilk.net link - http://www.nikhilk.net/ria-services-mix10-slides-code.aspx - and it provided me with the best example code (Book Club) for 'released' ria services so far. 

    Some info for anyone else that downloads it; you have to either get an amazon sdk account, or step through his code and add some logic to handle the fact that you don't have an amazon account. It is assumed you have the knowledge to modify the web.config, connect strings, etc.

    But once this is done it works rather well and shows some good techniques, including validation and MVVM (although for the life of me I cannot figure out the technique for two code-behind files for a single XAML). The video is also well done.

    I'm looking forward to rmore of the same. And if I get a useful app together I'll post it somewhere as well - perhaps Codeplex?

    Saturday, June 5, 2010 7:11 AM
  • Hi,

    Thumbs up for a great letter.

    I would say that the Silverlight development team has streatched itself way too thin. Not only it has gone deep very quickly, it tries to cover too wide a territory too quickly as well. On one end of the programmer audience spectrum, it tries to cover "programming for dummies" with lightswitch, and on the other it tries to do local hardware access extensions, etc.

    Take the lightswitch stuff as an example, it tries to hide a lot of complex logic from programmers. Frankly it could be interpreted as a little condescending to those who can really program. These days many programming tool developers seem to think that they can turn anyone into a good programmer if people would just confine themselves into these tools. But the truth of the matter is that those who cannot handle malloc and free cannot handle managed code without resource leaks, either. Nor can they just jump on lightswitch and all of a sudden design and implement good software applications. Tools like lightswitch simply do not provide any real value to programmers.

    At the same time, those who are in the trenches are not getting even some of the basics: asynchronous access to server data is great, but if you HAVE to get something done synchronously because of certain logical constraints, you are on your own. RIA is great, but if you do not have an EDM interface to your data, paging records, etc. will be hard as hell because now you have to reverse engineer RIA and implement your own IQueryable interface.

    A general purpose programming tool like Silverlight should not keep getting in the way for programmers to get things done. Right now it certainly feels like that it is just one huge hassle.   

    Monday, March 12, 2012 5:03 PM