“开发中不变的只有变化!”
网站随着运营的需要从C2C改版成为B2C+新闻门户,不可避免的网站程序要重构了!程序用的是ASP.NET MVC开发的,原有网站目录结构是按照默认项目结构开发的,目录结构如图:
现在项目需要将原有网站保留,同时增加了个新的B2C的网上商城系统,如果还和原有的系统混合在一个Controllers目录下,会让维护和开发更加混乱,现有系统又需要进行重构,因此决定首先进行项目结构的重构,目的只有一个让开发更加清晰,根据需求分成两部分,也就是两个项目进行重构和开发,于是将默认的Controllers抽离出站点,独立创建了个类库,并增加了目录News将原有的的Controller移动到这里便于日后的新闻资讯功能的开发和重构,Models也移动到独立的类库中,然后依次是Components、Filters,修改后的项目结构如下:
然后将NewTang.Controllers进行细分为两个目录:News和Store分别将资讯和商城的Controller保存在各自的目录下
后来发现有还是结构不太清晰,于是又将Controllers拆分成两个独立的类库Controllers.News和Controllers.Store,分别进行资讯和商城的业务开发,同时保留Controllers因为里面保存着封装通用操作的BaseController的类;同时将Models也拆分成了Entity类库和保留原有的Models用于编写业务逻辑。最终的项目结构如下:
好了,基本上结构清晰了,不过还是需要注意的就是避免出现类似的问题还是需要避免项目匆匆上马,会为后续的修改增加很大的麻烦,过去更新程序,只改动了Models,结果就要重新编译整个项目,来更新,很费时,现在只需要生成Models,然后更新对应的dll就行了,职责也清晰多了。
下一步要进行的就是业务逻辑剥离出Controller,实现真正的MVC