在微軟 Build 2018 開發者大會上,.NET 團隊公佈了 .NET Core 的下一個主要版本 .NET Core 3.0 的規劃藍圖:.NET Core 3將開始支持Windows桌面應用程序,包括Windows Form、Windows Presentation Framework(WPF)和UWP XAML。屆時在 .NET Core 3上將能運行Windows桌面應用程序,在享受 .NET Core新架構優點便利的同時,兼容老的 .net應用。目前爲止,.Net Core 3.0 的首個預覽版已正式發佈,而正式版本也將在今年全面推出。css
做爲經典的全功能 .NET控件集,ComponentOne技術團隊一直專一於行業將來的發展方向,2019年 ComponentOne 將繼續加強產品功能、增長新的控件並全面兼容 .Net Core 3.0。html
在此以前,ComponentOne 技術團隊一直致力於研究框架和庫的變化和兼容性。所以,在 .Net Core 3.0正式版中使用任何 ComponentOne 控件將不須要進行任何更改(因爲某些類缺乏,有些控件當前在 .Net Core 3.0 預覽版中不起做用。要了解未解決的問題,請跳至本博客的最後一部分)。git
如今,咱們將以 ComponentOne 其中一個Demo爲例,看看如何將它移植到 .NET Core 3.0 中,此步驟與GitHub上的步驟相似。github
安裝 .NET Core 3.0 SDK。選擇適當您的平臺下載安裝程序(若是您使用的是64位操做系統,請使用x64;若是您使用的是32位操做系統,請選擇x86)。windows
本Demo是使用VS2019運行的,您能夠在此處下載預覽版。安全
安裝ComponentOne WinForms Edition(在此處獲取免費試用版)。若是已安裝本程序,則能夠跳過此步驟。bash
考慮到VS2019預覽版中的工具備限,缺乏WinForms的項目模板,咱們將使用命令提示符建立一個新項目。打開命令提示符並運行如下命令:架構
dotnet new winform -o TestWFCore
dotnet new winform -o TestWFCore
上述代碼會建立一個名爲TestWFCore的新項目。該項目位於c:\ Users(YourAccount)下app
經過命令提示符導航到項目目錄框架
cd TestWFCore
cd TestWFCore
經過命令提示符添加Windows兼容包,以下所示:
dotnet add package Microsoft.Windows.Compatibility
dotnet add package Microsoft.Windows.Compatibility
使用dotnet run運行應用程序以確保項目正常工做。
dotnet run
你將看到:Hello .NET Core!
如今咱們能夠在Visual Studio中打開它。
Visual Studio中的項目
咱們將在.Net Core 3.0中運行現有示例,咱們將在此位置進行移植「ComboBoxItemModes」輸入示例:
〜\ Documents \ ComponentOne Samples \ WinForms \ C1Input \ CS \ ComboBoxItemModes
將上述示例中的全部csharp文件連接到此項目。同時包含licences.licx,它位於Properties文件夾下。
將licenses.licx文件標記爲嵌入資源。
大多數現有項目都包含Properties文件夾中的AssemblyInfo.cs文件。新項目樣式使用不一樣的方法,並在構建過程當中生成相同的程序集屬性。要禁用該行爲,能夠添加屬性GenerateAssemblyInfo:
<PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWindowsForms>true</UseWindowsForms> <generateassemblyinfo>false</generateassemblyinfo> </PropertyGroup>
<PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWindowsForms>true</UseWindowsForms> <generateassemblyinfo>false</generateassemblyinfo> </PropertyGroup>
添加C1.Win.Input程序集的參考。
修改program.cs文件以建立Form1的實例並運行該應用程序。這相似於任何WinForms應用程序。
class Program { static void Main() { Application.Run(new Form1()); } }
class Program { static void Main() { Application.Run(new Form1()); } }
構建並運行應用程序:
按照上述步驟,咱們建立了一個簡單的示例,用於在 .NET Core 3.0 中運行不一樣的 ComponentOne 控件,段尾提供了 Demo 的下載示例。在運行示例以前,請查看自述文件。您將在如下位置找到 .NET Core 3.0 項目文件:〜\ DotNetCore3Sample \ WinForms \ CS \ DotNetCore3 \ DotNetCore3
目前,因爲 .NET Core 3.0 預覽版還沒有移植 WinForms 類,FlexGrid、TrueDbGrid、ThemeController和Command在 .NET Core 3.0 預覽版中運行時會出現bug。這些bug會在下一個預覽版中獲得修復:
https://github.com/dotnet/corefx/pull/33452
伴隨着 .NET Core 3.0的到來,以及 WinForm 和 WPF 的開源,ComponentOne 也將迎來更多改變,針對桌面應用程序、.NET Core Web API,ComponentOne將推出一系列全新控件和加強功能。
期待 ComponentOne 2019 將帶給您更多驚喜!
ComponentOne是一款專一於企業應用高性能開發的 .NET 全功能控件套包,包含300餘種控件,支持7大平臺,涵蓋7大功能模塊。較於市面上其餘同類產品,ComponentOne更加輕盈,功能更增強大,20多年的開發經驗,將爲您的應用系統帶來更爲安全的使用體驗。純中文操做界面,一對一技術支持,廠商級的技術服務,共同造就了這款國際頂級控件套包。