I've got a simple and clean GUI to do for windows XP embedded, but I'm very new to C#.
Many topics I've found discussing WPF on XPE seem to be dating back to ~2007, so I'm here hoping for current up-to-date information.
Basically, how well supported would WPF be for this task? Are there circumstances which makes this a very bad design path? (what .net version?)
The app will be a kiosk mode gui which will contain some simple buttons, textfields and maybe a drawing canvas element.
It should at least be possible for you to get .Net Framework 3.0 installed on XPe (http://msdn.microsoft.com/en-us/library/bb417255%28WinEmbedded.5%29.aspx). However, depending on the performance you've got available and the kind of UI (if its simple enough), you might opt to choose WinForms instead of WPF.
Related
When I create new Windows Phone project I have an option to create a "Windows Phone" or "Windows Phone Silverlight" app. I know that they have different runtimes and different APIs.
I was under the impression that Microsoft wants to unify Windows and Windows Phone platforms so why is there even a Silverlight version? What benefits does it bring?
Also, if I want to create an app just for Windows Phone and never have plans to bring it to Windows, what should I choose, Silverlight or Windows Phone?
I'd suggest you go with "Windows Phone" (non-Silverlight). It's the new API, which works for both Windows and Windows Phone. At some point you may want to port the app or create a new one for Windows and you'll already know the API (and porting will be way easier). Also, the new API will most likely get more updates and features added, and at some point you may even be forced to update to it (either because the old one is no longer supported, or because it does not have some features that you need).
As it was said in the other answers - the Silverlight option is there only for backward compatibility and is likely to be phased out in time. That is - it's good if you already know the API and have many libraries (yours or others) for WP Silverlight, but if you're just starting - you'd better go for the new technology.
Edit
There is one other thing to consider before choosing between the two types of apps. Some features are only available in a Silverlight app, and others (smaller amount) - only in a Xaml app. Here's an article with some info on the differences: Migrating your Windows Phone 8 app to a Windows Runtime XAML app
Windows RT Xaml is quite new and People have to generate some knowledge first.
Silverlight for phone has been around for years and there's a load of tools available: Phone Toolkit, diverse Controls, etc.
Just killing it off would have hurt many developers who built up intellectual property over a long time forcing them to start over.
When starting a project with Silverlight you will have more things around that help you get stuff done.
When starting with WinRT Xaml, you will have better performance, but will have to figure a lot out by yourself.
So the Silverlight option is there to not throw of Silverlight developers.
I recently started a new project on WinRT Xaml and my experience was that I had to recreate a lot of common tools like Caches, etc. But also a lot of things that were in Toolkits previously are now part of the platform itself. Also, when moving over to Windows 8, you get to share a lot of code which is nice.
Unifying the environment(s) would be ideal. In my opinion, it hasn't been very successful. At one point in time, you could only develop under Silverlight, so what you are seeing is just a newer version of the same thing to keep backwards compatibility as well as to keep Silverlight's developers happy. In the future, it will probably be phased out. Plus if you want to support older Phones, Silverlight is basically your only choice (you'll be surprise, how many WP users haven't updated their 8.0 to 8.1)
There really isn't any other real benefit of Silverlight other than maybe the Windows Phone Toolkit which has been tremendously useful (you can see how many SO's answers rely on this simple addon). Once the universal runtime gets fleshed out to the point where the documentation reflects what's actually available -- then I think it would be the default project for developing in Windows going forward.
If you're just starting, I would use Silverlight the knowledge based is much greater. After you get use to the WP environment then switch to runtime.
I am writing my first vb.net application ( But I will tag c# here as well, as I am sure even a c# person can answer this with the similar .net implementation).
Short Description of my Applicaiton:
My desktop application will run on win platform only, using vb.net, it is a simple internet cafe management software, with a server gui running on server, and a client gui running on workstations, both communicating with TCP/IP to allocate time to customers, and the server storing some data in either xml files ( for human operators login info e.g) or in a small database. Nothing complicated.
What I would like to do:
I'd like to have a "sexy" look, i.e. either silverlight look or win7 phone look, yet this is a desktop application. I'd like to use CSS but its entirely optional, if there is a simple way to have my controls look like below without CSS thats fine with me.
What I have tried
I have looked into just doing a silverlight out of browser app, but as I am new to .net, and even though I have read up as many articles about using silverlight5 out of browser, I don't want to be caught down the road when I want to implement a feature and realize "Oh silverlight out of box doesnt support that".
So my question is , how do I implement one of the new looks in the picture in my desktop vb app?
You should look at using WPF for your application instead of using WinForms.
WPF (Windows Presentation Foundations) is a platform which works same way as silverlight but on desktop (as far as you need to be aware now.) Silverlight is a cut down version of WPF so WPF will give you a lot more controls and a lot more control over the program.
WPF uses XAML to draw up the UI and it holds the code in the source code file associated to the xaml file. If you have experience using Silverlight you should easily be able to make programs with WPF.
WPF is really powerful and gives you access to all the styling that is possible on Silverlight. WinForms is more so restricted which makes it harder to abandon the consistent Windows look and make your own intuitive and innovative UI.
Hope it helps!
Here are some tutorials if you are interested:
WPF Tutorials
Here is an example WPF desktop app (exact same look as achievable with Silverlight)
You can use wpf with Mahapps Metro : http://mahapps.com/MahApps.Metro/
This question already exists:
Closed 11 years ago.
Possible Duplicate:
WPF versus Winforms
I have been using visual C# for a while now, I have made some apps in the window forms but never really explored the WPF apps. Based on what I have discovered it pretty much is the same as a winforms just in a different type of environment and the XML. So why is there such a WPF app? what makes it different form a winform and what is it mainly used for?
There are many reasons to move WPF. You will be able to find many reasons by simple google search. It's the new trend and when it comes to Windows application development the technology has been focusing to WPF rather than Winforms.
As Tom also has mentioned above this thread gives you many points.
My opinion is there is no big reasons not to go for a WPF if somebody is going to develop a windows application from the scratch.
Actually it depends on your real need. Desktop oriented application tends to go with winform. Both get compiled by the same compiler to produce the same thing; both utilize the same resources to run on the target platform, but WPF has more graphics effects that many people would favor it from the start. Winform offers userfriendly design controls though.
Some differences off the top of my head:
Separation of UI and 'code-behind', so that designers can allegedly design the UI while the developers develop the business logic. A much cleaner separation than traditional WinForms.
Improved graphics rendering. The vector graphics are vastly superior to WinForms graphics -- just zoom in on some letters in a WPF app vs. a WinForms app and you'll see sharp edges in the WinForms app, but smooth edges in the WPF app. Pretty awesome.
A much more flexible UI model in WPF, where you can have buttons inside of lists which are inside of grids, since it's all just XAML. WinForms requires you to build those types of controls and is much more limiting.
Those were just a few. Hope this helps. Good luck!
Is there a learning curve? I want to pick up Windows Form but when reading many threads about WF vs WPF, I was totally persuaded by WPF. What should I do?
Just learn WPF and forget Windows Forms if you don't need it. Windows Forms and WPF are totally different so learning one of them does not really help with the other.
WPF - I learned windows forms first and it is difficult to switch my mind to MVVM mode now when I build UI's. I personally wish that WPF was my first love.
You do not need to know Windows Forms in order to learn WPF. If you are going to code in C# or VB.NET and are running on modern hardware, I would go with WPF.
There are no technical reasons why you'd want to learn Windows Forms before learning WPF. They are completely different technologies.
Unless you need to use Windows Forms to maintain an old application, stick with WPF.
It depends.
I assume you're working on a Windows application that must be installed on a client machine, Windows Forms and WPF would be good choices.
If you're starting an application from scratch, I would recommend WPF so focus on that.
If you have to maintain an existing application already written in Windows Forms, then you better learn Windows Forms.
Maybe it is not bad to first make a few application with Windows Form, that is classic way, and doing this you will not lose nothing because making application with Windows Form you just make classic application with standard UI. After this if you want that you application has better and nicer UI than go with WPF.
My personal opinion is the the learning curve on WPF is a lot steeper if you want to get all the benefits of using MVVM, so it could also depend on how your development team is set up, with how many people and how complex your solutions are. You can of course just use WPF with all code behind, but you might as well use WinForms if this is all you want to do.
Nope!
WPF is the latest trend. Winforms is not quite dead yet though...
If somebody wants to learn window application development. Starting from WPF will take him to the latest trend. Of course, Winform previous experience can be an advantage.
I was working with a WPF application and I decided that the controls and graphics I wanted to display on the grid might look better if it was a silverlight component.
I thought this way because of all the cool silverlight controls that look very flash-like.
But now that I have gottem my Visual Studio 2010 set up with SIlverlight, it seems that every silverlight app I can make are ASP.NET in nature. It seems that instead of a cool GUI control to make, Silverlight is telling me that it is primarely a dataflow sort of application for the web.
What is the relationship, if any, between WPF and Silverlight. Can I or can I not put a silverlight control into my existing WPF application?
It's my understanding that Silverlight is like "WPF lite", and that in many ways they are almost the same thing but made for different purposes (desktop vs. web). If you want your wpf application to have a different look, you don't need to bring in any other controls from silverlight, because you can simply re-style or re-template them to suit your needs (which you can also do in silverlight). But you can't simply use silverlight controls in wpf because they're compiled to run on different runtimes.
Silverlight does have a number of un-official controls in the silverlight toolkit which are not included in wpf or the wpf toolkit. They are open source, and if you really want, you could port them to wpf, especially since the code is very similar to wpf.
Silverlight is essentially a subset of WPF that is used to create web-based applications.
You might be able to jump through some hoops to get a limited Silverlight application running in WPF, but I doubt it would be worth it...
I know others may point out that SL is WPF lite.
But hope you find out they are different frameworks at least right now though they share XAML, and a similar model.
Not sure if in the future they become the same, but keep the differences in mind is critical at this moment. :)
We know DevExpress is now shipping the same code base of their components for WPF and SL, but that does come after putting a lot of efforts.
http://community.devexpress.com/blogs/ctodx/archive/2010/04/20/merging-our-silverlight-and-wpf-ui-controls.aspx