Deep integration here mainly refers to the number of Windows-specific system features:
-
Windows tray
-
Windows Jump List
-
Windows system theme
Also it includes some of the features of the mobile platform, such as iOS native slide.
Because the operating system other programs generally use native controls, so only when your program uses the same technology, it can very well be consistent. This is a general compliance with all interface development agreement. Apple has detailed interface design guidelines for developers to reference .
Full-screen game program in general, do not need to comply with this agreement. Other programs, such as RealPlayer, QQ, but also contrary to this convention. Personal view is that, try not to engage in specialization.
So if you decide to use this option, then on a different operating system, you need to learn a different interface framework:
-
Windows:Windows Forms
-
macOS: Xamarin.Mac (the Cocoa Package)
-
Linux: GTK # (encapsulated GTK +)
-
iOS: Xamarin.iOS (Package CocoaTouch)
-
Android: Xamarin.Android (Package Android UI)
It is worth noting:
Windows platform is undergoing change the overall interface design, the future standard interface framework should be UWP. Although WPF is Microsoft's official support of the technology, however, and compared to WinForms, it still draws its own, can not be considered a native interface framework.
MonoMac been abandoned for various reasons see .
QtSharp and other frameworks are not very mature.
Many successful projects on the market are the beneficiaries of this program. Here are a few examples:
-
National Instruments LabView official website use Xamarin.iOS in iOS platform mobile version of the address , use the Windows platform, Windows Forms (this is not specifically identified).
-
Plastic SCM official website on Linux platform GTK #, use Xamarin.Mac in macOS, using Windows Forms on Windows.
-
iCircuit official website in macOS Xamarin.Mac, use Xamarin.iOS in iOS, Xamarin.Android use in Android, using Microsoft technology in the Windows and Windows Phone.
But there are always programmers want to be able to use cross-platform UI framework, to simplify their work. Therefore, this article also describes some cross-platform UI framework already exists for reference. Although they vary, but generally are used in a three design ideas in the following:
-
Control yourself completely drawn, simulate the effect of system control on different operating systems.
-
On an operating system is a native frame, on the other operating systems by simulating achieve the display.
-
Abstract design, controls mapped to the native runtime.
Unity / monogamous
Design: completely draw their own (though there is no standard controls concept)
Operating system: desktop and mobile devices (including game terminal, etc.)
Display: the operating system does not matter
Tripartite control: not to mention
Both are game engine. Have to use them to design cross-platform application is technically feasible, but because there is no operating system controls things like, needs its own fully drawn, so the development of non-gaming applications, the difficulty is still there. As for the operating system and the depth of integration, even more trouble.
GTK#
Design: On Linux native frame, on the other operating systems can run the simulation.
Operating System: Desktop
Display: deep integration on Linux
Tripartite Controls: There are some, but not very active provider
GTK has always been one for the desktop application development framework for cross-platform interface, so after GTK # is also very easy to use package. However, it would appear on a non-Linux operating system is poor (for example, on a Windows system theme and very dissonant).
MonoDevelop GTK # is the use of the IDE. When Microsoft / Xamarin will transform it into Visual Studio for Mac, many interface elements have been replaced Xamarin.Mac the native system.
Windows Forms
Design: On Windows native frame, on the other operating systems can run the simulation.
Operating System: Desktop
Display: deep integration on Windows
This is most of the time learning C # programmer entry interface framework, it can be quickly integrated Windows various controls. Although support for Windows CE mobile platform, but basically useless. Mono version 2.0 from the start migrating it to Linux and other operating systems. Plastic SCM is the first to use Mono Windows Forms will end migrate their Windows clients to other operating systems. But the Mono implementation is not perfect in many details, but also requires a lot of effort to improve. Plastic SCM late to give up cross-platform Windows Forms road.
Windows Forms in the Windows platform has a large number of third-party controls, which are the basic controls do not support Linux and other operating systems. Although Microsoft recently began System.Drawing will become a cross-platform technology, but also makes the official Windows Forms likely to become a cross-platform interface program, but how to display non-Windows platform, or is the market will follow a tripartite still unknown .
Most importantly, Windows Forms originally designed for the desktop, it can not well supported mobile platforms. As early as the initial development phase MonoTouch, Mono Windows Forms team had thought would become iOS platform UI framework related articles . Of course, they finally wisely dropped the idea, instead of using a native Cocoa Touch package program.
WPF/Avalonia/UWP
Design idea: draw completely on my own.
Operating System: Desktop (UWP support Windows Mobile, Avalonia have mobile support)
Display: deep integration on Windows
Tripartite Controls: Windows platform lot
UWP WPF and Microsoft are official technology, and Avalonia official website try a similar design to become a cross-platform technology.
There is a lot like Delphi FireMonkey WPF UI framework has been completely cross-platform (desktop and mobile devices), so WPF technologies like to cross-platform is technically feasible, but the challenges are many.
Although Microsoft has a lot of ways to improve integration (including several sets of themes) WPF and systems, but it did not always show like a native Windows Forms. Of course, from the beginning of Windows 10, Microsoft simply use the UWP to develop the system comes with the program, so UWP will eventually become the primary framework.
Xamarin.Forms
Design: native control mapping.
Operating system: mobile platforms (started trying to desktop support)
Display: Always depth and native system integration
Tripartite control: rapid development
Xamarin to develop this technology, initially for cross-platform mobile applications, but recently it has begun to the desktop scenarios, such as macOS (WPF development and integration are in GTK #).
And completely on my own rendering technology different is that, Xamarin.Forms procedures used in the design is an abstract control. Button design time, control lists, etc., will be mapped to the native operating system's buttons, lists, and other controls to run. So from the display, this is the best of a technology.
More importantly, Xamarin.Forms new version has support for embedded directly into the native controls, also supports native program is embedded Xamarin.Forms interface, more flexibility for developers.
But this is also a temporary technical limitations, it is still controls designed for mobile applications. If your goal is to design an Office or Visual Studio as a standard desktop application, it will encounter difficulties. Fortunately, not all scenes we all need so complicated interface.
There are already many third-party controls to provide Xamarin.Forms:
More and more of the three parties to join also makes this technology more active.
xwt / Eto.Forms
Design: native control mapping.
Operating System: Desktop (start trying to move support)
Display: Always depth and native system integration
Tripartite control: no more than temporary
Both technical and Xamarin.Forms are similar, but they are all from the desktop platform began.
xwt official website is part of the Mono project. Personally, I think it inspired Xamarin.Forms design. Eto.Forms official website is relatively new, and began to enter the mobile platform.
Both frameworks will finally reach Xamarin.Forms heat remains to be seen.
Original Address: at The Story the About the .NET Cross Platform the UI Frameworks
Author: Chu Leo
Source: https://www.cnblogs.com/leolion/p/7144896.html
Copyright: This site uses " CC BY 4.0 " Creative Commons agreement, reproduced in the article clearly indicate the position of the author and source.
Deep integration here mainly refers to the number of Windows-specific system features:
-
Windows tray
-
Windows Jump List
-
Windows system theme
Also it includes some of the features of the mobile platform, such as iOS native slide.
Because the operating system other programs generally use native controls, so only when your program uses the same technology, it can very well be consistent. This is a general compliance with all interface development agreement. Apple has detailed interface design guidelines for developers to reference .
Full-screen game program in general, do not need to comply with this agreement. Other programs, such as RealPlayer, QQ, but also contrary to this convention. Personal view is that, try not to engage in specialization.
So if you decide to use this option, then on a different operating system, you need to learn a different interface framework:
-
Windows:Windows Forms
-
macOS: Xamarin.Mac (the Cocoa Package)
-
Linux: GTK # (encapsulated GTK +)
-
iOS: Xamarin.iOS (Package CocoaTouch)
-
Android: Xamarin.Android (Package Android UI)
It is worth noting:
Windows platform is undergoing change the overall interface design, the future standard interface framework should be UWP. Although WPF is Microsoft's official support of the technology, however, and compared to WinForms, it still draws its own, can not be considered a native interface framework.
MonoMac been abandoned for various reasons see .
QtSharp and other frameworks are not very mature.
Many successful projects on the market are the beneficiaries of this program. Here are a few examples:
-
National Instruments LabView official website use Xamarin.iOS in iOS platform mobile version of the address , use the Windows platform, Windows Forms (this is not specifically identified).
-
Plastic SCM official website on Linux platform GTK #, use Xamarin.Mac in macOS, using Windows Forms on Windows.
-
iCircuit official website in macOS Xamarin.Mac, use Xamarin.iOS in iOS, Xamarin.Android use in Android, using Microsoft technology in the Windows and Windows Phone.
But there are always programmers want to be able to use cross-platform UI framework, to simplify their work. Therefore, this article also describes some cross-platform UI framework already exists for reference. Although they vary, but generally are used in a three design ideas in the following:
-
Control yourself completely drawn, simulate the effect of system control on different operating systems.
-
On an operating system is a native frame, on the other operating systems by simulating achieve the display.
-
Abstract design, controls mapped to the native runtime.
Unity / monogamous
Design: completely draw their own (though there is no standard controls concept)
Operating system: desktop and mobile devices (including game terminal, etc.)
Display: the operating system does not matter
Tripartite control: not to mention
Both are game engine. Have to use them to design cross-platform application is technically feasible, but because there is no operating system controls things like, needs its own fully drawn, so the development of non-gaming applications, the difficulty is still there. As for the operating system and the depth of integration, even more trouble.
GTK#
Design: On Linux native frame, on the other operating systems can run the simulation.
Operating System: Desktop
Display: deep integration on Linux
Tripartite Controls: There are some, but not very active provider
GTK has always been one for the desktop application development framework for cross-platform interface, so after GTK # is also very easy to use package. However, it would appear on a non-Linux operating system is poor (for example, on a Windows system theme and very dissonant).
MonoDevelop GTK # is the use of the IDE. When Microsoft / Xamarin will transform it into Visual Studio for Mac, many interface elements have been replaced Xamarin.Mac the native system.
Windows Forms
Design: On Windows native frame, on the other operating systems can run the simulation.
Operating System: Desktop
Display: deep integration on Windows
This is most of the time learning C # programmer entry interface framework, it can be quickly integrated Windows various controls. Although support for Windows CE mobile platform, but basically useless. Mono version 2.0 from the start migrating it to Linux and other operating systems. Plastic SCM is the first to use Mono Windows Forms will end migrate their Windows clients to other operating systems. But the Mono implementation is not perfect in many details, but also requires a lot of effort to improve. Plastic SCM late to give up cross-platform Windows Forms road.
Windows Forms in the Windows platform has a large number of third-party controls, which are the basic controls do not support Linux and other operating systems. Although Microsoft recently began System.Drawing will become a cross-platform technology, but also makes the official Windows Forms likely to become a cross-platform interface program, but how to display non-Windows platform, or is the market will follow a tripartite still unknown .
Most importantly, Windows Forms originally designed for the desktop, it can not well supported mobile platforms. As early as the initial development phase MonoTouch, Mono Windows Forms team had thought would become iOS platform UI framework related articles . Of course, they finally wisely dropped the idea, instead of using a native Cocoa Touch package program.
WPF/Avalonia/UWP
Design idea: draw completely on my own.
Operating System: Desktop (UWP support Windows Mobile, Avalonia have mobile support)
Display: deep integration on Windows
Tripartite Controls: Windows platform lot
UWP WPF and Microsoft are official technology, and Avalonia official website try a similar design to become a cross-platform technology.
There is a lot like Delphi FireMonkey WPF UI framework has been completely cross-platform (desktop and mobile devices), so WPF technologies like to cross-platform is technically feasible, but the challenges are many.
Although Microsoft has a lot of ways to improve integration (including several sets of themes) WPF and systems, but it did not always show like a native Windows Forms. Of course, from the beginning of Windows 10, Microsoft simply use the UWP to develop the system comes with the program, so UWP will eventually become the primary framework.
Xamarin.Forms
Design: native control mapping.
Operating system: mobile platforms (started trying to desktop support)
Display: Always depth and native system integration
Tripartite control: rapid development
Xamarin to develop this technology, initially for cross-platform mobile applications, but recently it has begun to the desktop scenarios, such as macOS (WPF development and integration are in GTK #).
And completely on my own rendering technology different is that, Xamarin.Forms procedures used in the design is an abstract control. Button design time, control lists, etc., will be mapped to the native operating system's buttons, lists, and other controls to run. So from the display, this is the best of a technology.
More importantly, Xamarin.Forms new version has support for embedded directly into the native controls, also supports native program is embedded Xamarin.Forms interface, more flexibility for developers.
But this is also a temporary technical limitations, it is still controls designed for mobile applications. If your goal is to design an Office or Visual Studio as a standard desktop application, it will encounter difficulties. Fortunately, not all scenes we all need so complicated interface.
There are already many third-party controls to provide Xamarin.Forms:
More and more of the three parties to join also makes this technology more active.
xwt / Eto.Forms
Design: native control mapping.
Operating System: Desktop (start trying to move support)
Display: Always depth and native system integration
Tripartite control: no more than temporary
Both technical and Xamarin.Forms are similar, but they are all from the desktop platform began.
xwt official website is part of the Mono project. Personally, I think it inspired Xamarin.Forms design. Eto.Forms official website is relatively new, and began to enter the mobile platform.
Both frameworks will finally reach Xamarin.Forms heat remains to be seen.
Original Address: at The Story the About the .NET Cross Platform the UI Frameworks
Author: Chu Leo