.net core WinFrom桌面应用程序 初体验

1..net Core 创建WinFrom桌面应用程序

前提是安装好.netCore开发环境,以及最新的.netCore3.0以上

使用命令创建,打开CMD,输入:dotnet new winform -o TestWFCore

上述代码会创建一个名为TestWFCore的新项目。该项目位于c:\ Users(YourAccount)下

然后把这个项目拷贝出来,放到自己想放的目录下就行,最后使用Visual Studio 2019 打开即可,但是打开如下如图所示:

 

窗体设计器不可用,但是可以正常生成和运行。继续往下看

2..net Core窗体可视化设计器

下面是这个项目的csproj文件内容

把csproj的内容全部替换为下面代码:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFrameworks>net472;netcoreapp3.0</TargetFrameworks>
    <UseWindowsForms>true</UseWindowsForms>
    <LangVersion>7.3</LangVersion>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  </PropertyGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net472' ">
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Deployment" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net472' ">
    <!-- add From files to here to enable designer -->
    <Compile Update="Form1.cs">
      <SubType>Form</SubType>
    </Compile>
  </ItemGroup>
</Project>

保存csproj文件,然后如vs有提示重新加载,就全部从新加载,要不然就关闭VS重新打开项目,就如下所示:

这样修改后,项目的属性中目标框架就变为了只读状态

因为设置了两个目标:

最终这样在生成项目的时候在debug目下会有两个目录:

netcoreapp3.0下的文件就是我们需要的可运行的所有文件。

说明:

  • 这是目前的临时解决方案,官方后续会肯定会在.netCore项目了里面支持可视化窗体设计的,而且创建项目应该也会有相应的模版。
  • 目前使用.net core开发的winform桌面应用程序也只能在windows系统上面运行,至于以后怎么在Mac或者Linux下运行官方暂时还么有进一步发表,但是可以肯定的是以后winform肯定能跨平台的。

3.移植.net framework桌面应用程序到.net Core

可以下载:.NET可移植性分析器这个visual studio扩展,用来分析你的.net framework项目是否适合移植到.netCore:

然后根据官方教程来吧,官方教程比较详细:将 Windows 窗体桌面应用程序移植到 .NET Core
我这里按个人理解总结一下吧,主要步骤是:

  • 创建一个空目录与需要移植的项目放在同一个目录下
  • 然后在空目录下只需要创建一个.net core的 csporj文件
  • 然后在把以前的项目关联到现在这个csporj文件上,这样以前那个项目的csporj文件可以正常打开设计窗体,从新的.sln文件打开项目(新的csporj文件)就能使用.net core 的特性
  • 最终效果是如果把两个项目同时打开,可以看到两边的代码是一样的,而两个项目使用的框架是不同的,一个是framewrok,一个是.netcore,因为代码文件都是同一个嘛,只是指定了不同的框架,但是移植后新写的.netcore的一些代码特性,原来的项目打开的话会有很多漂红的,不能用的,而且在新项目下面新建的cs文件,会在新项目的目录下(原framewrok项目的文件还是在之它自己的目录下),如下图:

这样的话只是对窗体的界面的调整设计比较方便。

移植后的项目是没有窗体的可视化设计界面的,但是我也从移植后的项目中引用了.net core 的一些nuget包,然后成功的运行并从服务器上获取了数据:

以上所有内容就是现阶段体验的情况,有一些东西也是东查一点资料西找一点,最终综合为自己所用了。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页