我决定从今日(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 高校毕业生管理与分析系统[...]
- 描述: /*系列1/5->VC++版主界面*/
- 大小: 1.1 MB
- 描述: /*系列2/5 JAVA(Swing)版主界面*/
- 大小: 1.4 MB
- 描述: /*系列3/5 Java Web版+系列4/5 Java EE版主界面*/
- 大小: 11.6 KB
分享到:
相关推荐
在大型软件项目实训报告中,通常会涵盖一系列与软件工程相关的知识领域,这些知识对于理解和实践软件开发至关重要。以下是对这些关键领域的详细说明: 一、软件项目管理 软件项目管理是整个实训的核心,包括需求...
实训项目往往围绕Java技术栈展开,如使用Spring、Hibernate和Struts(SSH)等框架进行Web应用开发,这些框架能够简化Java开发过程,提高开发效率。 ### 远程实验室管理系统 本次实训项目为“远程实验室管理系统”...
在本“前端网页工程师项目实训教程(一)-在线商城的源代码”中,我们将深入学习如何构建一个功能丰富的在线商城的静态页面。这个项目主要涉及HTML、CSS、JavaScript和jQuery这四个关键技术,它们共同构成了现代网页...
报告涵盖了实训的目的、时间、地点,以及一系列关键的软件测试理论和实践内容。 一、实训目的 本次实训的主要目标是让学员熟悉软件测试的基本概念,包括手动测试和自动化测试,以及成为合格软件测试工程师所需的...
本实训报告将详细介绍在Java环境下开发图书管理系统的全过程,旨在提升对Java编程语言的理解和应用能力,同时掌握软件工程的基本流程。通过本次实训,我们将学习到以下关键知识点: 1. **Java基础**:Java是一种跨...
在"C#程序设计实训项目1.0"中,...总的来说,C#程序设计实训项目1.0的第一步——界面设计,涵盖了基础的Windows Forms界面搭建、控件使用、事件处理和设计原则等多方面内容,是学习C#编程和软件开发的重要实践环节。
设备管理系统是许多大学毕业生在完成学业时经常选择的项目实训课题,主要目的是通过实际操作来提升学生的编程技能和软件工程实践能力。这个源码项目基于Java语言开发,涵盖了系统设计、编码、测试等多个环节,是学习...
【JSP项目实训指导书--新闻频道系统】实训旨在让学生深入理解和掌握JSP程序设计以及数据库技术,通过实际操作开发一个新闻类网站,提升学生的WEB应用程序开发能力,增强团队协作和项目管理技巧。 1. **实训目的与...
这份"软件测试实训试题+答案"集合提供了一次深入学习和自我评估的机会,特别适合正在学习或从事软件测试的人士。下面,我们将详细探讨软件测试的相关知识点。 1. 软件测试基础: - 定义:软件测试是为了发现程序中...
- **Mentoring项目**:中大型项目,强调学生的自主性,实训工程师则扮演需求提供者和技术顾问的角色。 - **教学特点**:这种基于项目的教学模式注重理论与实践相结合,有助于提高学生的综合能力,特别是实际项目...
- **工程实训项目**:东软网络教学平台,实际操作大型项目,提升项目管理和技术应用能力。 2. **嵌入式软件工程师师资培训**: - **基础课程**:学习C语言程序设计,嵌入式导论,以及基于ARM的开发课程,包括...
实训结束后,学员有望胜任Java开发工程师、软件实施工程师、前端开发工程师、数据库工程师和测试工程师等职位。 实训采用真人教学而非视频教学,教学理念基于“产业融入教育”,将真实产业项目转化为教学案例和实训...
Java移动互联网工程师实训方案主要针对的是那些希望进入IT行业,特别是对移动互联网应用开发感兴趣的学员。这个实训项目是由安博志远实训基地根据多年的就业反馈和企业调研,结合丰富的IT培训经验,为解决大学生就业...
《Vue.js前端框架技术与实战》是一门针对计算机及相关专业的必修或选修课程,旨在教授学生Vue.js这一流行的前端框架。课程分为理论和实践两部分,共计64学时,其中48学时为理论教学,16学时为上机实践。这门课程不仅...
《北京翰子昂教育070125实训工程师培训》是针对IT行业专业人士的一套全面的培训资源,包括案例分析、课程教材、PPT演示文稿、实践项目以及源代码。这套培训材料旨在提升工程师的技术能力和实战经验,涵盖了多个IT...
2. Java注释类型:Java语言提供了三种注释方式,分别是单行注释(//),多行注释(/***/),以及文档注释(/***/),用于说明代码的作用和编写API文档。 3. 数据类型:Java中的char类型占用两个字节,用于表示...
《青岛软件园C#实训教程(WinForm)》是由知名工程师刘金刚精心编撰的一份C#编程语言的入门及进阶教程。本教程主要针对WinForm应用开发,旨在为初学者提供一个全面且深入的学习路径,同时也适合有一定基础的开发者进行...