[Visual Studio] Visual Studio Express 2013 for Windowsで、Worldさん、こんにちは!

デスクトップ用アプリ開発環境を入れ終わったので、次は…えーっと、何でしたっけ?

マイクロソフトも、モダンアプリと言ったり(それ以前はメトロアプリでしたが、これは商標権でダメになった。)、ウインドウズストアアプリと言ったり、結局何になったのかよくわからないですが、ともかく、デスクトップではない、Windows 8のホーム画面で動作するアプリですね。

そいつの開発環境を入れます。Visual Studio Express 2013 for Windows ですね。

インストールまでは、 Visual Studio Express 2013 for Windows Desktopとたいして変わりませんので、起動から。

20140103_vs_1

for Windows Desktopと比較して、ダークな色遣いとなっております。アダルトな雰囲気を感じます。では、いつものように新しいプロジェクトを追加しますか。

20140103_vs_2

うーん、グリッドアプリケーションとか、ハブアプリケーションとか、見慣れないのが出てきました…。この辺は後で見ておかないといけないですね。今回は、「Visual C# / 新しいアプリケーション(XAML)」で行ってみます。

20140103_vs_3

C++を選ぶと、DirectX アプリケーションも作れますね。

20140103_vs_4

オンラインから、いろいろなサンプルも見れるみたいです。確認してみたら、for Windows Desktopでも同じようにサンプルがありました。開発に慣れるには、自分の欲しい機能に近いサンプルアプリを読んでみるというのが、よさそうです。

20140103_vs_5

ともかく、今回はC#で作成です。プロジェクトを作成すると、MainPageだけのプロジェクトが作られました。

これをなにも変更せずに実行すると…実機上で実行されて、画面が真っ暗になります。通常のストアアプリと同じように、画面上からドラッグで終了させましょう。

実機上で動作させてしまうと、どうにも開発がやりにくいですね。Visual Stuido Express 2013 for Windowsでは、エミュレータが用意されています。動作確認用の実機をもう一台用意して、リモートデバッグする方法もあるみたいですが、Express版でそれができるかどうかは、未確認です。

「ローカルコンピューター」を「エミュレーター」に変更して、再度実行。

20140103_vs_6

画面内に、小さいタブレット画面が表示されて、その中でアプリが実行されました。といっても、先ほどと同様に真っ黒ですが…。

このエミュレータ、実際にWindows 8が動作しています。ホームボタンを押すと、ホーム画面になります。

20140103_vs_7

これはアプリ一覧ですね。実機と内容は共有されているようです。デスクトップも、そのまま同じでした。

20140103_vs_14

デスクトップを表示させてみると、エラーが出てました。Wacomタブレットドライバ入れてると、エミュレータではエラーが出てしまうようです。いまのところは影響ないので無視します。20140103_vs_17

どうでもいい話ではありますが、エミュレータの中でもVisualStudio起動します。この場合、ローカルコンピュータで実行すると、エミュレータ内で実行されます。エミュレータ指定で実行しようとすると「すでに別のエミュレータが起動しています」といったエラーになりました。


いつものHello,Worldです。

20140103_vs_8

MainPage.xamlを開きます。

20140103_vs_10

ツールボックスから、TextBlockを選択。

20140103_vs_9

メイン画面にドロップして適当な大きさに設定。プロパティでフォントもいい感じにしときます。

20140103_vs_11

TextBlockへの文字列設定プログラムを書きます。

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;

// 空白ページのアイテム テンプレートについては、http://go.microsoft.com/fwlink/?LinkId=234238 を参照してください

namespace HelloWorldModernApp
{
    /// <summary>
    /// それ自体で使用できる空白ページまたはフレーム内に移動できる空白ページ。
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            formText.Text = "Hello,World!"; //追加で書いたのはこの行だけ。
        }
    }
}

エミュレータで実行。

20140103_vs_12

ちょっと字が小さすぎたのでフォントサイズをデッカクする。

20140103_vs_13

まあこんなもんか。

20140103_vs_19

実機で動作している様子。(ちょっとハッカー部屋風味)

今日はここまでにしよう。