经过多翻努力,终于设计出了一个抽象数据库,以及一套基于该数据库的Web网站框架

ilovesijia 2008-09-25 12:40:36
下载地址:
http://www.netfocus.cn/downloaddetail10387.html

简要说明:
学习了著名开源社区CommunityServer(CS)的抽象数据库的设计,自己独立思考,站在哲学的角度上思考问题,并进一步抽象,最终设计出了一套非常抽象的通用数据库以及通用数据访问层。
主要有以下优点:
1)通过两个抽象表存放任何数据实体以及实体之间的关系;
2)通过两种扩展字段设计方式实现任何数据实体的字段扩展需要,并且扩展的字段支持数据库级别的排序搜索功能;扩展字段的添加和一般字段没有什么大的区别,仅仅只是添加了一个特性而已。
3)由于将实体与实体之间的关系进行高度抽象(最终抽象为横向和父子递归两种关系),导致数据库访问层的接口的通用型非常广泛,可以适应任何实体之间的关系。这样的设计用一般的言语无法表达;也许你看了代码之后会有所体会;
4)吸取了CS中的很多好的设计,如Provider模式,动态构建SQL实现自定义查询,缓存,多语言资源文件设计,自定义Url重写,Ajax功能,etc.
5)目前该框架还在不断完善优化中。。
...全文
425 62 打赏 收藏 转发到动态 举报
写回复
用AI写文章
62 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilovesijia 2008-10-03
  • 打赏
  • 举报
回复
晚上写一篇文章,好好介绍一下我的东西的设计思路,呵呵。
mengxj85 2008-10-01
  • 打赏
  • 举报
回复
学习
shadowjl 2008-10-01
  • 打赏
  • 举报
回复
学习
greatverve 2008-10-01
  • 打赏
  • 举报
回复
关注,需要学习的还很多.
jcrjia 2008-10-01
  • 打赏
  • 举报
回复
up
ilovesijia 2008-10-01
  • 打赏
  • 举报
回复
由于原先的设计有很大性能问题,经过几天努力,终于在性能方面提高了很多。
另外,相对于之前的版本Demo的功能以及框架本身的设计方面都有了很大的改善,欢迎大家来下载使用。
skyblackhole 2008-09-25
  • 打赏
  • 举报
回复
嗯,很好!
LQknife 2008-09-25
  • 打赏
  • 举报
回复
站在哲学的角度上
这句 。。顶
adodotnet 2008-09-25
  • 打赏
  • 举报
回复
厉害厉害。这样的才叫高手啊!
much0726 2008-09-25
  • 打赏
  • 举报
回复
听课
paulin 2008-09-25
  • 打赏
  • 举报
回复
多谢分享~~
sh_suyuelin 2008-09-25
  • 打赏
  • 举报
回复

好好学习.天天向上
mjjzg 2008-09-25
  • 打赏
  • 举报
回复
学习一下
likevs 2008-09-25
  • 打赏
  • 举报
回复
羡慕中
wuyi8808 2008-09-25
  • 打赏
  • 举报
回复
up
ilovesijia 2008-09-25
  • 打赏
  • 举报
回复
下载地址中包括源代码及Demo,运行步骤见readme.txt
Jack_xiao 2008-09-25
  • 打赏
  • 举报
回复

ilovesijia 2008-09-25
  • 打赏
  • 举报
回复
是的,现在的我确实没有多大的怀疑自己的代码有什么大问题,但是对于性能问题,如何提高性能,以及如何处理异常,我还是会花大力气去探索的.功能方面我应该不会去花大力气研究是否正确,我希望可以在我以后的项目中不断实践不断发现Bug,不断完善提高.
mike1lainet 2008-09-25
  • 打赏
  • 举报
回复
长知识了!都是牛人
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 ilovesijia 的回复:]
谢谢你的提醒,关于性能问题和测试用例,我以后会做的.你说的没错,一个好的东西,必须要经过严格性能测试,证明具有良好的性能和稳定性之后才可以真正投入使用.对于性能,我首先会考虑如何为数据库建立索引,然后针对所有的存储过程编写测试用例进行功能以及性能测试.在代码方面我目前可以想到的是通过合理使用缓存机制提高搜索速度.由于本人技术有限,不能一下子从很多方面考虑道,大家有什么好的意见或建议欢迎提出来,我一定会考虑采纳.前面我也已经说过,目前该框架正在不断完善中..[/Quote]

呵呵,你可以事后才补充测试,也可以事前就开始测试,从前一种变为后一种开放方法其实对探索性的项目的开发至关重要的。我很熟悉vs上的 Ctrl+K+M 快捷功能——自动生成方法存根。当我不过度技术化的时候(而是紧贴目标去开发的时候),我会先设计接口,然后就开始写测试程序,测试程序中自然要new被测试对象,写好代码后我都习惯了“F5”,此时肯定编译通不过,因为这个被测试对象根本没有实现,这就是我开发的启动动作。

如果事后再做测试,你几乎无法真正做全面的功能测试,只能做几个简单的测试了事。很难有人会愿意在写完全部实现代码之后才去怀疑自己的代码的。只有TDD观念才能最好地保证产品质量。
加载更多回复(42)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧