1

ASP.NET チャット アプリケーションを開発しました。ここで、Tridion ページとの統合が必要です。そのためには、公開されたページの分離コード ファイルが必要です。もう 1 つの問題は、クリック イベントを使用してページにボタンを追加するとします。どうすればそれを達成できますか?私がやったこと:

<%@ Page language="c#" Inherits="SDLchat.ChatWin" CodeFile="ChatWin.aspx.cs" %>
<%@ Register src="ChatLogin.ascx" TagName="c2" TagPrefix="uc2" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<HTML>
<HEAD>
    <title>ChatWin</title>
</HEAD>
<body>
    <form id="Form1" method="post" runat="server">
        <asp:Panel ID="Panel1" runat="server">
            <uc2:c2 ID="log2" runat="server" />
        </asp:Panel>

        <asp:Panel ID="Panel2" runat="server" Visible="False">
            <asp:LinkButton ID="LinkButton1" runat="server"
                 onclick="LinkButton1_Click">Change Room</asp:LinkButton>
        </asp:Panel>
    </form>
</body>
</HTML>

これは私の.netアプリケーションファイルです

これは、Tridion に移行したい ASP.NET Web アプリです。助けてください

4

3 に答える 3

6

したがって、このアプリケーションのすべてのページに 2 つのファイルがあります。

  1. マークアップを含む ASPX ファイル
  2. コードを含む CS ファイル

Tridion の発行はページごとに 1 つのファイルに基づいているため、2 つの別個のページを作成することで、これらのファイルの両方を Tridion から発行できます。または、Web アプリケーションを IIS に展開するときに、Tridion から ASPX を公開して CS ファイルを展開することもできます。

ASPX コンテンツを Tridion の DWT テンプレート ビルディング ブロックに入れ、それを複合ページ テンプレートの唯一のビルディング ブロックとして使用することをお勧めします。

Tridion からコード ビハインド CS ファイルも公開する場合は、別の DWT を作成し、そこにコードを貼り付けて、別の複合ページ テンプレートを作成します。


PageLoad イベントに関する 2 番目の質問について: この場合、Tridion は、あなたが入れたファイルを公開するだけです。これらのファイルに入れる ASP.NET コードとは関係ありません。ASP.NET ページ読み込みイベントが Tridion の外部で機能する場合、Tridion から同じファイルを発行すると機能します。

于 2012-05-15T15:07:40.127 に答える
3

SDL Tridion CMS (dll、.config ファイル、コンパイルされていないコードなど) からほぼ何でも公開できるからといって、そうすべきだというわけではありません。

アプリケーション ロジック (またはコード) のライフサイクルは、コンテンツのライフサイクルとは大きく異なります。通常、コードの変更は、開発、テスト、受け入れ環境全体で慎重に展開、テスト、修正、再展開してから、技術ユーザーが 1 回の操作で本番環境に展開する必要があります。組織によっては、毎月またはそれよりも短い/長い開発および展開サイクルがある場合があります。

一方、実際のコンテンツは通常、実稼働環境でのみ使用され、技術者以外のユーザーによって必要に応じて頻繁に (おそらく 1 時間ごとまたはそれ以上の頻度で) 更新されます。

コンテンツ管理とアプリケーションの展開を混同すると、すぐに混乱してしまいます。誰かが誤って App_Code 構造体グループを非公開にしたと想像してみてください。編集者が構造グループ全体を再公開したが、コード ビハインドにいくつかの変更を加えている途中であることに気付かなかった場合はどうなりますか? bin 構造グループの dll がweb.config とまったく同時に公開され、そこに登録されている ascx コントロールが別の場所にあることをどのように確認しますか? 最良の場合、アプリケーションが機能しない可能性があります。最悪の場合、サイト全体でコンパイル エラーが発生します。

さまざまな ASP.NET/SDL Tridion サイトで見たり使用したりしたいくつかのガイドラインは次のとおりです。

  • 公開されたすべての aspx ページの共通のコード ビハインドとして、標準のベース ページ (または、おそらくページ テンプレートによって決定される限定されたベース ページのセット) を使用します - ここに一般的なロジックを入れます
  • 特定の機能については、これをコントロール (ascx または Web コントロール) にカプセル化し、このコードにロジックを入れます。
  • ベース ページ用の .cs、コントロール用のコード ビハインド、および bin ディレクトリ内のコンパイル済み dll 内のその他のロジックを用意します。App_Code は開発には最適ですが、これらすべての異なるファイルを管理するために展開の頭痛の種になる可能性があります。
于 2012-05-15T21:14:30.500 に答える
3

フランクは正確な答えを出しましたが、CMS から Web アプリケーションにコードを公開することは非常に悪い習慣だと思います。このアプローチを使用すると、CMS ユーザーがアプリケーションを段階的に更新できるため、アプリケーション全体をテストすることができなくなります。

すべてのコード ビハインドを Web アプリケーションに配置し、Visual Studio などのツールによって提供される一般的な Web アプリケーション展開プロセスを通じてそれらを展開し、Web アプリケーションに既に存在するコードへの参照を含む ASPX ファイルのみを公開することを強くお勧めします。 .

于 2012-05-15T15:42:00.247 に答える