Best practice UI guide? - winforms

I'm looking for a guide about UI best practices, in particular for Windows winform applications, with recommendations or descriptions of control sizes, label/textbox alignment, choice of checkbox or radio, etc.

If you're looking to create an application with the look and feel of a "typical" Windows application, the Windows desktop UI Guidelines documentation is probably a good place to start. It does contain recommendations for the points mentioned in your question, as well as many others that you probably haven't even considered yet.

I realize this question was asked many years ago.
For Windows current design guidelines at:
Design and code Windows apps

Related

Master silverlight application development code, xaml and all

Assume a mechanic wants to start developing in silverlight and has managed to make a few sample childish applications.
What resources would you recommend to make him an expert?
Generally speaking becoming an expert will involve years of training, lots of trial and error, and working on a large-scale applications always helps. For some good resources, you might want to check out things like the Enterprise Library update for Silverlight which contains some good examples of architecture and scenarios you might encounter:
http://www.microsoft.com/download/en/details.aspx?id=7319
Otherwise the Prism framework/guidance from Microsoft Patterns and Practices offers some information and examples on basic scenarios you might run into:
http://compositewpf.codeplex.com/
And lastly, stepping a bit outside of these examples you might want to try a book like Silverlight 4 Business Intelligence Software by Bart Czernicki. It covers a lot of concepts for one type of SL scenario but the scope of the topics and exploration of concepts + framework is quite good:
http://www.amazon.com/Silverlight-4-Business-Intelligence-Software/dp/1430230606/ref=sr_1_1?ie=UTF8&qid=1311760201&sr=8-1
You can also find a slew of experts on places like Twitter, try following someone like #Wynapse who does excellent daily coverage and can help you expand out to other experts in the area.

Silverlight? WPF? or Windows Form? [closed]

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.

Silverlight - Examples of awesome demo applications NEEDED! [closed]

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/

WPF alternatives [closed]

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.

Business Application UI Design [closed]

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 4 years ago.
Improve this question
Basically I'm going to go a bit broad here and ask a few questions to get a bit of a picture of how people are handling UI these days.
Lately I've found it pretty easy to do some fancy things with UI design and with WPF specifically we're finding new ways to do layouts that are better looking and more functional for the user, but in contrast one of the business focused guys at our local .NET User Group wouldn't even think of using WPF until it had a datagrid that he could use to make Excel like input forms.
So basically, have you rethought the design of your business apps as you move to Web/WPF/Silverlight designs, because for us at least - in winforms we kept things fairly functional and uniform, or are you trying to keep that "known" UI?
Would a dedicated design guy (for larger teams), or a dev with more design chops rank higher when looking at hiring these days? (Check out what a designer did for Scott Hanselman's BabySmash and Microsoft's Prism demo)
Are there any design hints/tips/guidelines you use for your UI - especially for WPF?
What sites would you recommend for design?
I recommend that you read Steve Krug's Don't Make Me Think first. The book has a great checklist of things that you have to take into consideration when designing your UIs. While it's focused on web usability, a lot of the lessons therein are valuable even to desktop application designers.
That being said, whether you use Windows forms or WPF or Flash or whatever new and shiny thing that comes around is, it is of utmost importance to hire either a) a real designer, or b) a development guy with a lot of UI design experience, either of which who can provide you a serious URL for their design portfolio. It will help a lot not only in improving the design of your application but also unburdening your developers from thinking about UI design, and allow them to focus on the back-end code.
As for "business focused" guys -- it would be really great if you would get the opinion of actual customers and stake holders, and have them do some usability testing for your application. It's their opinion that would matter most.
I think it would not be difficult to get a good designer up to speed on Microsoft Expression Blend to whip up some good XAML designs that your team could use to come up with a really good product.
Here's a great screen cast where Billy Hollis goes into many of these issues:
http://www.dnrtv.com/default.aspx?showNum=115
I think WPF can greatly improve user experience.
However there are not much business oriented controls out there which means you need to do a lot by yourself.
As for designers I think it's really hard to find WPF designer now days, it still would be a dedicated programmer rather then design-only guy.
I hope that this situation will change in nearest feature.
I think it's worth at least start experimenting with WPF to be able to compete with upcoming solutions.
The whole concept of re-thinking a UI of an existing application is dependent on the target audience. For a boring business application, like accounting or budgeting, it may even be counter-productive. For one, users of those kinds of apps may have used a similar looking and feeling UI for years and years, and second, looking too "cute" and colorful can even bring a perception of toy-ishness (is that a word?) with it.
We have done several new projects with the latest & greatest UI gadgets, and for the most part for new applications it seems to be a good chance to get some feedback from a live audience. Then it gets easier to translate that feedback into existing applications.
We also have some apps which are still actively developed (and used obviously), where the UI looks almost like in Windows 3.1. They're awful, gray, clunky, and our only real designer is always trying to get a permission to bring it to the current centrury - but the biggest customer actively refuses this. They say it's just fine, people know how to use it, and it works even in their oldest computers.
#aku "I think WPF can greatly improve user experience."
I believe that WPF has amazing potential as a tool to make UIs more creative and better suited to the actual data that is being displayed, BUT..............
Just the mere act of using WPF isn't going to make great UIs appear out of nowhere.
A great carpenter may use the best wood working tools, but that doesn't mean that if you picked up his tools you'd all of a sudden be popping out fine furniture.
Using WPF over HTML/Flash/WinForms/etc just increases your potential .
If that's potential for ugliness or potential for beauty is up to you.
#David H Aust That's part of the reason for asking the question - with these newer tools like WPF that lend themselves to providing newer, more intricate, and at the same time simpler for the user, interfaces that we might need to adapt to new ways of doing things.
And trying to find out who else is adapting/interested and what they are doing, and where they get some inspiration, knowledge or help :)
IE: This is me being proactive about change in possibly the slackest manner ever, short of actively googling :)
^ That was a joke, to make it clear, I'm actually pretty active about learning new stuff, I'm just finding some of the crowdsourcing stackoverflow vs googling pretty interesting :)
Microsoft is building a DataGrid for WPF. A CTP can be found here.
#Lars Truijens - Thanks, but I think for 99% of cases that's a horrible idea, and sure, there are uses - but I've found that with WPF there's typically a much better way to do it.
Plus you can use textboxes, and use an Enter as Tab override to move through them easily and swiftly.

Resources