詞條統計
浏覽次數:1736133 次
編輯次數:11次 曆史版本
最近更新:2015/1/8
創建者:擲雞蛋者

“我記錄”開發框架(wojilu framework) 是 .net 平台下的綜合開發框架,主要用于 web 方面的快速開發。

官方網址:http://juhua735535.cn 
源碼托管網址: # 
授權協議:Apache License可免費用于商業環境

說明:本站所有功能,包括“門戶資訊、微博、SNS、論壇、博客、相冊、群組、下載”等,全部使用本框架開發。


【框架、源碼、文檔下載】
框架下載:框架(包括源碼)和“我記錄網站綜合系統”源碼打包在一起發布,請到 http://juhua735535.cn/Forum1/Board/2 置頂帖子中下載最新版本。
文檔下載:
http://juhua735535.cn/Forum1/Topic/798 (我記錄框架的類庫api文檔,chm格式)

【示例】

1. 示例源碼1:“我記錄cms”(http://demof.wojilu.com)。本教程就是以這個項目為例,一步一步做了全面的剖析;源碼和綜合系統在一起(在 http://juhua735535.cn/Forum1/Board/2 置頂帖子),即其中的wojilu.cms和wojilu.cms.web兩個項目。

2. 示例源碼2:“我記錄網站綜合系統”(http://juhua735535.cn),集成了CMS、論壇、SNS、博客、相冊、微博等功能,而且可以輕松的進行二次開發。源碼下載請到 http://juhua735535.cn/Forum1/Board/2 置頂帖子中獲取最新版本


3. 在線代碼演示:http://juhua735535.cn/Demo/Valid/Index.aspx 主要是前端部分的代碼演示,對于常見的驗證、彈窗、局部刷新、編輯器、幻燈等問題,都提供了直接的演示demo,以及代碼。代碼可以直接拷貝,便于使用。


【學習建議】

為了更好的學習框架,建議閱讀“我記錄網站綜合系統”各app的源碼。方法上,可以分開逐個閱讀,這樣非常有助于理解框架。
如果某種功能你不知道如何實現的話,也建議參考“綜合系統”中的實現方式。


【框架包括】

1、一個持久層框架 wojilu ORM
2、一個依賴注入框架 wojilu IOC
3、一個Web開發框架 wojilu MVC(包括驗證碼控件、帶進度條上傳等)
4、一個輕量級模闆引擎 wojilu template
5、一個日志類庫 wojilu logger
6、一個輕量級 json 解析器
7、一個簡易的前端 ajax 庫(依賴于jquery)
8、一個富文本編輯器 wojilu editor

【為什麼取 wojilu(“我記錄”) 這個名稱】


wojilu 是“我記錄”的拼音形式。我給框架取名定了一個标準:易記憶、易拼寫、能注冊到域名。目前手頭隻有“我記錄”的域名(以前是博客系統名稱)馬馬虎虎符合要求,就直接拿來用了。

【wojilu framework 總特點】


1、簡潔輕快。整個框架,除了jquery,沒有依賴其他第三方類庫;
2、絕不過度設計。簡單、易學、易上手是這套框架對自己的定位。
3、從實戰出發提供了 cms/sns/forum 等大型系統的示例,經過了全面的實戰檢驗;不像其他一些框架隻提供一個 blog 的粗糙 demo。wojilu framework 希望自己是一個真正從實戰中來,到實戰中去的框架。
4、從整體上考慮各子框架的設計,比如前端 ajax 部分和 mvc 框架的結合;比如IOC依賴注入和mvc中控制器的結合等;
5、使用 apache 開源協議,可以免費應用于商業環境。
6、對 dotnet 的版本要求低,支持dotnet 2.0,當然也支持更高版本。
7、沒有多個框架整合的問題。作為全棧式(fullstack) 框架,各子框架之間已經無縫集成了。

各個子框架也有各自的特點:

名稱特點
wojilu ORM1、簡單易用,支持 sqlserver/mysql/access 三種數據庫;
2、以實用為目的,比如直接集成數據分頁方案;
3、以領域模型為中心,自動根據領域模型建立數據表;
4、支持數據庫垂直劃分(多數據庫支持),配置簡單;
5、和 mvc 框架配合,支持數據庫事務;
6、内置數據驗證方案,可擴展。
wojilu IOC配置簡單,相當的輕量級
wojilu MVC1、支持命名空間(讓代碼文件更加整潔易覽;讓頁面layout和權限控制更加簡單易用);
2、默認将靜态文件(js/css/圖片等)單獨存放,可以輕松切換到二級域名(分離應用服務器和靜态服務器);
3、視圖邏輯和視圖模闆徹底分離;
4、控制器可輕松依賴注入;控制器本身也可以通過配置自定義;
5、不對 html 封裝,可以讓前端開發徹底工作在html和css層面,對html擁有完全控制的自由;
6、多國語言支持(i18n),并且簡潔易用;

其他 mvc 框架都會帶的功能,比如路由、過濾器、RESTfull風格的Url、無頁面後綴名、約定優于配置的風格等都是不可缺少的;另外,對頁面生命周期中各事件的擴展也提供了完善的支持。
wojilu template簡單易用,隻有兩種語法。
wojilu logger專為我記錄框架定做的日志系統,簡單易用
wojilu json我記錄的緩存組件和配置組件,全部使用 json 進行持久化,是系統的重要組成部分。
wojilu ajax1、提供了最常用的彈窗、表單驗證、菜單等内容;
2、基本上“零js書寫”,不需要js基礎就能使用,上手非常容易;
3、和視圖完全分離;
4、和 mvc 後端 controller 無縫集成;
5、及其簡單的驗證碼使用;
6、支持flash帶進度條上傳。
wojilu editor輕量級,在 mvc 中直接使用,無須配置


【wojilu framework 做不到的功能】

wojilu框架作為一個.net平台下的框架,它和.net不是矛盾的關系。它能夠讓開發過程更加快速可靠,而不是說用了wojilu,就不能使用.net原生的方法了。在使用wojilu不方便的或力所不及的地方,仍然可以直接使用.net原生的方法。——這也就是為什麼使用 wojilu framework 可以開發出“我記錄網站綜合系統”這個無所不包的系統的原因,因為.net能做的,它都能做到。你可以理解為,wojilu什麼都能做


舉個例子,使用wojilu ORM 可以應付95%以上的數據操作,但對于另外的5%的複雜查詢,比如一些多表的聯表檢索,wojilu ORM就不擅長(其實任何一個ORM都不擅長複雜的查詢)。這時候,你可以直接使用.net 原生的command來操作,比如:

   IDbConnection connection = DbContext.getConnection( dataType );
   IDbCommand cmd = connection.CreateCommand();
   cmd.CommandText = "sql 語句";
   IDataReader rd = cmd.ExecuteReader();


常見問題:wojilu mvc 和 asp.net mvc什麼關系?

都建立在.net平台基礎上,都可以調用.net基礎類庫,主要使用c#語言開發。雖然總體上互相之間沒有依賴,獨立發展,但wojilu mvc可以兼容asp.net mvc,做到無縫整合,包括整合傳統webform形式。更多區别,參看此處:http://juhua735535.cn/forum/post/26572