読者です 読者をやめる 読者になる 読者になる

SIN@SAPPOROWORKSの覚書

C#を中心に、夜な夜な試行錯誤したコードの記録です。

HTMLを1行も書かずにWebアプリを開発する

先日、グレープシティ株式会社さんから届いたニュースレターに下記のようなものが掲載されていました。

1. HTMLを1行も書かずにWebアプリケーションを開発することは可能か

A.不可能である
B.がんばればできる
C.がんばらなくてもできる

正解:C
Visual WebGui(ウェブグイ)を採用すると、HTML、CSS,JavaScriptの記述をすべて回避することができるという事です。Visual WebGuiは、イスラエルのGizmox社が開発したフレームワークです。詳しくは下記をご参照ください。
http://www.grapecity.com/tools/info/visualwebgui/index.htm

気になったので、ベータ版を頂いて試してみました。

1 プロジェクト作成からWindowsフォーム風のコーディング

インストールを完了すると、プロジェクトのテンプレートで「Visual WebGui」が選択できるようになります。

「Visual WebGuiアプリケーション」を選択してOKすると、Windowsフォームとそっくりのプロジェクトが生成されます。

ツールボックスから「ボタン」「テキストボックス」「リストボックス」を張り付けてみました。

続いて、「ボタン」をダブルクリックして生成されたイベントハンドラ (button1_Click) に、テキストボックスの内容をリストボックスに追加するコードを記述しました。

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e){
        var str = textBox1.Text;  //TextBoxの内容をstrに取得する
        listBox1.Items.Add(str);  //ListBoxにstrを追加する
    }
}

トップページを指定するために「Form1.cs」を右クリックして「Set As Start Form」を選択します。

F5(デバッグ開始)でブラウザが起動し、http://localhost:***でWebアプリが動作しています。

ここまで触って見て、Windowsフォームでの作業と全く違和感がありませんでした。

2 動作の確認

(1)アーキテクチャ

サーバ・クライアント間の動作については、GgrapeCityさんのWebページで紹介されいました。
http://www.grapecity.com/tools/info/visualwebgui/about.htm

初回レスポンス時に「仮想化エンジン」がブラウザに送られ、事後、クライアント側でUIの描画が行われるそうです。2回目以降、サーバからのレスポンスはXMLデータのみとのことです。

(2)コントロールのライブラリ

当然といえば当然ですが、テキストボックスやリストボックスは 名前空間System.Windows.Formsではなく、Gizmox.WebGUI.Formsでした。


private Gizmox.WebGUI.Forms.Button button1;
private Gizmox.WebGUI.Forms.TextBox textBox1;
private Gizmox.WebGUI.Forms.ListBox listBox1;

(3)IISへのデプロイ

どのファイルを送ればいいのか、ちょっと良くわからなかったので、とりあえずプロジェクト全体をwwwrootに置いてみて動作するのを確認し、不要と思われるファイルを削っていくと、結局、bin配下とweb.configだけで動作していました。

拡張子wgxは、web.configで処理されているようです。
ASP.NETのようにcshtmlや、aspxのようなビューファイルは存在しませんでした。

3 Windows Azure WEBサイトへのデプロイ

Windows Azureで「WEBサイト」を簡易作成で作成し「発行プロファイル」をダウンロードしておき、プロジェクトの「発行」メニューでインポートして、そのままデプロイしました。

しかし、「http://webgui.azurewebsites.net/Form1.wgx」にアクセスしても、NotFoundとなってしまいました。

よく分からなかったのですが、FTPクライアントで接続して送信されたファイルを確認してみるとbinの下は送られていますがweb.configが無いようです。

FTPクライアントでweb.configを送信すると無事アクセスできるようになりました。

下記に本記事のサンプルを置きました。しばらく公開します。
http://webgui.azurewebsites.net/Form1.wgx


Visual WebGui のベータ版の使用期間は、2013年10月31日まで、製品版は、2013年6月〜8月の予定だそうです。
http://www.grapecity.com/tools/info/visualwebgui/roadmap.htm