Category Archives: C/C++

Visual Studio 2022 Preview 1リリース

Visual Studio 2022 Preview 1 now available!

以下雑訳。

この度、Visual Studio 2022の最初のプレビュー・リリースのインストールが可能になりました。これは64ビットのVisual Studioの最初のリリースです。ぜひダウンロードしてお試しいただき、ご意見をいただきながらVisual Studioの次のメジャーリリースにつなげていきたいと思います。

今回のプレビューの主な目的は、新しい64ビットプラットフォームのスケーラビリティをテストし、調整することです。新しい64ビット・プラットフォームでは、Visual Studioのスケーリングが可能になり、システム・リソースをすべて利用できるようになります。これにより、複雑なソリューションを扱う場合や、Visual Studioを長時間使用する場合に、Visual Studioの信頼性が向上します。64ビット化の作業は、Visual Studioのすべての部分に影響を与えるため、通常のプレビューよりもはるかに大きな範囲で行われます。

私たちは、お客様が Visual Studio に品質、安定性、拡張性を求めていることを知っています。そのためには、お客様のような本物の開発者から改善点を教えていただくことが一番の近道なのです。私たちは、すべてのバグレポート、提案、そしてアップヴォートに注意を払っています。バグレポートは、Visual Studio の「report a problem」から送信できます。

Help us improve the quality and stability by reporting a problem within Visual Studio

Visual Studio 2022 Previewのダウンロード

Visual Studio 2022」のプレビュー版は、以前のバージョンのVisual Studioと並行してインストールでき、Community、Pro、Enterpriseの3つのエディションすべてで利用でき、無料で使用できます。

お客様の声をお聞かせください

プレビューをお試しいただき、Visual Studio 2019と同じようにお使いいただくことをお勧めします。また、Visual Studio 2022をお客様にとって最高の開発環境にするための貴重なフィードバックや製品内アンケートにご協力いただき、ありがとうございました。

特に、Visual Studio 2022で非常に大規模で複雑なソリューションを扱った経験についてお聞かせください。64ビットにアップグレードされる前は、この種のソリューションをお持ちのお客様は、メインの32ビットプロセスで使用するメモリーが不足して、Visual Studioに問題が発生することがありました。Visual Studio 2022の初期のテストでは、同じお客様が700(またはそれ以上!)のプロジェクトを含むソリューションでも、何日もIDEを実行することができました。

今後の展開

Preview 1 のアップグレードのほとんどは 64 ビットのサポートに関連していますが、Preview 2 からはエキサイティングな新機能とパフォーマンスの向上が予定されています。 これらの新機能については、Visual Studio のロードマップをご覧ください。すぐにお試しいただける新機能としては、IntelliCodeのアップデートがあります。これにより、一度に1行までのコードを自動的に完成させることができます。

Visual Studioを64ビットに移行する作業はまだ残っており、Visual Studio 2019の機能のうち少数のものはVisual Studio 2022 Preview 1には含まれていません。 それらの次期機能のリストはリリースノートに記載されています。

Visual Studio 2022 のプレビュー期間中、お客様が愛用しているエクステンションを開発しているパートナー企業は、エクステンションの更新作業を行います。その間、そのエクステンションはすぐにはVisual Studio 2022で利用できません。

Visual Studio 2022 for Macの最初のプレビューがまもなく公開されます。Visual Studioの新しいモダンなmacOS UIを初めてご覧いただけます。開発者からのフィードバックを受けるにはまだいくつかの作業が必要ですが、その進捗についてはこのVisual Studioブログでお知らせします。

すべてのエクステンション作者に呼びかけ

エクステンションを作成されている方は、ご自身のエクステンションをVisual Studio 2022に取り込むお手伝いをさせてください。まずは、エクステンションをプレビュー1に移行するためのガイドをご覧ください。

また!今週の金曜日(6月18日)には、Visual StudioチームのシニアPMであるMads Kristensenが、Visual Studio 2022の拡張機能をアップデートする方法を実演する様子をご覧いただけます。ライブストリームは、太平洋時間の午後3時にこちらからスタートします: https://youtu.be/-PKIPTW6km0

Visual Studio 2022を形作るために

Visual Studio 2022 をインストールし、使用し、調査に参加し、Developer Community で意見を共有することで、Visual Studio 2022 の形成に参加してください。

Visual Studio 2022 Previewのダウンロード

関連リンク

Visual Studio 2022 Previewのダウンロード


プログラミングC# 第8版
Ian Griffiths (著), 鈴木 幸敏 (監修), 木下 哲也 (翻訳)
オライリージャパン; 第8版 (2021/6/22)

Visual Studio 2019 v16.10 and v16.11 Preview 1

Visual Studio 2019 v16.10 and v16.11 Preview 1 are Available Today! | Visual Studio Blog

Buildにあわせてリリースされました。DEEPLベースで雑訳。

Visual Studio 2019 v16.10で何が新しいのか

この度、Visual Studio 2019 v16.10 GAとv16.11 preview 1がリリースされました。 このリリースにより、私たちのテーマである開発者の生産性と利便性が、Visual Studioユーザーに一般的に利用できるようになりました。C++20の機能を追加し、Gitの統合を改善し、プロファイリングツールを改善し、生産性を加速する機能を多数搭載しています。

最新のVisual Studioリリースをダウンロードして、16.10の新機能をお試しください。また、Developer Communityでは、皆様からのフィードバックや交流をお待ちしています。

C++

当社のコンパイラと STL は、最新の C++20 規格に対応しています。16.10 には、カレンダー、タイムゾーン、 といった待望の機能が搭載されています。これらの機能はすべて、/std:c++latest スイッチで利用できます。一部の機能は、ABI と互換性のない方法で欠陥レポート(ISO C++20 のバグ修正)によって修正されることが予想されるため、/std:c++20 スイッチはまだ利用できません(詳細については、Microsoft/STL Issue #1814 を参照してください)。

<format>は、fmtlibをベースにした、テキストフォーマットのための新しい機能です。iostreamsやprintfファミリーに代わる高速で安全な機能を提供します。

auto version = 20;
std::format(“STL is now C++{} feature-complete!”, version);

カレンダーとタイムゾーンは、既存の機能を拡張したものです。これらの機能は、型安全でタイムゾーンを意識した方法で、日付と時刻を表現し、操作するための機能を提供します。

std::chrono::year_month_day world_bee_day = May/20d/2021y
std::format("Buzz buzz on %F!”, world_bee_day);

さらに、モジュール、レンジ、コンセプトのインテリセンスを改善しました。Go-to-definitionは、モジュール自体と、モジュールからインポートされた定義の両方で動作します。レンジはコンパイラにとって処理が難しいことで知られていますが、インテリセンスはレンジの補完を行うことができます。また、コンセプト内で定義された名前の補完も可能です。

Visual Studio now has completions for Ranges.

LLVM OpenMPランタイムが、x64に加えて、x86とARM64にも対応しました。対象とするには、/openmp:llvm スイッチを渡します

C++20 スタイルのコルーチンを使用したいが、C++11 または C++14 をターゲットにしている場合は、/await:strict スイッチを使用して望ましい動作を得られるようになりました。

coroutineのデバッグと可視化を改善しました。特に、std::coroutine_handleの可視化では、オリジナルのコルーチン関数名とシグネチャ、そして現在のサスペンドポイントが表示されるようになりました。

Coroutine debugging and visualization has been improved.

CMake サポートを使用している場合は、CMakeSettings.json ではなく、CMakePresets を使用して設定を指定できるようになりました。このフォーマットは、Visual Studio、Visual Studio Code、およびこの新しい標準をサポートするその他のツールで一貫しています。

Continue reading Visual Studio 2019 v16.10 and v16.11 Preview 1

Visual Studio 2019でForza Horizon 4とForza Motorsportのリンク時間が低減 #ForzaHorizon4 #ForzaMotorsport

The C++ team at Visual Studio has delivered substantial build and link time improvements throughout Visual Studio 2019. This blog is Part 2 of a series of blogs showcasing real-world results of our efforts.

情報源: Playground Games and Turn 10 Studios See 18.2X and 4.95X Link Time Improvements Respectively on Visual Studio 2019 | C++ Team Blog

Visual Studio 2019によるビルド機能、特にリンク速度の改善によりForza Horizon 4、Forza Motorsportのビルド時間が大いに改善されたお話し。

大いに結構。これでアップデートごとに発生するレグレッションバグがなくなればもっとよいと思います!

Visual Studio 2019 v16.8 / Visual Studio 2019 for Mac version 8.8

VS2019 v16.8ではGitの生産性が向上。C++生産性の改善、C++ 20のサポート、C++17のサポート強化。.NETの生産性の改善として.NET analyzersのサポート、インラインでの引数目のヒント、リファクタリング機能の強化、XAMLエディタの改善、.NET 5でのWindows Form Designerのサポートなどが行われています。

Memo: C++/CLIでの.NET Frameworkのバージョン指定

基本は以下。

MSBuild ターゲット フレームワークおよびターゲット プラットフォーム

具体的には、<PropertyGroup Label="Globals">を探して、その中に<TargetFrameworkVersion>vバージョン番号</TargetFrameworkVersion>を追加します。

指定できるバージョン番号については一番上のリンクを参考にします。すべてのバージョンを指定できるわけではありませんので注意してください。

以下は例。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
...
  <PropertyGroup Label="Globals">
    <ProjectGuid>{XXXXXXXXXXXXXXXXXXXXXXXXX}</ProjectGuid>
    <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
    <RootNamespace>BackupRestore</RootNamespace>
...
  </PropertyGroup>
...
</Project>

Microsoft: Rust Is the Industry’s ‘Best Chance’ at Safe Systems Programming

Microsoft: Rust Is the Industry’s ‘Best Chance’ at Safe Systems Programming

情報源: Microsoft: Rust Is the Industry’s ‘Best Chance’ at Safe Systems Programming – The New Stack

初めから安全な言語を使用していれば、SDL(Secure Development Lifecylce)とか無理をしなくて良かった。

Build 2020関連まとめ #msbuild

見つけたものだけペタペタ。

Azure関係はブチザッキをご覧ください。

SQL Server/SQL Database関係はSE雑記をご覧ください。

.NET

Announcing .NET 5 Preview 4 and our journey to one .NET

今秋登場する.NET 5はLTSとはならずPreview Buildとなり、来年秋に登場する.NET 6が.NET 統一プラットフォームとしては初めてのLTSになると決まりました。詳しくは上を参照。

ASP.NET Core updates in .NET 5 Preview 4

Announcing Entity Framework Core 5.0 Preview 4

PowerShell Team May 2020 Update

The F# development home on GitHub is now dotnet/fsharp

C# Today & Tomorrow | Microsoft Build 2020 | Channel 9

Welcome to C# 9.0

F# 5 and F# tools update

Introducing YARP Preview 1

Using Visual Studio Codespaces with .NET Core

Introducing Project Tye

Continue reading Build 2020関連まとめ #msbuild

C++/CLIと.NET Core 3の未来 

.NET Core 3.0 is now available and we have received a lot of questions about what that means for the future of C++/CLI. First, we would like to let everyone know that we are committed to supporting C++/CLI for .NET Core to enable easy interop between C++ codebases and .NET technologies such as WPF and Windows Forms.

情報源: The Future of C++/CLI and .NET Core 3 | C++ Team Blog

C++/CLIは.NET Core 3.1/Visual Studio 2019 v16.4以降が対応のターゲットになる。
Visual Studio 2019 16.4 Preview 1で試してみることが出来る。

Microsoft C++のSTLがOSSに

GitHub – microsoft/STL: MSVC’s implementation of the C++ Standard Library.

Microsoft C++のSTLがOSSとなりGitHubで公開されました。

ライセンスはこちら

基本的に別プラットフォームへ展開する意思はなく、あくまでもMicrosoft(Visual) C++のSTLだと言うことです。

姥捨てもとい持て余してきたのかなと言う感じもしなくもないですが、ま、ここは前向きにね。。。

Linux Development with C++ in Visual Studio 2019: WSL, ASan for Linux, Separation of Build and Debug | C++ Team Blog

In Visual Studio 2019 you can target both Windows and Linux from the comfort of a single IDE. In Visual Studio 2019 version 16.1 Preview 3 we announced several new features specific to the Linux Workload: native support for the Windows Subsystem for Linux (WSL),

情報源: Linux Development with C++ in Visual Studio 2019: WSL, ASan for Linux, Separation of Build and Debug | C++ Team Blog

Memo.