百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

微软Build Live大会.NET Core 3和对Windows桌面应用程序的支持

bigegpt 2024-09-03 11:12 3 浏览

在微软Build Live大会上,微软.Net Core团队公开了.net Core3的开发计划的预览。.Net Core 3 的亮点是支持Windows桌面应用程序,特别是Windows窗体、Windows Presentation Framework (WPF)和UWP XAML。您将能够在. net Core上运行新的和现有的Windows桌面应用程序,并能享受.Net Core提供的所有好处。

微软.Net Core团队计划在今年晚些时候发布.Net Core 3的第一个预览版,并在2019年发布最终版本。我们将寻找与我们合作的开发人员,向我们提供反馈,并在我们发布的同时发布您的应用程序版本。我们认为.Net Core 3.0将会是我们发布过的最激动人心的.Net 版本之一。

ASP.NET Core将继续并行前进,并将发布.NET Core 3.0版本。我们对web和云应用的承诺没有改变。与此同时,是时候将Windows桌面应用程序添加到. net Core中了。我们已经听到了许多针对.net核心的桌面应用程序的请求,现在正在分享了我们的计划。

.NET Core对桌面程序的好处

对于桌面应用程序来说,. net Core有很多好处。

有一些是值得明确指出的:

性能改进和其他运行时更新,会让你的用户高兴

非常容易使用或测试新版本的

支持机器全局和应用程序本地部署

在Visual Studio中支持.NET核心CLI工具和sdk样式的项目

我们还宣布将在.net Core 3.0和.net Framework 4.8中加入一系列的改进:

访问完整的Windows 10(即“WinRT”)API。

能够在WPF和Windows窗体应用程序中驻留UWP XAML控件。

能够托管UWP浏览器和媒体控件,支持现代浏览器和媒体内容和标准。

.NET Framework 4.8

在一周前发布了.net Framework 4.7.2之后,我们还将公布我们的netframework 4.8开发计划。我们预计在12个月内发布下一个版本4.8。与过去的几个版本一样,新版本将包含一系列有针对性的改进,包括上面列出的特性。

可视化.net Core 3

让我们来看一下.net Core 3结构图

对Windows桌面的支持将作为一组“Windows桌面包”添加,只在Windows上使用。我们将继续提供一个优秀的跨平台产品,专注于云计算。我们计划对这些场景进行很多改进,稍后将与大家分享。

从更高层次的视角来看,你可以把WPF想象成在DirectX上的富层,而Windows则是在GDI Plus上的更薄层。WPF和Windows窗体在Windows中很好地暴露和运行了许多桌面应用程序功能。它是Windows窗体和WPF中的c#代码,我们将其作为一组带有.net Core 3的库。Windows的功能,如GDI Plus和DirectX,将保留在Windows中。

我们还将同时发布一个新的 .NET Standard 版本。当然,所有新的 .NET 标准api都将是 .NET Core 3.0的一部分。例如,我们还没有将Span<T>添加到标准中。我们将在下一个版本中做这个。

c#、f#和VB已经在使用.NET Core 2.0了。您将能够使用.NET Core 3中的任意一种语言构建桌面应用程序。

Side-by-side 应用程序本地部署

. net核心部署模型是Windows桌面开发人员在. net Core 3中体验到的最大好处之一。简而言之,你可以以任何你想要的方式安装。net Core。它具有很多部署灵活性。

当新的.net Core版本发布时,您可以一次更新一个应用程序,而不必担心影响其他应用程序。新的.net核心版本安装在新的目录中,现有的应用程序不使用。

对于需要最大隔离的情况,您可以在应用程序中部署. net Core。我们正在开发新的构建工具,将你的应用程序和.net核心作为一个新的可执行文件捆绑在一起。

我们已经有这样的部署选项的请求很多年了,但是从来都不能用.net框架来交付。. net Core使用的模块化架构使这些灵活的部署选项成为可能。

在现有的桌面应用程序中使用.NET Core 3

对于新的桌面应用程序,我们将指导大家从.net Core 3开始。更有趣的问题是,将现有的应用程序(尤其是大型应用程序)迁移到.net Core 3,会是什么样的体验。我们希望体验足够简单,对于任何正在进行活动开发的应用程序来说,迁移到.net Core 3是一个简单的选择。

快速解释我们的计划:

桌面应用程序需要针对.net Core 3重新编译。

项目文件需要更新到目标.net Core 3。

依赖项不需要重新定位和重新编译。如果您更新依赖项,将会有额外的好处。

我们打算为桌面应用程序提供兼容的api。我们计划让WPF和Windows同时具备功能,但其他方面都是如此,并让它们在.net Core 3上工作。事实上,我们已经使用了一些自己的应用程序和其他我们可以访问的应用程序。

我们有一个版本的Paint.NET在我们实验室里运行。事实上,我们并没有接触Paint.NET的源代码。我们让现有的Paint.NET二进制文件运行在.net Core上。我们没有可用的WPF的运行程序,所以我们只是在实验室机器上的. net Framework目录中使用了WPF二进制文件。顺便提一下,这个试验在.netCore中发现了一个未知的bug,这个bug已经被net Core 2.1修复。

我们还没有做任何优化,但我们发现Paint.NET在.net Core中运行时启动速度更快。这真是一个惊喜。

类似地,EF6将被更新为.net Core 3.0,为使用EF6的现有应用程序提供一个简单的前进路径。但是我们不打算为EF6添加任何主要的新特性.EF Core将扩展为新的特性,并将保留所有类型的新应用程序的推荐数据堆栈。如果您想利用新特性和改进性能,我们建议您移植到EF Core。

我们知道兼容性对于将现有桌面应用程序迁移到.net Core 3的每个人来说都是非常重要的。我们将继续测试应用程序,并向. net核心添加更多功能来支持它们。我们将发布任何难以支持的api,这样我们就可以得到您的反馈。

更新项目文件

在.NET Core项目中,我们采用了sdk风格的项目。sdk风格项目的一个关键方面是PackageReference,它是引用NuGet包的一种更新的方式。PackageReference替换packages.config。PackageReference可以同时引用整个组件区域,而不是一次只引用一个组件。

与sdk风格项目相比,最大的经验改进是:

更小更清洁的项目文件。

更友好的源码控制(更少的变化和更小的差别)

在Visual Studio中编辑项目文件,不卸载

NuGet是构建和响应目标框架更新等变更的一部分。

支持多平台

为桌面项目采用。net Core 3的第一部分将迁移到sdk风格的项目。在Visual Studio中会有迁移体验,可以在命令行中获得。

一个用于ASP的sdk样式的项目的例子. NET Core 2.1紧随其后。。NET Core 3项目文件看起来类似。

控件、NuGet包和现有的程序集引用

桌面应用程序通常有许多依赖项,可能来自控件供应商,也可能来自不再具有源代码的NuGet或二进制文件。并不是所有这些都可以快速更新到.net Core 3,有的甚至可能根本不更新。

如上所述,我们打算支持现有的依赖关系。如果您在Build大会上,您将看到Scott Hunter演示一个.NET Core 3桌面应用程序,该应用程序使用现有的第三方控件。我们将继续测试类似的场景,以验证.net Core 3的兼容性。

今天的新闻展示了Windows桌面应用的巨大投资和承诺。您可以期待我们在2019年发布两个版本,net Core 3和.net Framework 4.8。这两个版本之间共享了许多特性,而其他一些特性仅在.net Core 3中可用。我们认为,这种共性和差异为桌面应用程序的发展和现代化提供了大量的选择。

相关推荐

当Frida来“敲”门(frida是什么)

0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...

服务端性能测试实战3-性能测试脚本开发

前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...

Springboot整合Apache Ftpserver拓展功能及业务讲解(三)

今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...

Linux和Windows下:Python Crypto模块安装方式区别

一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...

Python 3 加密简介(python des加密解密)

Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...

怎样从零开始编译一个魔兽世界开源服务端Windows

第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...

附1-Conda部署安装及基本使用(conda安装教程)

Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...

如何配置全世界最小的 MySQL 服务器

配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...

如何使用Github Action来自动化编译PolarDB-PG数据库

随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...

面向NDK开发者的Android 7.0变更(ndk android.mk)

订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...

信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要

问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...

OpenSSH 安全漏洞,修补操作一手掌握

1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...

Linux:lsof命令详解(linux lsof命令详解)

介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...

幻隐说固态第一期:固态硬盘接口类别

前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...

新品轰炸 影驰SSD多款产品登Computex

分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...