我可以从Tridion发布ASPX页面及其代码隐藏文件吗?

时间:2012-05-15 14:48:05

标签: tridion tridion-2011

我开发了一个ASP.NET聊天应用程序。现在我想要与我的Tridion页面进行一些集成。为此,我需要为发布的页面提供一些代码隐藏文件。还有一个问题是我想在我的页面中添加一个带有click事件的按钮。我怎样才能做到这一点? 我做了什么:

<%@ 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>

This my .net appliction files

这是我要在Tridion中迁移的ASP.NET Web应用程序。请帮忙

3 个答案:

答案 0 :(得分:6)

因此,此应用程序中的每个页面都有两个文件:

  1. 包含标记的ASPX文件
  2. 包含代码的CS文件
  3. 由于Tridion发布基于每页一个文件,您可以通过为它们创建两个单独的页面来从Tridion发布这两个文件。或者,您可以选择从Tridion发布ASPX,并在将Web应用程序部署到IIS时部署CS文件。

    我建议将ASPX内容放入Tridion中的DWT模板构建块,然后将其作为复合页面模板中唯一的Building Block。

    如果您决定也从Tridion发布代码隐藏的CS文件,请为其创建一个单独的DWT,将代码粘贴到那里并为其创建单独的复合页面模板。


    关于PageLoad事件的第二个问题:在这种情况下,Tridion将只发布您放入其中的文件。它与您放在这些文件中的ASP.NET代码无关。如果ASP.NET页面加载事件在Tridion之外工作,那么当您从Tridion发布相同的文件时它将起作用。

答案 1 :(得分:3)

Frank已经做出了准确的答案,但我认为将任何代码从CMS发布到Web应用程序是一种非常糟糕的做法。使用该方法使得无法测试整个应用程序,因为CMS用户可以逐步更新应用程序。

我强烈建议将所有代码置于Web应用程序中,并通过Visual Studio等工具提供的典型Web应用程序部署过程进行部署,并仅发布引用已存在的代码的ASPX文件。你的网络应用程序。

答案 2 :(得分:3)

我同意Chris的看法,因为它可以发布SDL Tridion CMS中的任何内容(包括dll,.config文件,未编译的代码等等)并不意味着你应该这样做。

应用程序逻辑(或代码)的生命周期与内容生命周期非常不同。通常,在技术用户通过单个操作部署生产之前,需要在开发,测试,验收环境中仔细部署,测试,修复和重新部署代码更改。根据您的组织,您可能需要每月或更短/更长的开发和部署周期。

另一方面,您的真实内容通常仅在生产环境中生效,并且非技术用户会根据需要(可能每小时甚至更频繁)更新。

如果您将内容管理与应用程序部署混淆,您很快就会陷入困境。想象一下有人意外取消发布App_Code结构组?如果一个编辑器重新发布整个结构组但是没有意识到你对代码进行了一些修改,那该怎么办?你是如何确保bin结构组中的dll与完全同时发布的web.config和ascx控件在其他地方注册的?最好的情况是您的应用程序可能无法正常工作,最糟糕的情况是整个站点都会出现编译错误。

我在各种ASP.NET / SDDL Tridion站点上看到和使用的一些指导原则如下:

  • 使用标准基页(或有限的基页集,可能由页面模板确定)作为所有已发布的aspx页面的公共代码 - 将通用逻辑放在此处
  • 对于任何特定功能,将其封装在控件(ascx或web控件)中并将逻辑放入此代码中
  • 基本页面有.cs,bin目录中已编译的dll中的控件和其他逻辑代码 - App_Code非常适合开发,但可以创建部署难题,管理所有这些不同的文件