Introducing .NET Core Windows Forms Designer Preview 1

Olia Gavrysh

Olia

Introducing .NET Core Windows Forms Designer Preview 1

We just released a GA version of .NET Core 3.0 that includes support for Windows Forms and WPF. And along with that release we’re happy to announce the first preview version of the Windows Forms Designer for .NET Core projects!

For developers the .NET Core Windows Forms Designer (when we will release the GA version) will look and feel the same as the .NET Framework Windows Forms Designer. But for us it is a huge technical challenge to bring the designer to .NET Core because it requires the design surface that hosts the live .NET Core form to run outside the Visual Studio process. That means we need to re-architect the way the designer surface “communicates” with Visual Studio. You can watch these communications in the Output Window, where we track each request sent when the Visual Studio components are accessing properties or executing methods on the live controls in the design surface. The engineering team is still working on this technical challenge, and we will be releasing the Preview versions on regular basis to give you the early glance at the .NET Core Designer. Stay tuned! The next Preview will be coming out in early November.

Because this is the very first preview of the designer, it isn’t yet bundled with Visual Studio and instead is available as a Visual Studio extension (“VSIX”) (download). That means that if you open a Windows Forms project targeting .NET Core in Visual Studio, it won’t have the designer support by default – you need to install the .NET Core Designer first!

Enabling the designer

To enable the designer, download and install the Windows Forms .NET Core Designer VSIX package. You can remove it from Visual Studio at any time. After you install the .NET Core Designer, Visual Studio will automatically pick the right designer (.NET Core or .NET Framework) depending on the target framework of the project you’re working on.

It is early days for the designer, here is what to expect…

Please keep in mind, that this is the first preview, so the experience is limited. We support the most commonly used controls and base operations and will be adding more in each new Preview version. Eventually, we will bring the .NET Core Designer at parity with the Windows Forms Designer for .NET Framework.

Because many controls aren’t yet supported in Preview 1 of the designer, we don’t recommend porting your Windows Forms applications to .NET Core just yet if you need to use the designer on a regular basis. This Preview 1 is good for “Hello World” scenarios of creating new projects with common controls.

Controls included in Preview 1:

  • Pointer
  • Button
  • Checkbox
  • CheckedListBox
  • ComboBox
  • DateTimePicker
  • Label
  • LinkLabel
  • ListBox
  • ListView
  • MaskedTextBox
  • MonthCalendar
  • NumericUpDown
  • PictureBox
  • ProgressBar
  • RadioButton
  • RichTextBox
  • TextBox
  • TreeView

What is not supported in Preview 1:

  • Container
  • Resources
  • Component Tray
  • In-place editing
  • Designer Actions
  • Databinding
  • User Controls/Inherited Controls

Give us your feedback!

We are putting out our first bits so early to support the culture of developing the product with our users’ early feedback in mind. Please do reach out with your suggestions, issues and feature requests via Visual Studio Feedback channel. To do so, click on Send Feedback icon in Visual Studio top right corner as it is shown on the picture below.

We appreciate your engagement!

Addressing Questions

What to do if Windows Forms Designer doesn’t work?

We heard some question related to the Windows Forms Designer not working. Here’s what could have happened:

  1. You might have created a .NET Core Windows Forms project instead of the traditional .NET Framework one without realizing it. If you type “WinForms” or “Windows Forms” in the New Project Dialog, the first option would be a .NET Core Windows Forms project. If your intention is to create a .NET Framework project (with the mature designer support), just find and select Windows Forms App (.NET Framework).

  2. If you want to work with .NET Core project, don’t forget to install the .NET Core Windows Forms Designer, since it isn’t yet shipped inside Visual Studio by default. See the previous “Enabling the designer” section.

Does .NET Core WPF Designer depend on Windows Forms Designer installation?

We also received some questions related to the .NET Core WPF Designer not working and if it requires a separate installation or the Windows Forms Designer installation. No, the WPF Designer is completely independent of the Windows Forms Designer. We released its GA version of the WPF .NET Core Designer at the same time as .NET Core 3.0 and it comes with Visual Studio. In Visual Studio version 16.3.0 we had an issue with the Enable XAML Designer property set to false by default. That means that when you click on .xaml files, the designer doesn’t open automatically. Upgrade to the latest Visual Studio version 16.3.1 where this issue is fixed. Another option to fix it is to go to Tools -> Options -> XAML Designer and check Enable XAML Designer.

106 comments

Comments are closed.

  • Érico P
    Érico P

    Mono had an incomplete port of Windows Forms, that ran on both Linux and MacOS. Any chance of giving multiplatform Windows Forms leveraging the previous work on Mono to .NET core? It would be amazing if .NET 5 came with this working!

  • Avatar
    Maytham Fahmi

    I have mean while used Blend, but thanks for sharing. One thing hurt me a lot why designer was skipped at all and come first late 🙁 that said thanks for sharing the extension 🙂

    • Olia Gavrysh
      Olia GavryshMicrosoft logo

      Thank you, Maytham! the reason why the Designer is behind the Runtime is that we had to do a lot of work to architect how the design surface will run and interact with Visual Studio from another process, while porting the Runtime to Core was pretty straight-forward. But stay tuned, we will be releasing updates on a regular basis! 🙂

  • Avatar
    johnny 7

    i love and understand what hard work you are doing. but without completely supporting VB.net is just a cripple guy. me among millions will not move to . net core even though we want to!. nobody is going to port vb.net projects to c# when is tens of thousands of lines of code. and the majority.of winform apps out there you show how alive and well they are and you decided to put winforms to core … are writen in vb.net. if you are going to do something do it until the end Microsoft!

    so you have 2 choice here.
    1)asap full vb.net support for CORE and .net 5
    2)get rid of the stupid {} and ; from C# for all those who prefer more logical and clean syntax!

    3)rename vb.net to B# (pronounce should sound “be Sharp”). 😎

      • Avatar
        johnny 7

        dear Olia, B# seriously will get rid of the old “mind set” that many still have that is the old “VB 6”, will make it more “trendy” and in the same concept and family of the C#, F#, we would have and B#.
        because “be sharp” is always > “just See sharp”

        and remember millions of students use VB.net in the world to start learning programming and not freak out by the {} ; and reverse syntax that other c++ style languages have! seriously that will boost it even more when added in .NET / CORE framework!

        so i hope you can convince the others and do the change… after all Microsoft had made a mess in the past with naming frameworks that was so damn confusing, and now whoever was responsible for the rebranding of all frameworks into .NET finally had some common sense! lets make B# happen (i have faith in you!)😁

        p.s Bill Gates created Microsoft thanks to Basic. lets not stop educating people. we need developers!😎😉

  • J}R{L Enterprise
    J}R{L Enterprise

    I installed the designer, created a new .NET Core Win Form project in preview version and still am getting the “System cannot find the specified file” error in the designer window. If I try reinstalling it says the extension is already installed.

    • Olia Gavrysh
      Olia GavryshMicrosoft logo

      Thank you, appreciate your help!

      The designer is in the very early phase, this is the preview version and the very first one :), so there are bugs and not completed features. We still keep hearing that developers prefer us to give them the earliest bits to play with, but of course if you want a mature project, it’s better to wait till the GA version. Meanwhile thank you so much for finding issues and submitting feature requests! It helps up a lot!

  • Vincent Thorn
    Vincent Thorn

    Unfortunately, “Enable XAML Designer” trick DO NOT work. (I have 16.3.0 version though) I created empty WPF Core project and XAML designer show me only XML code, no visual of Window. Then I checked option – it was ON. Seems your team fails much deeper. I’ll upgrade till 16.3.1 and see what’s happen.
    UPD:
    Updated till 16.3.2 (already) – NOW WPF designer works. Seems developer switched off designer IN CODE, not in settings.

  • Avatar
    Robert Grubbs

    I’m very interested in how the out of process UI hosting works in Visual Studio. I work on a number of large composite applications, and I’ve always had a dream of hosting WinForms or WPF UI content from separate processes. We’ve wanted to do this so we can isolate components for stability reasons, as well as achieve a kind of multi-threading ability in UI technologies where thread affinity makes it impossible to build complex UI trees in background threads. It was also a possible solution for us to mix in 32-bit code into a 64-bit host application or vice versa (legacy ActiveX controls mostly).

    I played with the concept in WPF a long time ago, but it never worked very well. If there are changes to WinForms/WPF to support this in Visual Studio, I’d love be able to leverage them in our own applications! Thanks!

    • Avatar
      Merrie McGawMicrosoft logo

      Alas, there weren’t really any runtime changes that went into WinForms to enable this easily. We’ve basically added a layer into our conceptual stack of windows within VS. This extra layer was created in the new .NET Core process and displays the form & controls that the dev has created. The next piece is making all the VS (.NET Framework) pieces talk with the design surface (that’s the Core layer) and interact properly. A lot of work is going in to make sure we’re enabling an experience as close to the single process .NET Framework based designer.