基于.NET的知识分享平台的设计与实现

2014-09-19 06:10
关键词:结点框架界面

何 平

(成都双流国际机场股份有限公司,四川 成都 610200)

基于.NET的知识分享平台的设计与实现

何 平

(成都双流国际机场股份有限公司,四川 成都 610200)

大数据时代,人们极易面临信息很多、知识很少的尴尬.本知识分享平台为面临此问题的企业、学校而开发.该平台是基于ASP.NETMVC开发平台的Web应用程序,能够将知识分门别类以树状(目录树)和网状(关键字)呈现,易于管理.企业、学校用户可以通过该平台随时共同关注知识动态,可在该平台上建立自己的知识树,收藏自己精心挑选的知识,关注自己感兴趣的知识类,管理自己的知识内容,同时分享自己的新知识,方便查询,更方便管理.

知识分享平台;.NET;知识分享;知识管理

1 知识分享平台功能概述

在大数据时代,庞大未分类的知识信息,不利于知识的查询和管理以及再利用.企业和学校亟需真正的知识管理工具,以操作简单、有效的方式来帮助人们管理各类知识.本知识分享平台就是一个知识分类明确、浏览清晰、操作简便的知识管理工具,或知识库,可以极大地方便对知识的查询和管理.

该知识分享平台为Web应用程序,用户只需要在浏览器输入网址,成功登录后即可看到各类知识更新情况,以及各类知识的排行榜.对各类知识的分类主要采用知识树的形式展示,各类知识结点下的知识列表清晰明了,无论是修改还是添加知识,操作简便,不需要太多的技能,极易上手.它具有以下优点:

(1)知识分享平台对各种知识的分类采用树形结构,知识分类具有鲜明的层次结构,各种知识所属类别清晰明了,管理方便.同时,采用异步树加载,减小浏览器及服务器的加载压力.

(2)对知识的编辑采用所见即所得的CKEditor在线编辑器[1-3],功能强大,界面优美,操作起来就像操作大家熟悉的Word.所以发表知识或者编辑修改知识的操作很简单,不需要学习复杂的专业技能.

(3)通用SNS用户熟悉的关注和收藏功能,用户可以及时了解最新知识的更新,可以直接获取自己关注的知识类别的更新,目的性强,同时可以关注到各种知识的点击情况,对用户有一定的指引作用.这些都方便了用户对知识的查找和获取.

2 系统实现

2.1 系统开发环境

知识分享平台基于强大的.NET开发平台,采用成熟的 ASP.NETMVC 4[4-5]Web 应用程序框架,充分利用先进的 ORM 工具NHibernate[6],整体界面使用Bootstrap框架[7-8].使用IIS挂载项目时,需要使用 Framework 4.0[9]框架,另外,本系统后台使用的是SQL Server 2005数据库.

2.2 知识分享平台结构

知识分享平台主要采用B/S体系结构,同时采用经典的MVC三层设计模式,如图1所示.

图1 知识分享平台体系结构图

其三层的具体图形如图2所示.

图2 知识分享平台三层模块图

2.3 相关设计模式

系统采用最新的ASP.NET MVC进行编程,充分使用各种优秀的设计模式来保证其可扩展性、可修改性.

(1)MVC模式

ASP.NETMVC框架为基于MVC的Web应用程序开发提供了另一种ASP.NETWeb窗体模式.在 ASP.NET MVC 中的三大部分[10-11]如图3所示,可大致解释为:

模型:这些类代表了你感兴趣的域.这些域中的对象通常是封装存储在数据中的数据和操作这些数据的代码,执行特定域名下的业务逻辑.在ASP.NET MVC中,这更像是某种类型的数据访问层,使用像实体框架或者是NHibernate的工具,并集合自定义代码,包含特定域名的逻辑.

视图:一个自动生成HTML代码的模板.

控制器:它是管理视图和模型关系的特殊类.响应用户的输入,和模型会话,同时决定加载展示哪一个视图(如果这个视图存在).通常以Controller结束.MVC模式图如图3.

图3 MVC模式图

(2)ORM模式与NHibernate

知识分享平台采用NHibernate这款ORM映射框架,来代替原始的ADO.NET数据库访问方式,采用面向对象思想,避免操作大量的SQL语句.NHibernate是一款面向.NET平台的ORM框架.所谓ORM,即对象关系映射,将关系数据库中数据表映射成为一个个的对象,以面向对象思想编程.NHibernate的使用主要涉及三类文件:数据库配置文件 hibernate.cfg.xm l,数据表映射文件*.hbm.xml,实体类,即数据表对应的对象类.*cs文件.然后通过数据访问对象,即DAO类对数据库中的表进行操作.

NHibernate的体系结构如图4所示,展示它为数据库和应用程序提供了一个持久层:

图4 NHibernate的体系结构

实现方案:对数据库的连接,首先编写NHibernate的数据库配置文件 hibernate.cfg.xml,编写基本配置信息,如数据库连接字符串等.对数据库中的每一张表,我们借助Code Smith生成NHibernat各表的映射文件、实体类以及基本DAO类,则通过DAO类操作数据库中的表.

底层数据模块结构图如图5所示.

图5 NHibernate映射图

(3)DAO模式

数据访问对象(Data Access Object)模式主要思想是从抽象数据源获得操作数据的方式.使用DAO模式,编写程序时不需要关心数据库的具体位置与类型,只要使用封装好的数据库对象就可以了.DAO完成了对数据的访问并且降低了业务逻辑层的复杂程度.

平台使用NHibernate框架作数据库的ORM映射.NHibrnate 通过 hibernate.cfg.xml配置文件来配置数据库访问信息.数据库中的每一张表对应NHibernate中的一个实体类和一个.hbm.xm l实体映射文件.

在编写数据访问辅助类时,首先要从ISessionFactory中获取一个ISession.一个ISession代表一个单元操作,它是单线程、非线性安全的,它代表与数据库之间的一次操作.

2.4 特色功能及其相关模块

知识共享平台为企业和学校提供了很多特色功能,首页如图6所示.

图6 知识分享平台首页

特色功能包括:

(1)使用树形结构组织知识分类目录,结构清晰,知识分类操作方便,也便于后期知识量剧增而进行扩展,而且知识目录树采用异步加载,能够很好减小服务器的压力.

(2)知识模块编辑,是在添加知识的时候,可以套用自带的模板,使用统一的内容编辑格式,让知识文章更具有条理性,结构清晰,也可以自定义编辑模板,更富有个性.

(3)在知识展示的同时,可以在右侧看到该知识所属节点的所有子节点知识列表,如图7所示.

图7 知识目录树管理界面

2.4.1 知识目录树模块及实现

该模块使用树形结构组织知识分类目录,结构清晰,知识分类操作方便,主要实现了对知识目录树中的结点进行增加、删除、修改和查询的功能.用户在进行操作前需要选中某一非根结点,然后选择要进行的操作,删除该结点以及该结点的子结点,同时要删除该结点和其子结点中的知识,所以用户不要轻易删除某一结点.如果选择修改该结点信息,可以在结点的详细信息列表中修改,修改后保存.如果选择添加结点信息,则选中后的结点将作为新添加的结点的父结点.在查找结点时,由于知识目录树是异步加载树,所有查找都应在后台查找,之后再重新加载知识目录树.为了确保知识的安全,在删除知识目录时,采用转移的方式,将已经删除的目录树转移到另一张数据表中,可以由后台管理员进行管理.

2.4.2 知识模板管理及实现

通过套用知识编辑模板,使用统一的内容编辑格式,让知识文章更具有条理性,结构清晰,能够更好地组织知识文章结构,方便以后为知识文章生成知识浏览的目录,更加有效地组织知识.用户还可以自定义知识编辑模板样式,设定自己的知识文本编辑格式.

模板管理包括模板目录管理和模板内容管理两个方面.其中,模板目录管理主要是对模板类型的操作,例如,添加模板类型、删除模板类型或修改模板类型名称等.对模板内容管理就是对套用模板的知识内容的组织结构进行管理,方便为知识生成清晰的目录.模板内容管理是对树的操作,主要针对某一种具体的模板类型来修改模板样式,可以通过移动内容结点来组织知识结构.在调节内容结构时,用户可通过“上移结点”和“下移结点”实现,后台通过操作对象的I_Sort属性来实现.在保存模板内容时,因为模板内容涉及Html标签,所以除了对其编码外,在这之前还应该判断Html标签是否配对.套用“程序设计”模板后的界面如图8所示.

图8 套用“程序设计”模板后界面

模板内容管理界面如图9所示.

图9 模板内容管理界面

2.4.3 优秀的SNS推荐功能

平台充分利用SNS特色功能.第一,可保证用户之间的沟通质量,通过网络的方便性让用户之间的沟通变得顺畅和高效;第二,可为用户提供一个可以自由选择私密度的行为环境,建立自己的圈子,在便捷互动与隐私安全之间选择适合自己的平衡点;第三,它能够轻松、低成本(无需专门的服务器,存储空间大)、高效率(传输数据快)地满足用户之间的沟通需求.

系统提供在浏览一类知识列表时,同时列出这类知识父结点下的同级目录,方便知识查找.同时提供点击榜、收藏和关注功能.同级目录推荐界面如图10所示.

图10 同级目录推荐界面

3 结语

本知识共享平台为企业、学校内共享知识而开发.基于强大的.NET开发平台,采用成熟的ASP.NET MVC 4 Web应用程序框架,充分利用先进的 ORM工具 NHibernate,整体界面使用Bootstrap界面设计框架,能够较好地实现对知识的查询、分享、管理等功能,试运行效果良好.

[1]Sarrion E.jQuery UI开发指南[M].北京:人民邮电出版社,2012:195-211.

[2]Haverbeke M.JavaScript编程精解[M].北京:机械工业出版社,2012:78-98.

[3]怀特.JavaScript程序员参考手册[M].北京:清华大学出版社,2011:380-415.

[4]李彦.ASP.NET 4.0 MVC 敏捷开发[M].北京:电子工业出版社,2011:203-230.

[5]蒋金楠.ASP.NETMVC 4 框架揭秘[M].北京:电子工业出版社,2013:231-244.

[6]Dentler J.NHibernate 3.0 Cookbook[M].美国:Packt Publish,2010:303-310.

[7]迈耶.CSS权威指南(第3版)[M].北京:中国电力出版社,2007:413-428.

[8]陆凌牛.HTML5与CSS3权威指南[M].北京:机械工业出版社,2011:56-68.

[9]Sanderson S.Pro ASP.NETMVC 2 Framework[M].美国:Apress,2009:201-228.

[10]Galloway J,Haack P,Wilson B,et al.Professional ASP.NETMVC 4[M].美国:Wiley,2012:400-412.

[11]Freeman A,Sanderson S.Pro ASP.NETMVC 4[M].北京:人民邮电出版社,2013:221-235.

(责任编辑 穆 刚)

Design and im plementation of know ledge sharing platform based on.NET

HE Ping
(Chengdu Shuangliu International Airport Corp.,Chengdu Sichuan 610200,China)

In an era of big data,people easily get stuck in such an embarrassing situation where there is plenty of information,but very little knowledge.This knowledge sharing platform caters for enterprises and universities which are faced with the problem above.Owing to the ASP.NETMVCWeb application development platform,the information presentation can be categorized in a tree(the tree)and mesh(keywords)structure which is easy to bemanaged.With this platform,the users of enterprises and schools can focus on the dynamic knowledge at any time.They can not only build their own knowledge tree,but also collect knowledge which they chose carefully.Besides,it is available for them to pay attention to the kind of knowledge they are interested in andmanage their own intellectual content.At the same time,they can share their new knowledgefor easy retrival and conveniencemanagement.

knowledge sharing platform;.NET;knowledge sharing;knowledgemanagement

TP393.02

A

1673-8004(2014)05-0134-04

2014-05-13

何平(1975-),男,四川武胜人,工程师,主要从事计算机网络建设、网络安全实施以及软件开发方面的研究.

猜你喜欢
结点框架界面
框架
基于八数码问题的搜索算法的研究
国企党委前置研究的“四个界面”
广义框架的不相交性
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
人机交互界面发展趋势研究
关于原点对称的不规则Gabor框架的构造
一种基于OpenStack的云应用开发框架
手机界面中图形符号的发展趋向
基于Raspberry PI为结点的天气云测量网络实现