亲爱的朋友,您好!欢迎您光临百特教育网! 设为首页 | 收藏本站 | 联系我们

喜讯:我校弱电工程师、5A智能楼宇工程师、网络安全工程师精品短训班现已开始热招,欢迎广大有志者前来参观学习!

  您当前的位置在:网站首页--网站架构

ASP.NET多频道网站架构实现方法

2009-7-23 17:33:50
 

主体架构

 

  各频道分别位于不同的Web Project(具有独立的二级域名),并将所有的业务逻辑以及数据访问功能封装成Class Library,所有频道共用这个Class Library。

  下面详细介绍实现方法。

  假设网站有三个频道,新闻、论坛以及博客,对应的二级域名为"news"、"forum"、"blog"。除此之外,还需要另外定义两个域名,分别用于网站首页以及用户注册、登陆功能(基于Passport机制,本文后面将作详细介绍),对应域名为"homepage"、"passport"。

  1.配置各频道URL

  a.配置hosts文件

  用文本编辑器打开hosts文件(位于c:\windows或winnt\system32\drivers\etc\),该文件中存放初始的域名解析信息。当我们在浏览器中请求某个URL时,系统首先在hosts文件中查找相应域名,如果找到则跳转至指定IP,如果没找到,则进一步提交DNS进行域名解析。

  配置很简单,格式形如"[IP][空格][域名]",每条数据对应一行。下面为配置内容:

  192.168.1.2 www.mysite.com

  192.168.1.2 passport.mysite.com

  192.168.1.3 news.mysite.com

  192.168.1.5 forum.mysite.com

  192.168.1.9 blog.mysite.com

  你可能已经注意到了,各频道对应于不同的IP,这正是该架构的开发灵活性所在。各频道(Web Project)可以创建于不同的开发者电脑。通过将配置内容同步到各台电脑,可以方便的在各频道间进行页面浏览,就像这些频道位于你自己的电脑一样!采用这种方式可以极大降低开发耦合性,每个频道都是一个独立的模块,一个频道中的Bug不会影响到另一个频道。

  b.配置Web.Config

  考虑到各频道二级域名有可能进行调整,将相应配置信息存放于Web.Config文件是一个好办法。同样的,该配置信息必须同步到各Web Project。下面为配置内容:

<add key="SiteDomainName" value="mysite.com"/>
<add key="HomepageSiteURL" value="http://www.mysite.com/homepage/"/>
<add key="PassportSiteURL" value="http://passport.mysite.com/passport/"/>
<add key="NewsSiteURL" value="http://news.mysite.com/news/"/>
<add key="ForumSiteURL" value="http://forum.mysite.com/forum/"/>
<add key="BlogSiteURL" value="http://blog.mysite.com/blog/"/>
<add key="LocalSiteURL" value="/blog/"/>

  各配置项说明如下

  SiteDomainName:站点域名,形如"mysite.com"、"mysite.com.cn"、"mysite.net"等。该配置项的使用方法将在后文介绍。

  LocalSiteURL:当前频道根路径,也就是Web Project所在网站或虚拟目录的路径,以"/"开头。该配置项主要用于频道内部的引用,比如图片引用、页面链接等。

  其余配置项:用于频道间的引用,比如频道导航、功能调用等。

  2.创建Model部件

  在MVC模式组成中,Model部件包括所有的业务逻辑操作,其中也包含数据访问操作。

  本方案将Model部件拆分成对象实体、对象操作以及数据访问三部分,封装成三个Class Library。

  由于Class Library设计本身就是一个很大的话题,本文就不再祥述了,有兴趣的话可以参考一些相关资料。

  经验分享

  上述的Model部件拆分方式适用于业务功能比较复杂的大型项目,要求团队内部有着明确、细化的分工合作。但如?????? ?o㧟?果面对的是中小型项目,该方式很有可能成为开发效率的瓶颈。这主要是由项目特点决定的,中小型项目业务功能相比大型项目没有那么复杂,开发人员数量也比较有限,往往一个人要负责整个模块的开发。在这种情况下,架构层次过于繁多,每次修改一个层时,其他相关层也得跟着同步修改,这样反而影响了开发效率。

  3.实现Passport机制

  很多网站都采用Session来存放个人信息,比如登录信息,并以次作为用户登录与否的判断依据。但Session有一个缺陷,就是无法在多个Web应用中共享,一个Web应用生成的Session只能由他自己使用。哪种方法可以在多个Web应用中实现数据共享呢?答案是Cookie。Cookie将信息存放于客户端, 并在需要时发送回服务器端。

  Passport,即通行证,是目前普遍采用的一种用户身份认证机制,简单来说就是一次登录,全站通行。这也正是我们的要求。

  这里讨论的通行证机制基于Cookie,实现也比较方便。其中的关键点是Cookie的Domain属性设置,Domain属性表示Cookie信息回发的目标域,也就是接收Cookie的域,接收Cookie的域必须与发送Cookie的域一致,否则无效。比如:发送域为"blog.mysite.com",则接收域可以设为"blog.mysite.com"或"mysite.com",而"news.mysite.com"和"blog.yoursite.com"为无效接收域。要想让所有频道都能接收到Cookie,必须将Domain属性设置为不带二级域名前缀的形式,如"mysite.com"、"mysite.com.cn"、"mysite.net"等。

  登录成功后向客户端发送相应Cookie,其中可以包括一些全局信息,比如用户编号、用户名等。用户退出时删除相应Cookie,特别要注意的是,删除Cookie时也要设置正确的Domain属性。

  关于该Passport机制,还有两个问题值得讨论:

  a.Cookie的过期时间

  有两种方案可以采用,一种是默认方式,即不设置Cookie的Expires属性,采用这种方案时,Cookie存放于内存中,在浏览器关闭前Cookie将一直存在,也就是一直处于登录状态。这种方式主要用于对信息安全要求不是很高的网站,比如娱乐休闲类网站;另一种是指定明确的过期时间,一般情况下会将用户最后一次访问网站的时间加上一个超时时间段作为过期时间,有点类似于asp中的session超时机制,这种方式主要用于对安全性要求比较高的网站,比如网上银行、电子邮箱等。

  b.Cookie的信息安全

  由于Cookie是以明文方式传递数据,不可避免的存在安全隐患,因此对重要数据的加密是非常有必要的。加密可以采用可逆算法,比如DES。

  4.创建Web Project

  前文已提过,Web Project的创建比较灵活,既可以创建于不同的开发者电脑,也可以创建于同一台电脑。这主要取决于开发团队规模。

  5.部署

  分别部署各频道,设置二级域名,将Web.Config中的相关配置改为生产环境的实际数据。

  其中比较繁复的工作就是各频道中相同部分的部署,比如说网站头部(Logo、导航栏等),网站底部(版权声明、联系方式等),图片,CSS,JavaScript等。当然也可以把这些公用资源单独部署于一个频道中,以供其他频道调用,但这样做就破坏了各频道松耦合的特性,如果用于存放公用资源的频道出了问题,那其余频道也将无法正常使用。

上一篇各大型网站架构分析收集

下一篇门户网站架构

· 大学毕业生被人冒名顶替挤掉工作
· 北京上半年查处42名县处级以上干部
· 香港出现第二宗涉及甲型流感死亡个案
· 女子闯入马英九办公室半小时未被发现
· 教育部称高校出现被就业现象属极个别情况
· 各大型网站架构分析收集
· 中石化原董事长陈同海被判死缓放弃上诉
· ASP.NET多频道网站架构实现方法
· 网站架构之底层页面的架构
· 门户网站架构
· 理解REST软件架构
· 设计高性能网站架构
· 美国老太因女儿欲自杀报警 母女均被警察击...
· 浅析大型网站的架构
· 贵州矿工被困25天获救奇迹:靠人力挖通生命...
· 大型互联网网站架构心得之一
· 上海闵行区房管局称倒楼事件部分报道不实
· 网站架构方向

友情链接

智联招聘   中国华为   思科中国   中华英才网   微软中国   前程无忧   中国安全网   中国千家网   中国安防网   智能建筑资讯网   中国人事部653工程   中国人才网   信息化人才交流中心   中国建设部   中国信产部   武汉职业技术学院  

copyright 百特教育,all rights reserved
首页 学校简介 特色教学 学历教育 证书介绍 课程简介 荣誉资质 就业广场 报名咨询 招贤纳士 联系我们
5A智能楼宇工程师培训 工程设计管理 网络安全工程师培训 网站架构 弱电工程师培训 NCEE电气智能工程师 安防消防工程师培训 5A工程师
学校地址:湖北省武汉市武昌洪山区关山一路武汉职业技术学院 学校邮箱:bt_wh@163.com 办公室电话: 027-87767870/87767872
  鄂ICP备08004255号

在线客服
在线客服系统
在线客服
在线客服系统