Category Archives: WebMatrix

WebMatrix 2のGit For WebMatrixエクステンションが動作しない場合の対処方法

正式版WebMatrix 2でのGit For WebMatrix の動作について。.

WebMatrix2のGit For WebMatrixで以下のような症状が出た場合の対処方法です。

症状

環境:

  • WebMatrix 2 RTM
  • Git For WebMatrix Ver. 0.2.2

できること:

  • リボンのボタンからGitのリポジトリを作成する。
  • リボンのボタンからGit Bashを起動する。

できないこと:

  • 作成したGitのリポジトリを認識しない。
  • ファイルの状態(追加、変更など)が左側のファイルツリーにアイコンで反映されない。
  • コミットなどの操作ができない。

原因

ホームディレクトリにある.gitconfigがBOM付UTF-8だと、Git For WebMatrixエクステンションが使用しているNGitライブラリ内でIO Exceptionが発生し、エクステンションが異常終了している。

エクステンションが出すエラーログはマイドキュメントディレクトリのgitscc.logファイルに保存されている。

Git ExtensionsのGUIの設定→グローバル設定で.gitconfigファイルを編集するとBOM付きUTF-8ファイルとして保存されてしまうようです。


ここで設定するとBOM付きUTF-8で保存されてしまう。

修正方法

秀丸エディタやEmacsなどのBOM無しUTF-8ファイルを取り扱えるエディタなどで、ホームディレクトリにある.gitconfigファイルをBOM無しUTF-8ファイルとして保存する。

WebMatrx2 refresh for windows 8というもの

WebMatrx2 refresh for windows 8というものが突然現れました。

SnapCrab_Azure - Microsoft WebMatrix_2012-10-17_22-59-48_No-00

SnapCrab_Azure - Microsoft WebMatrix_2012-10-17_23-0-40_No-00

まさかのWeb Platform Installerのアップデート。そしてこれが終わると、自動的にWebMatrix2 Refresh for Windows 8のインストールが始まる。

で、どこがどうリフレッシュしたのかはよくわかりません。

SnapCrab_Web Platform Installer 40_2012-10-17_23-9-51_No-00

日付的には10/5にアップデートされていた模様。

GitWebAceessを使用したIISによるGitのホスティング

Windowsをメインに扱っていると、GitもWindows Server上でホスティングしたくなります。

イントラ環境ではファイル共有がおそらく一番簡単な解決方法ですが、ホスティングなども含めて考えるとSSHやHTTPでやりたいというのも人情です。SSHはWindowsだとCygwinを使わなくてはならず、何か大変な負けな気がするので、HTTPでやりたいと。

Apacheを使えばGit Proとか読みながら普通にHTTP/HTTPSでGitのリポジトリにHTTP経由でアクセスできるようになりますが、ここはWindowsなのでぜひともIISを使いたいところです。

Git Web Accessとは

Git Web AccessはスマートなGitサーバーIIS上に構築していこうというyysunさんによるプロジェクトで、CoreとなるGitToolsと、ASP.NETのサンプルから構成されていて、以下のCodePlexのサイトからダウンロード可能です。また、Core部分のみをNuGetからインストールすることも可能です。

Git Web Access

github:https://github.com/yysun/Git-Web-Access.git

Gitをホスティングする仕組み

Git Web AccessではGitToolsの中でカスタムのHTTPハンドラクラスを実装しています。それがGitHandlerクラスで、httpのコマンドに合わせてGitのコマンドを発行し、Gitの結果を適切に加工して返しています。つまり、git-http-backend.exeやgit-http-backend.pyが実行している仕事をASP.NETのコードにやらせているわけです。

GitToolsにはそれ以外にもASP.NETからGitを利用するためのユーティリティクラスが用意されています。

準備

まず実行環境として、Git For Windowsの1.7.10以上がインストールされているのが条件です。そのほかにIIS7.5以上、.NET Framework 4.0以上が必要です。

次にGitのレポジトリのルートとなるディレクトリを作成します。今回はD:\reposと作成します。ディレクトリの位置はどのドライブ、名前でもかまいません。作成したフォルダにはIIS_IUSERで変更が可能なようにアクセス権を割り付けます。

WEBサイトの構築

IISのWEBサイトの構築を行います。

そう、WEBサイトです。

Visual Studioを使って作成することも出来ますが、今回はWebMatrix2を使いGitをホスティングするためのWEBサイトを構築します。

WebMatrix2を起動して、ASP.NETの空のページを追加します。

ページの初期設定が終わったら、ファイルを選択します。

NuGetボタンを押してNuGetのユーティリティを起動したら、GitWebAccessをインストールします。

インストールが完了すると、コンポーネントがインストールされ、Web.configが変更されます。

次にWeb.configを以下の要領で変更します。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
      <!-- 以下の参照を追加する。 -->
      <assemblies>
        <add assembly="System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>
    </compilation>
  </system.web>
  <!-- アドレスが*.gitだったらGitTools.GitHandlerを呼ぶようにhttp handlerを追加する -->
  <system.webServer>
    <handlers>
      <add name="GitHandler" verb="GET,POST" path="*.git" type="GitTools.GitHandler,GitTools"/>
    </handlers>
  </system.webServer>
  <!-- ODataアクセス用 -->
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
  </system.serviceModel>
  <appSettings>
    <!-- git.exeのインストールパスを設定する。 -->
    <add key="GitExePath" value="C:\Program Files (x86)\Git\bin\git.exe"/>
    <!-- Gitのリポジトリを置くルートディレクトリを設定する。 -->
    <add key="GitBaseFolder" value="D:\repos"/>
    <!--<add key="GitAuthenticationMode" value="Push" />-->
  </appSettings>
</configuration>

5行からは、GitToolsが使用する.NEtFrameworkライブラリへの参照を追加しています。

12行からが、ハンドラの追加で今回のキモです。URLの最後が*.gitとなっていた場合には、GitTools.GitHandlerにHTTPの処理を渡すよう設定しています。

18行目はODataをつかったアクセスのための設定ですが、今回は触れません。

22行目以降が動作設定です。キー:GitExePathはgit.exeへのフルパスを記述します。キー:GitBaseFolderはリポジトリのルートとなるディレクトリをフルパスで指定します。今回はD:\reposを指定しています。また、コメントアウトされていますが、Gitのリポジトリに対するアクセス制限についての設定を記述することが出来ます。また、認証方法自体はIISの設定です。

基本的に上のようにWeb.configを設定しておけば、http経由でGitリポジトリにアクセスするIIS/ASP.NET側の準備は終了です。WEbサイトを実行させておきましょう。

※Web.configはGitHub上のサンプルWebサイトの設定を参考にしました。

共有レポジトリの作成

http経由で共有する共有レポジトリを作成します。

Web.configで指定したレポジトリのルートとなるディレクトリの下に、プロジェクトごとのディレクトリを作成します。このときディレクトリ名は必ず.gitで終わるようにします。今回はWebTest.gitと言うディレクトリ名で作成します。

ディレクトリを作成したら、作成したディレクトリを選択してGit Bashを起動します。

git bashから共有のベアレポジトリを作成します。

> git init --bare --share
> git update-server-info

la -alFなどして、ベアレポジトリが作成されていることを確認します。

Gitからのアクセス

先ほど作ったディレクトリ名がそのままURLのアドレスになる感じですので、以下のようにアクセスできます。

> git clone http://localhost:8001/WebTest.git
> git pull http://localhost:8001/WebTest.git
> git push http://localhost:8001/WebTest.git

サイトのアドレスやポート番号は実際に合わせて変更して下さい。

さいごに

簡単だとも書きませんけど、それほど複雑では無い感じでGitをIISでホストできることがおわかりいただけたのではないかと思います。GitToolの機能は全部見れてませんが、GitHubにあるサンプルのWebサイトや、Webアプリケーション見る限りいろいろと機能豊富そうなので、IssueTrckerとかに組み込むのがいいかもしれませんね。

サンプル全体はgithubで公開しています。
https://github.com/ishisaka/GitWebAccessSample

NPM Gallary (WebMatrix2 Extension) (#webmatrix)

WebMatrix2製品版のタイミングで追加された拡張機能で、GUI操作でnpmを使ったnode.jsのモジュールのインストールが可能です。

まずはWebMatrixのリボンから拡張機能を選択してインストールをします。

SnapCrab_now_helloworld - Microsoft WebMatrix_2012-9-9_19-28-39_No-00

選択して、インストールスるをクリック。

SnapCrab_now_helloworld - Microsoft WebMatrix_2012-9-9_19-29-9_No-00

SnapCrab_now_helloworld - Microsoft WebMatrix_2012-9-9_19-29-23_No-00

MSのライセンスに同意するなら同意するをクリック。同意すればインストールが開始されます。

Continue reading NPM Gallary (WebMatrix2 Extension) (#webmatrix)

WebMatrix 2の製品版インストール後拡張機能がうまく動かないとき (#webmatrix)

RC版からWebPIを使って製品版をインストール後、Git For WebMatrixを拡張機能のインストールからインストールしたのですが、ファイルツリーなどで一切Gitのステータスを表すアイコンなどが表示されず、ファイルを選択しての右クリックでAddなどのGitコマンドも表示されない状態でした。

どうも原因はRCのときの拡張機能のファイルがあるためのようで、修正方法ですが、以下のフォルダを削除することで機能回復します。

<システムドライブ>\Users\<ユーザー名>\AppData\Local\Microsoft\WebMatrix\Extensions\20RC

ただ注意点としては、RCのときに作成したWebサイトの情報なども無くなってします。

WebMatrix 2 is Released! + New Windows Azure Features – Windows Azure – Site Home – MSDN Blogs

WebMatrix 2 is Released! + New Windows Azure Features – Windows Azure – Site Home – MSDN Blogs.

キタ━━━━(゚∀゚)━━━━!!

詳細は今晩お送りするかも。

なにやらWebPIだと日付は更新されている物の、名称はリリース候補だったりと多少混乱している模様。

上リンク先にあるようにAzureポータルから落とすのが良いのかもしれませんね。

 

 

Go Azure on Channel 9

Go Azure | Channel 9.

6/29~6/30に行われたGo Azure各セッションのビデオとセッション資料が公開されました。

参加できなかった方は是非新しいWindows Azureをこれらのビデをと資料でご確認ください。

キーノート。出落ちとは何かと言うことについてご確認ください。

Go Azure 2Day

2日間、講師の皆様、スタッフの皆様、参加者の皆様お疲れ様でした。

2日目 キーノート

JAZUG酒井さんとMS平野さんによる掛け合い漫才での1日目振り返り。


Video streaming by Ustream

A-2-1 Git/WebMatrix 2 から使う Node.js on

JAZUG森島さんによるGit/WebMatrixからNode.jsを使用するセッション。


Video streaming by Ustream

Mac, Linuxクライアントツール、Git pushによる配置でhe何とかには負けない感じになりました。とりあえずnode.jsを始めてみようかなという方はwebmatrix2とAzure Webサイト出始めるのが良いのでは無いかと思います。

A-1-3 AWS のクラウド デザイン パターンを Windows Azure に持ってきてみた

JAZUG冨田さんによるAWS クラウドデザインパターンをWindows Azureに当てはめて実装するのかという内容です。


Video streaming by Ustream

CDPはAWSのパターンではあるものの、パターンである以上プラットフォーム中立なので、VMが追加されたAzureでも適用可能なパターンがある。クラウドのシステムアーキテクチャパターンの蓄積はこれからの部分も大きいと思うので蓄積と共有化は進んでほしいと思うところ。

A-2-4 Windows Azure de Linux – Azure で動かす – Linux 株式会社 pnop 廣瀬 一海

デプロイ王子ことJAZ廣瀬さんによるLinuxのセッション。


Video streaming by Ustream

Windowsがセッション中全く出てこずにうぶんちゅでひたすらで元セッションが進んでいくという、ちょっと前ならあり得なかったセッション。

内容的にはVMでLinuxを使う点での注意点、Azure VMに上げるためにローカルのHyper-VでVMを用意する方法、LinuxのツールからAzureを操作する方法についての情報でした。

Go Azureネットワーキングパーティー


Video streaming by Ustream

そゆもの。誰か出てきたりしますがキニシナイ。そうそう、緑の人に女性隊員の3号が加わり、戦隊化したようですよ。

webmatrixman 戦隊

来年の開催にも期待!!

WebMatrix2のサイトをGit等のVCS(SCM)で管理する場合の注意点

WebMatrix2のファイル→オプションで下図赤枠内をチェックします。

image

これをチェックしておかないと非表示の設定になっているGitやSVNのファイルなども一緒にサイトに送ってしまい、アップロード、ダウンロードを重ねていると大変なことに。。。(経験者がここに!)

Go Azure 1Day

今日から2日間Go AzureというWindows Azureのイベントが開かれており、参加しています。

Web サイト、VM、Virtual NetworkなどのPreviewリリース後初めて行われた大きなイベントになります。

キーノート 日本マイクロソフト 平野殿


Video streaming by Ustream

過去の振り返り、パートナーとの戦略の披露、新機能のデモといった内容でした。

そして、緑の人が登場。

image

image

おかしい。中の人などいないはずなのに。そしてまさかの出落ち。

テクニカルセッション1
新機能 “Web サイト” で実現する Web アプリケーション高速開発


Video streaming by Ustream

関田さんによるセッション。WEBサイトを実際に作成するデモ中心の内容。

Key noteではWebMatrixマンによるWebMatrix2でNodeを使ったデモでしたが、こちらではVisual Studio 2012を使ったデモの内容になっています。

WEBサイトとWebMatrix2の組み合わせは、下手のホスティングのエクスペリエンスを軽く凌駕していて、FTPとかであれこれしていた私はなんだったの的な経験を得られるので、一度試してみるのをお勧めします。

セッション資料

テクニカルセッション2 IaaS 始めました

image

ビデオはテクニカルセッション1のものの後半。

image

高添さんの登場。高添さんはいわば「重力に魂をひかれた人々」・「連邦軍」の代表とも言える人だったので、あの高添さんがAzureのデモをするなんてまるでエマ シーンのようだぐらいの衝撃を人によっては受けたと思います。

つまり、AzureのIaaS機能とVirtual Network機能はまさにオンプレミスとクラウドとの垣根を易々と越えていく軌道エレベータみたいなもので、ミノフスキークラフトとか、トランザムとかも必要なく重力を吹っ切れるものになったということなんだと理解すれば良いと思います。

個人的には仮想化すればそのままクラウドに逝く時代が本当に来ちゃったなぁという感じです。結構これを好機ととらえるか、災厄ととらえるかは結構その人の位置取りや行動規範によってくると思います。

セッション資料

テクニカルセッション3
Windows Azure におけるデータ中心クラウド サービス開発事始め


Video streaming by Ustream

野村さんによるSQL Azyre改めSQLデータベースでのSQLフェデレーションのデモ、SQLデータベース、VM中のSQL Server、従来のAzureストレージを含めたストレージ選択の戦略について、そして、追加された、Webロール、Workerロールに配置するキャッシュ機能についての説明でした。

SQL Azureの容量上限の向上などもあり、Azureストレージはいらない的な話もあったりしますが、結局は適材適所なので、シナリオに応じたデータストレージの戦略が、性能的にもコスト的にも重要担ってくると思います。選択肢が増えた分、何を使うかの設計力が試されるのだと思います。

セッション資料

スペシャルセッション
マイクロソフトは本当にオープン ソースに対してオープンか?

image

ビデオはテクニカルセッション3のものの後半。

丸山先生によるオープンとは何かと、オープンの重要性に対する講義。

そういう点では表題とは少しずれていると感じる人がいるかもしれない内容ではありました。

丸山先生による。クラウドコンピューティングにおいては、オープンソースであること自体と言うよりも、プロトコルやAPIがオープンであることが重要であるという指摘は重要だと思います。

 

1日目は緑の人の登場はあったものの、日本マイクロソフトのエバンジェリスト中心にフォーマルな内容のセッションでしたが、2日目はJAZUGメンバー中心のセッションとなるので、どうなることやら。。。