• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > Community Server专题一:概述Community Server

Community Server专题一:概述Community Server

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了community server,community音箱,community,community音响官网,community是什么意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Community Server专题一:概述Community Server

Community Server(CS)是一个非常优秀的Asp.net开源软件,目前官方发布的系统中包括三个部分:Asp.net Forums、DotText、Gallery。如果你是某个以CS构架网站的会员,你可以很容易的就拥有一个Blog、一个相册、还能在论坛上与他人一起进行讨论,这样就形成一个以User为中心的社区,这也就是起名为 Community Server的意义所在了。

CS的构架很巧妙,三套原本不同的开源软件在Telligent Systems的努力下结合在了一起,统一进行用户管理与权限设置(Menbership)、统一进行异常处理、统一进行本地化资源管理(多语言实现)等等。虽然这不能完整地看成是Portal实现,但是从代码角度看已经非常模块化了,可以快速的进行扩展同时又能获得很好的性能。实现这些主要依靠工程中的两个项目: CommunityServerComponents与CommunityServerControls。

CommunityServerComponents 中包含一些全局业务逻辑类,如:Globals、Context等、一些接口和用来继承的父类,如:Group、Section、Thread、Post 等、还有就是实现Membership的实体类。异常处理与Url Rewrite是通过继承IHttpModule接口实现的,当然要实现 IHttpModule的继承就一定要进行配置,该项目中通过类CSConfiguration实现了一些全局的配置等。HttpHandler也得到了运用,主要是处理一些不存在的Url,如读取用户头像的时候就是使用的HttpHandler。缓存作为Web程序提高运行效率最有效的方法之一在该项目中主要是在CSCache类中,该类没有什么高深的代码主要是对缓存方法进行包装,然后供全局统一管理。

CommunityServerControls 侧重的是UI表现的业务逻辑,其中包含的很多公用的用户自定义控件,典型的就是Editor、ResourceLabel,ResourceLabel几个项目中的web页面下基本都有他的身影。该项目还有一个重要的目的就是提供Skin功能,TemplatedWebControl为Forums、 Blog、Gallery几个项目提供Skin的基类,当然如果你扩展CS添加自己的项目,也是需要继承TemplatedWebControl,具体如何实现换肤后面会有专题进行单独的介绍,Asp.net Forums 原来换肤使用的是皮肤的全名(如:Skin-PostView.ascx),但是在现在的项目中不需要提供全名只在基类中提供“Skin-{0}.ascx”,之后用GetType().Name得到{0},组合后就是全名了。也就是说只要需要扩展皮肤类的类名和皮肤的{0}名字相同,就可以自动的找到他对应的Skin,小小的改进方便了许多。CS使用Membership统一用户与权限管理,而用户与权限管理作为所有扩展项目的基础,因此CommunityServerControls中实现了Membership的UI业务逻辑。

CommunityServerForums、 CommunityServerGalleries、CommunityServerBlogs就是三个运用项目的实现了,三层结构,通过大量的继承,抽象等等完成的。CommunityServerGuestBook是一个简单的扩展项目,分析代码你会发现其实CS的扩展式非常容易的,而且高效。

CS 在数据库方面也有一些优秀的设计,如全部使用存储过程,很多时候高手都会告诉你,在项目中全部使用存储过程是不理智的,但是CS确这样做。关键一点是他有一个SqlGenerator类和一些xx Query类,这些类可以根据要求产生SQL Text(主要是一些多变的Search和Post查询),然后这些SQL Text作为存储过程的参数被传入,最后使用EXEC执行它得到需要的结果。SQL Text比起存储过程来的灵活,但容易出现漏洞最后被利用出现SQL注入攻击,CS这样的做法一举两得,当然这需要更多的时间去编写代码。还有就是用存储过程实现的数据分页读取等。

CommunityServerWeb项目是所有webpage html、资源文件、配置文件、js等的集合。该项目本身没有逻辑代码,分析主要是目录的结构与安排。

CS与Asp.net 2.0的关系密切,Membership、Localization、MasterPage、Url Rewrite这些在Asp.net 2.0中眼熟的词汇在CS中你可以很容易看到它们的实现,不只是运用,你可以通过代码看到它们是如何实现的。

说了很多优点,最后说一下缺点:由于CS的前身是Asp.net Forums,在目前发布的版本中还可以很容易的看到Forums残留的影子,如果不了解其发展的人分析起来一些变量会让你摸不着头脑,另外基础构架部分也有一部分代码与Forums跌在了一起,不过我想随着下一个版本,或者下下个版本的发布 CS会更有吸引力 ,我是非常希望CS下个版本发布的时候加入WebPart等更多的特性。

 

你可以通过以下地址下载到源代码:http://communityserver.org/   
官方站http://communityserver.cn/     由宝玉发起的中文站 </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Community Server专题二:体系结构
  • Community Server专题一:概述Community Server

相关文章

  • 2017-05-11给自定义Web控件添加事件(前后台代码)
  • 2017-05-11ASP.NET 重定向的几种方法小结
  • 2017-05-11适用与firefox ASP.NET无刷新二级联动下拉列表
  • 2017-05-11如何在WebForm中使用javascript防止连打(双击)
  • 2017-05-11在ASP.net中保存/取出图片入/从SQL数据库
  • 2017-05-11ASP.NET中CheckBoxList复选框列表控件详细使用方法
  • 2017-05-11使用ASP.NET中关于代码分离的实例分享
  • 2017-05-11使用ASP.NET一般处理程序或WebService返回JSON的实现代码
  • 2017-05-11ASP.NET2.0服务器控件之自定义状态管理
  • 2017-05-11c#生成图片缩略图的类(2种实现思路)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET保存PDF、Word和Excel文件到数据库
    • Windows Server 2012 R2 Standard搭建ASP.NET Core环境图文教程
    • C#声明方法实例说明
    • ASP.NET笔记之 Repeater的使用
    • ABP入门系列之Json格式化
    • 效控制C#中label输出文字的长度,自动换行
    • 使用ASP.NET.4.5.1+MVC5.0 搭建一个包含 Ninject框架 项目
    • 在ASP.NET 2.0中操作数据之三十二:数据控件的嵌套
    • ASP.net中保持页面中滚动条状态的代码
    • aspx 中文汉字显示为乱码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有