没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2007-08-16 13:49:42.000|阅读 982 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
各频道分别位于不同的 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 部件拆分方式适用于业务功能比较复杂的大型项目,要求团队内部有着明确、细化的分工合作。但如果面对的是中小型项目,该方式很有可能成为开发效率的瓶颈。这主要是由项目特点决定的,中小型项目业务功能相比大型项目没有那么复杂,开发人员数量也比较有限,往往一个人要负责整个模块的开发。在这种情况下,架构层次过于繁多,每次修改一个层时,其他相关层也得跟着同步修改,这样反而影响了开发效率。
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 等。当然也可以把这些公用资源单独部署于一个频道中,以供其他频道调用,但这样做就破坏了各频道松耦合的特性,如果用于存放公用资源的频道出了问题,那其余频道也将无法正常使用。
结束
本文讨论了 asp.net 中多频道网站架构的一种实现方法,由于涉及到的内容较多,无法一一展开,但对其中的重点部分还是多加了点笔墨,希望对你有用。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:网页教学网面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号