ページ

2006年5月26日金曜日

Script# を入れてみました

Script#」 で取り上げた Script# ですが、試しに入れてみました。以下、セットアップ方法。



  1. Script# Prototype の下のほうにある "download" のリンクから zip を落してきて、適当なフォルダに解凍します。中に入っている readme.txt にセットアップ方法が書いてありますが、微妙に注意点とかもあるので、以下に書いときます。

  2. %SystemRoot%\Microsoft.NET\Framework\v2.0.50727 に以下のファイルをコピーします (readme.txt には v2.0.50207 とありますが、.NET Framework 2.0 の RTM は 2.0.50727 のはず)

      nStuff.ScriptSharp.targets
      nStuff.ScriptSharp.dll
      ssc.exe
      Script.ScriptFX.Core.dll
      sscorlib.dll

  3. %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\CSharp フォルダに "Script#" フォルダを作成し、その中に ScriptSharpProjectTemplate.zip を解凍して入れます。これで、この "Script#" フォルダの中には Script#.VSTDIR ファイルと 1033 フォルダがあるはずです。日本語版の Visual Studio 2005 だと 1033 のままだと認識してくれないようなので、1041 にフォルダ名をリネームします。

  4. devenv /installvstemplates を実行します。devenv.exe は通常 %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE に入っています。この /installvstemplates の実行なんですが、画面にはなにも表示されませんがちょっと時間がかかります。タスクマネージャで devenv.exe が終了したか確認するとか、コマンドプロンプトで start /wait を使って実行するとかして、/installvstemplates が終了するまで待ってあげてください。

  5. これで VS2005 を起動して新規プロジェクトの作成をすると C# の下に Script# があるはずです。

プロジェクトを作る方法。



  1. 「新規作成」-「Web サイト」 で ASP.NET のソリューション/プロジェクトを作成。(とりあえず WebSite1 とします)

  2. 試しに default.aspx にラベル (id="Label1") を貼り付けます。

  3. ソリューションに新しいプロジェクトを追加します。このとき、Script# Class Library を選択します。(とりあえずプロジェクト名は Script とでもしときます) たぶん、Script# のプロジェクトを作るとセキュリティ警告が出ると思いますが、適当に対処してくださいw

  4. Class1.cs は削除して、Default.cs あたりを作って適当にコードを書きます。たとえば以下みたいな感じ。

        using System;
        using ScriptFX;
        using ScriptFX.UI;
        
        namespace Script
        {
            public class Default : IScriptlet
            {
                void IScriptlet.Start()
                {
                    Label lbl = new Label(Document.GetElementById("Label1"));
                    lbl.Text = "あいう";
                }
            }
        }

  5. WebSite1 の下に Bin フォルダを作って、そこに nStuff.ScriptSharp.Web.dll をコピーします。

  6. WebSite1 の 「参照の追加」 でさっき作った Script プロジェクトを参照します。

  7. WebSite1 の web.config に以下のように追加します。もしくは、aspx に <%@ Register tagPrefix="nStuff" assembly="nStuff.ScriptSharp.Web" namespace="nStuff.ScriptSharp" %> と書いても構いません (web.config に追加しておけば、aspx ごとに書き足す必要がなくなります)。

        <configuration>
            <system.web>
                <pages>
                    <controls>
                        <add tagPrefix="nStuff" assembly="nStuff.ScriptSharp.Web" namespace="nStuff.ScriptSharp" />
                    </controls>
                </pages>
            </system.web>
        <configuration>

  8. default.aspx に
        <nStuff:Scriptlet ID="Scriptlet1" runat="server" ScriptAssembly="Script" ScriptletType="Script.Default" />
    と追加します。場所はどこでもいいみたいです。
    ちなみに、ScriptAssembly は Script# のコンパイル結果が入っているアセンブリ名、ScriptletType はそのアセンブリの中の 「ネームスペース.クラス名」 です。

これで Script# を使ったページができたはずです。上記のように作った default.aspx を IE で表示してみるとちゃんとラベルが "あいう" になる、、、、ありゃ、文字化けしてる。。。


日本語を使う方法


上記の場合だと、Script プロジェクトの Default.cs が Script# のコードですが、このファイルは日本語 VS2005 ではデフォルトで Shift_JIS になっているようです。これを 「ファイル」-「保存オプションの詳細設定」 で 「Unicode (UTF-8 シグネチャ (BOM) 付き)」 にします。これで保存してビルドしなおしてやればちゃんと日本語も使えるようです。

0 件のコメント:

コメントを投稿