Asp.net MVC 3 开发企业网站系统仿照博客园部分功能--总体设计

在使用Asp.net MVC3 开发企业网站系统的提议得到了广大园友的热情鼓励,也使我更加有信心和决心把这个简单的系统完成的希望。

前两篇索引:Asp.net MVC 3 开发一个简单的企业网站系统      Asp.net MVC 3 开发简单的企业系统开篇--数据库

麻雀虽小,五脏俱全。做一个小的企业网站我们也不能例外,上篇我们说了做这个网站应该具有的数据库设计阶段。按照工程理论来说,我们应该进行的就是总体设计了。

好吧,废话不多说,咱们一起来讨论一下这个简单网站的总体设计应该如何进行。

首先,我们确定具体的功能以及采用的实现接口。

1.登录、用户注册。说实话,在 企业网站中一般不需要用户的注册,但是因为我们仿照的是博客园,我们天天都会来的地方,所以也加上用户登录和注册功能。

当然,只要涉及到用户的功能,那么权限管理也应该是必需品了。

2.用户的权限管理组件。在MVC中处理这个相对Web form 要简单很多,可以在注册全局Filter特性来完成这个功能。

3.博客园左侧的分类列表显示

对于这个功能,当然我想首选肯定就是MVC中经典的PartialView。

4.博客园首页中间部分的博客列表功能。这个博客园采用的是Ajax方式进行的异步提交方式,当然这涉及到无刷新,提高用户体验的功能。我们也不能落后,采用的依然就是Ajax+Json的处理方式,当然分页是一个问题。需要采用分页组件,我能想到的就是MVCPager,不知道园友们有没有其他组件或者更有效的分页方法。

5.博客详细内容页面。这个应当是所有要实现的内容中最简单的一个,至少我个人是这么觉得。不要鄙视我奥

6.博客评论页面。采用KindEditor在线编辑器,使用户进行评论。我起初的设想是把这个评论显示页面也做成PaitialView的形式,也是采用Ajax进行提交。但是这样做,我心理总是感觉怪怪的,但是也找不到更好的办法,如果各位园友有什么好办法,请您务必告诉我,让我的大脑也见识一下。

7.搜索功能。类似于博客园的找找看功能,这个当然就是用到我前面所列举的框架中的伟大的Lucene的移植版本—Lucene.net。吐槽一下,为了更好、更有效率的实现搜索,我把博客园中关于Lucene.net的文章基本看了一遍,但是我发现所用版本都是2.3,而现在最新版已经是3.0了,所以我果断的从官网下载了最新版,我准备把3.0版研究一下,但是没有对应的文档,如果各位有什么好的全面的资料。请告诉我。

还有就是当然采用Lucene.net 3.0是必须的,但是中文分词,采用的是大牛的盘古(很霸气的名字)分词2.3版。

当然还有一个不得不提,就是程序自动化。Quartz的移植版本Quartz.net到来了,我们会使用它定时的使用Lucene.net建立索引,毕竟机器比人准时很多。

8.说了前台了,还有很重要的后台管理,前后台搭配,干活也不累。后台采用的就是easyui,当然还有很多其他的基于jquery的框架,我脑袋笨,只能采用easy的了。

9.性能优化。我常听我老大说,做一个网站很简单,网上一找一大堆,但是真正达到需求的不多。其中,性能就是一个因素。性能优化,硬件上固然重要,但是在软件上下功夫更节省。

各种免费的性能优化的工具当然我们要采用了,缓存就是首选,Memcached就是我的选择,你问我为什么不用自带缓存而用Memcached?我只能说是我在公司就用这个,而且这个扩展性高,自带的缓存功能弱,扩展性差,不灵活。

10.说完了性能,当然人无完人,程序也会出错。现在就是日志出马的时候了。再来一个就是Log4的移植版本Log4Net了,可以记录日志到文本、数据库等存储介质中。

11.可能大家要说了,怎么没看见曾经提到过的其他框架了,是不是因为不会而不敢使用了!其实真有这个可能,但是我是一个顽强的不倒翁,自夸呵呵。Ioc(依赖注入)、Nhibernate(Entity framework)还有Npoi.net都不属于要实现的功能范围内,这些只是减少我们维护代码的时间,减少出错的几率。但是他们更复杂,更值得我们研究学习,至少我这么觉得。

Npoi.net就是一个对Excel进行操作的组件,可以对Excel进行360度的操作,只有想不到,没有做不到。使用他就是为了导入数据需要。毕竟新建的系统中数据是空的,导入一些看着也舒服。

好了,本来要说总体设计的,没想到扯来扯去竟然说了那么多废话,唉,离高手还有很远啊!

道路仍然很远,同志们仍须努力~~~~

不写了,打了那么多字,累死了,看会电视先

我又回来了,回到了技术最前线,
上一篇:ios开发证书CSR文件、CER文件、P12文件,mobileprovition许可文件的用途


下一篇:OB有问必答 | OceanBase的一致性协议为什么选择 Paxos 而不是 Raft?