WPF MSBuildでコンパイルしてみた。

統合開発環境を使わないでソースファイル等を用意し、MSBuildコンパイルしてみました。

MSBuildの場所はインストール方法によって変わりますが下記にあると思います。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe

MSBuildはFramework SDKVisual Studioなど、一緒にインストールされます。

 

ではソースを用意します。

まずはprogram.csを作成します。

using System.Windows;
using System;

class Program {
  [STAThread]
  static void Main() {
    Application app = new Application();
    Window w = new Window();
    w.Title = "Hello World";
    app.Run(w);  
  }
}

 

次にTest.csprojを用意します。

<Project
  DefaultTargets='Build'
  xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>

  <PropertyGroup>
    <Configuration>Debug</Configuration>
    <Platform>AnyCPU</Platform>
    <RootNamespace>Test</RootNamespace>
    <AssemblyName>Test</AssemblyName>
    <OutputPath>.\bin\Debug\</OutputPath>
  </PropertyGroup>

  <ItemGroup>
    <Reference Include='System' />
    <Reference Include='WindowsBase' />
    <Reference Include='PresentationCore' />
    <Reference Include='PresentationFramework' />
  </ItemGroup>

  <ItemGroup>
    <Compile Include='program.cs' />
  </ItemGroup>

  <Import Project='$(MSBuildBinPath)\Microsoft.CSharp.targets' />
  <Import Project='$(MSBuildBinPath)\Microsoft.WinFX.targets' />
</Project>

 

コマンドラインMSBuild Test.csprojでコンパイルできます。

Test.csprojの内容によって出力先は変わります。

 

SourceTreeをインストールしてみました。

SourceTreeをインストールしてみました。

SourceTreeは MacWindows で使える、開発者のための強力な Git/Mercurial デスクトップ クライアントです。

下記からダウンロードできます。

https://www.atlassian.com/ja/software/sourcetree/overview

f:id:GraySilverCoin:20150524112157p:plain

ダウンロードしたらインストールは簡単です。

特に迷うところはないと思います。

HTTP/2のRFCが公開されたようです。。。

HTTP/2が公開されたようですね。

・Hypertext Transfer Protocol Version 2 (HTTP/2)
 http://www.rfc-editor.org/rfc/rfc7540.txt

・HPACK: Header Compression for HTTP/2
 http://www.rfc-editor.org/rfc/rfc7541.txt

 

HTTP/1.1が承認されたのは1999年。

HTTP/1.1は設計がシンプルで素晴らしいです。

シンプルな設計って大事ですね。

これからHTTP/2も注目していきたいと思います。

HTTP/1.1の基本的な部分を勉強するのであれば

技術評論社の「Webを支える技術」がお勧めです。 

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

 

Ubuntu15.04にMonoをインストールする

UbuntuC#を利用したいのでMonoをインストールしてみたいと思います。

 

sudo apt-cache policy mono-mcsでバージョンを確認します。

下記のバージョンがインストールされるようです。

mono-mcs:
  インストールされているバージョン: (なし)
  候補:               3.2.8+dfsg-4ubuntu4
  バージョンテーブル:
     3.2.8+dfsg-4ubuntu4 0
        500 http://jp.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages

 

 sudo apt-get install mono-mcsでインストールします。

問題なくインストールできました。

 

 

 

 

CoreCLRをUbuntu15.04でビルド

CoreCLRをUbuntu15.04でビルドしたいと思います。

下記の準備が必要です。

・LDLB

LLVMのデバッガ

インストールは「$ sudo apt-get install lldb-3.6 lldb-3.6-dev 」

 

LLVM/Clang

Clangはソースコードを入力として字句解析を行う。LLVMと共に提供されるコンパイラフロントエンド。LLVMは環境や指定に合わせたマシン語生成。

インストールは「$ sudo apt-get install llvm-3.5」「sudo apt-get install clang-3.5 」

 

 ・CMake

コンパイラに依存しないビルド自動化のためのフリーソフトウェア

インストールは「$ sudo apt-get install cmake」

 

・libunwind

プログラムのコールチェーンを決定/操作するためのツール

インストールは「$ sudo apt-get install libunwind8 libunwind8-dev」

 

※米Microsoftは4月13日、LLVMベースのコンパイラ「LLILC」を発表しています。

このコンパイラは.NETで使われる中間コードをネイティブな実行可能コードに変換するコンパイラ。現時点ではWindowsのみ。

 

・Gitクライアントをインストールします。

インストールは「$ sudo apt-get install git-core」

 

上記の準備が終わったらCoreCLRをビルドしたいと思います。 

・CoreCLRリポジトリの内容をローカルにクローンします。

git clone https://github.com/dotnet/coreclr

 

・ディレクトリを$ cd coreclrで変更後に下記のコマンドを実行します。

$ ./build.sh

上記はデバッグモードなのでリリースモードは下記の通りです。

$ ./build.sh amd64 release

 

※少し時間がかかります。

...36%を過ぎた時点でディスク容量が足りないメッセージが...あっちゃー。

順調だったのにな...しかたないので強制終了です。

近いうちにハードディスクを購入して、出直します。残念...

容量を確保して無事にビルドできました。

 

GCJITは下記のライブラリに含まれています。

/coreclr/bin/Product/Linux.x64.Debug/libcoreclr.so

 

CoreCLR環境ではcorerunファイルからプログラムが起動されます。

/coreclr/bin/Product/Linux.x64.Debug/corerun

./corerun aaaa.exeのように利用します。

 

mscorlib.dllも必要ですが、まだLinuxで作成できないようです。

We don't yet have support for building managed code on Linux, so you'll need a Windows machine with clones of both the CoreCLR and CoreFX projects.

You will build  mscorlib.dll  out of the coreclr repository and the rest of the framework that out of the corefx repository. For mscorlib (from a regular command prompt window) run:

Windwosでmscorlib.dllを作成します。

CoreCLRリポジトリの内容をローカルにクローンします。

f:id:GraySilverCoin:20150510204646p:plain

build.cmd linuxmscorlibでmscorelib.dllを作成します。

f:id:GraySilverCoin:20150510205203p:plain

C:\GitHub\coreclr\bin\Product\Linux.x64.Debugに作成されます。

 

GitHubに登録してみる

 今更ですが、GitHubに登録してみようと思います。

GitHubはソフトウェア開発プロジェクトのための共有ウェブサービスです。

GitHubはBuild software better, together「優れたソフトを一緒に開発する」ことを助ける、つまりチーム(開発者、マネージャなど)がコミュニケーションを容易にとれるサービスです。開発プロジェクトを公開して世界中からフィードバックをもらえます。すごいですね。コミュニケーションのためのディスカッションツールもあります。

私個人の考えでは今後のソフトウェア開発においてGitHubは必須だと思っています。

では登録してみましょう。

 

上からユーザー名、メールアドレス、パスワードを入力し「Sign up for GitHub」をクリックします。 

f:id:GraySilverCoin:20150509202501p:plain

登録したメールアドレスにメールが届きますのでリンクをクリックします。

確認画面に遷移されます。よければ「Confirm」をクリックします。

これで登録完了です。簡単でした。

 

 次はOrganization(組織)を作成します。

下図のCreate Organizationをクリックし、新規に組織を作成します。

f:id:GraySilverCoin:20150509202925p:plain

 

 次にOrganization name(組織名)とBilling email(課金メール)を登録します。

Billing emailは有料のプランを選択した場合は請求の通知が送信されます。

「choose the organization's plan」から「Open source」を選択すると無料になります。

f:id:GraySilverCoin:20150509203201p:plain

 

次にGitHubのユーザー名を入力して、メンバーを組織に招待します。

対象のユーザーを追加後にFinishをクリックします。

f:id:GraySilverCoin:20150509205400p:plain

 これで組織の所有者になりました。

 

次はリポジトリの作成を行いたいと思います。 

「New repository」をクリックします。

f:id:GraySilverCoin:20150509221536p:plain

 

Repository nameを入力します。

Create repositoryをクリックします。

f:id:GraySilverCoin:20150509222347p:plain

 

GitからGitHubリポジトリにアクセスする方法がHTTPSSSHの2種類があります。どちらかをクリックすると下にあるコマンドラインが変わります。

Set up in DesktopをクリックするとGitHubのセットアップファイルのダウンロード画面が表示されます(WindowsMacLinuxに対応)。

Ubuntuはapt-get install gitで可能です。

f:id:GraySilverCoin:20150509223204p:plain

 

以上で基本的な登録は完了です。

 

リポジトリは複製ができます(Fork repositories)。

フォーク後のリポジトリで開発し、元のリポジトリに反映を依頼する事もできます(Pull requests)。

 

他にも強力な機能があるようですが、利用する機会があれば記事にしたいと思います。