何 平
(成都雙流國際機(jī)場股份有限公司,四川 成都 610200)
基于.NET的知識分享平臺的設(shè)計與實現(xiàn)
何 平
(成都雙流國際機(jī)場股份有限公司,四川 成都 610200)
大數(shù)據(jù)時代,人們極易面臨信息很多、知識很少的尷尬.本知識分享平臺為面臨此問題的企業(yè)、學(xué)校而開發(fā).該平臺是基于ASP.NETMVC開發(fā)平臺的Web應(yīng)用程序,能夠?qū)⒅R分門別類以樹狀(目錄樹)和網(wǎng)狀(關(guān)鍵字)呈現(xiàn),易于管理.企業(yè)、學(xué)校用戶可以通過該平臺隨時共同關(guān)注知識動態(tài),可在該平臺上建立自己的知識樹,收藏自己精心挑選的知識,關(guān)注自己感興趣的知識類,管理自己的知識內(nèi)容,同時分享自己的新知識,方便查詢,更方便管理.
知識分享平臺;.NET;知識分享;知識管理
在大數(shù)據(jù)時代,龐大未分類的知識信息,不利于知識的查詢和管理以及再利用.企業(yè)和學(xué)校亟需真正的知識管理工具,以操作簡單、有效的方式來幫助人們管理各類知識.本知識分享平臺就是一個知識分類明確、瀏覽清晰、操作簡便的知識管理工具,或知識庫,可以極大地方便對知識的查詢和管理.
該知識分享平臺為Web應(yīng)用程序,用戶只需要在瀏覽器輸入網(wǎng)址,成功登錄后即可看到各類知識更新情況,以及各類知識的排行榜.對各類知識的分類主要采用知識樹的形式展示,各類知識結(jié)點下的知識列表清晰明了,無論是修改還是添加知識,操作簡便,不需要太多的技能,極易上手.它具有以下優(yōu)點:
(1)知識分享平臺對各種知識的分類采用樹形結(jié)構(gòu),知識分類具有鮮明的層次結(jié)構(gòu),各種知識所屬類別清晰明了,管理方便.同時,采用異步樹加載,減小瀏覽器及服務(wù)器的加載壓力.
(2)對知識的編輯采用所見即所得的CKEditor在線編輯器[1-3],功能強(qiáng)大,界面優(yōu)美,操作起來就像操作大家熟悉的Word.所以發(fā)表知識或者編輯修改知識的操作很簡單,不需要學(xué)習(xí)復(fù)雜的專業(yè)技能.
(3)通用SNS用戶熟悉的關(guān)注和收藏功能,用戶可以及時了解最新知識的更新,可以直接獲取自己關(guān)注的知識類別的更新,目的性強(qiáng),同時可以關(guān)注到各種知識的點擊情況,對用戶有一定的指引作用.這些都方便了用戶對知識的查找和獲取.
2.1 系統(tǒng)開發(fā)環(huán)境
知識分享平臺基于強(qiáng)大的.NET開發(fā)平臺,采用成熟的 ASP.NETMVC 4[4-5]Web 應(yīng)用程序框架,充分利用先進(jìn)的 ORM 工具NHibernate[6],整體界面使用Bootstrap框架[7-8].使用IIS掛載項目時,需要使用 Framework 4.0[9]框架,另外,本系統(tǒng)后臺使用的是SQL Server 2005數(shù)據(jù)庫.
2.2 知識分享平臺結(jié)構(gòu)
知識分享平臺主要采用B/S體系結(jié)構(gòu),同時采用經(jīng)典的MVC三層設(shè)計模式,如圖1所示.
圖1 知識分享平臺體系結(jié)構(gòu)圖
其三層的具體圖形如圖2所示.
圖2 知識分享平臺三層模塊圖
2.3 相關(guān)設(shè)計模式
系統(tǒng)采用最新的ASP.NET MVC進(jìn)行編程,充分使用各種優(yōu)秀的設(shè)計模式來保證其可擴(kuò)展性、可修改性.
(1)MVC模式
ASP.NETMVC框架為基于MVC的Web應(yīng)用程序開發(fā)提供了另一種ASP.NETWeb窗體模式.在 ASP.NET MVC 中的三大部分[10-11]如圖3所示,可大致解釋為:
模型:這些類代表了你感興趣的域.這些域中的對象通常是封裝存儲在數(shù)據(jù)中的數(shù)據(jù)和操作這些數(shù)據(jù)的代碼,執(zhí)行特定域名下的業(yè)務(wù)邏輯.在ASP.NET MVC中,這更像是某種類型的數(shù)據(jù)訪問層,使用像實體框架或者是NHibernate的工具,并集合自定義代碼,包含特定域名的邏輯.
視圖:一個自動生成HTML代碼的模板.
控制器:它是管理視圖和模型關(guān)系的特殊類.響應(yīng)用戶的輸入,和模型會話,同時決定加載展示哪一個視圖(如果這個視圖存在).通常以Controller結(jié)束.MVC模式圖如圖3.
圖3 MVC模式圖
(2)ORM模式與NHibernate
知識分享平臺采用NHibernate這款ORM映射框架,來代替原始的ADO.NET數(shù)據(jù)庫訪問方式,采用面向?qū)ο笏枷?,避免操作大量的SQL語句.NHibernate是一款面向.NET平臺的ORM框架.所謂ORM,即對象關(guān)系映射,將關(guān)系數(shù)據(jù)庫中數(shù)據(jù)表映射成為一個個的對象,以面向?qū)ο笏枷刖幊?NHibernate的使用主要涉及三類文件:數(shù)據(jù)庫配置文件 hibernate.cfg.xm l,數(shù)據(jù)表映射文件*.hbm.xml,實體類,即數(shù)據(jù)表對應(yīng)的對象類.*cs文件.然后通過數(shù)據(jù)訪問對象,即DAO類對數(shù)據(jù)庫中的表進(jìn)行操作.
NHibernate的體系結(jié)構(gòu)如圖4所示,展示它為數(shù)據(jù)庫和應(yīng)用程序提供了一個持久層:
圖4 NHibernate的體系結(jié)構(gòu)
實現(xiàn)方案:對數(shù)據(jù)庫的連接,首先編寫NHibernate的數(shù)據(jù)庫配置文件 hibernate.cfg.xml,編寫基本配置信息,如數(shù)據(jù)庫連接字符串等.對數(shù)據(jù)庫中的每一張表,我們借助Code Smith生成NHibernat各表的映射文件、實體類以及基本DAO類,則通過DAO類操作數(shù)據(jù)庫中的表.
底層數(shù)據(jù)模塊結(jié)構(gòu)圖如圖5所示.
圖5 NHibernate映射圖
(3)DAO模式
數(shù)據(jù)訪問對象(Data Access Object)模式主要思想是從抽象數(shù)據(jù)源獲得操作數(shù)據(jù)的方式.使用DAO模式,編寫程序時不需要關(guān)心數(shù)據(jù)庫的具體位置與類型,只要使用封裝好的數(shù)據(jù)庫對象就可以了.DAO完成了對數(shù)據(jù)的訪問并且降低了業(yè)務(wù)邏輯層的復(fù)雜程度.
平臺使用NHibernate框架作數(shù)據(jù)庫的ORM映射.NHibrnate 通過 hibernate.cfg.xml配置文件來配置數(shù)據(jù)庫訪問信息.數(shù)據(jù)庫中的每一張表對應(yīng)NHibernate中的一個實體類和一個.hbm.xm l實體映射文件.
在編寫數(shù)據(jù)訪問輔助類時,首先要從ISessionFactory中獲取一個ISession.一個ISession代表一個單元操作,它是單線程、非線性安全的,它代表與數(shù)據(jù)庫之間的一次操作.
2.4 特色功能及其相關(guān)模塊
知識共享平臺為企業(yè)和學(xué)校提供了很多特色功能,首頁如圖6所示.
圖6 知識分享平臺首頁
特色功能包括:
(1)使用樹形結(jié)構(gòu)組織知識分類目錄,結(jié)構(gòu)清晰,知識分類操作方便,也便于后期知識量劇增而進(jìn)行擴(kuò)展,而且知識目錄樹采用異步加載,能夠很好減小服務(wù)器的壓力.
(2)知識模塊編輯,是在添加知識的時候,可以套用自帶的模板,使用統(tǒng)一的內(nèi)容編輯格式,讓知識文章更具有條理性,結(jié)構(gòu)清晰,也可以自定義編輯模板,更富有個性.
(3)在知識展示的同時,可以在右側(cè)看到該知識所屬節(jié)點的所有子節(jié)點知識列表,如圖7所示.
圖7 知識目錄樹管理界面
2.4.1 知識目錄樹模塊及實現(xiàn)
該模塊使用樹形結(jié)構(gòu)組織知識分類目錄,結(jié)構(gòu)清晰,知識分類操作方便,主要實現(xiàn)了對知識目錄樹中的結(jié)點進(jìn)行增加、刪除、修改和查詢的功能.用戶在進(jìn)行操作前需要選中某一非根結(jié)點,然后選擇要進(jìn)行的操作,刪除該結(jié)點以及該結(jié)點的子結(jié)點,同時要刪除該結(jié)點和其子結(jié)點中的知識,所以用戶不要輕易刪除某一結(jié)點.如果選擇修改該結(jié)點信息,可以在結(jié)點的詳細(xì)信息列表中修改,修改后保存.如果選擇添加結(jié)點信息,則選中后的結(jié)點將作為新添加的結(jié)點的父結(jié)點.在查找結(jié)點時,由于知識目錄樹是異步加載樹,所有查找都應(yīng)在后臺查找,之后再重新加載知識目錄樹.為了確保知識的安全,在刪除知識目錄時,采用轉(zhuǎn)移的方式,將已經(jīng)刪除的目錄樹轉(zhuǎn)移到另一張數(shù)據(jù)表中,可以由后臺管理員進(jìn)行管理.
2.4.2 知識模板管理及實現(xiàn)
通過套用知識編輯模板,使用統(tǒng)一的內(nèi)容編輯格式,讓知識文章更具有條理性,結(jié)構(gòu)清晰,能夠更好地組織知識文章結(jié)構(gòu),方便以后為知識文章生成知識瀏覽的目錄,更加有效地組織知識.用戶還可以自定義知識編輯模板樣式,設(shè)定自己的知識文本編輯格式.
模板管理包括模板目錄管理和模板內(nèi)容管理兩個方面.其中,模板目錄管理主要是對模板類型的操作,例如,添加模板類型、刪除模板類型或修改模板類型名稱等.對模板內(nèi)容管理就是對套用模板的知識內(nèi)容的組織結(jié)構(gòu)進(jìn)行管理,方便為知識生成清晰的目錄.模板內(nèi)容管理是對樹的操作,主要針對某一種具體的模板類型來修改模板樣式,可以通過移動內(nèi)容結(jié)點來組織知識結(jié)構(gòu).在調(diào)節(jié)內(nèi)容結(jié)構(gòu)時,用戶可通過“上移結(jié)點”和“下移結(jié)點”實現(xiàn),后臺通過操作對象的I_Sort屬性來實現(xiàn).在保存模板內(nèi)容時,因為模板內(nèi)容涉及Html標(biāo)簽,所以除了對其編碼外,在這之前還應(yīng)該判斷Html標(biāo)簽是否配對.套用“程序設(shè)計”模板后的界面如圖8所示.
圖8 套用“程序設(shè)計”模板后界面
模板內(nèi)容管理界面如圖9所示.
圖9 模板內(nèi)容管理界面
2.4.3 優(yōu)秀的SNS推薦功能
平臺充分利用SNS特色功能.第一,可保證用戶之間的溝通質(zhì)量,通過網(wǎng)絡(luò)的方便性讓用戶之間的溝通變得順暢和高效;第二,可為用戶提供一個可以自由選擇私密度的行為環(huán)境,建立自己的圈子,在便捷互動與隱私安全之間選擇適合自己的平衡點;第三,它能夠輕松、低成本(無需專門的服務(wù)器,存儲空間大)、高效率(傳輸數(shù)據(jù)快)地滿足用戶之間的溝通需求.
系統(tǒng)提供在瀏覽一類知識列表時,同時列出這類知識父結(jié)點下的同級目錄,方便知識查找.同時提供點擊榜、收藏和關(guān)注功能.同級目錄推薦界面如圖10所示.
圖10 同級目錄推薦界面
本知識共享平臺為企業(yè)、學(xué)校內(nèi)共享知識而開發(fā).基于強(qiáng)大的.NET開發(fā)平臺,采用成熟的ASP.NET MVC 4 Web應(yīng)用程序框架,充分利用先進(jìn)的 ORM工具 NHibernate,整體界面使用Bootstrap界面設(shè)計框架,能夠較好地實現(xiàn)對知識的查詢、分享、管理等功能,試運行效果良好.
[1]Sarrion E.jQuery UI開發(fā)指南[M].北京:人民郵電出版社,2012:195-211.
[2]Haverbeke M.JavaScript編程精解[M].北京:機(jī)械工業(yè)出版社,2012:78-98.
[3]懷特.JavaScript程序員參考手冊[M].北京:清華大學(xué)出版社,2011:380-415.
[4]李彥.ASP.NET 4.0 MVC 敏捷開發(fā)[M].北京:電子工業(yè)出版社,2011:203-230.
[5]蔣金楠.ASP.NETMVC 4 框架揭秘[M].北京:電子工業(yè)出版社,2013:231-244.
[6]Dentler J.NHibernate 3.0 Cookbook[M].美國:Packt Publish,2010:303-310.
[7]邁耶.CSS權(quán)威指南(第3版)[M].北京:中國電力出版社,2007:413-428.
[8]陸凌牛.HTML5與CSS3權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,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.
(責(zé)任編輯 穆 剛)
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-),男,四川武勝人,工程師,主要從事計算機(jī)網(wǎng)絡(luò)建設(shè)、網(wǎng)絡(luò)安全實施以及軟件開發(fā)方面的研究.