visual_studio

微软TypeScript 3.0正式发布:引入“项目引用”新概念

北京时间7月31日,微软宣布推出 TypeScript 3.0 正式版。TypeScript 3.0 是一个新的里程碑。官方表示,尽管版本号是一个大变化,但 3.0 版本几乎没有破坏性的变更(这意味着我们可以很轻松地升级到该版本),3.0 引入了一种新的灵活且可扩展的方式来构建项目、提供对参数列表进行操作新的强大支持能力、强制显式检查的新类型、更好的 JSX 支持、整体更好的错误处理,等等。

访问:

微软中国官方商城 – Visual Studio

下面简单说说值得关注的更新,更详细的更新说明请移步至 发布说明

 

微软TypeScript 3.0

 

这是 3.0 版本中引入的一个新概念。考虑这样一个场景 —— 对于开发者而言,为库或应用程序提供几个不同的构建步骤是相当常见的。也许你的代码库有一个 src 和一个测试目录。也许你将前端代码放在一个名为 client 的文件夹中,将 Node.js 后端代码放在名为 server 的文件夹中,每个文件夹都从共享文件夹中导入代码。也许你使用所谓的“monorepo”并且有许多项目以复杂的方式相互依赖。

官方表示,针对上述的场景,他们为 TypeScript 3.0 开发了最重大的功能之一 ——“项目引用(project references)”。

项目引用允许 TypeScript 项目依赖于其他 TypeScript 项目 —— 特别是允许 tsconfig.json 文件引用其他 tsconfig.json 文件。指定这些依赖项可以更容易地将代码拆分为更小的项目,因为它为 TypeScript(及其周围的工具)提供了一种理解构建顺序和输出结构的方法。这意味着更快的构建可以逐步工作,并支持跨项目导航、编辑和重构。由于 3.0 奠定了基础并公开了 API,因此任何构建工具都能够提供这一功能。

在JSX 中支持 defaultProps

该特性使得调用者可以通过不需要某些参数来更轻松地使用函数。

破坏性变更API 的破坏性变更

  • The deprecated internal method LanguageService#getSourceFile has been removed, as it has been deprecated for two years. See #24540.
  • The deprecated function TypeChecker#getSymbolDisplayBuilder and associated interfaces have been removed. See #25331. The emitter and node builder should be used instead.
  • The deprecated functions escapeIdentifier and unescapeIdentifier have been removed. Due to changing how the identifier name API worked in general, they have been identity functions for a few releases, so if you need your code to behave the same way, simply removing the calls should be sufficient. Alternatively, the typesafe escapeLeadingUnderscores and unescapeLeadingUnderscores should be used if the types indicate they are required (as they are used to convert to or from branded __String and string types).
  • The TypeChecker#getSuggestionForNonexistentPropertyTypeChecker#getSuggestionForNonexistentSymbol, and TypeChecker#getSuggestionForNonexistentModule methods have been made internal, and are no longer part of our public API. See #25520.

相关链接:

发布说明 https://blogs.msdn.microsoft.com/typescript/2018/07/30/announcing-typescript-3-0/

TypeScript 3.0 新特性 https://github.com/Microsoft/TypeScript/wiki/What’s-new-in-TypeScript#typescript-30

破坏性变化 https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#typescript-30

下载地址:

npm

Visual Studio 2015 plugin

Visual Studio 2017 (Select new version in project options)

NuGet package

.NET Core 2.1

.NET Core 2.1预览分层编译特性

.NET使用的JTI编译进程一直在平衡两个相互冲突的目标——更快的应用程序启动时间和更快的应用程序稳态性能。从终端用户的角度来看,如果JIT在启动时暂停并计算最佳的稳态性能,那么就会对应用程序启动速度的感受产生负面的影响。另一方面,如果JIT优先考虑更快的应用程序启动时间,那么应用程序的稳态性能就是次优的。

为了解决这一冲突,来自微软的Noah Falk宣布了面向.NET Core 2.1的分层编译。该特性使JIT执行多次编译,生成可以在运行时热交换的代码,从而获得最佳的整体性能。最终结果是应用程序启动快,同时又具有很棒的稳态性能。

由于该特性尚处于预览阶段,所以该特性还不是默认启用的,但是,对于任何.NET Core应用程序,都有几种方式可以激活。对于你能编译的应用程序,只需要向项目的默认属性组增加MSBuild属性<TieredCompilation>true</TieredCompilation>

如果你在运行一个之前编译好的应用程序,你没有源代码,那么你可以在configProperties部分的runtimeconfig.json文件中设置一个新属性:System.Runtime.TieredCompilation=true

最后,可以使用环境变量COMPlus_TieredCompilation=1启用分层编译,而不必修改任何文件。

需要注意的是,目前,该特性仍然仅限于.NET Core,不能指定用于.NET Framework部署。想要试用这项新技术的开发人员还可以查看微软在GitHub上建立的JitBench项目比较结果。

查看英文原文:.NET Core 2.1 Previews Tiered Compilation

Visual Studio Code

Visual Studio Code 1.26 发布,大量新特性来袭

Visual Studio Code 1.26 已发布,一些主要的更新亮点包括:

Breadcrumbs(面包屑)– 编辑器的内容上方现在有一个被称为 Breadcrumbs 的导航栏,它显示你的当前位置,并允许在符号和文件之间快速导航。要使用该功能,可使用 View > Toggle Breadcrumbs 命令或通过 breadcrumbs.enabled 设置启用。要与其交互,请使用 Focus Breadcrumbs 命令或按 Ctrl + Shift + 。

 

“问题”面板快速修复 – 现在可以从 “Problems” 面板中应用“ Quick Fixes ”。当你悬停或选择问题条目时,会出现快速修复的灯泡指示。可通过单击指示或打开问题条目的上下文菜单来应用快速修复。

 

  • Windows 默认用户设置 – 提供 Windows 用户设置安装包,不需要管理员权限即可安装,并提供流畅的后台更新体验。默认情况下,会通过“ 下载”页面指示新用户使用该设置包。
  • Grid: 自动最大化编辑器 -当你关注某个正处于最小化状态的布局窗口时,编辑器会自动最大化。可通过 View:Maximize Editor Group(workbench.action.minimizeOtherEditors)最大化活动编辑器,或通过View:Reset Editor Group Sizes(workbench.action.evenEditorWidths)重置所有编辑器大小。

Visual Studio Code

 

完整的更新内容请查看:https://code.visualstudio.com/updates/v1_26

下载地址:

Windows | Mac | Linux 64-bit: .tar.gz .deb .rpm | Linux 32-bit: .tar.gz .deb .rpm

https://github.com/Microsoft/vscode/releases/tag/1.26.0

Visual Studio

Visual Studio 2017 15.8 正式发布 测试速度提高 82%

Visual Studio 2017 15.8 版本已正式发布,现可选择在开始安装之前下载所有安装文件。要使用这一新选项,请在安装程序中选择“全部下载后再安装”选项。 如果 Internet 连接速度较慢,建议使用此选项。默认选项仍为“下载时安装”,它可并行下载和安装。

Visual Studio

 

性能

此版本包含以下性能改进:

  • 由于无需再重新加载解决方案,因此可更快地对大型解决方案执行 C#、VB 和 C++ 项目的分支切换。
  • 缩短在大型解决方案中卸载和重载一小组 C# 和 VB 项目的时间 – 从数分钟缩短到数秒钟。
  • 添加了一个选项,用于禁止重新打开已在上一会话中打开的文档,因为重新打开某些类型的文件或设计器会延迟解决方案加载。
    • 通过“工具”>“选项”>“项目”>“解决方案”>“常规”切换此选项。

测试性能

显著提升了在运行包含多个测试项目的大型解决方案期间的性能。 在我们的实验室中,超过 10,000 个 MSTest 的解决方案执行单个测试的速度提高了 82%!

Visual Basic 性能改进

Visual Basic 现显著提升了使用 CInt(Fix(number)) 模式将非整数类型转换为整数时的性能。

性能分析

此版本在以下方面增强了性能分析功能:

  • 添加了“启动但暂停分析”功能:
    • 性能探查器 (ALT-F2) 中的 CPU 使用情况工具现可启动但暂停分析。 如果 CPU 使用情况调查在一段时间后才提供有价值的结果,则此功能非常有用。 通过在禁用 CPU 使用情况收集的情况下启动,性能探查器将不收集任何 CPU 使用情况示例堆栈数据,直到专门启用此类数据。 这样一来,收集和分析的数据量大幅降低,从而使性能调查更加高效。
    • 要在禁用 CPU 使用情况示例收集的情况下启动会话,请在性能探查器启动页中单击 CPU 使用情况工具旁边的设置(齿轮)图标,以显示 CPU 使用情况属性页,然后取消选中标记为“启用 CPU 分析(采样)”的复选框。 最后,按“确定”以保存这些设置。

Visual Studio\*启动目标应用程序后(按性能探查器启动页中的“开始”按钮),将看到一个显示 CPU 使用率图的监视屏幕,你可通过它控制 CPU 分析**。 要启用 CPU 使用情况示例堆栈数据收集功能,请按视图中间的“启用 CPU 分析”链接,或单击 CPU 使用率图下方的“记录 CPU 配置文件”按钮。 可单击“记录 CPU 配置文件”按钮,根据需要多次启用/禁用示例数据收集。 CPU 使用率图的颜色出现相应变化,表示在该时间点是否启用/禁用示例收集。

Visual Studio添加了 .NET 对象分配跟踪工具:

  • 向性能探查器提供的工具系列增添了 .NET 对象分配跟踪工具。 如果为性能探查器会话调用此工具,将为目标应用程序中发生的每个 .NET 对象分配收集堆栈跟踪。 此堆栈数据和对象类型及大小信息一同进行分析,以显示应用程序的内存活动详情。 你可以快速确定代码中的分配模式并识别异常。 此外,对于垃圾回收 (GC) 事件,用户可轻松确定已收集和保留了哪些对象,从而快速确定占用应用程序大部分内存的对象类型。
  • 这对 API 编写器来说尤其有用,有助于最大程度减少分配。 许多应用程序都会超出诊断数据收集中涉及的缓冲区限制,但仍可很好地诊断执行 API 关键方案的小型测试应用程序。 测试应用程序执行过程中,性能探查器会显示一个监视视图,其中包含实时对象(计数)的折线图和对象增量(百分比变化)的条形图。
  • 要使用 .NET 对象分配跟踪工具,请调出性能探查器启动页,选择要分析的目标(默认目标是解决方案中的启动项目),从可用工具列表中勾选“.NET 对象分配跟踪”,然后按“开始”按钮。

Visual Studio

性能分析(CPU 使用情况)

此版本对性能探查器的 CPU 使用情况工具做出了以下改进(可通过 ALT-F2 获得):

  • 默认情况下,“调用树”视图现按逻辑调用堆栈显示异步执行。 可通过取消选中 CPU 使用情况主视图的“筛选器”下拉列表中的“拼结异步代码”选项来关闭此行为。
  • 添加了“模块/函数”视图,该视图按模块 (dll) 和模块内的函数显示性能信息。 在 CPU 使用情况主视图中选择函数时,可从上下文菜单中显示“模块/函数”视图,也可以从“调用树”或“调用方/被调用方”视图的“查看”下拉列表中显示“模块/函数”视图。
  • 在 CPU 使用情况工具的主视图中,为 CPU 使用情况图添加了“实例指示”。 双击任意 CPU 使用情况视图中列出的函数,即可在函数执行时(例如在堆栈上)查看实例。

生产力

此版本在以下方面提升了生产力:

  • 可使用格式文档(Ctrl + K、D 或 Ctrl + E、D)执行其他代码清理进行 C# 开发。 按以下方式配置清理:转到“工具” > “选项” > “文本编辑器” > “C#” > “代码样式” > “格式” > “常规”。
  • 增添了更多使用 Ctrl + . 或 Alt + Enter 的重构和快速操作:
    • dotnet_style_prefer_conditional_expression_over_assignment
    • dotnet_style_prefer_conditional_expression_over_return
    • dotnet_style_parentheses_in_arithmetic_binary_operators
    • dotnet_style_parentheses_in_relational_binary_operators
    • dotnet_style_parentheses_in_other_binary_operators
    • dotnet_style_parentheses_in_other_operators
    • “倒转 If”可让 if-else 语句中的逻辑反转。 将光标置于 if 关键字,以触发此重构。
    • 通过从方法调用站点添加参数,可向方法调用站点添加参数并触发“快速操作和重构”,从而向方法添加参数。
    • 删除不必要的括号时会一并删除对编译不重要的二元运算符两侧的括号。 可通过“工具” > “选项” > “文本编辑器” > “C#” > “代码样式” > “常规”或以下 .editorconfig 配置此样式规则:
    • 此外,还可通过“工具” > “选项” > 或以下 .editorconfig 将“在分配中使用三元条件并返回语句”配置为样式规则:
  • 在“转到所有”窗口中添加了新的命令和改进功能:
    • 通过“转到封闭块”(Ctrl + Alt + 向上键),可快速导航到封闭代码块的开头。
    • 通过“转到下一个/上一个问题”(Alt + PgUp/PgDn),可跳到下一个/上一个问题(错误、波形曲线和灯泡)。
    • “转到成员”(Ctrl + T、M)现默认适用于文件。 可通过将作用域切换到当前文档 (Ctrl + Alt + C),使默认值更改回解决方案。
  • 借助对多个插入点的支持,现可在文件中的多个任意位置创建插入点并选择内容。 这样,你可以同时在多个位置添加、编辑或删除文本。
    • 通过“Ctrl + Alt + 单击鼠标左键”插入点。
    • 使用 Shift + Alt + Ins 在与当前所选内容匹配的下一个位置添加所选内容和插入点。
    • 有关完整操作列表,请参阅“‘编辑’>‘多个插入点’”。
  • 使用 Alt + ` 访问上下文导航菜单。
  • 让键绑定与 Visual Studio Code 和 ReSharper (Visual Studio) 这两个新的键盘配置文件保持一致:。 可访问“工具”>“选项”>“常规”>“键盘”,再使用顶部的下拉菜单查找这些方案。

调试

此版本在以下方面增强了调试功能:

  • 如果安装有多个 Visual Studio 2017 实例,在调试时现在可选择要将扩展部署到的实例。 这样,在预览通道中调试时可以在诸如 Visual Studio 版本等通道中开发。

Visual Studio

\*现在可以直接从发布摘要页附加 Snapshot Debugger__。

Visual Studio

适用于通用 Windows 平台开发的工具

在 Windows 10 Fall Creators Update(内部版本 16299)或更高版本的目标平台版本中,我们对面向通用 Windows 平台的项目的 XAML 设计器进行了许多重要改进。

  • 现可在属性检查器中编辑集合。
  • 设计器现在允许对模板和样式进行编辑,包括这些实体的定义在其他文档中定义时。
  • 类型 IconElement(如 AppBarButton 中的图标)的属性现在在属性检查器中有一个自定义编辑器,使设置这些属性变得更容易。
  • 设计器、编辑器和“编辑并继续”现都应适用于 x:DefaultBindMode。
  • Blend 中的视觉状态管理器体验现在支持 AdaptiveTrigger。

用于 Visual Studio 的 F# 4.5 和 F# 工具

此版本中我们引入了 F# 语言版本 4.5。 这也与新的 FSharp.Core 4.5.x 系列(F# 核心库)保持一致。 可以在 F# RFC 存储库中阅读每个更改的说明。 此版本中还有对用于 Visual Studio 的 F# 工具的诸多改进。

F# 4.5

下面是 F# 语言版本 4.5 中的一些亮点:

Span<‘T> 支持

我们实现了 Span<'T> 和相关功能,因此在 F# 中可通过 SpanMemory 和 ref 之类的构造来有效使用和生成 API。 功能包括:

  • 新的 voidptr 类型。
  • FSharp.Core 中新的 NativePtr.ofVoidPtr 和 NativePtr.toVoidPtr 函数。
  • 新的类型 inref<'T> 和 outref<'T>,分别是只读的 byref 和只写的 byref。 此值对应于 C# 中的 in ref 和 out ref
  • 能够生成 ByRefLike 结构(如 Span 和 ReadOnlySpan)。
  • 能够生成 IsReadOnly 结构。
  • 隐式取消引用方法中的 byref 返回值和 inref 返回值。
  • 能够在 byref/inref/outref 上生成扩展成员。

此功能集修复了 F# 4.1中 byref 返回值初始设计的一个 bug – 即返回 byref 的函数、方法和属性未隐式取消引用返回值。 我们进行此更改,使该功能与 C# 处理 ref 返回值的方式保持一致。 当类型批注指示现在使用 ref 返回值的隐式取消引用时,将用到错误消息。

此外,此功能集还修复了 F# 编译器中的一个 bug – 即可以进行“不良结构替换”,也就是说,调用 F# 结构上的方法时可以使用其他结构替换正调用的实际结构。 现将结构上的 this 参数视为 inref<MyStruct>,其中包含一条错误:如果你希望修改该结构则该错误建议添加可变字段。

可在此功能集的 RFC 中详细了解 span 和 ref 之类的构造。

计算表达式中的 Match!

F# 4.5 引入了 match!,一个用在计算表达式中的新关键字(由 John Wostenberg 独立提供)。 此语法糖等同于在结果中 let! 后跟 match。 可在 match! 的 RFC 中了解详细信息。

放宽了使用 yield 时序列、列表和数组表达式中的向上转换要求

F# 4.5 现在放宽了某些限制:使用 yield 时需要向上转换来将子类型转换为超类型。 自 F# 3.1 起如果不使用 yield 这些表达式中已无此限制,因此此项改进使得与现有行为更加一致。 可在此功能的 RFC 中了解详细信息。

列表和数组括号上允许缩进

F# 4.5 现在放松了列表和数组括号的缩进规则,此前如果列表和数组括号位于自己的行上需将其向前缩进一个作用域。 这项要求一直以来都非常令人困惑,尤其是对 F# 初学者。 此外,F# 序列表达式无此要求。 现在,数组表达和列表表达式与序列表达式一样,不再受此要求限制。 可在此功能的 RFC 中了解详细信息。

枚举用例以公共形式发出

现在 F# 4.5 在所有情况下以公共形式发出枚举用例,以与 C# 发出枚举用例的方式保持一致。 这也更便于分析工具分析来自 F# 代码的日志,其中发出的是值而不是标签名称。 可在此功能的 RFC 中了解详细信息。

F# 编译器改进

F# 4.5 中不仅包括之前提到的语言功能改进,也包括对 F# 编译器的改进。 这些方法包括:

  • 我们删除了 F# 编译器中高达 2.2% 的分配(各种情况下),改进了编译器性能。
  • 修复了对基于结构的可枚举对象使用 yield! 时 AccessViolatioNException 中产生的 bug。
  • 现可再次从 FSharpFunc 中继承。
  • 对于 F# for .NET Core 的调试版本默认禁用尾调用。 它们在发布版本中启用,因此与桌面版 F# 编译器匹配。
  • 修复了 F# 引用规范化,允许你控制写入输出文件的可传递程序集引用。 你便可执行 .NET Core 上程序集重定向的等效操作。
  • 修复了以下 bug:忽略了尝试在内联函数上使用动态调用时用到的错误消息。 错误消息现将传送。
  • F# 现在尊重你可在项目文件中设置的 WarningsNotAsErrors 标志。
  • Isaac Abraham 更新了模式匹配分支不返回相同类型时出现的错误消息,使其更加友好。
  • Steffen Forkmann 修复了编译缺少重载方法实现的接口实现时出现内部错误这一 bug。
  • Gauthier Segay 删除了编译器文法阶段中一些没必要的数组复制。
  • F# 枚举上不完整的模式匹配现在生成详细的警告,给出未涵盖的用例示例(由 John Wostenberg 提供)。
  • `#nowarn “2003” 现在受到尊重(由 Matthias Diitrich 提供)。
  • Steffen Forkmann 修复了在 F# 重载解析中使用 C# 扩展方法可能失败这一 bug。
  • Steffen Forkmann 修复了内部 QueueList 数据结构 bug。
  • Steffen ForkmannEugene Auduchinok 和 ncave 还提供了各种小的优化并进行了代码清除工作。

F# 核心库 4.5.x

现在推出了对 F# 核心库的下列补充内容:

  • 完成了大量工作来改进 async { } 计算表达式的堆栈跟踪。 现在应能够在堆栈跟踪中查看用户代码和用户行号。 可在此功能的 RFC 中了解详细信息。
  • 提供类型 System.Func 和 System.Action 重载的 FuncConvert.FromFunc 和 FuncConvert.FromAction API,帮助 C# 中的互操作。 可在此功能的 RFC 中了解详细信息。
  • 提供了新类型 ValueOption,它是旨在为活动模式带来更好性能的系列未来功能中的首个功能。 可在此功能的 RFC 中了解详细信息。
  • TryGetValue 现在是 F# Map 类型上的新成员。 可在此功能的 RFC 中了解详细信息。
  • 我们解决了首次调用 MailboxProcessor.TryReceive 时 CPU 使用率较高的问题。
  • bool 比较现在使用快速泛型比较(由 Vasily Kirichenko 提供)。
  • Array.allPairs 的摘要文本已更新为正确(由 Patrick McDonald 提供)

F# 工具改进

此版本中提供 F# 工具的重大改进,例如性能改进和一些新的编辑器功能。 与往常一样,F# 开源社区提供了大量内容,作出了巨大贡献。 以下是一些亮点:

  • 我们改进了所有形式的 .NET SDK 样式项目的 IntelliSense 性能,包括那些使用多目标的项目。
  • Vasily KirichenkoSteffen Forkmann 和 Gauthier Segay 进行了社区驱动的工作,分析和改进了非常大的文件的 IntelliSense 性能。 非常大的文件(10k 以上的代码行)中的 IntelliSense 现在约是原来的两倍快。
  • 过时 FSharp.Core(尽管安装了包)的警告不再出现在 .NET SDK 样式项目中。
  • IntelliSense 中 . 之后为成员显示 XML 文档的说明工具提示在 10 秒后不再超时。
  • 修复了无法在对象构造函数参数中设置断点这一 bug。
  • 修复了重命名符号属于泛型参数时将进行复制这一 bug。
  • .NET Framework 的模板(经典 F# 模板)现在使用来自 NuGet 包的 FSharp.Core,以便与 .NET SDK F# 模板保持一致。
  • 现在为 ()[]{}[||] 和 [<>] 大括号对提供自动的事务型大括号完成。 我们与 Gibran Rosa 一起完成这项工作。
  • 现在,可以通过按住 Ctrl 并单击 F# 符号来转到定义。 此笔势的设置在“工具”>“选项”窗口中也受到尊重。
  • 修改了 IntelliSense 性能 UI,允许为各种 IDE 功能配置过时的 typecheck 信息。 每个选项的说明现在显示在设置的工具提示中。
  • 大括号匹配突出显示现在正确地突出显示大括号(与 Vasily Kirichenko 协作完成)。
  • 现在当类型以递归方式定义时“转到定义”正确导航(由 Vasily Kirichenko 提供)。
  • Vasily Kirichenko 修复了文件顶部为空时未将自动导入命名空间打开这一 bug。
  • Vasily Kirichenko 修复了将包含点的 printf 说明符错误地着色这一 bug。
  • Vasily Kirichenko 修复了将递归模块内所有打开项视为未使用这一 bug。
  • Vasily Kirichenko 大大提升了 Unused Opens 分析器的性能。
  • 属性自动完成功能现在仅建议确实是属性的选项(由 Vasily Kirichenko 提供)。
  • 现在为构造函数调用站点上的类型提供程序静态参数生成签名帮助工具提示(由 Vasily Kirichenko 提供)。
  • Vasily Kirichenko 修复了将用作度量单位的值类型作为引用类型进行着色这一 bug。
  • Vasily Kirichenko 修复了滚动时一些文件的语义着色可能消失这一 bug。
  • 现在提供了试验性的 CodeLens 实现(由 Victor Peter Rouven Müller 提供)。 可在“选项”>“文本编辑器”>“F#”>“代码透镜”中将其打开。
  • Sebastian Urban 修复了 F# 编译器服务会错误地省略 XML 文档中模块名称的拼写这一 bug。
  • 使用 Dictionary 与 ContainsKey 和后续 Item 调用的代码已更改为使用 TryGetValue(由 Eugene Auduchinok 提供)。
  • Jakob Majoka 也参与了使用工具提示的其他 API 这一过程的创作。

基础结构、打包和开放源代码改进

我们对基础结构、打包和开放源供稿体验进行了以下改进:

  • 随 Visual Studio 分发的 F# 编译器不再作为单一实例安装在 F# 编译器 SDK 位置。 它现在完全与 Visual Studio 并行,这意味着,并行安装 Visual Studio 最后将导致具有真正的并行 F# 工具和语言体验。
  • 现对 FSharp.Core NuGet 包进行签名。
  • ETW 日志记录已添加到 F# 工具和编译器。
  • FSharp.Core 中非常大的 control.fs/contro.fsi 文件现拆分为 async.fs/async.fsievent.fs/event.fsieventmodule.fs/eventmodule.fsimailbox.fs/mailbox.fsi 和 observable.fs/observable.fsi
  • 我们添加了 .NET SDK 样式版本的项目性能压力测试项目。
  • 从基本代码中删除了 Newtonsoft.Json,现在,你为 OSS 参与者下载的包将少一个。
  • 我们现在使用最新版本的 System.Collections.Immutable 和 System.Reflection.Metadata。

C++ 符合性和工具集改进

此版本包含以下 C++ 符合性和工具集改进:

  • 新的基于令牌的试验性预处理器,它符合 C++ 11 项标准(包括 C99 预处理器功能),并通过 /experimental:preprocessor 开关启用。 使用宏 _MSVC_TRADITIONAL 对其进行控制,使用传统预处理器时定义为 1,使用符合标准的新试验性预处理器时定义为 0。
  • Visual Studio 开发人员命令提示支持启用 Visual C++ Spectre 变体 1 缓解运行时 (-vcvars_spectre_libs = spectre)。 有关 Spectre 缓解的详细信息,请参阅 Visual C++ 团队博客。
  • 向 SSA 优化器添加的两项新内容重点关注新式 C++ 代码生成:冗余存储清除和冗余分支折叠。
  • 优化的内存映射了链接器中的 I/O 性能以减少链接时间。

C++ 跨平台开发

此版本中,我们改进了 C++ 跨平台开发,并向其添加了以下内容:

  • 添加了“添加” > “新项”模板,用于生成遵循“工具” > “选项”中为 ClangFormat 指定的编码约定的 .clang 格式文件。 如果选择 Visual Studio 约定,则生成的文件尝试匹配“工具”>“选项”中用户当前的 Visual Studio 格式设置配置。
  • 将配送的 format.exe 版本更新到 6.0.0。
  • 用于简化向 CppProperties.json 添加配置的模板。
  • 添加了模板以简化向 CMakeSettings.json 添加配置

Visual Studio

C++ 生产力

下面是针对 C++ 生产力的增强功能和改进功能:

  • 有关宏的 C++ 快速信息工具提示现在显示它们的扩展功能,而不仅仅是其定义。 如果复杂宏在其阐明预处理器使用什么代替宏标识符时引用了其他宏,这将特别有用。
  • 添加了新的快速修复灯泡,将基本宏转换为 constexpr 作为使代码变得新式的新工具。
  • 用于模板的 IntelliSense 提供了有关模板参数的详细信息,便于在模板正文中充分利用 IntelliSense。

Visual Studio

  • 我们正在努力使代码分析体验焕然一新。 你现在可以启用“工具” > “选项” > “文本编辑器” > “C++” > “试验” > “代码分析”下新的进行中功能。 打开或保存文件时,代码分析可在后台中运行,并且结果显示在错误列表中,在编辑器中显示为绿色波形曲线。

Visual Studio

C++ 调试改进

我们进行了以下调试改进:

  • 仅我的代码功能现在允许逐步执行系统或第三方 C++ 库中的代码,以及折叠调用堆栈窗口中的那些调用。 当代码使用 /JMC 进行编译且 .natjmc 文件中指定了非用户库路径时,可以为任何 C++ 库控制此行为。 如果你在进入时系统库调入用户代码,则调试器跳过所有系统代码并在用户代码回调的第一行上停止。

Visual Studio

  • 数据断点现在可在“监视”、“快速监视”、“自动”和“局部变量”窗口中进行设置,从而只需几次短的单击即可在存储于内存中的值发生更改时切断。
  • 源链接允许在编译过程将可执行的或库的原始源代码相关信息嵌入 PDB。
  • 调试时,如果程序终止执行,控制台窗口现将默认保持打开状态(类似于在没有调试器的情况下运行程序)。 可以在“工具” > “选项” > “调试” > “常规”中将此行为切换回自动关闭控制台。

Visual Studio Web 工具

库管理器是 Visual Studio 2017 中包含的新功能。 有助于在 Web 项目中管理客户端端库。

容器工具

为 ASP.NET Core Web 项目添加了新的单个项目 Docker 容器体验。 这补充了基于 Docker Compose 的现有容器工具,并提供了更简单便捷的方法直接从 Visual Studio 创建、调试和生成 Docker 容器。

创建项目时,可以添加 Docker 支持。

Visual Studio

或者,可以通过解决方案资源管理器中项目的上下文菜单对现有项目启用 Docker 支持。 一旦执行此操作,Visual Studio 将在项目中创建单个 Dockerfile。 可以选择 Windows 还是 Linux。

 

sual Studio 还添加用于 Docker 的调试器启动配置文件,以便项目在容器内运行时可对其进行调试。

Visual Studio

如果有带多个 Docker 项目的解决方案,默认情况下,选择启动解决方案时只有一个容器运行。 如果想要同时运行多个容器,可在解决方案资源管理器中右键单击该项目,并选择“设置启动项目”、“多个启动项目”,然后对要运行的所有项目将“操作”下拉列表设置为“启动”或“启动(不调试)”。

容器化项目按所需方式运行后,如果准备好将项目推送到 Azure 容器注册表或 DockerHub,则可以右键单击该项目并选择“生成 Docker 映像”以本地生成映像。

此外可以通过新的“容器业务流程协调程序支持”选项向 ASP.NET Core Web 项目添加基于 Docker Compose 的现有功能。 在解决方案资源管理器中右键单击 ASP.NET Core Web 项目,选择“添加”>“容器业务流程协调程序支持”,然后从下拉列表菜单中选择“Docker Compose”。

Visual Studio

发布改进

此版本包含以下发布改进:

  • 将 Docker 容器发布到容器注册表时,现在可以自定义映像的标记。 可以手动添加标记(默认为“最新”),或使用自动生成的标记来确保每个标记是唯一的。
  • 创建新的 Azure 应用服务时,还可以配置 Application Insights 以自动收集遥测数据。 如果选择的区域也有 Application Insights,则它默认启用。 如果选择的区域尚不包含 Application Insights,可以从下拉列表中为 Application Insights 资源手动指定其他区域。
  • 发布 Azure Functions 项目时,可以选择使用新的 Run-From-Zip 功能进行发布。

Visual Studio Tools for Xamarin

此版本包含以下 Xamarin 更新:

  • 添加了对 Xcode 9.4 的支持。
  • 创建新的 Xamarin.Forms 项目时,默认代码共享选项现在为 .NET Standard。 共享项目选项仍然可用。
  • 添加了 Android 增量生成的改进。 Xamarin.Android 利用在中间输出目录中生成的文件实现了比完整生成更快的增量生成。 以前,如果更改了项目的目标框架,它将使文件无效并在下次运行时实现完整生成。 在此版本中,现保留每个框架文件夹中的文件,这样你可以在不同的目标框架之间进行切换,并且仍可使用增量生成。 通过清理项目,你可以回收保留的文件所占用的磁盘空间。
  • 我们在 Visual Studio 2017 中添加了对 Xamarin.Mac 绑定项目的最低支持。 这样,Visual Studio 就可加载 Xamarin.Mac 绑定项目并将其识别为“已受支持”。 另外,还可以生成 Xamarin.Mac 绑定项目,不过是在本地执行生成过程而不是使用本机 Mac 工具链,因此在应用中运行或调试时,不能使用生成的 IL 程序集。

Hyper-V Android Emulator 支持

此版本现在 Windows 10 的 2018 年 4 月更新上运行时支持使用与 Hyper-V 兼容的 Google Android Emulator。 这样,你可以将 Google Android Emulator 与其他基于 Hyper-V 的技术(例如 Hyper-V 虚拟机、Docker 工具和 Hololens 模拟器等)并行使用。 现向使用 Hyper-V 的移动应用开发人员提供一款快速运行的 Android 模拟器,该模拟器始终支持最新的 Android API、可与现有的 Google Play Services 配合使用,同时支持 Android Emulator 的各项功能(例如照相机、地理位置和快速启动)。

Visual Studio

Xamarin.Android 设计器

显著改善了 Xamarin.Android 的设计器体验。 亮点包括:

  • 引入了拆分视图编辑器,它可用于同时创建、编辑和预览布局。
  • 善了 Intellisense 体验,同时提升了自定义控件的可靠性。
  • 支持对系统提供的值使用示例数据。

Visual Studio

Xamarin.Forms 预览器

当使用 Xamarin.Forms 3.1.0.583944 版或更高版本时,Xamarin.Forms 预览器现提供工具箱支持。 Xamarin.Forms 控件将在工具箱中显示,这让工具箱新手们能更轻松地找到它们。 还可将控件拖放到 XAML 代码编辑器中,从而在页面上添加控件。

Python

此版本为 Python 开发人员添加了以下改进功能:

  • Python IntelliSense 现使用 typeshed 定义为无法通过静态分析推断出自动完成的库提供更丰富的结果。
  • 试验性调试器在 15.7 预览版中首次推出,它现在是 Python 使用的默认调试引擎,为 Python 代码提供更快、更可靠的调试。
  • 增添了对 Python 3.7 的支持且附带修补程序,可实现调用附加功能、分析功能和混合模式(跨语言)调用功能。
  • 要详细了解上述功能,请务必查看 Visual Studio 15.8 中的 Python 博客文章。

迁移本地 Azure 函数设置

发布摘要页中提供的“托管应用程序设置”对话框现可显示 local.settings.json 文件中的值,且支持你将这些值迁移到 Azure 中托管的远程 Azure 函数应用。

连接的服务

对于 Azure 函数项目的解决方案,现可直接通过 Visual Studio 2017 配置 Azure Functions 的持续交付。

测试资源管理器方面的改进

选中层次结构视图中的某个分组时,测试资源管理器现显示更详细的测试状态摘要窗格(测试资源管理器的下窗格)。 该窗格现显示该分组中失败、通过或未运行的测试数量。

新的扩展性功能语言服务器协议

Visual Studio 现提供针对语言服务器协议的本机支持。 扩展作者可创建扩展,用于与现有语言服务器进行通信,从而向 Visual Studio 添加其他语言支持。 扩展用户可安装这些扩展,从而开始在 Visual Studio 中使用自己熟悉的语言(如 Rust)。

AsyncPackage 模板

扩展作者现可通过项模板创建 AsyncPackage,从而优化其扩展的性能。 要详细了解如何使用 AsyncPackage,请参阅本文档

扩展包

借助扩展包,可轻松共享自己偏好的一组扩展或设置新的带有所有扩展的 Visual Studio 安装。 利用扩展包,可创建扩展列表、将其打包在扩展中,并使用列表快速批量安装这些扩展。

命令行扩展发布

使用命令行将扩展发布到 Visual Studio Marketplace。

.NET Core SDK 2.1.400

Visual Studio 15.8 附带有 .NET Core SDK 2.1.400。 新的 SDK 功能包括:

  • 添加了 NUnit 模板
  • 添加了对已签名的全局工具的支持
  • 改进了帮助文本,使其更加清晰明了

解决了 .NET Core CLI 上的 32 个问题。 解决了 .NET Core SDK 上的 20 个问题。

源代码管理

对于 .NET Core 项目,通过文件资源管理器直接添加到项目的文件现可在解决方案资源管理器中显示正确的 Git 和 TFS 跟踪图标,而无需重新加载解决方案。

.NET 测试适配器扩展:中断性变更和弃用

.Net 测试适配器具有以下中断性变更和弃用:

  • 中断性变更:所有测试项目必须在其 csproj 中包含各自的 .NET 测试适配器 NuGet 引用。 如果未包含,在生成之后启动测试适配器扩展的发现或用户尝试运行所选测试时,项目中将显示以下测试输出:
    • 测试项目 {} 不引用任何 .NET NuGet 适配器。 测试发现或执行可能不适用于此项目。 建议在解决方案的每个测试项目中引用 NuGet 测试适配器。
  • .NET 测试框架已在 NuGet 包中发布其适配器,且已迁出 Visual Studio 扩展。 弃用了通过扩展提供的 .NET 测试适配器支持(不过仍受支持)。 这意味着可通过“工具”>“选项”>“测试”使用两个新选项。
    • 通过第一个选项,Visual Studio 只能使用它在测试程序集文件夹(由测试适配器 NuGet 引用填充)中发现的或 runsettings 文件中指定的测试适配器。
    • 通过第二个选项,Visual Studio 可“回退”至之前的行为,并为不具备测试适配器 NuGet 引用的项目搜索测试适配器扩展。 默认勾选这两个选项,因此在该版本中,默认行为保持不变。
  • 请注意,此项更改不影响非 .NET 测试适配器。

ASP.NET .NET Framework 密码支持

对于面向 .NET Framework 4.7.1 或更高版本的 ASP.NET .NET Framework 项目,现可通过右键单击项目并选择“托管用户密码”,打开源代码中不需要的密码并将其存储到 usersecrets.xml 中。

.NET Framework 4.7.2

Visual Studio 2017 15.8 版现向所有受支持的平台提供 .NET Framework 4.7.2(包括 4.7.2 运行时)。 .NET Framework 4.7.2 提供多项新功能和改进功能,还有大量可靠性、稳定性、安全性和性能方面的修补程序。

有关 .NET Framework 4.7.2 的更多详细信息,可参阅以下文章:

延迟加载以异步方式自动加载的软件包

Visual Studio 现延迟加载配置为自动加载的异步包,直到 Visual Studio IDE 完全启动且解决方案加载完毕为止。 此项更改不影响以同步方式自动加载的包。 用户可查看状态栏左下角的“任务状态中心”来监视进度。 创建 asyncpackage 的扩展作者应测试其扩展。 有关详细信息,请参阅 Improving the responsiveness of critical scenarios by updating auto load behavior for extensions(通过更新扩展的自动加载行为来提高关键方案的响应能力)。

 

 

微软,Build,Keynote

微软 Build大会回顾:两天Keynote发布全记录

微软,Build,Keynote

前有 Facebook F8,后有 Google I/O,夹击下微软 Build 的答卷表现出坚定转型的决心。

北京时间五月十日,为期三天的 Microsoft Build 大会正式落下了帷幕。Build 大会是微软一年一度的开发者大会,在这三天里,来自全世界的微软开发者和合作商们聚集在微软总部的所在地西雅图,与这家公司交流开发与合作的细节。

但除了互动以外,在头两日的 keynote 环节里,微软还发布了一系列激动人心的产品和服务的更新,现在,我们就一起来看看微软究竟发布了哪些东西。

Day 1:云和 AI

第一天的 keynote 上,微软 CEO 萨提亚·纳德拉亲自上阵,与往年不同的是,今年首日的 keynote 中很少有 Windows 的身影,取而代之的是微软日渐引以为傲的云计算服务和人工智能的应用。

四月底,微软发布 2018 财年 Q3 季度财报,其中云服务 Azure 的营收同比去年增长了 93%,成为公司营收增长的有力推手。虽然营收最高的业务仍然是个人计算软件的销售,但紧随其后的,包括 Azure、Office 365 和 Dynamics 365 在内的多项云服务在这一季度带来了超过 60 亿美元的营收,同比去年增长 58%,而以 Windows 为代表的个人计算产品业务同比增长仅为 13%,远远慢于云服务的增长。

从财务数据就可以想见,微软对云服务优先的策略非常坚定,这让它在第一天的发布会上花下了大部分时间介绍云相关的新产品和服务。

首先是 Azure IoT Edge 技术。在发布会上,微软宣布与大疆和高通达成合作,分别开发无人机以及机器学习的视觉开发包。

微软,Build,Keynote

此外,微软还宣布曾经非常热门的 Kinect 的回归,这是微软曾经力推的游戏体感设备,适用于 Xbox 360。现在,微软发布了 Project Kinect for Azure,这是一套传感器和深度感应的 Kinect 的组合包,目前面向开发人员开放。

微软,Build,Keynote

在第一天的 keynote 里,人工智能也是微软主角之一。微软发布了深度神经网络处理架构 Project Brainwave,其表示,Project Brainwave 会让 Azure 成为最快的实时(real-time)AI 云计算服务,运行这项服务之后,微软可以将硬件的延迟降低到 Google TPU 五分之一。

同时,微软的 Bot Framework(聊天机器人框架)和 Cognitive Services(认知服务)也有了更新。据微软透露,使用这两项服务的开发者已超过一百万人。在当天的发布会上,微软发布了对话机器人技术的更新,其表示,通过提高语音识别、语音转文字以及翻译的能力,这些更新将会让对话机器人升级到下一代的水平。其中,比较有趣的一个功能是,微软开放了自定义语音的功能,开发者们可以为自己的聊天机器人配以独特的声音。

微软,Build,Keynote

语音定制

第一天发布会的高潮在微软自己的智能语音助手小娜 Cortana 与亚马逊 Alexa 的合作。用户可以在亚马逊的 Echo 系列智能音箱上通过 Alexa 访问 Cortana 的内容,也可以在 Windows 的设备上通过 Cortana 召唤出 Alexa。据微软表示,Alexa 将处理用户的个人事务,而 Cortana 则会处理工作方面的事务,以此而达到工作和生活分开的效果。

当天微软还带来了 MR 技术的两个新企业级新应用,Microsoft Layout 和 Microsoft Remote Assist,前者能够帮助用户设计室内或室外的空间环境,后者则会帮助用户间通过 MR 技术相互合作解决问题。MR 一直是微软非常重视的技术领域,这次发布会上并没有提及太多,但不同于其他公司仍然在画饼式地普及虚拟现实技术的好处,微软已经拿出了能够实际使用的产品。

Day 2:Microsoft 365

微软在 keynote 的第一天几乎很少提到 Windows,这样一反常态的「操作」让不少人惊讶于微软的云和 AI 优先的决心,但微软并没有完全放弃 Windows,在第二天的发布中,以 Windows 等产品为中心的 Microsoft 365 成为了整场发布会的主角。

微软,Build,Keynote

主持第二天发布的是乔北峰(Joe Belfiore)。在三月底的微软架构重组之后,乔北峰负责带领 Windows 事业部,架构上是新成立的「体验与设备事业部」的一部分。发布会上 Belfiore 表示,目前微软最重要的两个平台机会分别是 Microsoft Azure 云服务平台以及 Microsoft 365 软件订阅服务平台,后者是 Windows、Office 和企业移动套件的组合。

连接智能手机与 PC 的体验。目前,各类系统和品牌的手机与电脑只有苹果能做到让两种设备紧密连接起来,多项任务进行同步、无过度的处理,而除了苹果以外的,安卓和 Windows 都是拥有更多用户的平台,这两者在平台间的连接能力上一直没有什么作为,但这次,微软先行动了。

微软,Build,Keynote

首先,微软宣布更新安卓系统里的 Microsoft Launcher(微软启动器)应用,将 Windows 上最新的功能时间线 Timeline 加入其中,此外,iOS 平台上的 Microsoft Edge 浏览器应用也将新增了这一功能,如此,用户在不同平台上的操作记录将得以同步在一个账号下。

微软,Build,Keynote

Belfiore 还发布了下一个版本 Windows 的部分新功能。在这个新版本上,不同的应用及将可以在同一个窗口运行,比如在浏览器中使用 Word 文档,微软将这样的单一窗口称为 Sets。为了不同的应用能够达到这一标准,微软要求开发者们开发符合 UWP(通用 Windows 平台)的应用,并适配 Sets,平台应用统一之后,用户在 Windows 上的生产效率会得到较大的改善。

第二天还发布了全新的 Microsoft Store 消费分红机制。简单来说,未来开发者在 Microsoft Store 上开发应用获得的收益将达到应用销售额的 95%,相比 Google 和苹果而言,这一分红比例要高出不少。但这样的激励计划也是微软应用平台应用数量远低于 Google 和苹果平台上应用数量的被迫选择。

赋能企业的愿景

以上就是两天发布会里微软发布的最重要的产品和更新。可以看到,这次的微软发布会将 Microsoft 365 的发布后置到第二天,专门为现任 CEO 萨提亚·纳德拉上任以来重点发展的云服务、IoT、人工智能和 MR 技术准备了一整场的发布,加上今年三月底微软的架构重组,充分体现了这家曾经依赖 Windows 和 Office 称王的公司转型改变的决心。

还有一点需要注意的是,在微软发布的众多新产品中,企业属性的产品比重远远多于普通消费者属性的产品。在纳德拉上任之后,微软改变了多年不变的公司使命,强调「予力全球每一人、每一个组织成就不凡」,即更多地做赋能性质的工作。

微软已经发现了自己最为擅长的领域,它不必要去与 Google、苹果在硬件上争雄,通过优质的软件和无孔不入的服务,通过与这两家巨头的合作,它一样可以获取移动互联网的用户。

在这次的 Build 大会上,这一点尤为明显。微软一直是一家面向企业级用户的公司,它的营收大多来源于此,而在从移动互联网时代的失利醒悟过来后,正面发力企业端的微软,才终于找到了支撑它市值水涨船高,跟上 Google、亚马逊等巨头脚步的关键能力。

Windows 10

Windows 10记事本支持文字搜索了:方便之极

在今晨微软面向快速会员推送的 Build 17666 预览版中,一个比较值得关注的变化就是记事本的调整。

Softpedia 做了体验,并分享了截图。

Windows 10

对于普通用户来说,比较直观的人性化功能就是选中并搜索了。选中文本后使用“Ctrl+B”或者右键,可以自动跳转到默认浏览器的 Bing 搜索。

由于记事本同样支持 Sets 多标签功能,也意味着未来优化后,可以直接在同一个窗口内新建 Edge 浏览器,进一步提高检索结果的效率。

另外一个变化是对 Unix/Linux/Macintosh 换行功能的支持。对于代码工作者来说,Windows 体系中,回车就是换行,而 Linux/Unix 下则是回车不换行,换行才换行。

不过,对于记事本,记者觉得更大的一个痛点应该是自动保存功能吧,大家说呢?

Windows 10

微软,Windows

微软副总裁潘正磊:我们将重振Windows桌面开发  

在刚刚结束的 Build 2018 开发者大会上,微软发布了利用 AI 来帮助开发者提高生产力的 Visual Studio IntelliCode,允许开发者实时合作开发的Visual Studio Live Share,C#机器学习库 ML.NET 等非常实用的工具和框架。以及,被寄予厚望的 .NET Core 3 。

微软全球开发平台事业部副总裁潘正磊 (Julia Liuson) 在接受外媒 The Reg 采访时表示,微软将重振 Windows 桌面开发,.NET Core 3 则是关键的第一步。

随着 Windows Phone 从微软的版图上移除,许多人认为 UWP 已没有多少价值。潘正磊表示,.NET Core 3 就是将 UWP 和其他框架相互结合,Windows 开发者将获得微软之前在各个框架上取得的所有研究进展。Windows 拥有数百万的桌面开发者,微软正在做一些事情来帮助这群开发者前进。

微软,Windows

在采访中,潘正磊也谈到了关注度非常高的 Visual Studio 系列。目前微软拥有三款独立的产品,Visual Studio、Visual Studio for Mac 和 Visual Studio Code 。她表示三款产品其实已经在共享很多组件,比如 VS for Mac 中的 ASP.NET 特性就完全来自 Windows 端。刚刚推出的 IntelliCode、Live Share 等服务也将在三种产品中都可用。其中,作为非商业化的 Visual Studio Code,是微软试图吸引开发者的关注度和忠诚度的工具,最终希望能促进整个平台的建设和发展。

微软,苹果,iMessage,Windows

微软希望与苹果合作 将iMessage带到Windows平台

微软,苹果,iMessage,Windows

腾讯科技讯,5 月 11 日据国外媒体报道,在今年的 Build 开发者大会上,微软发布了一款名叫“Your Phone”的应用,希望能够让 iOS 和 Android 设备用户更好的与 Windows 平台整合。这款应用可以让用户更方便的将照片、文本等文件直接从智能手机同步到 Windows 电脑上。

不过对于一项关键功能,目前还缺乏支持,那就是苹果的 iMessage 消息传递服务。但微软已经表示,希望与苹果深入合作,改变这一现状。

在接受采访时,微软高管 Joe Belfiore 和 Shilpa Ranganathan 都表示,有些内容想要整合进 Your Phone 应用中,要比我们想象得更难。

通过手机应用同步照片和通知可以实现,但 Ranganathan 表示,要增加对苹果 iMessage 的支持,具有挑战性。从本质上来说,微软的愿景是通过手机应用对 Windows 平台上使用 iMessage 进行全面整合。

Ranganathan 表示,她希望以一种兼容生态系统的方式,将对 iMessage 的支持全面带到 Windows 10 上,并且还要保证用户的使用体验。“整合 iMessage 的确很困难,但我们非常愿意与苹果合作。”Ranganathan 表示。“我想以一种互相尊重彼此生态系统的方式来做这件事,而且体验也要很愉快。在信息传递类服务上,我们的首要目标是与苹果合作,暂时还不包括 Android。”

当然,微软目前还没有就这一点与苹果进行过接触,而苹果是否会同意与微软合作也不确定。不过对苹果来说,一方面将 iMessage 增加到微软的应用中,可以让其他用户更顺畅的与 iPhone 用户沟通。但另一方面,苹果更愿意让用户购买 Mac 电脑再使用 iMessage 服务。

当然,微软的 Your Phone 新平台对 Android 的支持一定会优于 iPhone,而且苹果很有可能并不在意微软的想法。

微软,Windows

微软股价再创新高 市值突破8000亿美元

微软今日早些时候发布了截至 6 月 30 日的 2018 财年第四季度财报,营收为 300.85 亿美元,去年同期为 256.05 亿美元,同比增长 18%。净利润为 88.73 亿美元,去年同期为利润 80.69 亿美元,同比增长 10%。

由于云计算业务大幅增长,营收和净利润均超分析师预期,微软股价在盘后大涨3%。周四,微软股价收于 104.40 美元,市值达到 8020 亿美元。今日,微软股价以 108.08 美元开盘,再创新高。

受此影响,至少有 6 家投资机构调高了微软的目标股价。目前,分析师平均预期的微软目标股价为 113.47 美元,最高为 130 美元。

当前,业界对微软、苹果、亚马逊和 Alphabet 四家公司的股价尤为关注,因为其中一家公司的市值有可能率先突破 1 万亿美元。目前,微软市值约为 8230 亿美元,Alphabet 约为 8260 亿美元,亚马逊约为 8870 亿美元,而苹果约为 9440 亿美元。

摩根士丹利今年 5 月曾表示,微软市值有望在一年内突破 1 万亿美元。摩根士丹利预计,微软股价在未来 12 个月内将上涨 33%,从而达到每股约 130 美元,意味着市值将达到约 1 万亿美元。

微软,Windows

微软,ROOBO,AI

微软与ROOBO研发语音开发板 系首个AI开发者硬件平台

 

微软,ROOBO,AI

微软与 ROOBO 合作

5 月 8 日午间消息,微软 Build 2018 开幕。微软 CEO 纳德拉正式发布了微软语音团队联合 ROOBO 共同研发的多 MIC 语音开发板 MSDDK,面向远场语音识别的软硬一体方案。这是微软至今在 AI 领域提供的第一个开发者硬件平台。

据悉,ROOBO 完成 MSDDK 在音频、声学及硬件的设计与实现,并且由 ROOBO 直接向开发者提供硬件,微软提供 Speech Service 开发平台。并配合 Azure 提供的认知服务,提供多种语言和知识技能,可以广泛应用于智慧家电,机器人,智能音响,机顶盒等多种场景。

在 Build 大会上,微软还展示了一款智能桌面设备,用于多人会议的设备,可以同时记录多人会议的语音和图像,对不同人的发言进行标记和语音转写,分开归档提取会议重点议题或摘要。从现场的演示看出,这款产品的应用解决了几个 AI 领域的关键性技术,比如多人对话场景下的噪音处理,多人对话场景下的说话人语音分离及语音技术与图像技术的同步应用。这款产品也是由微软和 ROOBO 合作 ,挖掘 DDK 开发板的技术潜力而来。

对于本次合作,微软首席语音科学家、微软全球技术院士黄学东博士表示:“在过去几个月与微软的联合项目开发中,ROOBO 团队表现出来很强的合作精神和技术实力。希望 ROOBO 在微软人工智能技术和平台的应用和推广方面能发挥更大的作用,用更多的黑科技改写历史的篇章”。

ROOBO 董事长熊明华表示:“这次 ROOBO 和微软合作,设计出效果最好的语音服务方案,并以微软标准参考设计的形式推向各个行业。同时,ROOBO 和微软在音频、视频和声学方面的硬件设计和实现方面联合开发全新智能设备,面向企业和办公场景,市场潜力巨大。“

熊明华认为,微软选择和 ROOBO 在人工智能领域合作,一方面看重后者在 AI 解决方案上的长期积累和领先优势,另一方面也看重智能硬件产业链上中国的竞争优势。ROOBO 还将在人工智能其它领域和微软深度合作,为用户和开发者提供新的 AI 产品和方案。

微软,Fluent Design

微软宣布Fluent Design 2018年更新内容,并附新视频

微软,Fluent Design

微软今年在 Build 2018上还宣布了 Fluent Design 2018 年的更新内容,主要将在今年下半年的 Windows 10 大更新中推出,微软急需改进 Fluent Design 半成品的情况。

就更新内容来看,Fluent Design 设计风格在 2018 年将有这些改进:

  • 命令条浮层
  • Z 轴深度和阴影
  • 瞬间 UI 的 Acrylic 质感
  • 导航视图
  • Fluent 标准和紧凑布局
  • 表单验证
  • @ 提及
  • 行内手写
  • 相关性命令
  • 数据合集
  • Reveal 聚焦状态
  • 环境生硬
  • 动效系统改进
  • 等等等等……

微软,Fluent Design

在 Build 2018 第二天主题演讲上,微软也展示了 新的 Fluent Design 视频,这部视频也可以在这里看到:http://player.youku.com/embed/XMzU5NTMwMzM1Mg==

Windows 10,记事本,Linux/Mac

Windows 10版记事本应用终于支持Linux/Mac换行符 排版不再辣眼睛

记事本(Notepad)是 Windows 操作系统中相当经典的一款应用,其在最新的 Windows 10 操作系统中也得到了保留,命运比被 Photos 和 Paint 3D 取代的画图(MsPaint)程序要好得多。不过最近,Win10 版记事本应用迎来了一项技能更新 —— 获得了 Linux / Mac 风格的“行尾结束符”(line endings)支持。

Windows 10,记事本,Linux/Mac

更新前

Michel Lopez 表示:

多年以来,Windows 记事本仅支持包含了行结束(End of Line)字符的文本文档,即回车(Carriage Return)和换行(Line Feed)。

这意味着记事本无法正确显示 Unix、Linux 和 macOS 上创建的文本文件内容。

Windows 10,记事本,Linux/Mac

更新后

Michel Lopez 补充道:

不过从当前的 Windows 10 Insider 测试编译版本开始,记事本将支持 Unix / Linux 换行(LF)、Macintosh 换行(CR)、以及传统的 Windows 换行(CRLF)。

现在,记事本能够以正确地查看、编辑和打印带上述换行符的文件格式。

如图所示,新版 Notepad 应用已能够正确展示 Linux 平台的 .bashrc 文本文件。

微软,开源,ML.NET,,AI

微软开源ML.NET跨平台机器学习框架,AI普及又向前跨进一步

当地时间 5 月 7 日,微软 Build 大会在美国西雅图召开,会上微软针对开发者发布了一系列新产品。在这一系列产品发布的同时,微软同时宣布开源机器学习框架——ML.NET。利用 ML.NET,开发人员可以直接上手已有的模型,无需具备开发或调节机器学习模型的专业知识。

雷锋网 AI 研习社将信息编译整理如下:

ML.NET 是一个跨平台框架,可以允许 .NET 开发人员开发专属模型,并在他们的应用程序中注入定制的机器学习能力,开发人员不需要具备开发或调节机器学习模型的专业知识。

ML.NET 由微软研究院研发,在过去的十年里发展成为一个重要的框架,它在微软的许多产品团队中都有使用,比如 Windows、必应、Azure 等等。

在这次发布的预览版中,ML.NET 支持分类(例如文本分类、情感分析)、回归(例如预测、价格预估)等机器学习任务。

除了宣布支持以上任务,微软一并发布了用于训练模型、进行预测的 .NET API 的初稿,此外还有这一框架的核心组成部分,比如学习算法、转换和核心机器学习数据结构。

大家请注意,ML.NET 是一个框架,这意味着它可以扩展,可以将 TensorFlow、Accord.NET 和 CNTK 这样的流行机器学习库添加进去。在 ML.NET 开源生态中,微软致力于让它的内部功能更加完善,ML.NET 可以为 .NET 开发者带来更优化的机器学习开发体验。

大家可以加入 ML.NET 开源社群,让这一工具在未来迎来更迅猛的发展。GitHub 地址如下:

https://github.com/dotnet/machinelearning

随着不断发展,ML.NET 将会不断增加对流行深度学习库如 TensorFlow、Caffe2、CNTK 和一般深度学习库如 Accord.NET 的支持,其功能可以扩展到其他的机器学习场景,如推荐系统、异常检测和其他深度学习方法。

ML.NET 还增加了 Azure Machine Learning 和 Cognitive Service 的一些已有经验,它允许使用代码优先的方法,支持本地应用程序部署,让用户能构建自己的模型。

下面是关于 ML.NET 的更多细节:

ML.NET Core Components

ML.NET 是作为 .NET Foundation 的一部分推出的,repo 中包含了训练和消耗模型的 .NET C# API,还有各种各样的 transform,以及许多流行的机器学习任务,如回归和分类。

ML.NET 的目标是提供 E2E 工作流,通过预处理、特征工程、建模、评估和操作,将深度学习能力添加进 .NET 应用程序。

下面的表格是 ML.NET 0.1 所发布的完整组件列表。

微软,开源,ML.NET,,AI

微软表示,他们的目标是使 ML.NET 的 API 变得通用,这样就可以通过一个共享 API 使用 CNTK、Accord.NET、TensorFlow 等框架和其他库。

大家目前可以安装 ML.NET,体验目前已有的一系列功能,具体信息可以参见:

blogs.msdn.microsoft.com 

Azure,Office

微软Azure和Office发力 第三财季业绩超分析师预期

Azure,Office

腾讯科技讯,4 月 27 日消息,微软今天发布了该公司截至 3 月 31 日的 2018 财年第三财季财报。财报显示,微软第三财季营收为 268.19 亿美元,比上年同期的 232.12 亿美元增长 16%;净利润为 74.24 亿美元,比上年同期的 54.86 亿美元增长 35%;每股摊薄利润为 0.95 美元,去年同期每股摊薄利润为 0.70 美元。

财报显示,由于微软在云服务中增加了新功能,吸引了更多的企业用户使用 Azure 云计算服务和 Office 365 系列产品,微软第三财季业绩因此获得了强劲的增长动力,并超过了华尔街分析师的预期。

微软第三财季不计特定项目在内的每股摊薄利润为 0.95 美元,超过了汤森路透社调查的分析师平均预计的 0.85 美元;微软第三财季营收为 268.19 亿美元,超过了汤森路透社调查的分析师平均预计的 257.7 亿美元。

随着越来越多的企业寻求削减数据存储成本,使用基于云平台的软件并将应用移向数据中心,因此,微软从中大大受益,近期增长的主要动力就来源于此。

微软公司的旗舰云产品为 Azure,主要竞争对手就是亚马逊公司的 AWS。数据显示,Azure 在截至 3 月 31 日的这一财季中,营收增幅创下新高纪录,达到 93%。第三财季,微软智能云业务营收为 78.96 亿美元,去年同期为 67.30 亿美元;运营利润为 226.13 亿美元,去年同期为利润 195.85 亿美元。

对此,市场分析机构 GBH Insights 的分析师丹尼尔-伊维斯(Daniel Ives)表示,“在云市场需求激增的形势之下,微软的 Azure 获得了更多的增长动力,财报结果足以说明一切。”

市场研究机构 Canalys 今年二月的评估认为,Azure 的增长把微软送上了云计算市场第二大公司的位置,所占份额达到了 14%,落后于 AWS 的 32%。

微软第三财季来自于生产与企业处理部门(包括 Office 365 在内)的营收为 90 亿美元(约合 64.6 亿英镑),同比增长了 17%,也超过了汤森路透社调查的分析师平均预计的 87.3 亿美元。

微软第三财季个人计算部门的营收同比增长 13%,达到 99 亿美元,其中 Surface 业务营收同比增长 32%。

在过去的一年中,微软股价上涨了 40% 左右。在周四的纳斯达克股市常规交易中,微软股价上涨 1.95 美元,报收于 94.26 美元,涨幅为 2.11%。但在发布上述财报之后,微软当日盘后股价经历了短暂的上涨之后,却又转入了下跌的境地。截至发稿之时,微软股价下跌 0.24 美元,到 94.02 美元,跌幅为 0.25%。在过去的 52 周,微软最低股价为 67.14 美元,最高股价为 97.24 美元。