词条统计
浏览次数:248235 次
编辑次数:11次 历史版本
最近更新:2015/1/8
创建者:掷鸡蛋者

“我记录”开发框架(wojilu framework) 是 .net 平台下的综合开发框架,主要用于 web 方面的快速开发。

官方网址:http://www.wojilu.com 
源码托管网址: https://github.com/wojilu/wojilu 
授权协议:Apache License可免费用于商业环境

说明:本站所有功能,包括“门户资讯、微博、SNS、论坛、博客、相册、群组、下载”等,全部使用本框架开发。


【框架、源码、文档下载】
框架下载:框架(包括源码)和“我记录网站综合系统”源码打包在一起发布,请到 http://www.wojilu.com/Forum1/Board/2 置顶帖子中下载最新版本。
文档下载:
http://www.wojilu.com/Forum1/Topic/798 (我记录框架的类库api文档,chm格式)

【示例】

1. 示例源码1:“我记录cms”(http://demof.wojilu.com)。本教程就是以这个项目为例,一步一步做了全面的剖析;源码和综合系统在一起(在 http://www.wojilu.com/Forum1/Board/2 置顶帖子),即其中的wojilu.cms和wojilu.cms.web两个项目。

2. 示例源码2:“我记录网站综合系统”(http://www.wojilu.com),集成了CMS、论坛、SNS、博客、相册、微博等功能,而且可以轻松的进行二次开发。源码下载请到 http://www.wojilu.com/Forum1/Board/2 置顶帖子中获取最新版本


3. 在线代码演示:http://www.wojilu.com/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://www.wojilu.com/forum/post/26572