Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
There are several people about (myself being one of them) who have been developing RIA for a while now using Flex and AJAX. However Silverlight is now on the scene and worth picking up.
Question is, as someone who has never looked at .NET before, should I just dive in Silverlight and try and make up the bits I'm missing, or start somewhere else in .NET in order to get a foundation first?
I firmly believe in learning foundations first. I would start off by writing console apps - get the hang of collections, IO, the language itself (whether that's VB or C#, or even something else).
It's probably worth learning a bit of "normal" WPF after that, on the grounds that it may well be easier to experiment that way than with Silverlight itself. (I can't say I've written any Silverlight myself yet.)
If you dive straight into Silverlight, when you run into problems you won't know whether it's because you're unfamiliar with the language, the core platform, or Silverlight itself. You'll take a while longer to get going with my suggestion above, but once you've got going it'll be a much smoother ride, in my view.
I'd repeat Jon Skeet's suggestion though I wouldn't learn WPF first.
Silverlight is more of a subset of WPF and it's missing a few things which means your design "style" needs to be slightly different. (Commands and not being able to bind to visual elements are the two I've found to make my design slightly different from a WPF app)
A grounding in a .Net language is essential (C# is my preference, although I've also used VB.Net and IronPython which are both very useful languages). WPF/Silverlight is another layer on top of that.
First, do a quick assessment on what you want to achieve with Silverlight.
If you are planning to create applications that will take advantage of Silverlight's multimedia capabilities, you might want to play around with Expression Blend first and then study .NET.
If you're planning to build "Line fo Business" applications then you should learn .NET first.
Once you have a good foundation in .NET it would be relatively easy to develop applications that will leverage the power of Silverlight.
The Silverlight website's Learn Page is a good place to learn Silverlight specific stuff.
A good book that I can recommend for someone staring to learn .NET using C# is John Sharp's "Microsoft Visual C# 2008 Step by Step" by Microsoft Press.
I would suggest you to keep watch on Technobits.net's Silverlight page. That will give you daily updates in Silverlight. See following link.
http://www.technobits.net/technologies/silverlight/
Related
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
No, you did not misread the title ...
My company has been doing Visual Studio 6/MFC/DCOM application for a while now (remember : these were hot back in 1998) and I have now the opportunity to start a new application, a new product.
For a lot of reasons (good or bad or both) we want to stay with Microsoft technologies.
Our end customers are big companies that are used to use Windows and desktop applications. For the most of them, they are leaving (or will be leaving in the next year or two) Windows XP for Windows 7 (don't even think of Windows 8).
Qualifying myself of "average developer" I start playing around and came to a working proof of concept build with:
Visual Studio 2010
WPF - with the help of Telerik Rad Control for WPF (like it or not, this is not the question)
MVVM
Prism
I'm quite happy with it but ... there is a bunch of new buzz words with the upcomming Windows 8.
WinRT
Metro applications (there is a preview of Rad controls for Metro)
XAML or HTML
There is also a lot of bad intentions that are given to Microsoft:
WFP (and even more Sylverlight) will die
The desktop application will die to be more web oriented
etc.
My question would be : What would you do in my situation?
I'm expecting answers of the type:
I would definitely do that
You could do that this way, so it won't block you to update to something else later
Technology X let you do this while Y this. In your situation I would stick with X for this reason.
Thanks
I've been developing since the mid-90s, so I know where you're coming from. I used to work that same technology stack. Lately, my UI work has revolved around WPF/Silverlight/Prism/MVVM and MVC/HTML/CSS/JQuery. It looks like your organization's technology skills are geared towards desktop apps, not browser-based. I think the natural progression will be using XAML-based development, specifically WPF. Web-based development, I think, will lengthen your new app's development time because it introduces a lot of technologies that may be unfamiliar to your group.
The fear people have these days, as you mention, is that XAML-based apps are on their death-beds. This may be true, but not anytime time soon and you'll have an option to convert them into WinRT/Metro (C#/XAML stack), if you believe Microsoft. Some caveats with this approach:
XAML takes a while to learn
MVVM and PRISM are difficult concepts for many devs
Not a lot of devs with these skills when compared to the web-stack
WPF, paired with PRISM in an MVVM pattern, is a powerful desktop development toolkit that can really make you successful with your new project
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
After Silverlight 4.0 has been released with new WPF, I am kind of confused with these technologies: Silverlight? WPF? Windows Form?
The main motive that we want to achieve for BIG business project is following:
Performance
Security
And platform independent**
If I consider all above three points then only Silverlight is the option as I don’t want people buying emulator on MacOS for WPF or Windows Form.
Now how good the Silverlight is for Business applications, I was completely against when Silverlight 2.0 was in the market but now it is Silverlight 4.0 and they have provided many new features (but still basics) that is required in any challenging business
applications.
Comparing Silverlight and WPF
-* Silverlight and WPF are very new technology and if I'd to compare from these two then I'd prefer WPF because it can be considered stable and mature. But it is not same as Windows Form.
-* If I go with Silverlight then I am sure about keep updating to the latest version of Silverlight. I remembered when we were developing software for version 2.0 then we'd to create our own framework with dynamic loading DLL, and then Navigation concept. But everything was got changed once Silverlight 3.0 came. I don't want this to be happening with this new product.
-* If we go with WPF then we don't get the platform independence.
Now, why not we just focus on making WPF and then move to Silverlght. As someone (Tim?) from Microsoft has said that the idea is to make Silverlight as close as WPF. But if that is the case then why XAML structure is different; I will not be convinced with by saying that .Net framework for SL is too small.. well the difference is coming from the namespace ?
I was searching on this subject and found "Microsoft WPF-Silverlight Comparison Whitepaper v1.1.pdf". This guide is very good that gives you ins-outs about how can we build common apps that runs on both. But again, it is comparing Silverlight 2 and not 4.
I am sure many architect/ developers/ project managers must be facing similar kind of questions in their premises and wants to initiate this discussion, if it has not been :).
We've still got 2 weeks to make this decision, so I'm expecting everyone to participate, gurus?
All three of the technologies can be made both performant and secure, depending on your definition of those terms. Of the three, only Silverlight is really cross-platform. However, I'd have to wonder about the finer detail of your requirements before I could make any kind of informed decision...
Performance is an important consideration. What part of your application are you expecting to be a performance problem, and why? Knowing this helps you understand how the technologies might solve the problem.
Security could mean anything. Do you have data that you need to secure? Does the application itself have to run in a privileged environment? Is it a multi-user application, a networked application, an application that is likely to cache data client-side, etc... You really can't dismiss any of the technologies for being "insecure" - unless you can more tightly define what your vision of security is.
What level of cross platform support do you really need? How much are you willing to spend to achieve it? Most businesses say they want to support multiple platforms, but the cost is often prohibitive. If you're insisting on a .NET project then I'd wager that either your technical department or your business managers aren't really committed to cross-platform and it's not really going to happen. So, do you mean "Windows XP/Vista/7", or do you mean "Windows/Mac/Linux?"
Anyone can throw an opinion on here on some generic aspect of the three technologies, but there's really no clear answer unless you have much more detailed requirements to work with.
Silverlight has become a much more mature platform since version 2.0 and has been used in anger in several large applications including the last Olympics and the WorldWide Telescope Web Client, you can search online for more case studies.
For Business applications with Silverlight 4.0 and VS2010 there is a Silverlight Business Application Template you can use to give you a head start, here is a walkthrough: http://msdn.microsoft.com/en-us/library/ee707360%28VS.91%29.aspx
Silverlight is also the only one of the three technologies in your title that is supported on an OS other than Windows (it's supported on the Mac and via Mono on Linux) so I'd say overall it's the best fit for your requirements.
Silverlight is still a web technology, so it does have some of the constraint you can have with normal web application, so if that is a show-stopper, then go for WPF. As for Windows Forms, I'm pretty sure it will live on for quite a while, but WPF and silverlight are usually better to my opinion.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
At company I'm working, new project will be started soon. I'd like to use Silverlight 2.0 but I need to convince my CEO and Photoshop/AfterEffects guy for using Silverligt for upcoming project. These persons are - let's say - rather Flash / Apple oriented, but for me as a .NET developer Silverlight seems to be proper solution :-)
I have a list of advantages from developer's point of view but I need to show for these non-technical persons any working demos .
These applications could be business applications, but the most important features are:
fancy graphics - not a developer manufacture,
comfortable and interesting UI,
functionalities which are difficult to implement in Flash
Thanks.
I find that folks really like Quince:
(source: sparklingclient.com)
One of my favorites is Centre des Usages:
(source: sparklingclient.com)
Telerik have a couple of nice looking demos of their controls
This silverlight showcase will probably have something you can use
There are some killer visual effects in SL3:
http://blogs.msdn.com/henryh/archive/2009/03/20/mix09-the-gratuitous-graphics-demo.aspx
That demo is pretty awesome. Be sure to mention out of browser support, which you can't do in flash (though I understand other adobe technologies support OOB). Other posts on stack overflow have pointed to there being more 3rd party controls for SL than Flash but I don't have any stats to back it up.
Surely you don't need Demo's of fancy graphics or comfortable and interesting UI's. Since this would be by design and would be implementable in Flash or Silverlight.
Surely things like the fact that existing programmer knowledge can be extended into the rich UI because you can reuse your .Net skills would be the key thing. Being able to deliver functionality rather that just "flash"....
The showcase above is quite good, but the argument is still going to come back from the people who are used to using flash by saying "Yea, but we could do that in flash".
You need to show them what additional functionality Silverlight would allow for which you are battling to implement using flash. The down side is that if you can not do that, and you have a company with resources that is already trained in building things in Flash, you may be better off staying with Flash.
Becoming more familier with Silverlight yourself would help you to explain the strengths of SilverLight and all the good things. Time for that Hello World Silverlight app to be created.
Most of the things that you can do in Flash/Air can be done in Silverlight and vice versa. even if they are some things you can do in one but not the other, they might not be applicable to your scenario. picking the tool is one task. Assuming you have picked Silverlight then comes the difficult task do you use Code Behind, MVP, MVC, MVVM, Prism, Caliburn, SLExtensions. and once you pick the pattern you use, you will soon find there are n-variations of each with no definitive guidance
I would say if dev's are familiar with .net go with Silverlight
I met the CEO of this company on Tuesday, so I have no prior affiliation or vested interest. (But, he was a nice enough guy, so I'll give him this free plug.) Both the apps you see on this page are pretty cool, and the first is a Silverlight app.
http://www.atamagroup.com/
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
WPF is positioned as a successor to WinForms, but given Microsoft's practice of abandoning toolkits (and what I perceive a s"bloat" in WPF), are there any recommended alternatives?
I don't think you need to worry about WPF being abandoned. WinForm was around for a long time, and WPF is the replacement.
Bloat? I don't know. It seems like a huge upgrade from WinForms to me. If there's bloat it's always going to be there because underneath everything is the Win32 API. Until that gets rewritten from scratch I don't think anything will be perfect. And since every toolkit targeted at the Windows platform has to deal with that, I had rather go with WPF and ReSharper.
Another sign Microsoft is serious about WPF is that it's getting used to make Visual Studio 2010. XAML seems to get used by more than just WPF (Workflow Foundation, Communication Foundation).
I've been coding in WinForms for the past 5 years and I was a bit sceptic of WPF too at first. But after reading a few books and trying out my first application in WPF I'm starting to see the beauty of it!
I keep amazing myself at how little "glue" code is needed in a WPF application compared to how I would have done it in WinForms. Here's an example: I had to show a simple histogram. In WinForms I would have written a custom control and handled the rendering myself. In WPF, I did it all from xaml without one line of code! I just bound the data samples to a list box, replaced the listbox's layout template to an horizontal stack panel, and replaced the item template to rectangles which height is bound to the sample values!
MS does not have a practice of abandoning toolkits (WinForms, MFC, ActiveX and Win32 are all still being actively developed) and the "bloat" is actually new capabilities you may not need right now but there's a good chance you'll need in the future.
If you don't want bloat and use only an API that will be impossible for MS to stop supporting you are more then welcome to work with the Win32 API directly.
I believe 4 out of 5 developers never ever look beyond the surface of a technology, they just want to drag & drop a few controls, write a few lines of code and get something up & running, maybe googling for some samples to help iron out a few kinks, and that's it. To such folks, bloat is not a word in their dictionary.
I, for one, prefer to look under the covers and really figure out how a technology actually works before jumping into writing code using the technology. Today, I spent an hour or so to investigate how the WPF built-in commands work, and with the help of reflector i managed to track down how a simple built-in Cut command is executed for a plain-vanilla textbox control, and guess what, by the time the text changed event is raised for a cut operation, there are around 30 calls on the call stack, isn't that code bloat?
WPF certainly has many powerful functionalities, but they do come at a cost. In some ways, i feel that WPF is to WinForms what MFC is to Win32 API; both WPF and MFC has the word "Foundation" at least :), but it would be interesting to watch if WPF will come to the same fate of MFC.
It depends on your favorite programming language, but Qt is a good Gui toolkit for C++. It has impressive features, is free and as platform independent as it gets for GUI toolkits.
Qt Quick (QML) is the way to go. It has extremely sharp design, and it is kept from being polluted by XML unreadability.
Adobe AIR is the strong competitor. If you aim to create cross-platform applications with rich user interface, check out this one.
First of all, I love WPF! I don't see any elegant/immediate way to achieve the same functionality and flexibility for designing interfaces in WinForms... That said, it is very sad to see that WPF is not anymore in favor inside Microsoft. Actually some people, including 'insiders' have stated that MS has shifted focus form WPF, and the Silverlight is now THE Windows Phone 7 application framework (not something to supplant Flash anymore):
http://www.theregister.co.uk/2010/09/09/microsoft_html_5/
Many people, including the current WPF Leader, denies this, but I see that this may actually have some truth behind. HTML5 is certainly going to become the "de facto" standard for rich (web)client interfaces. It overlaps so much with WPF, and does many other things too. It can "easily" be extended to work for non-web rich-client applications, and I believe MS will invest in that to have the lead in development tools for both web, mobile and windows targets.
I would not fear abandonment if I was already in the middle of a WPF project, but I wouldn't start one in WPF either as many have already said: it is not that simple to abandon something like WPF without giving a migration path and supporting it for many years.
So, current alternatives for WPF in the MS world? I don't think we have one already, maybe using its subset in Silverlight is the way to go for now. But, in the upcoming years HTML5 will probably be THE alternative to WPF.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I had a discussion with some colleagues mentioning that there are not too many projects that we do which make use of WPF for creating UI for a windows application (we almost always use Windows Forms instead).
Are your experiences the same - i.e. there is not too much adoption of this technology?
Why do you think that is? And will we have a time when we see much more of WPF?
Have a look at this survey it was done by a Windows Forms Contol Vendor in Australia.
Personally I have worked on two commercial projects in the last year that were using WPF to varying degrees.
The adoption of WPF is on the rise. Microsoft I believe is putting all their eggs into the WPF basket.
WPF Rocks in terms of what the technology can do. It's simply the best UI building technology on the planet (my opinion). But, but there is a huge initial and long term investment in learning and getting your head around it. Also from tooling perspective it has barriers like unusable Cider designer, you've to get blend to do styling etc.
I am sure it will become popular, but would take time. But right now it's not so popular.
Check this thread on WPF
Check this conversation on msdn forums about WPF for LOB apps
Absolutely - the adoption is tiny. There was lots of hype but it does not seem to have materialized.
I used WPF for one project and I can certainly say it left a very unfinished taste in my mouth. It was far too difficult to acheive simple things and the whole thing had very many rough edges - the reasons behind them certainly existed but were not obvious or even visible at all. The Visual Studio designer completely bugged out for most of my pages and I never did figure out why...
All in all, I'd say WPF is barely beta-quality from a developer friendliness standpoint.
WPF has a steep learning curve, and the development tools for it (expression studio/web) are expensive, so, I'm not surprised that the industry has not jumped on it. However, in terms of Windows programming, it is much more robust and powerful than Windows Forms, so I would like to see its popularity grow over the next few years as Microsoft makes improvements to WPF, WCF, and .NET in general. If MS would decrease the price of its Expression products, I would expect to see the framework's popularity grow much faster.
Another troubling thing about WPF is the total lack of good online tutorials for the framework. I'm trying to learn WPF at home, and I have found it to be a pain in the neck. I had to fork over a ton of cash for the development tools, and then I had to pay more money for a good book because there just isn't enough online to really get me into the framework and its languages. I can learn quite a bit about Java for free just by visiting the Sun website, but for WPF, I have to get a book. There is also a terrible lack of reference materials, in my experience, for WPF. To me, it reminded me of programming in VB6. Unless these things are remedied, I wouldn't expect to see any rapid growth in the framework. I do believe the main driving force behind the industry's adoption of the WPF and WCF technologies is MS support.
Though WPF was introduced few years ago it was too raw to use it in the real world apps. Major problem that stops WPF from wide adoption is a lack of RAD tools and out-of-box components. Currently we have Blend, more or less working Cider, but usable versions of these tools came not so long ago. Another reason is a completely different architecture which leads to longer development time as compared with WinForms due to prolonged learning\adoption period for developers.
I think we will see rising of WPF in the next few years.
People usually jump the technology bandwagon when there is a a real productivity to gain. Something to compensate for all the productivity loss that normally occurs when you adopt a new platform. WPF is just not there yet. It still takes more effort and more time to build a WPF app than a Forms app, and by a long shot.
Combine this with less documentation on the net about WPF than Windows Forms, less people with WPF experience, less blogs on WPF, less books on WPF, less tips/tricks,etc.
And don't get me started on XAML. Is it XML? is it a script? is it a code? Why did they decide that a hyperlink is just a label property? A lot of things still need to be ironed out there.
I cannot afford to build my next project in WPF, it will cost me a lot more to do it (in manpower and time), with nothing to show for in return. At the moment all we do in WPF is pure-research-inhouse-hobby projects.
I'm currently working on a WPF project - my first one. The learning curve has been incredibly steep, but in the end I think WPF is a great technology. The potential is fantastic, especially for advancing the state of data visualisation. I really like the data binding features, and the potential of styling. But it really does take a while to get your head around this.
I think that Silverlight adoption will eventually drive WPF adoption back on the desktop - or maybe there won't be a desktop as much of what can be accomplished with Silverlight will replace many previously desktop applications.
I am playing around with WPF and I must say I am not impressed. I seek a technology which will help me be productive in creating business applications. I remember building my first classic ASP website and being disgusted at the spaghetti code required to build a simple app. Viewing a single page I found HTML and java script mixed with vbscript with include files and calls to com objects--in short, a bloody illogical mess. In my view, it is important to have a simple and VISUAL development model with standards. I built many VB6 and .Net windows apps and they have a simple metaphor for development, making them easy to debug and modify by developers who did not write the original app. Forms encapsulate presentation logic, modules and classes in referenced assemblies encapsulate business logic and data logic. ADO.Net and other tools make data access robust, scalable, dynamic and customizable. Resizing windows controls and graphics to suit monitor resolution or client preference is easily done with Win Forms.
It may be that WPF has many advanced features in graphics, but for most business apps, form should follow function--in other words, I am not putting goofy animated graphics on my banking windows app.
One of the reasons I have not liked web development is because of the wide variety of ever-changing and complex technologies required for relatively simple applications which don't deliver enough significant change in actual functional results.
Oh well, that's my two cents.
' )
We deployed a pretty major WPF application for a large investment bank I worked for. It turned out extremely successful, involving 3d visualization of OLAP data that allowed quicker trend analysis. It's being used extensively.