Thursday, February 05, 2009
« CSLA .NET 3.6.1 Released (for Windows an... | Main | Silverlight online goodies »

I think Silverlight represents the likely future of computing for most of us. And by “us”, I mean both Windows and web developers on the Microsoft platform (and maybe beyond).

I think we’re at a point of convergence, where two industry trends are coming together in a way that makes Silverlight the most compelling answer for a lot of development scenarios. These trends are the continued abstraction away from the hardware, and now the operating system; and the likelihood that the web as we know it is nearing the end of its life, so we’re looking for the next big thing in that space.

Arguably, Silverlight’s primary competitor is WPF. But I don’t think WPF is the long-term winner. Another obvious competitor is Flash/Flex/Air, and that could be serious except for the fact that Silverlight lets existing .NET developers (and there are a lot of us) leverage our existing skills, while Adobe means starting over. And another competitor is Gears, which may be valid, time will tell (as long as I don’t have to do Javascript), but also means starting over and discarding all the .NET skills we’ve accumulated. And Gears, to me, represents the last gasping attempt to salvage the web as we know it – and I suspect that’s a lost cause.

Part of the appeal of Silverlight, and the reason it almost instantly gains traction in any conversation with my clients, is that it is independent of Windows. They like the idea that it works across Windows versions without worrying that Microsoft will fix some Windows thing and break their app.

Some of them, especially those that deal with the government, really like that it works on the Mac as well as Windows. They have cross-platform requirements mandated by either the market or by law, and Silverlight gives them the option of using .NET (which they love) to run apps on the Mac.

Another part of the appeal of Silverlight, across the board from what I can see, is that people don't trust ClickOnce. But they do trust the browser as a deployment vehicle. I suspect this goes back, somewhat, to Silverlight being independent of Windows, while ClickOnce is more vulnerable to the OS itself. Our overall experience with ClickOnce is that it works great 99% of the time. And then 1% of the time it fails for no reason anyone can figure out. Same target machines, same configuration, but it just doesn't quite work. Maybe, over time, we'll find out Silverlight is also unreliable in this manner - but early indications are that this is not the case.

If you look at the theme here, it is about escaping the OS and all its complexity. And that's not entirely surprising.

We build the first OSes to abstract the hardware. And they evolved over decades until they were terribly complex, and somewhat intertwined with the hardware (driver issues are the major failure point for Windows).

So we built runtimes to abstract the OS (starting perhaps with Smalltalk, then VB, the JDK and now .NET). And they evolved over the past couple decades until they are becoming terribly complex, and somewhat intertwined with the OS (installing/upgrading .NET usually requires a reboot of Windows).

It appears to me that we're now building smaller, decoupled runtimes that are a bit less complex, and that are intentionally decoupled from the OS, and are largely self-contained. It is just the next step in the evolution - though I suspect it does mean Windows (or any other OS) becomes substantially less relevant to most people.

By itself, I'm not sure that a runtime that is less coupled to the OS would be enough to drive Silverlight’s future. But there's another dynamic here too: the aging of the web, and the search for "what's next".

I was subscribed to the Usenet newsgroups in the early 90's, when they were discussing the future of the global network. When WAIS, Gopher and HTTP were competing (Gopher came from Minnesota after all : ) ). And HTTP/HTML won, because they really were the superior document viewing technology. A global version of lex; something that should have filled the role of PDF.

But as we got into the mid-90's, people started bastardizing and hacking this technology. Warping it into something far different from its original intent. And that's OK - but it is important to realize this was done ad-hoc, with little or no pre-planning or thought of proper architecture.

I know, I sound like a CS purist, but really the web, as we know it, is a stack of horrible hacks, all leaned up against each other like the world's biggest and most expensive house of cards. In short, the technology of the web is a mess. Just witness the insanity around browser versions,  the standards compliance farce, and the ridiculously inefficient ways we waste time/money building a web app that runs on more than one version of even one browser.

Yes, the web has transformed the world. And it revealed some very good patterns for software and usability. But it became mainstream over 10 years ago, and most technologies fade gracefully away at the 10 year mark. So it is time for the web (as we know it) to die.

The question then, is what comes next? Do browsers become the new standards-based OS? Or do we extend the runtime concept into the web, as a long-term replacement.

Google is betting on the former, with Gears and Chrome. They clearly hope/expect that the browser itself will be the next OS - the thing that makes Windows and Mac OSes irrelevant. Adobe is betting on the latter. They clearly hope Flash/Flex/Air will be the runtime that makes both the browser and the OS irrelevant.

Microsoft is playing a smart game, imo. Silverlight (with Mesh and Azure) represents a strategy very similar to Adobe's (but bigger), where a runtime may well make the browser and the Windows/Mac/Linux desktop irrelevant. At the same time, they've got WPF as a fall-back in case the core OS does remain important to the average consumer.

So I think these two dynamics - the desire by our customers to escape the shackles of the OS (not just Windows - the OS in general), coupled with the fact that the industry is looking for the next step in the evolution of the web itself - work together to make this the perfect time for Silverlight to be the hot technology.

And I do think this works against WPF, because it neither helps us escape the OS, nor does it represent the future of the web. And it works against Adobe, because their vision isn’t big enough, nor their established developer base large enough. And against Google, because they are still trying to shape the stack of hacks that is the browser into something reliable, and I suspect that’s simply unrealistic.

In short, I think Silverlight offers the power needed for smart client business apps, with the best deployment and navigation characteristics of the web. Sure, it needs to continue to grow and evolve (the search issue needs addressing for example), but I really think Silverlight represents the future of development for most of us.

Thursday, February 05, 2009 5:20:42 PM (Central Standard Time, UTC-06:00)
I could not agree more. After having spent a good year or two developing in ASP.Net and finding it far less productive than what I could have done in a Windows Forms application/WPF now - trying to figure out how to make things more Windows-esque through various JavaScript libraries, use of AJAX, or whatever one could get a hold of and then exploring CSLA with Silverlight, it's night and day.

The shining star for me is the ability to be able to interact with my business object on the user's hardware and have it be able to produce an interactive experience such as defaulting logic, validation rules triggering, undo, etc - versus having to try to duplicate some of this in the UI for experience sake.

The ability to do a lot of this on the client side without partial or full postbacks has me guessing that this may really lighten the load on the server side as well.

Also, no JavaScript. Concern about multiple browser support? That goes down as well.

Finally, I'm learning in a way that is condusive to staying in touch with the Windows' side of things (WPF).

The idea of developing in Silverlight makes me want to wake up in the morning. ASP.Net makes me want to go back to bed.

Chris
Chris
Thursday, February 05, 2009 5:38:55 PM (Central Standard Time, UTC-06:00)
I couldn't agree more.
Thursday, February 05, 2009 6:38:16 PM (Central Standard Time, UTC-06:00)
Rocky,

I`m in two minds about this. I would agree with the statement that

'Silverlight is the future of windows client development for business apps`,

..but not really that it will eventually make much of an impact on all web dev. As having .NET knowledge I'm happy to seem Win32/MFC/Winforms/ClickOnce(esp.)/WPF all head for a Silverlight future - that's fine.

The `rich vs reach` thing will last for many years though, and it`s like saying 'moving pictures will kill books` - its not a zero-sum game. Plus I think you`re being a little unkind to the underlying CS foundations of the web, despite the hacks. The concepts of addressability, statelessness and media have allowed it to grow pretty well over the last couple of decades. If Silverlight have at it's foundation 'addressability' then that would have been great (Canvas not being so opaque by default to the host'r etc).

Also, I think a lot of windows developers frustration with web dev may have come from trying to view it like a type of windows development, i.e. web forms, hide the viewstate, and the like. ASP.NET MVC is an example of where perhaps that tech was on the wrong lines for a while. There is a huge world of developers outside those that are into Silverlight though.

Anyway, apologies if I'm stretching what you're saying. Interesting times ahead for sure.

Cheers!
Friday, February 06, 2009 1:31:47 AM (Central Standard Time, UTC-06:00)
I agree 100%.

The only thing stopping Silverlight right now falls into 3 categories.

1. No runtime penetration: This is SL's biggest weakness, with no solution in sight. It could take 2 years before it hits 70% of browsers.

2. No rich text support: There are four main fod groups when it comes to presenting information. Video, Text, Graphics, and Audio(VTGA). It's impossible to be good if any of the four are missing. While text isn't missing, it's probably the weakest of the four.

3. 3D support/ WPF compatibility: These are not nearly as important as the other two, but 3D support and better WPF compatibility would certainly make for a more robust platform.

Other than that, it's quite clear to me that Silverlight is the winner by a good margin.
samcov
Friday, February 06, 2009 2:29:30 AM (Central Standard Time, UTC-06:00)
Nice writeup, but I think you are too quick to dismiss Flex/AIR as a serious competitor. I am an experienced .NET developer, and I just developed my first commercial Flex application. I didn't feel like I was "starting over" at all - the learning curve was short and not steep, and overall I was more productive and happier than I have ever been when developing web applications in ASP.NET.

In the end, I don't think the leveraging of existing .NET skills will matter as much as the overall experience that developers get when developing applications in either Silverlight vs Flex. And at least for Flex, I can vouch for the fact that Adobe has go it right.
Friday, February 06, 2009 5:21:46 AM (Central Standard Time, UTC-06:00)
I agree with a single reservation - when MoonLight (the mono version) supports Silverlight 2.0 functionality.

I have considered redesigning from ASP.NET to Silverlight - but some clients are using Linux so I would need to have this support.
Quango
Friday, February 06, 2009 6:57:48 AM (Central Standard Time, UTC-06:00)
I'm actually a little concerned about your silver bullet ideas :) Mostly after reading your 'the web is arcane' comment, which made me realize your really coming at this from a windows client app developer and not a web developer.

So although it will give a windows developer the ability to make a browser app in a sandbox, the benefits to a good web developer are... minimal.

Why do I say that?

I use jQuery, and with it's plugins, along with other libraries, offers a TON of UI support and control. Anything from file uploads, to complex inline grids, to validation, form entry, sliders, tabs, treeviews, ajax support, etc... the list is endless I tell you! It wasn't until I dropped out of asp.net webform crap and used asp.net mvc where I could really utilize jQuery properly, did I see everything that it could do.

Now, I do think there is one area where Silverlight excels: media. (although Flash seems to work fine there), and compile time code checks of C# vs. javascript.

But there is just so much more I can do with javascript than I can with Silverlight - and the html medium allows for quite the capability! It's very flexible and easy to change and work with.

Maybe I come at this from a web developer perspective vs. a windows application developer. For me I struggle to see why I wouldn't just use a WPF app if I wanted something on the client for an intranet app, and the problems with getting Silverlight installed on machines to run on the web - with the chances the customer would not install it are a big concern.

All the techies install this stuff like 'no problem', but the real users out there are going to wonder if 'Silverlight' is a virus, wonder why they need to install it - and perhaps will say 'not sure what this is, I'll move on' - and it's going to be hard to tell a customer they lost business because the internet user didn't know what to do.

I went to Disney website - it's full of 'RIA' - Flash videos, flash web, etc... I spend 50% of the time waiting for a flash control to load - it's very heavy. People who make Silverlight apps will have to come up with an extremely dynamic load on demand architecture or people will get tired of seeing '60%' done cute animations :)

I do with Silverlight was the silver bullet you make it out to be - but I have reservations - I saw this happen with applets, with activex, flash, etc... but pure good web development is still highly prevalent, and the guys that are interested would be more likely to just create a WPF app where they get the full functionality of .net, not a slice of functionality.

Lastly, the Silverlight look 'blurry' to me. Not professional. The tools are lacking. I installed Flex last night to compare, and it's controls are very professional looking and crisp - straight out of the box. Silverlight looks raw out of the box, and Expression is not intuitive at all. I don't know who designed Expression, but I'm not a fan of it at all.

Adobe did their editor very very nicely. I wish we could get Flex editor (Eclipse plugin eh...lol rocks) with C# support (not actionscript please - if I wanted Actionscript I'd do javascript and not build forms in Flex) in Flex, and I'd never look at Silverlight again :)

Let me just say - more work needs to be done in building business line of apps. If I read another 'how to draw a rectangle with a brush' Silverlight article I'll vomit. I need articles that explain how to provide all the rich capability I can get with jQuery.
NotSure
Friday, February 06, 2009 7:02:52 AM (Central Standard Time, UTC-06:00)
I agree with @samcov, as long as this is not a "standard" built into all browsers (like javascript), this will be very slow on catching on. I, for once, have never installed silverlight in my browser - because everytime I see that popup it just makes me mad that someone is forcing me to install something, as if I really need it right NOW view a News Article!
From the developer's side there are many great technologies you can use to create business apps - it's all about choice. The new mvc framework from microsoft is probably the right direction as it is preceded by many other successful ones like Django, Monorail and even once popular rails.

In the end however, I think rapid development should really not be done with compiled languages, and this is where microsoft is still way behind.
drozzy
Friday, February 06, 2009 7:16:07 AM (Central Standard Time, UTC-06:00)
I'm going to have to agree with Shourov on this one. I straddle the fence being on the .net development side mixing my webapps up with flash/flex. I'd have to say that if anybody feels like learning actionscript 3 is "starting over" as compared to C#, they'd probably better find a new career. If a programmer can't straddle multiple, very syntactically similar languages, then they are not going to last very long.

Also, in response to notsure, flash currently has better media capabilities than Silverlight. Flash has true HD support as well as fullscreen support. They've been streaming forever and partnered with some rock-solid encoding folks for some very small, but quality file sizes. They have a ton of experience in this arena and it shows. Microsoft had to pay big money for silverlight to be chosen as the technology to stream the olympics and the inauguration. Several of the sites that Microsoft paid off have actually switched back to flash.

That being said, I am hoping that silverlight will catch up and provide some competition to flex and flash. I still very much enjoy working with .Net on the server side as compared to java/ruby/coldfusion/php etc. The faster workflow would be wonderful, but right now I have to stick with what has the capability to deliver what my clients want.
Robert
Friday, February 06, 2009 8:22:21 AM (Central Standard Time, UTC-06:00)
I have to agree with NotSure on this one, Rocky. Developing apps with Silverlight, it just feels like a very unfinished product. Like it was pieced together by a team of unorganized developers. And from what I can tell, it hasn't been refactored - yet.
Mark
Friday, February 06, 2009 8:40:07 AM (Central Standard Time, UTC-06:00)
If Silverlight wins, the primary reason will be that M$ has a death-grip on this industry. Your "just stay in the M$ camp or you'll have to learn new skills" reasoning is more evidence of that. The large majority of people in this industry are just suckers and will do anything M$ says.
Russell
Friday, February 06, 2009 8:56:32 AM (Central Standard Time, UTC-06:00)
Great information Rocky, thanks.
Friday, February 06, 2009 9:13:46 AM (Central Standard Time, UTC-06:00)
I just have to say that I think Silverlight does have a good chance for becoming a powerful force for Rich Media Content. But WPF being it's main competitor? Dismissing Flex because .Net developers would have to start over? And then just a stream of arguements about how basically web based platforms are great? It feels like this was thrown together by someone who doesn't really understand Silverlight's market at all.

Flex/Flash right now, simply, is a better platform due to it's maturity, tools, and feature offering. Silverlight's advantage is in it's elegant workflow. There are already plenty of people who know AS2/AS3 so existing .Net knowledge being an advantage would be on a case by case basis, and the fact that Adobe's offering is still a more dominant option only lessens Silverlight's foothold in the mean time.

In 2 or 3 generations, Silverlight will be, in my opinion, a direct feature filled competitor of the Adobe offerings, but it's not close yet.
Ben
Friday, February 06, 2009 9:17:39 AM (Central Standard Time, UTC-06:00)
Have you actually tried to develop a Silverlight application? I just kept running into technical problems with Firefox and nasty XAML syntax problems. But the real kicker was learning that I had to simulate a hyperlink in XAML. WTF! What kind of Rich Internet Application framework do you have when you have to simulate something as basic as a hyperlink? Maybe this was fixed in Silverlight 2.0 but I suspect Silverlight is going to be as useful as learning VBScript for the browser or Visual J++.
Friday, February 06, 2009 9:38:03 AM (Central Standard Time, UTC-06:00)
Silverlight is to WPF as Ford is to Lexus. i'm putting my money and hopes on application virtualization...something like VMWare Fusion to get my WPF apps running across all x86 machines.
Friday, February 06, 2009 10:31:55 AM (Central Standard Time, UTC-06:00)
I want to reply to some of the themes in the comments.

First, I am coming at this from a business developer perspective. I do have a bias toward rich-client application development, because my passion is distributed computing. But my core perspective is on business development, which is an area where AJAX is weak, Adobe has few inroads and where Silverlight is (imo) the future.

Second, I am saying Silverlight is the future. Not the present. I certainly don't dismiss the challenges it faces in terms of browser penetration and feature set. And what surprises me is that no one has brought up the comparatively primitive state of the tooling today.

But having been a developer on the Microsoft platform for about 18 years, I've noticed that the one thing they do VERY well is come from behind. And they do it very rapidly, and very efficiently. It was nice of Adobe to figure out a lot of the adoption issues - that just means Microsoft doesn't need to re-learn them, and they can step to the front of the line. I've watched this time and time again, with spreadsheets, operating system features, dev tools and runtimes.

And yet these things take time, measured in years. Yes, it will probably take 2-4 more years before Silverlight is the preferred choice. And it will take years beyond that before it is the dominant technology.

And about that time it will be close to ITS 10 year mark, and we'll all be looking for the "next thing".

Third, whether actionscript is like C# or not isn't the whole story. Can I write a complete n-tier app using actionscript? Maybe I can - I honestly don't know. But I do know that I can create a solution in Visual Studio and use C# to build the client, the web server, the app server, and my data access code. All in one cohesive toolset, all with one language and one set of concepts (with the possible exception of SQL).

If you read back through my blog (and I suspect many commenters are first-time visitors), you'll find that I am a strong advocate for developers knowing at least 2 languages from different language families. Without that kind of perspective I think you cripple your personal growth. But that's not to say that I recommend using multiple languages in the same project, because that just decreases maintainability and drives up cost.

Fourth, yes, I've written a Silverlight app :) In fact, CSLA .NET for Silverlight is the first major development framework released for Silverlight, and for business apps it offers solutions to a lot of the very obvious challenges that exist in building a Silverlight app.

Finally, I knew I'd step on some toes with my comments about the web. But I stand by them. Yes, the web (as I said) has done some good things. But are you going to honestly tell me you think cookies, hidden fields, session state, mis-matched tags and all the other crap that's part of the web aren't hacks? Are you going to tell me that if you sat down to create a platform to build globally distributed applications that you would _intentionally_ create the mess we have today?

I spent years programming in the pre-web terminal based environment. When I was reading those Usenet newsgroups, it was on a VT220 terminal, linking into the newsgroup feeds through a 1200 baud modem bank, running some open-source Usenet software.

I _totally_ understand the attraction of server-based programming. I did it for a long time, until something better came along - specifically the idea that the user would have more than a dumb terminal. The rise of the web set the industry back 5-8 years, and we've only recently recovered to any decent degree.

And "decent" is relative. Even with jquery and other modern browser tools, the productivity and cost ratio for development is still not where Powerbuilder and VB were in 1997. They are getting close, but there's still a ways to go.

That's OK. Our industry is cyclical. We were host-based (mainframe/minicomputer), then client-based (Windows), then host-based (web) and now the pendulum is swinging rapidly back toward client-based with AJAX, Silverlight and Adobe.

Give it another decade and it'll almost certainly swing back to be more host-based.

My post here is simply stating that I think Silverlight will become the dominant client-based dev technology in this current swing toward the client-based model.

It will be a lot of fun to find out if I'm right or not :)
Friday, February 06, 2009 10:37:34 AM (Central Standard Time, UTC-06:00)
Great post and I agree with what you've said. One thing that you didn't mention that I think will be important for the future is that my guess is that Silverlight will become available on mobile devices (perhaps via Moonlight 2.0) in the future and that will be the "killer app." I blogged about it here as a follow up to your blog post.
Friday, February 06, 2009 10:44:34 AM (Central Standard Time, UTC-06:00)
For all the naysayers above...look at what Apple did with their iPhone UI and the App Store. You have a runtime that can run small applications and self-install/update and provides an enhanced experience over web applications.

Silverlight has the same possibilities for Microsoft. Except unlike Apple's iPhone that experience can be delivered to the Desktop, Web and Mobile (Silverlight 3 will run on ALL THREE). How will this be done. I think partly it will be done through Azure/Live Services. Microsoft can use the Azure Client to provide an end user with search/installation of Silverlight based applications in the VERY same manner the iPhone works except it will work not just on mobile devices.

Think about it...the iPhone UI is largely a mobile product. Adobe Flash/Flex is great, but they don't have resources like Microsoft does: .NET framework, SQL Server/Services, search component, enterprise services (PerformancePoint, SharePoint etc). Adobe can hook into their graphics performance suite and count on their market share...and that is it.

Silverlight has the potential to be HUGE, if Microsoft does it right. Imagine this scenario...you fire up the web/OS and start your search for sports scores.
Google Way: you fire up google put in your search find your link and get taken to that spot.
iPhone Way: (you can do the Google way) or fire up the App Store and find a sports score application.
Possible Silverlight/Azure/Cloud way: enter your search at MS. Instead of getting a bunch of results or apps you need to install...you are presented with a 3D spacial canvas with WORKING applications/media/articles that can be interacted with immediately. If its a video you can play it right there...or maybe its a blog article that you can automatically page through and scroll..or its ESPN's GameCast that you can watch progrress live.

The Silverlight/Azure/Cloud way is Web 3.0 in my eyes...and Microsoft is very well positioned to attain this with their suite of products.
Friday, February 06, 2009 11:12:07 AM (Central Standard Time, UTC-06:00)
Don't think so The public is pretty frustrated with Microsoft. We like and want to keep XP. Why cause it works stupid and it's classic Windows like Classic Coke. Vista just plain sucks! There is no learning curve for C# to ActionScript 3. ActionScript 3 is OOP. Well a little one but one that is fun and enjoyable. Flex has got Silverlight beat by miles and miles. It don't take a genius to figure out that Microsoft copied Adobe Flex like they do so many things. Adobe Flex 3 communicates with PHP, ASP.NET, ColdFusion, Java etc. etc. It is mature and proven and all the stuff that Silverlight is planning to add is already in Adobe Flex 3. Sorry Silverlight just doesn't cut it and the Expression Blend working with Visual Studio is to put it mildly clunky and it crashes from time to time. In Flex you can actually drop things into the project explorer like images and files. What a concept. Bill Gates releasing bugs is the height of pure arrogance and his butt in your face attitude is what is turning people off to Microsoft not to mention poor quality. The fonts in Silverlight final release are horrible and suck. Silverlight beta 2 had great looking fonts. What the hey is up with that. Microsoft is heading down the same road that GM went only in internet years. My next machine may be a MAC.
www.RandySolutions.com
Friday, February 06, 2009 11:28:54 AM (Central Standard Time, UTC-06:00)
You would have more credibility in your argument if your site wasn't probably one of the worst combinations of blinking, crap following the mouse-cursor, examples of what you can do wrong on a website the world has seen.

Stunning fail.
Hey Randy, The Blink Tag is Dead
Friday, February 06, 2009 11:52:05 AM (Central Standard Time, UTC-06:00)
>You would have more credibility in your argument if your
>site wasn't probably one of the worst combinations of
>blinking, crap following the mouse-cursor, examples of
>what you can do wrong on a website the world has seen.

Did you actually go to my site? I don't think I have a single blink tag, and certainly no cursor-following crap. I suspect you are visiting my blog post through a site that has illegally hijacked my content.

If you are going to blast someone's site - make sure you are actually looking at their actual site dude!
Friday, February 06, 2009 11:56:23 AM (Central Standard Time, UTC-06:00)
Great post! The only thing I would like to know - what is in your opinion Silverlight should have in the future to really "become the dominant client-based dev technology"? I have my own list and it would be interesting to compare them but it would be even more interesting to compare it with the "what's new list" in next SL 3.0 release.
Oleg
Friday, February 06, 2009 12:29:45 PM (Central Standard Time, UTC-06:00)
I believe the crappy site comment was directed at Randy, not Rocky.
Todd Stout
Friday, February 06, 2009 12:35:46 PM (Central Standard Time, UTC-06:00)
Rocky,
I think the poster "Stunning fail" was referring to www.RandySolutions.com in the post directly above his post. That one has some blink tags.

Your post had some excellent insight and it serves as motivation to keep moving forward with Silverlight. To be honest, your CSLA framework for silverlight makes it that much more of an achievable goal.

Chris
Chris
Friday, February 06, 2009 1:08:19 PM (Central Standard Time, UTC-06:00)
"Third, whether actionscript is like C# or not isn't the whole story. Can I write a complete n-tier app using actionscript? Maybe I can - I honestly don't know. But I do know that I can create a solution in Visual Studio and use C# to build the client, the web server, the app server, and my data access code. All in one cohesive toolset, all with one language and one set of concepts (with the possible exception of SQL)."

So, the goal for you is to be able to write entire app in C# and that is your goal ?

I can understand that - I think that is where many .NET developers want to be. I just think Silverlight is way too raw right now. Maybe Silverlight 3.0 along with VS editor support for building BUSINESS apps will be a goal of MS.

As you say, future. So I can spin the cystal ball as well and say - 'ok, future is understandable'

I think your next blog post should be 'how can MS build a better Silverlight for developers building Business apps'

1. Better form support
2. Clear fonts
3. Continue to build better WCF/Astoria support for ORM connectivity
4. VS editor support - geared toward common senarios for developers: a whole set of controls geared toward, ie. creating forms with validation.
5. Better support for breaking up the install - make it more dynamic
6. Better architectural support - do we build one big file, many files, etc...
7. Simple things like a 'please wait' control for all the asynchronous processing that is required.

I don't worry as much as sone actually about installing Silverlight, it is 4mb. But how long will that be - each release it will grow.

MS needs to not rush it though - Silverlight and it's tooling is very rushed and poor quality.



NotSure
Friday, February 06, 2009 2:37:59 PM (Central Standard Time, UTC-06:00)
If RandySolutions.com is the future of Flex, I'm going to agree with Rocky that Silverlight is going to do just fine! :)
Still Laughing
Friday, February 06, 2009 2:40:24 PM (Central Standard Time, UTC-06:00)
Hey "Stunning fail" poster - sorry about misreading your comment. It certainly created a twitter-storm though :)
Friday, February 06, 2009 2:42:08 PM (Central Standard Time, UTC-06:00)
Rocky

I got a great laugh out of your response to the criticism of "your" site when it was actually Randy's site that was being criticized. It really is a bunch of crap!

I do agree with your comments about Silverlight though - though I can see that a large number of web developers feel threatened. But really the whole advantage of Silverlight is that millions of Windows developers can transition into a web-deployed world, build fantastically rich UIs and not have to learn a whole stack of browser hacks required to build a modern web-based application.

I think, also, that the web has held up the potential of applications. Sure it's fairly simple to build an forms over data application, but once you get into building something more complex, something that requires a highly interactive UI, web development becomes unproductive and very limiting.

Craig
Craig Shearer
Friday, February 06, 2009 2:58:08 PM (Central Standard Time, UTC-06:00)
I was drinking the Silverlight kool-aid for quite a while. Don't get me wrong, I'm jazzed up about Silverlight. But I recently had the wind taken out of my sails.

We're trying to build an application that handles photography metadata. I figured Silverlight was the best bet to get this rich interactivity. One of the photographers called and during our conversation about Silverlight, I told him to go to the Hard Rock site to look at the memorabilia example. He couldn't load it, he said. He's got a PowerPC Mac - and so does a majority of people in his section. There will be no Silverlight for this and most everything we do. We have a bunch of old Macs still floating around the enterprise with no plans for upgrades.

So what to do? Force them to run some virtual product so they can get to my app? That probably won't fly. But Flex runs just fine on all of these machines, so now I'm taking the plunge into that area and I have to say, it doesn't look that onerous.

I think that Silverlight missed the boat on not supporting Power PC Macs and Linux. You need to encompass all arenas to get the real penetration. I've also seen the posts by zealots exclaiming that they're fine with Flash but will never "load a damn Microsoft product on their machine."

It's great to think about Silverlight/WPF if you've got that perfect set of machines that you're writing to. But how many shops or the public at large have machines that don't fit that mold?
Friday, February 06, 2009 3:25:14 PM (Central Standard Time, UTC-06:00)
the www.RandySolutions.com site is pretty much the crappiest site i have ever seen
fellow developer
Friday, February 06, 2009 3:33:04 PM (Central Standard Time, UTC-06:00)
If Flash - which has been around for a LONG time, has not penetrated the corporate veil yet, what gives me any thought that it suddenly will now?

Microsoft is putting marketing money behind SL for LOB apps. That will matter a lot in terms of how successful it is. You can agree or disagree to whether that is evil or not, but regardless of it's alignment (sorry D&D fans), it seems pretty darn likely.

For public sites using a ton of SL (i.e. B2C) - I am not yet convinced. I might be though - I just don't have enough evidence in to support it one way or another.
Aaron Erickson
Friday, February 06, 2009 4:03:18 PM (Central Standard Time, UTC-06:00)
randysolutions.com *really* is one of the best straight candidates for a simple link on a theDailyWtf.com posting I have ever seen!

Go randy! XD
Moridin8
Friday, February 06, 2009 4:07:50 PM (Central Standard Time, UTC-06:00)
I'm busy skilling up on Silverlight because I think it's an excellent technology. But I don't see it as dominating the future. There will remain plenty of alternatives for a good while yet.

I think Silverlight will become the obvious choice for LOB apps inside any network where you can control the desktop environment - corporate nets. But Java skills remain wide spread and will stay as a viable rich client for those shops that are Java oriented. The same old Java/.NET dichotomy will go on. I doubt Flash/Flex will make much headway here since it's not a full stack solution.

For RIA, Flash is top dog today. The Flash toolset is excellent. But Silverlight will give it strong competition and it will be exciting how the battle unfolds. I think this is where the Silverlight team has their focus although I would prefer to see more LOB oriented features and WPF parity.

There will always be a need for rich clients albeit maybe diminished from the present. Games and authoring environments. Anything dealing with local data. I believe the OS will stay relevant because of these needs. I don't see WPF as competing with Silverlight but complementing it.

As a developer, I agree with the ugly mess of the Internet stack and the pain in writing browser apps - that's why I switched to RIA. But the reach issue is compelling and it won't go away. I'm surprised at how good some of the Web 2.0 style apps are. Google will champion it and demonstrate how far it can be taken. I would like to see the IETF come up with something better.

So I would argue we're not at a point of convergence. Each technology has its niche and will remain in use.
Friday, February 06, 2009 5:42:29 PM (Central Standard Time, UTC-06:00)
"I think Silverlight will become the obvious choice for LOB apps inside any network where you can control the desktop environment - corporate nets"

Why? I would say, clickonce with full WPF support would be the choice over a limited subset of Silverlight on a LOB app in the network.

If you have that control, why get a sliver when you can get the whole enchalada?
NotSure
Friday, February 06, 2009 6:10:21 PM (Central Standard Time, UTC-06:00)
Because there is an perception that webapps (which is typically how people will think of SL) - are easier to deploy than windows apps (under which WPF gets categorized). Personally, I think this perception isn't entirely correct, but in my experience, it certainly exists.

Not saying one or the other is better - WPF has it's advantages, as does SL, as Rocky notes. But there is a perception issue that plays in.
Saturday, February 07, 2009 11:35:50 AM (Central Standard Time, UTC-06:00)
Yes, "Click Once" is still one click too many in some places :-)

But sure, some corps will go with WPF and Click Once. It has a place. But if you're an ISV writing a LOB app, Silverlight promises greater platform independence, a productive programming model and the same .NET skills. Might even be able to take some of the codebase to mobile devices in the future.
Saturday, February 07, 2009 2:27:29 PM (Central Standard Time, UTC-06:00)
I'd like to see more on building business line of apps with Silverlight.

I just picked up John Papa's 'Data-Driven Services with Silverlight 2' and I'm really impressed.

1. Probably my only concern is getting the Silverlight installed on as many computers as possible, to the point where users don't even think about installing it - it helps to have MS backing this - I hope they can push out a windows update at the very least to get Silverlight on as many machines as possible - that helps us developers

2. Architecture. I'm still trying to wrap my head around the best approach, ie. let's say an internal intranet business app that has '20 forms', grids, navigation, etc... do you build one large Silverlight app, many apps, controls on webpages, etc... That to me is where I think it needs to be worked out. I'm sure the guys in the trenches right now are dealing with those same questions.

So, basically, Rockford, do you see that of intranet app being written in 100% Silverlight vs. any web application development ?
Monday, February 09, 2009 12:38:45 AM (Central Standard Time, UTC-06:00)
As a C# .NET developer who is actually using Flex at front end I can say that SL has a long way to go, but not that long. I was a MS fanboy and it took a lot to leave Visual Studio and stat using Flex builder but before long I was hooked, no business is going to wait 2-3 years until SL is mature enough and compares to Flex.

Problems with Flex:
- AS may be like C# but it takes a while to get used to the IDE FlexBuilder ($599 for Pro), first weeks will be full of cursing as its NOT up to par with Visual Studio :)
- Syntax is about 3% of the challenge, familiarizing yourself with Flex framework after you've just spent 7 years of .NET is a little discouraging.
- It's very hard to do things that are not out of the box, Flex runs as a 24fps Flash player and there are a lot of optimizations that delay processing of controls and make lifecycle of a Ui component very hard to understand and control.

What great about Flex:
- Everyone HAS Flash player, we ran a IE only app and it was easier to rewrite it all in flex then bring it up to standard so it will work xBrowser. In a SAS world this is important, no sane CEO will say build an app that runs on 50% of browsers, no one cares about technology needed to run an app. People are used to HTML just being able to load anywhere.
- Adobe abstractions are GREAT!!! there are 100's of things that are neatly wrapped up for you so 97% of the time what you need is right there in toolset.
- It is much like SL, MXML is similar enough to XAML/HTML that it can be picked up fairly quick.



Tom Gruszowski
Monday, February 09, 2009 6:15:30 AM (Central Standard Time, UTC-06:00)
Here's my take on this subject

I have been developing 'Business Applications' that run inside the corporate networks of large corporations and banks since 2001.

When .NET arrived, it was hailed as the end of the 'DLL Hell' model for deploying apps across the business, all the user now needed was a browser and a url to point to.
Over time, the business users demanded more and more from their 'browser applicaitons', so that they looked and felt more like 'real' statefull apps like the Microsoft Office apps they were also using in their day to day activities.

The main reason that Silvelight will now 'own' this space is because of the rise and fall of AJAX technologies.
Essentially, what happened with the introduction of Atlas and Ajax for ASP.NET, is that business analysts working inside big corporations began trying to impress the business's user community by showing them web applications with a stateful 'fat client' look and feel via the new wonderful AJAX extensions. Users bought into it big time, and all web development quickly became very much AJAX oriented. However, this has become a big mistake, because now our ASP.NET applicatin development teams NEED to include javascript guru's that have an intimate knowledge of the Ajax Control Toolkit code on codeplex in order to get any apps to run in the way that they've been promised to the users. Projects that should take 3 months are now taking 6-9 months because of the painful process of working in a ASP.NET/AJAX/DHTML/CSS/Javascript world where nothing really works right.
The users are hooked on the 'statefull application in a browser' idea, and now want a solution that really works.
Silverlight 1 didnt cut the mustard, but Silverlight 2 is the right solution, and we will see a wholesale move to Silverlight within the corporate business application space over the next 12 months.

I think plain old HTML will continue to dominate the public web space until Google (and other search engines) find an effective way of spidering silverlight apps. As anyone who has an important public website knows - it's all about the SERPS.

Dean Chalk
Monday, February 09, 2009 11:39:20 AM (Central Standard Time, UTC-06:00)
Are we talking about Silverlight as a future platform for desktop (or intranet-facing web) applications, or Silverlight as the future of public websites?

As a future desktop platform, yes, it could do well. As a replacement to HTML for web apps, no. I'm not interested in Silverlight for desktop apps, which doesn't seem to be under any discussion, so I'll focus on how Silverlight stacks up for web apps.


Silverlight on the web pros:

* Can build the A++ quality app hosted in the browser.

* RIA features (video/vector graphics/etc)

* Code in C# (or if desired, another DLR language), harness the DLR. You don't have to learn JavaScript.


Silverlight on the web negatives:

* Silverlight will never be indexed by search engines. This is one reason why URLs (URIs?) are important. Same problem with Flex. Read this one again. This single bullet point will eliminate Silverlight as an option for most public-facing websites. Let's round up and say "you won't be able to use Silverlight for any public-facing website."

* Your Silverlight app will be probably ugly. Web designers don't know XAML, and there is no such thing yet as a "Silverlight designer" to work with XAML as anything more than simple vector graphics. Yes XAML can be exported from Illustrator, but try building a form from an exported Illustrator drawing. Keep this in mind when dreaming of building your A++ Silverlight app.


We can talk about the future of Silverlight as well, but make sure when you do so, that you remember to look to the future of the web also, so as to make a fair comparison:


Future web:

* Browsers will be standards-compliant--no more compatibility nightmares! IE6 will die soon, and with it, many compatibility errors. IE7 will die relatively sooner than IE6 due to Microsoft Update. Microsoft Update didn't start running automatically until XP SP2.

* All mobile platforms will run standards-compliant browsers, out of the box.

* SVG will be adopted by all browsers, thus vector graphics will work in HTML. FireFox already renders SVG.

* HTML tags for embedded sound and video will exist.

* JavaScript engines getting faster by the day.


Things to keep in mind:

* ASP.NET AJAX (AKA Atlas) is not the only JavaScript framework out there. Someone above complained about AJAX and was actually complaining about using Atlas on WebForms. Everybody complaining about AJAX needs to try jQuery (which is Microsoft-supported now, remember) and come back and tell me if they still hate JavaScript. jQuery is best if combined with ASP.NET MVC so that you can more easily set a control's id or class attributes, making the selectors easier to write. Try it, you'll be surprised by how easy it is.

* The web is a larger ecosystem than Silverlight. By about 100x right now. This means there's better training, better books, better third-party tools, better everything.

* If you heavily invest your time learning Silverlight, you're locking yourself into the platform. Web skills transfer.
Monday, February 09, 2009 4:07:34 PM (Central Standard Time, UTC-06:00)
This is that same stuff I heard about flash around 2000ish. Plugins are great and all but it is a lot harder to reinvent the web when you want to shift its entire population to a new standard, and no one is real excited to shift to a standard controlled by one company, be it Microsoft or Adobe. You might as well declare second-life the future of the web.

I think we are getting better at using the protocols we already have and that is the future. Every year we learn patterns that allow us to put more magic in to our work with out resorting to a big 3rd party system. Look at how fast frameworks are coming along, Jquery, Django, Symfony, Cake.

I thing that the adoption of standards is coming faster again. The new versions of css and html will open up even move options.
Egon
Tuesday, February 10, 2009 7:10:03 AM (Central Standard Time, UTC-06:00)
OK, I come from a completely different (old) school and hopefully will add some different thoughts.

Like it or not, Silverlight is here to stay. Adobe opened the door for Microsoft by coming in under the radar and fooling the development community that ADOBE (Flex) was NOT a FAT CLIENT technology. Developers flocked to Adobe in droves because it overcame the many limitations of POWA (Plain ol' Web Apps). Adobe Flex is a great product, that solved a big problem. That problem, without questions is that Web Applications (IE) as UI for rapid transactional application sucks. I don't care what technologies have been put together to make the web sexier (and there has been some great strides here) it is still a cumbersome mess - FOR THE USER. Sure you can do anything with libraries/common routines/open source but it's nearly always a HACK and users have not be so easily fooled. Enter Adobe Flex/Silverlight.

If Silverlight was first, it would have been slammed as a Fat Client architecture and wouldn't have stood a chance. Look at what has to be loaded into a web app now to get it to work well. SIlverlight and Adobe Flex are still too fat Slow but that'll change quickly. By accepting this "FAT CLIENT" approach, no one can now argue that Silverlight is also a Fat Client architecture (through yet another plug-in). Using the turning a Ford into a Lexus analogy differently, you CAN turn a Ford into a Lexus. However, supporting the parts that have to work together to make a great product will be hard (breaking/suspension/torque/stability). So, why not just buy a Lexus... Well, to me, the only race is one between Adobe Flex and Silverlight. If they both win, that's OK with me because FAT CLIENTS are back - just in the disguise of the critical ZERO DEPLOYMENT. Thank god for that, web apps suck. IE, Firefox, Chrome are just containers for the big boys :)
Wednesday, February 18, 2009 9:05:50 AM (Central Standard Time, UTC-06:00)
Whatever the new technology we will use, one thing is clear. HTML IS DEAD. HTML is a document format which has been hacked to insane ends. Building applications with HTML is similar to building an application within a word processor. HTML was created for document publishing and linking, not for interacting with users and executing processes. Simple tasks accomplished with application code running locally often take heroic efforts to duplicate within a web page. Web page development tools have become increasing better at hiding the underlying nature of HTML from the developer, but it is impossible to escape the nature of HTML completely.

FLEX, WPF, SilverLight, or whatever else. I do not care, just end the nightmare that HTML has created.
Luke
Sunday, March 15, 2009 6:17:50 AM (Central Standard Time, UTC-06:00)
You guys are so eloquent!

HTML blows. I am SICK TO DEATH OF HACKY NONSENSE.

I hope SL takes off as it just plain makes sense. To me anyway.
nhwilly
Comments are closed.