Visual Studio のアップデート 16.4.6 がリリースされました。
■ 更新内容
問題の解決
今回は
- C++ のコンパイル関連の問題が 8 件
- セキュリティに関する問題が 3 件
対策されています。
今回のアップデートはセキュリティの問題が対策されています。素早くアップデートしましょう。
■ 更新方法
Visual Studio の更新はメニューの ツール > ツールと機能を取得
で開くインストーラーから行えます。
Visual Studio のアップデート 16.4.6 がリリースされました。
今回は
対策されています。
今回のアップデートはセキュリティの問題が対策されています。素早くアップデートしましょう。
Visual Studio の更新はメニューの ツール > ツールと機能を取得
で開くインストーラーから行えます。
C# もくもく会 #121 を開催しました。
C# もくもく会 は東京の秋葉原で毎週木曜日に開催している .NET 系の勉強会です。
もくもく自習を基本とし、分からないことを教えあったり情報共有したりしている会です。
定期開催していますので、お時間のある時に遊びに来ていただければと思います。
ちょっと詰まった時、ネット上で聞くのははずかしいなぁ、という課題のできた時などにも思い出していただけると嬉しいです。
今週は、もくもくの日でした。
ちなみにこの勉強会ですが、実は公序良俗に反しなければどのような技術を扱っても大丈夫です。そもそも C# エンジニアが C# だけしか使わないというわけではありませんし。
このもくもく会には、入門者の方も多くご参加いただいています。
突然 C# やらなければならなくなって途方に暮れている方、何となく C# をやってきたけど改めて見直してみたい方なども大歓迎です。
入門セミナー代わりでのご参加も歓迎です。プログラミング入門者の方も是非遊びに来てください。
特に C# で課題をお持ちでなくても是非遊びに来てください。
世界一敷居の低い勉強会を目指しています。
何か聞きたいことがある場合は、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる
何か共有したい情報を見つけた場合も、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる
そんなスタイルでやっています。
次回は 2020/03/12 に開催予定です。
C# に関心のある方、是非遊びに来てください。
Uno Platform は Windows の Visual Studio でなら簡単にページを追加できます。
しかし、残念ながら mac では GUI でポチポチしてページを追加することはできそうにありません。
Uno Platform でアプリを作る際のソースコードはテキストなので、普通にファイルを作って編集してで追加できます。
この方法なら mac でも問題なく追加できました。
作業はプロジェクトの新規作成をしたばかりの状態から始める想定で書いています。
簡単ですね。
AnotherPage.xaml のクラス名を書き換えます。ファイルを Visual Studio Code などで開いて先頭の
<Page x:Class="<プロジェクト名>.MainPage"
を
<Page x:Class="<プロジェクト名>.AnotherPage"
全容は次のようになります。
<Page x:Class="<プロジェクト名>.AnotherPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="using:<プロジェクト名>" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <TextBlock Margin="20" FontSize="30" Text="Hello, world!" /> </Grid> </Page>
AnotherPage.xaml.cs のクラス名とコンストラクタ名を書き換えます。ファイルを Visual Studio Code などで開いて終わりあたりの
public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } }
を
public sealed partial class AnotherPage : Page { public AnotherPage() { this.InitializeComponent(); } }
全容は次のようになります。
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 namespace <プロジェクト名> { /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> public sealed partial class AnotherPage : Page { public AnotherPage() { this.InitializeComponent(); } } }
<アプリ名>.Shared.projitems に AnotherPage.xaml と AnotherPage.xaml.cs を追加します。MainPage の真似をして増やすだけの簡単な作業です。手を入れる箇所は 2 箇所です。Visual Studio Code などで開いて
<Compile Include="$(MSBuildThisFileDirectory)MainPage.xaml.cs"> <DependentUpon>MainPage.xaml</DependentUpon> </Compile>
の下に AnotherPage を追加します。
<Compile Include="$(MSBuildThisFileDirectory)MainPage.xaml.cs"> <DependentUpon>MainPage.xaml</DependentUpon> </Compile> <Compile Include="$(MSBuildThisFileDirectory)AnotherPage.xaml.cs"> <DependentUpon>AnotherPage.xaml</DependentUpon> </Compile>
<Page Include="$(MSBuildThisFileDirectory)MainPage.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page>
の下に AnotherPage を追加します。
<Page Include="$(MSBuildThisFileDirectory)MainPage.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> <Page Include="$(MSBuildThisFileDirectory)AnotherPage.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page>
全容はプロジェクトで変わる箇所があり、とても重要なファイルなので省略します。あやまってコピペしてしまう結構面倒なことになり良くないので。
これでページが追加できました。簡単ですね。
最近 Uno Platform がスゴイ注目を集めています (私調査)。
そこで先日頑張って、Uno Platform で Hello world してみました。
注目を集めていますが、実際に触ってみた人の比率はあまり多くはありません (私調査)。
わかります。忙しくてそこまで手が回らないものです。私もそうです。人生を捨てて触りました。
そこで、触るためのイベントでもあれば触りやすいかと思って、手順書形式で GitHub にまとめてみました。
分量的には平日夜のイベントを想定して 2 時間で終わる量にしているつもりです。
昨今の風潮では、イベントごとが難しいですがもしよかったら試してみてください。
もしよくなかったらこっそり教えてください。
C# もくもく会 #120 を開催しました。
C# もくもく会 は東京の秋葉原で毎週木曜日に開催している .NET 系の勉強会です。
もくもく自習を基本とし、分からないことを教えあったり情報共有したりしている会です。
定期開催していますので、お時間のある時に遊びに来ていただければと思います。
ちょっと詰まった時、ネット上で聞くのははずかしいなぁ、という課題のできた時などにも思い出していただけると嬉しいです。
今週は、もくもくの日でした。
ちなみにこの勉強会ですが、実は公序良俗に反しなければどのような技術を扱っても大丈夫です。そもそも C# エンジニアが C# だけしか使わないというわけではありませんし。
このもくもく会には、入門者の方も多くご参加いただいています。
突然 C# やらなければならなくなって途方に暮れている方、何となく C# をやってきたけど改めて見直してみたい方なども大歓迎です。
入門セミナー代わりでのご参加も歓迎です。プログラミング入門者の方も是非遊びに来てください。
特に C# で課題をお持ちでなくても是非遊びに来てください。
世界一敷居の低い勉強会を目指しています。
何か聞きたいことがある場合は、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる
何か共有したい情報を見つけた場合も、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる
そんなスタイルでやっています。
次回は 2020/03/05 に開催予定です。
C# に関心のある方、是非遊びに来てください。
Uno Platform で遊んでいたらフシギなことに気が付きました。
何が不思議か? 項目を上から見てみましょう!
逆にしてみましょう。
縦に並べてみます。
完全に一致 しています。
このふたつ、何が違うのでしょう。
生まれるファイルはどちらを選んでもそれぞれふたつ .xaml と .xaml.cs です。
<Page x:Class="UnoApp2.Shared.BlankPage1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:UnoApp2.Shared" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> </Grid> </Page>
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238 namespace UnoApp2.Shared { /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> public sealed partial class BlankPage1 : Page { public BlankPage1() { this.InitializeComponent(); } } }
<Page x:Class="UnoApp2.Shared.BlankPage1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:UnoApp2.Shared" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> </Grid> </Page>
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; // 空白ページの項目テンプレートについては、https://go.microsoft.com/fwlink/?LinkId=234238 を参照してください namespace UnoApp2.Shared { /// <summary> /// それ自体で使用できる空白ページまたはフレーム内に移動できる空白ページ。 /// </summary> public sealed partial class BlankPage1 : Page { public BlankPage1() { this.InitializeComponent(); } } }
コメントが英語か日本語かが違うだけで一致しています。コードは変わっていません。では何が変わっているのでしょう?
コードから目を話してソリューションエクスプローラーを見てみましょう。
ファイルがまとまっていたりいなかったりしています。
上下の 「 空白のページ 」 で <プロジェクト名>.Shared.projitems が僅かに変わっていました。
Visual Studio のソリューションエクスプローラーからは見えないので、Windows のエクスプローラーで確認するのがオススメです。
※ 一部抜粋
<Compile Include="$(MSBuildThisFileDirectory)BlankPage1.xaml.cs"> <DependentUpon>$fileinputname$.xaml</DependentUpon> </Compile>
※ 一部抜粋
<Compile Include="$(MSBuildThisFileDirectory)BlankPage1.xaml.cs"> <DependentUpon>BlankPage1.xaml</DependentUpon> </Compile>
上の「 空白のページ 」の $fileinputname$.xaml
を BlankPage1.xaml
に書き換えたら
ソリューションエクスプローラー上の見た目が、下の「 空白のページ 」と同じになりました。
Uno Platform を環境構築から C# 世界に挨拶するコードを書いて、Uno Platform を完全に理解することを目指す一連の記事です。
とりあえずコードを実際に書き始めてみる準備を整えることができたと思います。