プログラムを中心とした個人的なメモ用のブログです。
タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。
Visual Studio Code を使用して Markdown でドキュメントを作成していたのですが、プレビューしようとすると、以下のエラーメッセージが表示されました。
Visual Studio Code のバージョンは 1.12.2 です。
Running the contributed command:'markdown.showPreviewToSide' failed.
どうやらネットワーク上にあるファイルを編集しているのが原因のようです。
ファイルをローカルにコピーするとプレビューできました。
以前のバージョンではネットワーク上にあるファイルもプレビューできていたのですが、変更されたみたいですね。
私は Android 用のアプリも iOS 用のアプリも作成したことはありませんが、Xamarin を使えば C# でもモバイルアプリが作成できると知り興味があったので試してみました。
とりあえず作成したかったのは Android 用のアプリです。
Visual Studio 2017 Community
[ファイル] > [新規作成] > [プロジェクト] より新しいプロジェクトを作成します。
[インストール済み] > [テンプレート] > [Visual C#] > [Cross-Platform] > [クロスプラットフォームアプリ (Xamarin.Forms またはネイティブ)] を選択します。
以下のような「テンプレートの選択」という画面が出てきました。
UI テクノロジですが、Xamarin.Forms はクロスプラットフォームにUIを定義し、ネイティブはプラットフォームごとに UI を定義するらしいです。
他の項目はよくわかりません。とりあえず全てデフォルトのままで OK を押しました。
続いて以下の画面が表示されますが、こちらも全てデフォルトのままにしました。
以上で Xamarin のプロジェクトが作成されると思います。
この状態でビルドしてデバッグを開始すると、以下の画面が表示されました。
iPhone は持っていないのでとりあえずスルーしました。
しばらく待つと Android のエミュレーターが起動し、その中でアプリケーションが起動します。
しかしめちゃくちゃ重く、まともに使用できないなと思いました。
デバッグを行う際、以下のような画面が表示されたので、軽量なエミュレーターを使用するば改善されるかもしれません。
私は ASP.NET も .NET Core も触ったことありませんが、興味があったので試してみました。
[ファイル] > [新規作成] > [プロジェクト] より新しいプロジェクトを作成します。
[インストール済み] > [テンプレート] > [Visual C#] > [Web] > [ASP.NET Core Web アプリケーション (.NET Core)] を選択します。
これでプロジェクトが作成されました。
とりあえずこの段階で F5 を押してビルドしてみます。
すると、ブラウザに以下の画面が表示されると思います。
上述した通り、私は ASP.NET も .NET Core も初めてのため、この画面がどういう仕組みで動作しているのかさっぱりわかりませんでした。
なので、少し調べてみた結果を書いてみます。
https://codezine.jp/article/detail/9778
まずプログラムのエントリーポイントとなる Main メソッドは Program.cs にあります。
そこを見てみると以下のようなコードになっています。
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup&rt;()
.UseApplicationInsights()
.Build();
host.Run();
}
}
ASP.NET Core ではクロスプラットフォーム対応のためアプリケーション内部に Kestrel という Web サーバーを内包しており、それを起動しているそうです。
しかし、実際には Kestrel 単体では動作させず、 Windows では IIS を、Linux などでは Apache や Nginx などをリバースプロキシサーバーとして使用し、それらを経由して Kestrel にアクセスするようにするみたいです。
上記のデバッグ画面表示時も IIS Express 経由で表示されているみたいです。
さて、上記のコードに .UseStartup<Startup>() という記述があり、これが最初に表示するページを指定しているのだそうです。
ここでは Starup というクラスが指定されており、その実体は Startup.cs というファイルに記述されています。
中身については以下のサイトの解説がわかりやすかったです。
http://blog.shibayan.jp/entry/20160517/1463468762