williamraym

基于ExtJS开发的单用户BLOG系统文档及源码

总述
   这是一份较为完整的文档,对我们开发的这个Blog示例从系统需求、系统设计、实现以及前端展示效果实现等都作了较为详尽的讲述。
  整个文档主要包括四个部分,第一部分是是讲系统需求及设计,在设计的部分主要讲解域模型的设计,重点讲解了JPA标签的使用;第二部分是讲解系统的后台实现,对数据访问层、业务逻辑层等作了简单的介绍,并对开发流程作了比较详尽的讲解;第三部分是整个文档的核心部分,我们重点讲解了客户端的用户界面实现,主要是如何使用ExtJS来实现Blog后台管理系统的各个部分,在对使用到的ExtJS控件如面板Panel、选项面板、树、表格、自定义控件等都作了较为详细讲解,并结合应用中的示例中较为全面的分析;第四部分是简单介绍Blog程序的前台实现,由于前台没有使用到ExtJS,只是传统的Web应用,因此所占的篇幅比较小。
  文档非常适合ExtJS的初学者使用,也适合那些准备从事Web2.0应用及富客户端应用开发的开发人员使用。虽然我们在写的代码的时候尽量让源码具有可读性,但我想有这份文档的帮助,一定能让你快速掌握本示例中涉及到的各项新技术。


写在前面
  为了便于大家学习ExtJS、JPA、EasyJWeb等前沿的技术,我与冷雨、大峡等人一起写了这个Blog示例应用,并把源代码开放给大家,供学习交流使用。
  为了能让大家更好的上手了解这个应用中的技术构架、技术细节等,我写了这份文档,主要是能为愿意了解这个示例程序中技术细节的同行们提供一些帮助。
  为了能让我能把这个工作更长久地支撑下去,我决定针对这份长达130页的文档收取少许的费用。我也辛苦啊,敲键盘敲得手抽筋无数次,请大家理解,作为一个程序员,你应该知道不管是写程序也好,还是写文档,写多了都是比较累的事。
  为了让那些上进好学,而经济上又有一定困难的在校学生(特别是来自农村的大学生)也有同等的学习机会,我决定把这份文档对这部分朋友们免费开放。我相信,未来是你们的,只要你努力,中国程序员及中国软件环境的现状将会因你们而改变。赠送的前提是,无论现实怎样,您都应该要有为中国的开源事业出一点点力的决心及行动。
   为了表达对一直战斗在开源前线的国内开源同行们的敬意,我也将把这份文档作为2008的新年礼物赠送给你们,只要您为一个国内的开源项目提供过源码并被采用,你也可以直接得到这份文档。
    为了感谢EasyJF开源团队的朋友们一年多来对我在技术学习上提供的诸多帮助,我决定把销售这份文档所得收入的50%捐赠给EasyJF开源团队,也算尽一点微薄之力。希望EasyJF能在2008年真正的把想做事情做起来,而不要总是一点点资金上的因素,导致很多应该去做的事情而没有去做,或者没有做成。同时也希望每一个热爱技术的同仁们行动起来,对国内的开源组织及团队给予一定的支持。
  为了能提供更专业的服务,我已经邀请了EasyJF团队中对ExtJS、Ajax、JPA等技术比较熟悉的冷雨、stef、大峡等人,组成了一个小小的顾问小组,我们可以为您或您的公司提供关于ExtJS、JavaEE方面的技术咨询及服务;如果您对这些技术很熟悉,我们也非常欢迎您成为我组织的这个顾问小组的成员。
   由于时间比较仓促,该文档肯定还存在很多问题,我会通过我的blog不断的更新这份文档,希望您随时关注我的Blog系统中内容更新。
文档收费标准
  个人:120元/份,只允许一人使用
  公司或组织:800元/份
缴费用户除了得到文档以外,还可以享有下面的服务:
  1、 两个月的VIP会员时间,可以查看我Blog上提供的各种VIP资源;
  2、 可以加入我组建的专门解答大家问题的QQ群,有效时间为三个月,你可以在群里咨询关于ExtJS、JPA、EasyJWeb等相关技术的问题,我将会组织人及时给您解答;


文档详细目录:http://wlr.easyjf.com/doc.html

源码下载:http://wlr.easyjf.com/download.html

其它服务:http://wlr.easyjf.com/service.html


后记

   终于写完了,有点天晕地暗的感觉,不知道这篇文档能不能把这个示例讲清楚。我想,不同技术水平,不同层次人应该都会有自己的理解吧。希望这篇文档能对所有关注开源的朋友、每一个热爱并渴望学习的朋友有一定的帮助。
 最后再一次强调的是,我们提供下载的示例及代码尽供学习研究ExtJS、JPA、EasyJWeb等前沿技术使用,没有得到我们的书面许可,请不要用于任何商业用途,因为毕竟这只是一个演示程序,他还有很多地方不完善,甚至还有不少Bug,当数据量大的时候在某些地方还会存在性能问题,需要作一些适当的优化。
   在发布了这个开源版本之前,我与冷雨、大峡等人对发布的版本又作了几次Bug修正,但仍然没能修正更多的Bug,在这方面还请大家在研究的过程多多参与交流,把存在问题反馈给我们,非常感谢。
  作来一个原型示例,我们将不会在对这个开源的版本进行更新,而会根据我们的需求不断更新在线的示例程序,也就是我的Blog系统,并会不断添加一些新的功能,对系统进行性能优化等工作,我们会把这些工作的成果文档及源码根据需要发布在我的Blog中,欢迎大家多多指点。
  作为Web2.0的一个产物,ExtJS并不是最完美的,也并非所有场景都适合使用富客户端技术。因此,在迷恋ExtJS华丽的外表、惊叹EasyJWeb给我们带来简便的同时,也希望大家能根据实际的情况有选择地使用这些技术。
  最后:祝每位战斗在技术前线的程序员同行工作愉快、新年快乐,向每一位为开源而默默贡献着的朋友们致敬。

posted on 2008-01-28 12:46 WilliamRaym 阅读(3242) 评论(4)  编辑  收藏

评论

# re: 基于ExtJS开发的单用户BLOG系统文档及源码 2008-01-28 15:51 beans

对学生及开源人士免费啊,楼主真是好人。  回复  更多评论   

# re: 基于ExtJS开发的单用户BLOG系统文档及源码 2008-01-28 16:21 sakura

我是在校学生,电子科大,大二,对此很感兴趣,我想认真学习一下,谢了~~
du-yang@msn.com  回复  更多评论   

# re: 基于ExtJS开发的单用户BLOG系统文档及源码 2008-01-28 19:20 WLR

现在可以直接通过wlr.easyjf.com下载代码了  回复  更多评论   

# re: 基于ExtJS开发的单用户BLOG系统文档及源码 2008-12-04 10:14 rufus

public static string GetJSON(object value)
{
HandleJSON V_0 = new HandleJSON();
return V_0.getJSON(value);
}

private class HandleJSON
{

private IDictionary vars = null;
private IList stack = null;
private IList declars = null;
private int d=0;

public HandleJSON()
{
this.vars = new Hashtable();
this.stack = new ArrayList();
this.declars = new ArrayList();
this.d = 0;
}

public string getJSON(object value)
{
int V_2;
string V_0 = this.generatorJSON(value);
string V_1 = "";
for (V_2 = 0; V_2 < this.declars.Count; V_2++)
{
V_1 = V_1 + this.declars[V_2];
}
for (V_2 = 0; V_2 < this.stack.Count; V_2++)
{
V_1 = V_1 + this.stack[V_2];
}
return (V_1 + "return " + V_0 + ";");
}

public bool IsSimpleType(Type type)
{
return (type.IsPrimitive || type.Equals(typeof(string))) || (type == typeof(DateTime));
}

public string generatorJSON(object value)
{
string V_0 = "";
string V_1 = "v" + d++;
if (value == null)
{
return V_0 + "null";
}
if (IsSimpleType(value.GetType()))
{
if (value is DateTime)
{
DateTime V_2 = (DateTime)value;
return string.Concat(new object[] { "new Date(", V_2.Year, ",", V_2.Month, ",", V_2.Day, ",", V_2.Hour, ",", V_2.Minute, ",", V_2.Second, ")" });
}
if ((value is string) || value.GetType().IsEnum)
{
string V_3 = value.ToString();
V_3 = V_3.Replace("\"", """);
return "\"" + AjaxUtil.convert2unicode(V_3, true) + "\".replace(/"/g, '\"')";
}
if (value is bool)
{
return value.ToString().ToLower();
}
return "" + value;
}
vars.Add(value, V_1);
if (value is IDictionary)
{
V_0 = handlerMap(V_1, value);
}
else if (value is ICollection)
{
V_0 = handlerCollection(V_1, value);
}
else if (value.GetType().IsArray)
{
V_0 = handlerArray(V_1, value);
}
else
{
V_0 = handlerObject(V_1, value);
}
return V_0;
}

核心源码请访问http://www.xiangyu2099.cn
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(6)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜