2009-07-16 35 views
2

私はASP.NETでの経験はほとんどありませんし、校正ユーティリティになる最初のWebサイト/アプリケーションの作成を開始する前に、いくつかのセルフトレーニングを行っています。そのユーティリティの仕組みは私の懸念事項ではありません。しかし、最終的には、コードを含むページのURLとして、あるいはHTMLフレームやiframeとして埋め込まれたように、最終的に他人のWebサイトに埋め込まれる必要があります。これの基本を理解するために、フレームセットを含む「親」とフレームの1つに入れようとしている「子」の2つの非常に単純なASP.NET Webサイトを作成しました。どのようにASP.NET Webサイト(またはWebアプリケーション)を別のWebサイトに埋め込むのですか?

親の "Default.aspxの" HTMLコードは、基本的にはこれです:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Parent Site Test 1</title> 
</head> 

<frameset cols="300,*"> 
    <frame name="outer" src="parent.aspx" noresize></frame> 
    <frame name="inner" src="[what do I put here?]"</frame> 
</frameset> 

</html> 

"parent.aspx" ページには、その中で最も基本的なHTMLがあります。

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     I am the parent web form. 
    </div> 
    </form> 
</body> 
</html> 

子ウェブをこの練習の目的のために、別のVS2008ソリューションでサイトを維持しています(他の人のWebサイトが私の校正用Webページ/サイト/ものを参照する条件を再現しようとしているためです)。私はもともと子供全体を単一のDLLにパッケージングする方法があると考えていましたが、そのDLLを子フレームのソースとして使用するように親に指示する方法があります。これは、JBossとJ2EEを使用したJavaの世界での私の経験から来ています。これは、子が別のEARファイルとしてデプロイされるだけで簡単に解決できます。

VS2008とASP.NETで全く経験していないので、私はここ数日、Googleを利用して答えを見つけようとしています。

  • 私は妥当なことをしようとしていますか。問題を解決することを考えるのは正しい方法ですか?

  • かなり独立した自己完結型のWebサイト(またはWebアプリケーション...私はまだ違いは分かりません)として、子供を1つのDLLにパッケージングすることで展開できますか?はいの場合、VS2008のWebサイト/アプリケーションからこのDLLを実際に作成するにはどうすればいいですか?それを親Webサイトでどのように参照するのですか?

  • 私はここで完全にオフトラックしている場合、この親子の組み合わせを他の方法で作成するにはどうすればよいですか?子(実際には私が最終的に書く校正ユーティリティ)はASP.NET(C#)で行う必要がありますが、親サイトを管理する必要はありません。他の人のコードなので、私のユーティリティに落とすことができます。

ありがとうございました!より具体的であれば、より良いことができます。私はASP.NETとVisual Studioの新機能ですが、他の言語やIDEで豊富な経験を積んでいます。

答えて

1

クライアントがASP.Netも使用していることがわかっている場合は、ユーザーコントロールとしてビルドできます。

1

IIS6以上をお持ちの場合は、両方のWebアプリケーションを実行することができます。src = "[ここには何があるのですか"]子WebサイトのローカルURLを入力します(おそらくhttp://localhost/ChildTestWebsite/child.aspx)。その後、http://localhost/ParentTestWebsite/Default.aspxをロードすると、フレームが表示されます。

これを単一のDLLにパッケージ化するには、Joel氏のようにユーザーコントロールを作成する必要があると思います。そうしないと、DLL + aspxページがあります。

+0

私はDLL + aspxファイルを持っていますが、DLLには何がありますか?すべてのコードビハインドのものですか?例えば。 Default.aspxをお持ちの場合、Default.aspx.csはDLL内で終了しますか? –

+0

はい。 DLLファイルとaspxファイル+ ascxファイルとconfigsなどがあります。すべてのコードビハインドはDLLにあります。 –

1

あなたがするべきことは、親と子の間のやり取りの仕方によって異なります。

親が子のサーバー側の機能にアクセスしない場合は、フレームタグのsrcの絶対httpパスを参照するだけです。 javascriptメソッドにアクセスしようとすると2つのアプリケーションが異なるWebサーバーにある場合、一部のブラウザでセキュリティの問題が発生する可能性がありますが、.NET固有のものではありません。

親がサーバー側の機能にアクセスする場合は、サーバー側のコンポーネントを親プロジェクトのどこかに提供する必要があります。これはより複雑です。私は親aspxページに含まれているWebコントロールとしてすべての子ページを構築する必要があると思います。

1:子プロジェクトを、親が使用できるサーバーコントロールのWebコントロールライブラリとしてビルドします。これは、最適な展開方法です。すべてが1つのdllに組み込まれています。これに対する最大の欠点は、サーバーコントロールをコードでのみ開発できることです。あなたにはビジュアルデザイナーがいません。

2:Webアプリケーションプロジェクトを作成します。 VS2008では、これを「新規プロジェクト」で行い、「ASP.NET Webアプリケーション」テンプレートを探します。これは、すべてのコードが背後にあるWebプロジェクト(csファイル内のすべて)が単一のdllに組み込まれていることを意味します。このシナリオでは、親ページで使用できるユーザーコントロール(ascxファイル)を作成します。これの不利な点は、runnin Webアプリケーションでユーザーコントロールを緩和する必要があるため、すべてのascxファイルを親Webサイトの展開された場所にコピーする必要があることです。 dllは、親Webサイトのbinフォルダにもコピーする必要があります。ここでは、VisualStudioでGUIを設計するほうがはるかに簡単であるという利点があります。 ascxユーザーコントロールのGUIとコードの設計は、完全なaspx Webページの作成と非常によく似ています。

関連する問題