<p>I'm working on moving a client/server application created with C# and WinForms into the SOA/WPF/Silverlight world. One of the big hurdles is the design of the UI. My current UI is MDI driven and users rely heavily on child windows, having many open at the same time and toggling back and forth between them. </p>

<p>What might be the best way to recreate the UI functionality in an MDI-less environment? (I've no desire to create MDI functionality on my own in WPF). Tabs? A list panel that toggles different controls? </p>

[{'answer_id': 50527, 'author': 'Guy Starbuck', 'author_id': 2194, 'author_profile': 'https://Stackoverflow.com/users/2194', 'pm_score': 2, 'selected': False, 'text': '<p>I think the answer is really going to be up to your users -- I\'d set up some prototypes with multiple paradigms and let them provide some input.  The last thing you want to do is introduce a new UI paradigm without having any end-user input.</p>\n\n<p>Tabs are really popular now, but don\'t allow side-by-side viewing, so if that is a requirement you may want to go with more of an outlook-style setup, with multiple panels that can be activated, hidden and resized.</p>\n\n<p>One thing that you might want to do is to code your app as a composite UI, where each view is built independently from its container (be it a child window, tab or accordion, etc.), and is just "dropped in" in the designer.  That will protect you from when the users change their minds about the navigation paradigm in the future.</p>\n'}, {'answer_id': 50563, 'author': 'Dmitry Shechtman', 'author_id': 3583, 'author_profile': 'https://Stackoverflow.com/users/3583', 'pm_score': 0, 'selected': False, 'text': '<p>Did you try <a href="http://www.netikatech.com/products/default.aspx" rel="nofollow noreferrer">GOA WinForms</a>?</p>\n'}, {'answer_id': 50578, 'author': 'Nir', 'author_id': 3509, 'author_profile': 'https://Stackoverflow.com/users/3509', 'pm_score': 1, 'selected': False, 'text': "<p>multiple top level windows are easy to implement and have all the advantages of MDI - that's what MS selected for the newer versions of Office</p>\n"}, {'answer_id': 55833, 'author': 'Garo Yeriazarian', 'author_id': 2655, 'author_profile': 'https://Stackoverflow.com/users/2655', 'pm_score': 2, 'selected': False, 'text': '<p>Look at <a href="http://www.37signals.com/" rel="nofollow noreferrer">37signals</a> and how nice their web UIs are (mostly HTML + AJAX).  It\'s a good example of web applications that work.  One of the things to remember are to make sure you don\'t break the web paradigm.  If users want to see two things side by side, they should be able to duplicate the window and let the web browser do the windowing.</p>\n\n<p>For WPF, there are a lot of new visualization paradigms.  You can find some examples on the sites for various control toolkit providers: <a href="http://xceed.com/3DViews_WPF_Features.html" rel="nofollow noreferrer">Xceed</a>, <a href="http://www.telerik.com/products/wpf/overview.aspx" rel="nofollow noreferrer">Telerik</a>, <a href="http://www.infragistics.com/dotnet/netadvantage/wpf.aspx" rel="nofollow noreferrer">Infragistics</a>.  They have demo programs for the different ways they help you organize screens in an application.</p>\n\n<p>When developing complex composite applications in WPF, you could also start at the Patterns and Practices <a href="http://www.codeplex.com/CompositeWPF" rel="nofollow noreferrer">Prism</a> site.  It\'s an InProgress set of practices for planning and developing complex composite (smart client style) applications in WPF.</p>\n'}]
['https://Stackoverflow.com/questions/50518', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/4244/']