While this not necessarily a technical question, I believe it will help a lot of developers (including myself!).
With Silverlight 4.0 and Flex 4.0 both in beta, I thought I would put out an open question to the community and see what everyone likes and dislikes开发者_如何学运维 about each framework and why. I've worked with Flex in the past but have decided to take another look at Silverlight with the new version being released.
Thoughts anyone?
Edit: Made it a community wiki. :)
My take on Flex 4 : the xmlns has changed which gives it a bitter twist of discomfort (learning a new language is not so easy when they change the basics every other version). As much as I must acknowledge Microsoft is pushing hard with Silverlight in general and 4 in particular, when it comes to browser plugins, flash rules.
The best thing about flex is the insane community. Just google what you need and its right there (including this site of course) waiting for you. The same goes for examples, libraries, open source projects, ...
Without drifting in a religious battle, I think it will come down to professional adoption of either or. I started development 28 years ago, and I have seen so many technologies from Microsoft come and go, that I will trust the incumbent. My vote goes to Adobe.
I'm working on my first Silverlight project now, using Silverlight 4. I've previously worked on a couple very small projects using Flex 3 (not yet used version 4). I've been a Java Swing developer for the majority of my career until now. Because I'm pretty new to both Flex and Silverlight, I'm going to comment at a high level :)
In my experience, Silverlight is much better. If nothing else, the development experience alone is enough to make me choose Silverlight. I HATED Flex Builder. I've never used a crappier IDE. There were a lot of small problems but the one I remember hating the most was how it wasn't able to search for all references within my project of a specified varible or method. There were times it wouldn't even list all references within the file from which I started the search!! Others that I worked with had problems and hated it too. To be fair, I've heard Flash Builder 4 (the next version of Flex Builder) is better, but I haven't used it. Also, to again be fair, I was not a power user by any means. I was just learning the technology.
Visual studio on the other hand, has been pretty good. I'm still not used to it (and I find myself missing Idea from my java time) but it seems ok so far. VS2010 is sluggish as hell though, and that drives me nuts. So many times it will just lockup for 5-15 seconds while it processes. Or, I'll kill the running debugger and it will take 10-20 seconds to switch back into develop mode. Sometimes, even though I have it set to show me the XAML, not the design view by default, it still seems to take some time to load the design view even though its not going to show it to me. I'm running an average laptop with WinXP, but I still wish it was faster. Still, this sluggishness is not a deal breaker by any means.
As far as the languages go, at a high level, they both seem very capable but Silverlight is much more expensive overall. We have to spend zillions of dollars to buy all the fancy stuff like VS2010, Expression Blend, Telerik Controls (these are optional). To me, it felt that Flex was much cheaper to get into. The IDE was a lot cheaper than VS and there wasn't much else to buy as I recall.
Programming in each has been pretty nice. I like the concept of an XML presentation layer and code behind that to perform business logic. They both implement this well. I do prefer working in C# than ActionScript, but that might just be a personal thing.
I find both have good web resources to accomplish goals. I am able to find help on blogs and various other resources for both. This might not have always been the case with Silverlight, since it is newer, but it seems to be the case now, in my experience anyway.
One other thing I'll mention is Blend. I'm just learning to use it now, and it seems complicated, but also powerful. I like using it to customize my components, and I get the feeling that it could do a LOT more than I use it for, if I would take the time to learn it.
Anyway, sorry to not get more specific, but hopefully some of this will help.
I've never done and app in Flex yet, but I've done a couple in Silverlight. Using a tool like Visual Studio really makes the programming headaches go away. It's a superb IDE. Browser support for Silverlight is still a present weakness, in my opinion. But a lot of the features Microsoft has introduced, such as DataBinding and RIA (or WCF Duplex messages) really does speed up development. Really it all depends on the application you're making.
With the tools and .NET framework on the side of silverlight, I'd go for silverlight for sure.
I have tried Flex 2, it was a big headache at the time, things might have changed now. Still knowing that Microsoft is backing the technology makes it feel much safer than Flex.
But that's just my opinion.
I don't know when the companies will realize the pain of the developers. I saw Flex 4, but was not happy as there seems to a lot of changes in coding style, yet again i have to learn something new to produce the same output.
These browser wars are making the AJAX and CSS developers worldwide to look into Flex and Silverlight thing.
精彩评论