|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^)各频道分离位于分歧的WebProject(具有自力的二级域名),并将一切的营业逻辑和数据会见功效封装成ClassLibrary,一切频道共用这个ClassLibrary。
上面具体先容完成办法。
假定网站有三个频道,旧事、论坛和博客,对应的二级域名为"news"、"forum"、"blog"。除此以外,还必要别的界说两个域名,分离用于网站首页和用户注册、上岸功效(基于Passport机制,本文前面将作具体先容),对应域名为"homepage"、"passport"。
1、设置各频道URL
a、设置hosts文件
用文本编纂器翻开hosts文件(位于c:windows或winntsystem32driversetc),该文件中寄存初始的域名剖析信息。当我们在扫瞄器中哀求某个URL时,体系起首在hosts文件中查找响应域名,假如找到则跳转至指定IP,假如没找到,则进一步提交DNS举行域名剖析。
设置很复杂,格局形如"[IP][空格][域名]",每条数据对应一行。上面为设置内容:
192.168.1.2www.mysite.com
192.168.1.2passport.mysite.com
192.168.1.3news.mysite.com
192.168.1.5forum.mysite.com
192.168.1.9blog.mysite.com
你大概已注重到了,各频道对应于分歧的IP,这恰是该架构的开辟天真性地点。各频道(WebProject)能够创立于分歧的开辟者电脑。经由过程将设置内容同步到各台电脑,能够便利的在各频道间举行页面扫瞄,就像这些频道位于你本人的电脑一样!接纳这类体例能够极年夜下降开辟耦合性,每一个频道都是一个自力的模块,一个频道中的Bug不会影响到另外一个频道。
b、设置Web.Config
思索到各频道二级域名有大概举行调剂,将响应设置信息寄存于Web.Config文件是一个好举措。一样的,该设置信息必需同步到各WebProject。上面为设置内容:
<addkey="SiteDomainName"value="mysite.com"/>
<addkey="HomepageSiteURL"value="http://www.mysite.com/homepage/"/>
<addkey="PassportSiteURL"value="http://passport.mysite.com/passport/"/>
<addkey="NewsSiteURL"value="http://news.mysite.com/news/"/>
<addkey="ForumSiteURL"value="http://forum.mysite.com/forum/"/>
<addkey="BlogSiteURL"value="http://blog.mysite.com/blog/"/>
<addkey="LocalSiteURL"value="/blog/"/>
各设置项申明以下
SiteDomainName:站点域名,形如"mysite.com"、"mysite.com.cn"、"mysite.net"等。该设置项的利用办法将在后文先容。
LocalSiteURL:以后频道根路径,也就是WebProject地点网站或假造目次的路径,以"/"开首。该设置项次要用于频道外部的援用,好比图片援用、页面链接等。
其他设置项:用于频道间的援用,好比频道导航、功效挪用等。
2、创立Model部件
在MVC形式构成中,Model部件包含一切的营业逻辑操纵,个中也包括数据会见操纵。
本计划将Model部件拆分红工具实体、工具操纵和数据会见三部分,封装成三个ClassLibrary。
因为ClassLibrary计划自己就是一个很年夜的话题,本文就不再祥述了,有乐趣的话能够参考一些相干材料。
履历分享:
上述的Model部件拆分体例合用于营业功效对照庞大的年夜型项目,请求团队外部有着明白、细化的合作互助。但如???????oc?果面临的是中小型项目,该体例很有大概成为开辟效力的瓶颈。这次要是由项目特性决意的,中小型项目营业功效比拟年夜型项目没有那末庞大,开辟职员数目也对照无限,常常一团体要卖力全部模块的开辟。在这类情形下,架构条理过于单一,每次修正一个层时,其他相干层也得随着同步修正,如许反而影响了开辟效力。
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、创立WebProject
前文已提过,WebProject的创立对照天真,既能够创立于分歧的开辟者电脑,也能够创立于统一台电脑。这次要取决于开辟团队范围。
5、部署
分离部署各频道,设置二级域名,将Web.Config中的相干设置改成临盆情况的实践数据。
个中对照繁复的事情就是各频道中不异部分的部署,好比说网站头部(Logo、导航栏等),网站底部(版权声明、接洽体例等),图片,CSS,JavaScript等。固然也能够把这些公用资本独自部署于一个频道中,以供其他频道挪用,但如许做就损坏了各频道松耦合的特征,假如用于寄存公用资本的频道出了成绩,那其他频道也将没法一般利用。
停止
本文会商了asp.net中多频道网站架构的一种完成办法,因为触及到的内容较多,没法逐一睁开,但对个中的重点部分仍是多加了点文字,但愿对你有效。
来吧!老师们!我代表千千万万的asp.net/C#的初学者在这里呼唤着! |
|