2011-01-21 8 views
1

私は現在VS2010にWebアプリケーションプロジェクトを持っています。各コントロール(* .ascxファイル内)は、そのコントロール(* .asmxファイル内)およびその操作に使用されるjavascriptオブジェクト(* .jsファイル内)で使用されるWebサービスと共に、独自のフォルダに含まれています。したがって、プロジェクトのレイアウトは次のようになります。Script#とWebコントロールを組み合わせるにはどうすればよいですか?

WebApp/ 
    WebControl1/ 
    WebControl1.ascx 
     WebControl1.ascx.cs 
     WebControl1.ascx.designer.cs 
    WebControl1.asmx 
     WebControl1.asmx.cs 
    WebControl1.js 
    WebControl2/ 
    ... 
    Global.asax 
    Default.aspx 
    Default.aspx.cs 
    Default.aspx.designer.cs 
    ... 

プロジェクトが拡張されており、Script#を使用して.jsファイルをアップグレードして置き換えようとしています。私はこの構造を維持したいと思いますが、同じプロジェクトでScript#と通常のC#ファイルを混在させる方法はないと言えます。

Script#サイトのReadme PDFを見て、PhotoDemoの例をダウンロードしましたが、Webコントロールの横にあるScript#の使用例は見つかりません。私は、 'Script Support'テンプレートをプロジェクトに追加し、Script#テンプレートリストからClassとPageの両方のテンプレートを追加しようとしましたが、どちらも通常のC#ソースコードファイルとして扱われます。

私はリフレクターを使用して、Script#によってインストールされたmscorlib、System.Web、ScriptSharp.Web、ScriptSharp.VisualStudio、ScriptSharp、Script.Windowsのバイナリを調べましたが、この動作を許可します。

誰かに似たようなことが実装されているのですか、それ以上のヒントはありますか?

Script#を使用する唯一の方法は、別のScript#プロジェクトを用意し、JavaScriptファイルの出力をWebアプリケーション内に置くことです。それは動作しますが、それは理想的ではありません。お時間を

おかげで、
ヒュー

答えて

0

私は最近、思い切って撮影したし、ほぼ完全にWebユーザーコントロールを使用して停止しました。コントロールHTMLをスクリプト#出力にコンパイルし、ポストバックの代わりにWCFでWebサービスコールを行います。私はあなたがこれに触れると思いますが、私の見解では、設計とロジックが2つの別々のプロジェクトにある場合、単一の概念単位であるデザインとロジックを同期させるのは面倒です。

マイプロジェクトのレイアウトは基本的に次のようになり:

WebApp/ 
    Pages/ 
    Home.aspx 
    [etc] 
    Services/ 
    MainService.svc 

ScriptSharp/ 
    UI/ 
    Widget1.html 
    Widget1.html.cs 
    Widget2.html 
    Widget2.html.cs 

私はスクリプトの#出力に定数にその内容を回し、 『コンパイル』としての私「の.html」ファイルを設定することで、システムをだまします。私の ".html.cs"ファイルでは、UIロジックがjQueryを以前よりも多く使用していることを除いて(クリック、変更などのイベントハンドラ)、期待していたことがあります。

興味があれば、私のSharp UIプロジェクトをチェックすることができます。このプロジェクトは、html定数を解析し、各HTMLフラグメントを(クライアント側のバージョンの)ウェブユーザコントロールであるかのように扱います。

関連する問題