首页 新闻 会员 周边

c#怎么将几个模块分离开来

0
悬赏园豆:5 [已解决问题] 解决于 2014-09-22 17:29

现在公司要求是这样的:正常情况下网站发布完成之后,如果再有修改的话,会重新发布一个包,把原来在IIS上发布的文件直接覆盖,所以这样就造成就算网站后台就算一点点很小的改动,都需要重新发布,然后完全覆盖IIS上的发布文件;现在公司的要求就是有什么方法实现模块分离,如果有改动的话只需要覆盖改动的部分就可以,而不需要覆盖整个IIS中的发布包,从而降低风险,避免失误造成其他模块出现问题。我没什么思路,想不出什么解决方案,有谁能指点一二么,给点思路,分不多,帮个忙,谢谢了!

雨逸凡尘的主页 雨逸凡尘 | 初学一级 | 园豆:7
提问于:2014-09-17 17:24
< >
分享
最佳答案
0

将一些模块抽象出来单独编译,也就是一个解决方案中有多个项目,每个项目完成一个很小的功能,分别编译后是N个DLL文件,并保证相互引用。这样的话如果某个模块需要更改的话只需要覆盖一个DLL就可以了,其他的不需要变化

收获园豆:5
飞鸟_Asuka | 菜鸟二级 |园豆:209 | 2014-09-17 19:33

一个解决方案多个网站项目的话,发布的时候直接发布主网站项目?如果其他的网站项目修改了怎么单独同步已发布的部分?把其他的网站项目编译成DLL?怎么弄?

雨逸凡尘 | 园豆:7 (初学一级) | 2014-09-18 09:30

@雨逸凡尘: 举个例子

比如说你的网站分为前端和后端,后端主要处理数据,前端负责显示。那么你的后端数据处理层就可以拿出来单独放在一个工程中单独编译。编译成的dll文件由前端工程引用。当你后端的数据处理模块修改而没有影响到前端时,只需编译后端模块的dll即可,发布时也仅需替换旧的dll。同样的,如果前端修改而没有影响到后端的话,那么也只需替换前端的项目即可

给你看幅图吧

这是我以前做过的一个项目,其中UserInterface, ResourceServer, AuthorizationServer, Data分别属于不同的项目,编写、编译都是分离的,在发布时发布到同一个服务器上,平时访问UserInterface项目中的页面,而数据处理部分由另外三个项目完成。如果某一天需要对AuthorizationServer的功能修改,那么只发布修改后的AuthorizationServer项目,另外三个不需要修改

不知道我说明白了没有

飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2014-09-18 11:26

@飞鸟_Asuka: 这个我知道什么意思,可能你没懂我的意思,我就是要拆分前端的部分,打个比方:我做个像博客园网站,有博客、博问、新闻、收藏的这么几个大的功能模块,现在公司的要求就是把这几个大的功能模块分开,都能单独直接编译,发布后再修改的话,修改其中一个模块,只需要更换那一个模块的部分,而不用牵扯其他几个模块。这是前端拆分。而且也不知道模块之间的资源怎么共享(就是登陆信息)。

雨逸凡尘 | 园豆:7 (初学一级) | 2014-09-18 14:21

@雨逸凡尘:   前端拆分也是一样的呀,模块之间的资源依靠Session、Cookie都可以实现共享的

飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2014-09-18 17:38

@飞鸟_Asuka: 这个怎么拆分,一个模块一个web项目?这不成了几个网站了,这样它的网站地址怎么共享,到时候从一个模块点到另一个模块的时候,地址栏的地址看着不就像是跳到另一个网站了?

雨逸凡尘 | 园豆:7 (初学一级) | 2014-09-19 09:36

@雨逸凡尘:  IIS中将各个模块的项目部署成同一网站下不同的虚拟目录

飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2014-09-19 09:59
其他回答(6)
0

组件化开发

Y2zz | 园豆:393 (菜鸟二级) | 2014-09-17 17:50
0

这个怕是没有办法,一个项目会被编译到一个DLL里,我们在分层开发的时候,会把不同的成放成不同的项目里,这样不同的项目会生成不同的DLL,有变化的时候更新这个DLL就可以,在是网站项目的代码是在一个项目下,生成的也是一个DLL文件,所以发布完了,也需要更新这个DLL,不过每次更新的时候可以把上个版本的DLL做好备份,当出现问题的时候进行还原。

如果是页面代码有变化,直接更新页面文件就可以,不需要完全替换。

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-09-17 17:51

页面文件我知道可以直接替换,但是现在就是后台代码的问题,我也知道,同一个项目编译发布之后都是整合到DLL文件里面的,所以我才想看有没有其他的方式实现

支持(0) 反对(0) 雨逸凡尘 | 园豆:7 (初学一级) | 2014-09-17 17:57

@雨逸凡尘: 拆分成多个网站吧,一个网站里放一块业务。

支持(0) 反对(0) Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-09-18 16:59
0

MVC插件式框架,实现方法有很多。,如果是asp.net的话肯定也有插件式框架实现方案,但是没弄过不知道具体实现方案

吴瑞祥 | 园豆:29449 (高人七级) | 2014-09-18 08:47
0

楼主需要读书,这事一时半会说不清楚。

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-09-18 10:30

→。→!!!给我思路,我去了解了解

支持(0) 反对(0) 雨逸凡尘 | 园豆:7 (初学一级) | 2014-09-18 10:46
0

开发的时候把逻辑、业务等层分开,每个部分单独作为一个项目,发布的时候会有单独的dll,以后更新的时候,改了那个层次,只需要更新哪个dll就行

最长的路漫漫 | 园豆:252 (菜鸟二级) | 2014-09-18 13:36
0

需要这样吗?如果改了后台直接传DLL,改了页面直接传单个的页面就可以了阿。为何要全部重新传????为神马?

大楚打码人 | 园豆:4313 (老鸟四级) | 2014-09-22 12:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册