Moving WPF Controls to .NET Framework 4.6.1 and .NET Core 3.0

by Avatar Bill Henning (Actipro) - 10 comments
Monday, May 6, 2019 at 1:31pm

Our WPF SyntaxEditor vNext beta began a week ago and has been going well.  As we prepare for a 2019.1 version release, we are looking at making some other moves and wanted to get your feedback on them.  First, let’s dig into some low-level .NET details to set up the background.

About .NET Core 3.0

.NET Core 3.0 is a newer, cross-platform, open source variation containing much of what is in the .NET Framework.  It is still in preview with release date later this year, but is already much faster and more light-weight.  Microsoft has been ensuring that it is capable of supporting Windows desktop development platforms like WPF and WinForms, and they have been updating Visual Studio to support desktop app development based on .NET Core 3.0.  It also allows you to introduce newer Windows 10 APIs in desktop apps and host XAML islands (UWP controls).  Further, .NET Framework 4.8 is intended to be the final version of that framework, with .NET Core as the migration path moving forward.  More news in this area is sure to come in this week’s Build 2019 conference.

Moving to .NET Core 3.0

We’ve had numerous customers ask about moving our WPF Controls to .NET Core 3.0.  A near-term goal for us is to ship native .NET Core 3.0 variations of our WPF Control assemblies as option, while still shipping .NET Framework-based variations.

On a side note, the existing WPF Control assemblies can already be used within .NET Core 3.0 applications.  They are based on .NET Framework-only but are portable, and will work in .NET Core 3.0 applications.

What is .NET Standard?

This is where things get a bit more complex.  .NET Framework is the base set of .NET APIs we have been using ever since .NET began.  .NET Standard was more recently created as an API contract of sorts where a framework that implements a certain .NET Standard version guarantees that it supports a certain set of .NET APIs.   

Think of .NET Standard like a set of interfaces and .NET Framework like a set of classes that implement those interfaces.  Thus, more recent .NET Framework versions implement .NET Standard.

Microsoft's .NET Core diagram

.NET Core is simply another implementation of .NET Standard.  Since the API implementation surface area is now about the same between .NET Core and .NET Framework, it’s a good time to consider moving to .NET Core for future work. 

.NET Framework 4.6.1

The 4.6.1 version of the .NET Framework is now mature, as it was released at the end of 2015 and requires Visual Studio 2015 or later for development.  It supports .NET Standard 2.0.

Back on Framework Updates

Both .NET Core 3.0 and .NET Framework 4.6.1 implement .NET Standard 2.0, which is the minimum set of APIs a number of our WPF Controls and SyntaxEditor text/parsing assemblies require.

One option we’ve been considering is:

  • Moving some of our non-UI class libraries like the various SyntaxEditor text assemblies that have no WPF references to be .NET Standard 2.0 class libraries. This would enable them to work in .NET Framework, .NET Core, Mono, etc… basically any framework implementing .NET Standard 2.0.
  • Continuing to ship .NET Framework versions of the WPF Control assemblies, but making their minimum target .NET 4.6.1, compared to the current .NET 4.0 minimum target. The .NET 4.6.1 version is needed to support references to .NET Standard 2.0 assemblies mentioned in the previous bullet, and would require you to target .NET 4.6.1 or later in your .NET Framework-based applications.
  • Adding .NET Core 3.0 versions of the WPF Control assemblies, so there is zero .NET Framework dependency for customers who wish to go purely to .NET Core 3.0.

A Twitter Poll

Please answer our Twitter poll as to whether you would support the changes mentioned above or not.  If not, please indicate in the comments below or in the Twitter poll why.

Answer Our Twitter Poll

WPF SyntaxEditor vNext Beta

And as we close out this blog post, if any other WPF Controls customers would like to participate in the WPF SyntaxEditor vNext beta, please contact our support team.

SyntaxEditor vNext Beta Testers Wanted

by Avatar Bill Henning (Actipro)
Wednesday, April 17, 2019 at 8:23pm

As the massive SyntaxEditor vNext project heads towards completion, we are now asking for beta testers to work with preview builds of what’s coming.

SyntaxEditor vNext with the new integrated search pane

Beta testers will get an early look at all the new features, and can give us valuable feedback to influence any necessary development and/or bug fixes prior to a final release.

Rollout Schedule

The WPF version is closest to ready for a beta. We still have a bit more work to accomplish before the first WPF beta is ready for testing, but it could be a week or two away at this point.

The UWP version will follow the WPF version, once the WPF beta is tested for some time. A benefit of SyntaxEditor vNext using the same codebase across WPF, UWP, and WinForms is that any changes/fixes made to one platform can easily flow into the others as well.

Finally the WinForms version will enter beta after the other two are out and both being tested, and after the documentation updates for the WPF/UWP versions has been completed.

We will continue posting status updates in our blog.

Beta Testers

We are looking for beta testers who:

  • Will actively use supplied preview builds to help ensure the beta is stable.
  • Will report suggestions for improvement of new features.
  • Will report any bugs that are encountered.
  • Ideally is signed up in our Slack workspace, as it’s easiest to communicate through that during testing phases.

Please contact our support team privately via a ticket to sign up for beta testing:

Contact Our Support Team to Sign Up

Please indicate the following in your message:

  • Your name and e-mail address.
  • If you are already an existing customer, and which syntax language(s) you currently use.
  • The platform(s) you’d like to test.
  • If you are already signed up in our Slack workspace.

Thanks for your help and we look forward to working with our testers.

The SyntaxEditor vNext work is intended to be launched in the future v2019.1 SyntaxEditor for WPF, SyntaxEditor for UWP, and SyntaxEditor for WinForms products.

Actipro Blog Q1 2019 Posting Summary

by Avatar Bill Henning (Actipro)
Wednesday, April 3, 2019 at 7:34pm

What We Accomplished

In this quarter, we were proud to roll out our brand new company website and blog to better serve you. Both have beautiful, modern designs that focus on content, have subtle animations, and use responsive design to look great on any device. Best of all, they are very fast!

We rolled out large maintenance releases of our 2018.1 WPF, UWP, and Silverlight controls, and a new version of our free Code Writer app as well.

Behind the scenes, we’ve continued plugging away at the massive SyntaxEditor vNext project. This project is rewriting the internals of SyntaxEditor to be common across the WPF, UWP, and WinForms platforms, while adding a number of neat features along the way.

SyntaxEditor vNext multiple caret example

In this animation, you can see a new feature coming in vNext, which is multiple carets/selections. You can click like normal to place a caret, then Ctrl+click to add one or more additional carets. Here we are using the open line above edit action (Ctrl+Enter) to add blank lines above both carets, and then are typing. The typing appears on both lines.

What's Coming Next

The main focus now is wrapping up the SyntaxEditor vNext project and starting to get betas out. The WPF version is the closest to being code-complete. We are running through the remaining TODO items there, knocking them out each day. We expect to start asking for WPF SyntaxEditor vNext beta testers in the next several weeks. Watch our blog for news.

Blog Post List

Actipro Website and Blog

Control Product Development

Product Releases

Code Writer v3.3 Released

by Avatar Bill Henning (Actipro)
Thursday, March 21, 2019 at 2:11pm

Code Writer v3.3 was just published to the Microsoft Store and should be available shortly.

What's New

  • Added: New documents will avoid name collisions with existing open documents.
  • Added: Support for opening ColdFusion files from Windows' Open With menu.
  • Added: Support for opening .config and .rst files from Windows' Open With menu.
  • Added: Copied clipboard text is kept on the clipboard after app exit.
  • Changed: Delimiter highlight background to improve visibility.
  • Fixed: Focus was not in the editor at app startup.
  • Fixed: Consolas was not selected as the default font for new installs.

About Code Writer

Code Writer is a free text and code editing app, downloadable from the Microsoft Store, and is used by thousands of people each day.  Version 3.x requires the Windows 10 Fall Creators Update (version 1709) or later.

Want to get the latest news about Code Writer?  Follow our @CodeWriterApp Twitter account.

Want to chat with us about Code Writer?  Please register to join our Slack workspace and join the #codewriter channel once added.

If you are a Universal Windows app developer, you can download a free evaluation of our Universal Windows Controls to use in your own apps.  Code Writer makes use of our SyntaxEditor, Docking/MDI, PropertyGrid, and Editors controls.  SyntaxEditor is of particular interest because it lets you add advanced code and text editing to your own apps.

SyntaxEditor vNext - Editor View Panes

by Avatar Bill Henning (Actipro) - 7 comments
Wednesday, March 13, 2019 at 3:30pm

Another feature we're looking to add to SyntaxEditor vNext (the 2019.1 version) is editor view panes, which are small UI panes with editor-related functionality that slide in from the view's top-right corner.  We originally started this effort with the idea of adding an inline search view similar to the one found in Visual Studio. 

Here's a walkthrough showing how it works when you press Ctrl+F:

An example editor view pane for find/replace functionality

We will cover this new inline search view in detail in a future post, as it's still being developed at this time.  But you can get a feel for how it will function via the video above.  

As we worked on this feature, we thought it would be a great idea to try and make more of a generic mechanism to host these kinds of editor view panes.  Other editor view panes could be added for go-to line, go-to anything, refactoring, etc. kinds of user interfaces.

Submit Your Feedback

We're just in the planning stages of this more generic editor view pane mechanism right now and would love to get your feedback.

Let's hear your thoughts in the comments on what kinds of built-in panes you might like to see, or what kinds of custom panes you might build with this mechanism!

The features described above are intended for the future v2019.1 SyntaxEditor for WPF, SyntaxEditor for UWP, and SyntaxEditor for WinForms products.