/*我的软件工程师项目实训框架系列简介*/

我决定从今日(2007-12-17)起,正式创建"软件工程师项目实训框架系列",我以往及以后经验的精华部分将源源不断地汇入这一系列不断升级的框架之中,进取之路将由此开始......
************************************************************
*郑重声明:本系列及后续升级版权为本人所有,限于学习交流使用*
* ——徐贵军 *
* 2007-12-17 *
************************************************************


目前本系列版本如下1~5:

-----------------------------------------------------------------------------------------------------------------------
系列1/5 高校毕业生管理与分析系统[后台]VC++版

VC++2005(MFC) + Access

该版2006年春开始写,基于中国国家图书馆开发时的部分经验;

该版主要技术点:

(0)MFC框架机制
(1)使用Outlook风格导航,将任何一个对话框装入左边导航之中,这里在对话框的设计上有微妙的技巧,否则根本不会与导航合为一体
(2)调用MFC提供的打印机制打印对话框甚至任何数据;
(3)MFC指针互调
(4)数据库的访问用更加简洁的方式;
数据库最初用SQL Server2000,现改为Access
/*[注意]
这里虽然都是采用ODBC,但是同样的SQL在SQL Server上正常,但是Access未必可以,例如(有待继续验证):
1)select class.specialty_id as specialty_id,class.name as name from specialty,class where specialty.id=class.specialty_id order by name
在SQL Server是可以的,但是在Access中要求
select class.specialty_id as specialty_id,class.name as name from specialty,class where specialty.id=class.specialty_id order by class.name
2)number在Access中说可能为关键字,表中有字段名为number,SQL将无法访问,而SQL Server上却可以
*/
(5)多态树及其他控件的使用方式,尤其是ComboBox、TreeCtrl、ListCtrl、ListBox之SetItemData/GetItemData方法的使用;
重写了TreeCtrl、ListCtrl,另外动态尺寸各控件,分别参见文件夹TreeCtrl、SortListCtrl、Dynamic-size-controls;
pinoutbar为左边导航组件源代码

(6)将EditCtrl控件嵌入工具栏中(这个在JAVA中很容易实现,但是VC++却不易)
注意年份的变化是如何传到各个模块界面上的


/*发布运行

只要配置数据源:graduate,程序即可正常运行(如果自动注册DSN将使启动明显变慢);
测试数据:主界面年份2008->计算机系->应用技术专业-05-1
*/

另外细节见程序中的注释

----------------------------------------------------------------------------------------------------------------------
系列2/5 高校毕业生管理与分析系统[后台]JAVA(Swing)版


NetBeans6.0 +Access

(1)该版基本就是VC++版的翻版(项目结构、类名、界面基本对应相同),是照着VC++版用JAVA写的而已,
虽然极力寻求一模一样,但是左边的Outlook风格导航无法一模一样实现;
(2)和VC++版用同一个数据库,现改为Access,但不用创建数据源(DSN),直接连;
/*[注意]
Oracle/MySQL/SQL Server都有专门jar包JDBC驱动,而Access没有,所以都用JDBC-ODBC连,一般采用手工创建数据源,这里不用,直接连,
但这种连接方式只适合Java Application Project,并不适合 Java Web Project(它可以采用另一种方式(即先取类路径)直接连Access,但是我不建议
使用,我那样使用在数据同步上好象出了问题(至少我目前是这样),如果你非用Access,那就手工创建DSN,我建议用Oracle/MySQL)
*/

(3)使用接口实现Frame1向各JPanel的传递
(4)左边树型控件的填充是读研时写的,特别适合导航数据的加载
(5)采用新的布局管理器GroupLayout
(6)使用集合框架,泛型/自动装箱

(7)侧重各Swing组件使用、JDBC访问数据库


/*有时间将用JDK1.6+Eclipse3.3+Designer_v6.5.1_for_Eclipse3.3重写*/

/*发布运行
将dist目录复制到有JVM的机器的任何位置都可正常运行
测试数据:主界面年份2008->计算机系->应用技术专业-05-1
*/

另外细节见程序中的注释


----------------------------------------------------------------------------------------------------------------------
/*探讨:1/5-2/5部分功能可进一步封装,但是过分封装不利于对基本功的训练,一开始不要过分追求技巧与捷径,没有一定的工作量是练不出来的*/
----------------------------------------------------------------------------------------------------------------------
系列3/5 高校毕业生管理与分析系统[...]Java Web版

/*本版即Struts1.2框架(目前一些大公司的Struts培训都是基于该版本,未来的市场主导为Struts2系列,但框架理念是永恒的)
原理的实现,总的一个Servlet控制器通过类工厂(单例模式)获得Action实例->DAO->dto,并集成AJAX技术*/

[开发工具]JDK6+Eclipse3.3+MyEclipse6+Tomcat6
本版为MVC架构,技术体系为:
html+css+javascript+xml+AJAX+jsp+servlet+javabean+Oracle
/*
html:页面标签
css:样式表
javascript:客户端表单验证、解析AJAX返回的xml
xml:web.xml,AJAX的响应数据格式
AJAX:与后台异步交互,实现页面无刷新
jsp:表现层(数据将被封装成javabean或list放在request/session中传入jsp,注意不要在jsp中生成数据,因为......)
servlet:与Action一起构成控制层
javabean:数据传输对象
Oracle:后台数据库
*/

(0)现在正规的Web项目一般都使用框架,所以必须进入

(1)应用程序框架:框架结构是一个可重用的,大致完成的应用程序。可以通过对其进行定制来生成一个客户需要的真正应用程序[Johnson]。和人一样,应用程序之间的相似性远远多于它们之间的差异性。

框架结构提供给程序员一系列的骨干模块。这些模块都有着如下的特性:
1)它们都是被证明可以和其他应用程序一起很好的工作;
2)它们可以立即在下一个项目中被使用;
3)它们可以被同一个组织中的其他团队所使用。

(2)作为总控制器,servlet的大部分工作是调用其他对象(这里为Action,这些Action对象由工厂管理)。我们在servlet调用的对象中实现代码,而不是在servlet中。许多其他框架(如Struts2)也是这样做的。实际上,这被认为是一个正式的设计模式—控制反转(inversion of control,IoC—Spring本身就是一个IoC容器)。

----------------------------------------------------------------------------------------------------------------------
系列4/5 高校毕业生管理与分析系统[...]Java EE版


[开发工具]JDK6+Eclipse3.3+MyEclipse6+Tomcat6  Linux(fc7)

本版为MVC架构,技术体系为:
Struts2(AJAX)+Spring+Hibernate+Oracle/MySQL

----------------------------------------------------------------------------------------------------------------------
系列5/5 高校毕业生管理与分析系统[...]

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值