Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WinForms for .NET 5+ Planning #72

Open
23 of 92 tasks
Thraka opened this issue Feb 22, 2019 · 0 comments
Open
23 of 92 tasks

WinForms for .NET 5+ Planning #72

Thraka opened this issue Feb 22, 2019 · 0 comments
Labels
doc-idea Indicates issues that are suggestions for new topics [org][type][category] dotnet-desktop/svc Pri3 Low priority winforms/subsvc

Comments

@Thraka
Copy link

Thraka commented Feb 22, 2019

Planning content for Desktop Guide - WinForms portion.

Update We should redesign this plan like the WPF plan was designed: evaluate each article in the .NET Framework for value, and redesign the TOC below to include each new article specifically.


The current overall plan is to:

  • Copy the existing winforms documentation for .NET 5
  • Sanitize content for .NET Framework terminology.
  • Trim out articles that don't add value (small articles that are not critical to the story and are easily answered with a stackoverflow question).

Content plan items

.NET Framework 4 TOC and my notes

- Windows Forms
  - Getting Started with Windows Forms
  - Windows Forms Overview                                                        (keep)
  - Creating a New Windows Form
    - How to: Create a Windows Forms Application from the Command Line            (keep; rewrite to visual studio-based
    - Windows Forms Coordinates                                                   (low; small)
  - Creating Event Handlers in Windows Forms                                      > I suggest this split and tuned to both FORMS and CONTROLS. Those are the winforms specific things that have events. No need for a generic overview
    - Events Overview                                                             (low;)
    - Event Handlers Overview                                                     (low; small; merge with events overview)
    - How to: Create Event Handlers at Run Time for Windows Forms                 (med; google search items suggest ppl looking for generic C# events; also, doesn't really do "run time" events; Improve with VS)
    - How to: Connect Multiple Events to a Single Event Handler in Windows Forms  (low; odd. vb is demonstrated in code, C# in VS steps. is it useful? delete)
    - Order of Events in Windows Forms                                            (important; break up and put in forms overview (or events info) and controls overview (or events info))
  - Adjusting the Size and Scale of Windows Forms
    - How to: Resize Windows Forms"                                               (keep)
    - Automatic Scaling in Windows Forms                                          (keep)
      - How to: Respond to Font Scheme Changes in a Windows Forms Application     (low;keep)
    - High DPI Support In Windows Forms                                           (med;keep)
  - Changing the Appearance of Windows Forms
    - How to: Change the Borders of Windows Forms                                 (low;delete or keep)
  - Windows Forms Controls
    - Arrange controls on Windows Forms                                           \
      - How to: Align Multiple Controls                                           |  ALL ITEMS IN THIS GROUPED BLOCK
      - How to: Anchor Controls                                                   |  ========================================================================= 
      - How to: Dock Controls                                                     |  Some tasks are VS designer related. some are code related;
      - How to: Layer Objects                                                     |  needs more diagrams and placed in a How to use VS with WinForms section
      - How to: Lock Controls                                                     |  Port how to where it makes sense
      - How to: Position Controls                                                 |
      - How to: Resize Controls                                                   |
      - How to: Set Grid Options for All Windows Forms                            |
      - How to: Reassign Existing Controls to a Different Parent                  |
      - How to: Set the Tab Order                                                 |
      - Walkthrough: Arrange Controls Using Snaplines                             (Odd that it's a walkthrough; this info should be ported to a generic layout article)
      - Walkthrough: Laying Out Windows Forms Controls with Padding, Mar...       (Port to a generic layout overview article)
    - Putting Controls on Windows Forms                                           |
      - How to: Add Controls                                                      |
      - How to: Add Controls Without a User Interface                             |
      - How to: Add to or Remove from a Collection of Controls at Run Time        |
      - Walkthrough: Automatically Populating the Toolbox with Custom Components  |
      - How to: Add ActiveX Controls                                              |
      - Considerations When Hosting an ActiveX Control on a Windows Form          /
    - Label controls and provide shortcuts                                        
      - Overview                                                                  (delete; not an overview, just header links)
      - Create access keys for controls                                           (important; ported)
      - Set the text displayed by a control                                       (low; not really useful)
      - Set the image displayed by a control                                      (low; not really useful)
      - Provide accessibility information for controls                            (important; ported)
    - Controls to use on Windows Forms 
      - ....                                                                      \
      - ....                                                                      | Almost 500 articles breaking down individual controls with overviews
      - ....                                                                      | and how to articles.
      - ....                                                                      |
      - ....                                                                      | Some of the higher level articles should be ported as reference material
      - ....                                                                      | such as what controls are available and what they do.
      - ....                                                                      | 
      - ....                                                                      | Import these into the TOC. Scrub the articles for Framework.
      - ....                                                                      /
    - Developing Custom Windows Forms Controls with the .NET Framework
      - Overview of Using Controls in Windows Forms                               (delete; basic overview of adding buttons??)
      - Varieties of Custom Controls                                              (low; merge below article into same "Types of Custom Controls" article)
        - Control Type Recommendations                                            (low; merge above article into same "Types of Custom Controls" article)
      - Windows Forms Control Development Basics                                  (low; merge into the new "Types of Custom Controls" article or an overview article)
        - How to: Develop a Simple Windows Forms Control                          (low; important; clean up)
        - How to: Create a Windows Forms Control That Shows Progress              (low; would make good tutorial)
        - Developing a Composite Windows Forms Control                            (delete; link farm)
      - Properties in Windows Forms Controls
        - Defining a Property                                                     (low; important; designer related; could be rolled into something else)
        - Defining Default Values with the ShouldSerialize and Reset Methods      (low; important; designer related; could be rolled into something else)
        - Property-Changed Events                                                 (low; generic guidance on .NET property change handler; move to design guide for WinForms)
        - How to: Expose Properties of Constituent Controls                       (low; generic guidance on .NET property forwarding; delete?)
        - Method Implementation in Custom Controls                                (low; generic guidance on .NET creating a method; delete?)
      - Events in Windows Forms Controls
        - Overriding the OnPaint Method                                           (med; mix of generic OnEventName guidance and OnPaint; roll into something else)
        - Handling User Input                                                     (low; important; events list related to input)
        - Defining an Event                                                       (low; generic guidance on .NET event design implementation; move to design guide for WinForms?)
      - Attributes in Windows Forms Controls                                      (low; designer related; move to design guide for WinForms)
        - How to: Apply Attributes in Windows Forms Controls                      (low; semi-designer data-binding related; unsure)
      - Custom Control Painting and Rendering
        - Rendering a Windows Forms Control                                       (low; important; basic overview)
        - User-Drawn Controls                                                     (low; important)
        - Constituent Controls                                                    (low; small; roll into other article)
        - How to: Make Your Control Invisible at Run Time                         (low; small; it's show/hide a control)
        - How to: Give Your Control a Transparent Background                      (low; small; more popular than other article; it's a tip/trick too)
        - Rendering Controls with Visual Styles                                   (low; overview; is it still important? talks about "in .net 2.0 we introduced...")
          - How to: Use a Control Rendering Class                                 (low; briefly shows how to use ControlPaint class and detect if visual styles is on; roll  into other?)
          - How to: Render a Visual Style Element                                 (low; Unsure what it does. Never heard of this stuff before. Not in my books either)
      - Layout in Windows Forms Controls
        - AutoSize Property Overview                                              (low; important)
        - How to: Align a Control to the Edges of Forms                           (low; too small; roll or delete)
        - Margin and Padding in Windows Forms Controls                            (low; important; more examples needed; more info needed (the designer takes these into account, does autosizing and layout?); maybe roll into general layout article?)
        - How to: Create a Border Around a Windows Forms Control Using Padding    (low; too small; delete)
        - How to: Implement a Custom Layout Engine                                (dead; interesting; roll into a conceptual perhaps?)
      - Multithreading in Windows Forms Controls
        - How to: Make Thread-Safe Calls to Windows Forms Controls                (high; important)
        - How to: Use a Background Thread to Search for Files                     (low; important info should be ported into general multithreading overview; delete)
    - Windows Forms Controls in the .NET Framework by Function                    (med; useful)
    - Develop Controls at Design Time
      - Overview                                                                  > (This whole section has a lot of great content. Walkthroughs are short, perhaps turn them into a full user control tutorial?)
      - Walkthrough: Author a Composite Control                                   (low; important; feedback on article states "Add VB" and "Better example of a real composite control (forward events etc)")
      - Walkthrough: Inherit from a Control                                       (low; doesn't detail anything special; delete)
      - Walkthrough: Perform Common Tasks Using Design Actions                    (dead; delete/rewrite; describes the > icon actions in the designer, not how to creat them!)
      - Walkthrough: Serialize Collections of Standard Types                      (dead; important; roll into something; useful information)
      - Walkthrough: Debug Custom Controls                                        (low; important; needs clarification, less sections)
      - Walkthrough: Create a Control That Takes Advantage of Design-Time Features (med; important; needs clean up; demos two controls. Turn into tutorial)
      - How to: Author Controls                                                   (dead; move into overview; nothing to do with design-time)
      - How to: Author Composite Controls                                         (dead; not much info; delete/roll into tutorial)
      - How to: Inherit from the UserControl Class                                (low; less info than "composite controls" describes same thing better keyword though; delete)
      - How to: Inherit from Existing Controls                                    (med; important; improve with better examples and keywords)
      - How to: Inherit from the Control Class                                    (low; important; improve with better examples and keywords)
      - How to: Align a Control to the Edges of Forms                             (dead; delete)
      - How to: Display a Control in Choose Toolbox Items                         (low; describes registering with GAC; how does this work in .NET 5+???)
      - How to: Provide a Toolbox Bitmap for a Control                            (low; important to the designer)
      - How to: Test the Run-Time Behavior of a UserControl                       (delete; doesn't work in .NET 5)
      - Design-Time Errors in the Windows Forms Designer                          (high; important; needs clean up, better keywords, maybe a whole reference section in the TOC related to these errors? lots of neg feedback)
      - Troubleshoot Control and Component Authoring                              (dead; delete)
  - User Input in Windows Forms
    - User Input in a Windows Forms Application                                   (low;tiny;roll into both mouse/keyboard overviews)
    - Keyboard Input in a Windows Forms Application
      - How Keyboard Input Works                                                  (low;important;is overview)
      - Using Keyboard Events                                                     (low;important;roll into overview)
      - How to: Modify Keyboard Input to a Standard Control                       (low;important;bounce
      - How to: Determine Which Modifier Key Was Pressed                          (low;important;bounce
      - How to: Handle Keyboard Input at the Form Level                           (low;important
    - Mouse Input in a Windows Forms Application
      - How Mouse Input Works in Windows Forms                                    (low;important)
      - Mouse Events in Windows Forms                                             (low;important)
      - How to: Distinguish Between Clicks and Double-Clicks                      (low
      - Mouse Pointers in Windows Forms                                           (low;important;roll into overview)
      - Mouse Capture in Windows Forms                                            (low;important;roll into overview)
      - Drag-and-Drop Functionality in Windows Forms                              (low;important;roll into how to or overview)
    - How to: Simulate Mouse and Keyboard Events in Code                          (med;keep and update
    - How to: Handle User Input Events in Windows Forms Controls                  (low;delete;it's a single paragraph with a whole app in one file. Odd
    - User Input Validation in Windows Forms                                      (low;important)
  - Dialog Boxes in Windows Forms
    - How to: Display Dialog Boxes for Windows Forms                              (med;small;roll into general display windows article
  - Windows Forms Data Binding                                                    
    - Data Binding and Windows Forms                                              (high;low ratings;merge into single overview)
    - Data Sources Supported by Windows Forms                                     (high;low ratings;merge into single overview)
    - Interfaces Related to Data Binding                                          (low; important)
    - Change Notification in Windows Forms Data Binding                           (low; important; should be rolled into something else though)
    - How to: Apply the PropertyNameChanged Pattern                               (low; important; small, rolled into bigger)
    - How to: Create a Bound Control and Format the Displayed Data                (low; important; should be rewritten with better example)
    - How to: Create a Simple-Bound Control on a Windows Form                     (low; important; should be rewritten with better example)
    - How to: Ensure Multiple Controls Bound to the Same Data Source Remain Synchronized  (low; important; needs improvement and more details)
    - How to: Ensure the Selected Row in a Child Table Remains at the Correct Position    (low; important)
    - How to: Implement the IListSource Interface                                 (low; delete)
    - How to: Implement the INotifyPropertyChanged Interface                      (med; important)
    - How to: Implement the ITypedList Interface                                  (low; delete)
    - How to: Navigate Data in Windows Forms                                      (med; improve into tutorial)
  - Windows Forms Security
    - Security in Windows Forms Overview                                          (review; CAS doesn't apply anymore)
    - More Secure File and Data Access in Windows Forms                           (low; important; some stuff doesn't apply; move elsewhere)
    - More Secure Printing in Windows Forms                                       (delete; not apply)
    - Additional Security Considerations in Windows Forms                         (delete; not apply)
  - ClickOnce Deployment for Windows Forms                                        (migrate; link farm for VS docs)
  - Accessibility improvements with .NET Core 3.0                                 (move)
  - How to: Access Keyed Collections in Windows Forms                             (low; delete
  - Enhancing Windows Forms Applications                                          
    - Graphics and Drawing in Windows Forms
      - ....                                                                      \
      - ....                                                                      | 
      - ....                                                                      | A lot of content here. Well written and important.
      - ....                                                                      | Do the same as the Controls Overview section and cross link it to the TOC
      - ....                                                                      | 
      - ....                                                                      /
    - Application Settings for Windows Forms                                      (a lot of this stuff is covered in visual studio docs. what should we cover?)
      - Application Settings Overview                                             (med; important)
      - Application Settings Architecture                                         (low; important)
      - Application Settings Attributes                                           (low; important)
      - Application Settings for Custom Controls                                  (low; important)
      - Using Application Settings and User Settings
        - How To: Create a New Setting at Design Time                             (med; important; improve)
        - How To: Change the Value of an Existing Setting at Design Time          (med; important; improve)
        - How To: Change the Value of a Setting Between Application Sessions      (med; important; improve)
        - How To: Read Settings at Run Time With C#                               (high; important; improve; verbatim (1))
        - How To: Write User Settings at Run Time with C#                         (high; important; improve)
        - How To: Add Multiple Sets of Settings To Your Application in C#         (low; important; improve)
      - How to: Create Application Settings                                       (low; important)
      - How to: Validate Application Settings                                     (low; important)
  - Windows Forms Print Support
    - How to: Create Standard Windows Forms Print Jobs                            (dead; important)
    - How to: Capture User Input from a PrintDialog at Run Time                   (dead; important)
    - How to: Choose the Printers Attached to a User's Computer in Windows Forms  (low; delete)
    - How to: Print Graphics in Windows Forms                                     (low; important)
    - How to: Print a Multi-Page Text File in Windows Forms                       (low; important)
    - How to: Complete Windows Forms Print Jobs                                   (dead; small; move into something else)
    - How to: Print a Windows Form                                                (med; good page views, should keep)
    - How to: Print in Windows Forms Using Print Preview                          (med; restructure this)
  - Drag-and-Drop Operations and Clipboard Support                                
    - Walkthrough: Performing a Drag-and-Drop Operation in Windows Forms          (high; important)
    - How to: Perform Drag-and-Drop Operations Between Applications               (low; important)
    - How to: Add Data to the Clipboard                                           (low; important)
    - How to: Retrieve Data from the Clipboard                                    (med; important)
  - Networking in Windows Forms Applications                                      (dead; link farm; delete)
  - Globalizing Windows Forms
    - International Fonts in Windows Forms and Controls                           (dead; important)
    - Bi-Directional Support for Windows Forms Applications                       (dead; important)
    - Display of Asian Characters with the ImeMode Property                       (dead; small; roll into something else)
  - Windows Forms and Unmanaged Applications
    - Windows Forms and Unmanaged Applications Overview                                   (dead; review; what is relevant?)
    - How to: Support COM Interop by Displaying Each Windows Form on Its Own Thread       (dead; review; what is relevant?)
    - How to: Support COM Interop by Displaying a Windows Form with the ShowDialog Method (dead; review; what is relevant?)
  - System Information and Windows Forms                                          (dead; small)
  - Power Management in Windows Forms                                             (dead; important; update with more info)
  - Help Systems in Windows Forms Applications                                    (dead; HTML help is mostly dead on windows? What replaces it?)
  - Windows Forms Visual Inheritance                                              (Create new section under forms that relates to this content)
    - How to: Inherit Windows Forms                                               (med; small; )
    - How to: Inherit Forms Using the Inheritance Picker Dialog Box               (low; small; visual studio related)
    - Effects of Modifying a Base Form's Appearance                               (dead; delete)
    - Walkthrough: Demonstrating Visual Inheritance                               (low; delete)
    - How to: Use the Modifiers and GenerateMember Properties                     (low; important with )

  - Multiple-Document Interface (MDI) Applications
    - How to: Create MDI Parent Forms                                             (med; important)
    - How to: Create MDI Child Forms                                              (high; important)
    - How to: Determine the Active MDI Child                                      (low; important)
    - How to: Send Data to the Active MDI Child                                   (low; important)
    - How to: Arrange MDI Child Forms                                             (low; )
  - Integrating User Help in Windows Forms
    - How to: Provide Help in a Windows Application                               (low; important but unsure if HELP 1.0 is still supported??)
    - How to: Display Pop-up Help                                                 (low; important)
    - Control Help Using ToolTips                                                 (dead; important)
  - Windows Forms Accessibility
    - Walkthrough: Creating an Accessible Windows-based Application               (dead; important)
    - Properties on Windows Forms Controls That Support Accessibility Guidelines  (dead; important)
  - Using WPF Controls                                                            (rewrite this whole section. Focus on XAML islands Win10+WPF?)
    - How to: Copy and Paste an ElementHost Control at Design Time                (dead; delete)
    - Walkthrough: Arranging WPF Content on Windows Forms at Design Time          (dead; delete)
    - Walkthrough: Creating New WPF Content on Windows Forms at Design Time       (med; improve)
    - Walkthrough: Assigning WPF Content on Windows Forms at Design Time          (dead; delete)
    - Walkthrough: Styling WPF Content                                            (dead; rewrite/roll; Interesting as it describes editing the XAML in the control host)

(1)
I think you have omitted how settings get implemented.   The configuration is saved to a Settings.settings file.   Access the setting properties via the Settings.cs file. Any best practice suggestions? Also the documentation -- at least how it links from Google -- appears to confuse Runsettings with Settings.    Also it might be useful to explain the difference in use between the Settings file/objects and the Application Configuration File.  When should I use the Settings vs. App.config?

</details>
@Thraka Thraka self-assigned this Feb 22, 2019
@Thraka Thraka closed this as completed Feb 22, 2019
@Thraka Thraka reopened this Feb 22, 2019
@Thraka Thraka removed their assignment May 21, 2019
@Thraka Thraka changed the title WinForms for .NET Core 3.0 Planning WinForms for .NET 5+ Planning Apr 23, 2020
@adegeo adegeo transferred this issue from dotnet/docs Oct 13, 2020
@dotnet-bot dotnet-bot added the ⌚ Not Triaged Not triaged label Oct 13, 2020
@adegeo adegeo added 📚 Area - .NET doc-idea Indicates issues that are suggestions for new topics [org][type][category] and removed ⌚ Not Triaged Not triaged labels Oct 13, 2020
@PRMerger12 PRMerger12 added the Pri3 Low priority label Nov 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
doc-idea Indicates issues that are suggestions for new topics [org][type][category] dotnet-desktop/svc Pri3 Low priority winforms/subsvc
Projects
None yet
Development

No branches or pull requests

4 participants