利用asp.net 2.0构建企业级门户平台(1、设计思想)

介绍ECubePortal门户平台的设计理念和技术实现,包括URL重写技术的应用,通过.NET WebPart实现页面组装,以及如何创建一个支持自定义内容的简单公司网站。

该门户平台暂定名为:ECubePortal
ECubePortal是什么?
ECubePortal是一个类似于CommunityServer和DotNetNuke的企业级的门户平台,实际上它更像SharePoint(功能没有SPS复杂,但比它灵活)。它相比CS和DNN有两个最大的特点:
1、URL更友好
    CS和DNN里采用这样的Url链接,  www.xxx.com/default.aspx?tabindex=1;www.xxx.com/default.aspx?tabindex=2;
    在该平台中是这样   www.xxx.com/product/; www.xxx.com/service/
2、该平台中的模块采用的是 webpart,是由.net 2.0直接支持的,不像CS和DNN采用自己的标准。
其它的如 主题、皮肤、安全管理等都是建立在.net 2.0基础上,比CS和DNN要灵活方便。

一、设计思想
先让我们假设一种简单的公司网站需求:
有一家叫ECube的公司,想实现一个较简单的公司网站,首先要包含公司简介、产品简介、服务与支持、联系我们四个大栏目,
该公司要求,他们自己能够在线定制每个页面的内容,而且还表示如果有可能还要新加栏目(如 在线招聘),而且也希望他们自己能够在线完成。
通常我们是如下实现的:
先不考虑公司定制的要求,我们新建一个Web项目,然后添加4个页面:
default.aspx  //公司简介页面
product.aspx //产品页面
service.aspx //服务支持页面
Contac.aspx //联系我们 页面。

然后再填充每个页面的内容,页面间的链接,一个简单的公司网站就完成了。
如果考虑客户的深层次需求,事情可能就不是这么简单了,因此就有了CS、DNN。
CS、DNN给我们解决类似问题提供了很好的思路。
CS中,把网站的主栏目、子栏目都集中存储起来,然后用类似的url 去检索 default.aspx?tabid=1;
他们都实现了自定义的HttpModule,由HttpModule来截获用户的请求,然后再组装成一个页面。

我的方案也是这个思路,但组装页面部分交给.net webpart 去实现。
关于主题、皮肤、安全管理等利用.net 2.0的内部机制。

下一步,就让我们先实现一个简单的网站,以展示UrlRewrite的神奇效果。


参考文档:http://erpcrm.cnblogs.com/articles/234246.html  

 

页面调度采用了UrlRewrite技术,关于该技术的资料可以参考我转发的一篇文章:http://erpcrm.cnblogs.com/articles/232924.html

首先,让我们新建一个网站(我使用的是 VWD 2005 Express BETA2)。
1、添加一个default.aspx ,
该窗体不需要做什么工作,它的存在只有一个意义,就是告诉IIS 把类似的请求(www.xxx.com/)转过来,否则的话,ASP.NET是截获不到这种请求的。
2、我们在哪截获用户的请求呢?
当然是Global.asax了(当然了,你可以把代码放到Global.asax.cs中,或者自己实现IHttpModuler来达到类似的效果)。
代码如下:

Global.asax.cs文件:

;Global.asax文件,只有一行,可以看出具体的代码文件都在Global.asax.cs里面
<% @ Application Language = " C# "  CodeBehind = " Global.asax.cs "  Inherits = " Global "   %>

 

using  System;
using  System.Data;
using  System.Configuration;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;


public   class  Global : System.Web.HttpApplication
{
        
protected void Application_BeginRequest(Object sender, EventArgs e)
     
{
       
              String appPath 
= Request.AppRelativeCurrentExecutionFilePath;

              
if (appPath.StartsWith("~/Admin/"truenull))
        
{
            
return;
        }

        
if (appPath.Equals("~/WebResource.axd", StringComparison.OrdinalIgnoreCase))
        
{
            
return;
        }

        
if (appPath.StartsWith("~/ApplicationTemplate/", StringComparison.OrdinalIgnoreCase))
      
{
            
return;
        }

               
            
this.Context.RewritePath("~/ApplicationTemplate/DefaultTemplate.aspx");                 

      }
  

 }

从以上的代码可以看出:
除那三个特殊的路径外,其它的请求全部重写到"~/ApplicationTemplate/DefaultTemplate.aspx",
那么
 DefaultTemplate.aspx 包含什么呢?      
让我们新建一个文件夹 ApplicationTemplate 在该文件夹下新建一个web窗体 DefaultTemplate.aspx。
只 是为了演示UrlRewrite,DefaultTemplate.aspx中你可以输入一些简单的内容,如:“这是一个默认的模版”;
这样当我们请求“/default.aspx”时,呈现在我们面前的页面是DefaultTemplate.aspx的内容。
不信?你先动手试试吧!

3、如果我们想 把 / 重写到 ApplicatonTemplate/defaultTemplate.aspx,而把 /product/ 重写到ApplicationTemplate/ProductTemplate.aspx,怎么做呢?

首先我们在ApplicationTemplate文件夹下,添加一个ProductTemplate.aspx。
我们可能会想到在 Global.asax.cs 的 Application_BeginReque方法里再添加一个对路径的判断,显然这是不灵活的。
怎么更灵活呢?就让我们来设计一个页面调度引擎吧!
在这里,我们叫他 ApplicationManager。
添加一个类文件 ApplicationManager.cs ,   VWD提示我们要把它放到 App_Code目录下,就按它说的办吧!

该类有个方法叫  String  GetNewPath(String  oldPath);
我们要这个方法输入“/ default.aspx”返回 “~/ApplicationTemplate/DefaultTemplate.aspx”,
输入"/product/" 返回 “~/ApplicationTemplate/ProductTemplate.aspx” 
如果输入的是“/Admin”,还应该返回“/Admin”。

我们假定GetNewPath()方法有这个功能,那么让我们改造一下 :Applicaton_BeginReques;

  protected   void  Application_BeginRequest(Object sender, EventArgs e)
    
{
       
        String appPath 
= Request.AppRelativeCurrentExecutionFilePath;
   String newPath 
= ApplicationManager.GetNewPath(appPath) 
        
if(newPath != appPath)
{
 
this.Context.RewritePath(newPath);
}
              

    }


今天先到这,我的下一篇文章会把源码提供出来,也许会和本文中的不太一致,但意思不会差。

内容概要:本文为《科技类企业品牌传播白皮书》,系统阐述了新闻媒体发稿、自媒体博主种草与短视频矩阵覆盖三大核心传播策略,并结合“传声港”平台的AI工具与资源整合能力,提出适配科技企业的品牌传播解决方案。文章深入分析科技企业传播的特殊性,包括受众圈层化、技术复杂性与传播通俗性的矛盾、产品生命周期影响及2024-2025年传播新趋势,强调从“技术输出”向“价值引领”的战略升级。针对三种传播方式,分别从适用场景、操作流程、效果评估、成本效益、风险防控等方面提供详尽指南,并通过平台AI能力实现资源智能匹配、内容精准投放与全链路效果追踪,最终构建“信任—种草—曝光”三位一体的传播闭环。; 适合人群:科技类企业品牌与市场负责人、公关传播从业者、数字营销管理者及初创科技公司创始人;具备一定品牌传播基础,关注效果可量化与AI工具赋能的专业人士。; 使用场景及目标:①制定科技产品全生命周期的品牌传播策略;②优化媒体发稿、KOL合作与短视频运营的资源配置与ROI;③借助AI平台实现传播内容的精准触达、效果监测与风险控制;④提升品牌在技术可信度、用户信任与市场影响力方面的综合竞争力。; 阅读建议:建议结合传声港平台的实际工具模块(如AI选媒、达人匹配、数据驾驶舱)进行对照阅读,重点关注各阶段的标准化流程与数据指标基准,将理论策略与平台实操深度融合,推动品牌传播从经验驱动转向数据与工具双驱动。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值