开发活动中对人员、产品、过程和项目进行分析和管理使软件项目能够按照预定的成本、进度、质量顺利完成。
以往的图形化的程序设计都是用事件驱动的用户图形界面来组织一般在大型的图形化程序中数据通常对应着多种处理与表示方式将指定的软件界面完全绑定于应用程序功能之中严重降低了程序的灵活性和可维护性直接后果就是程序的显示代码、数据处理与部分程序功能完全混乱地掺杂在一起。
即使是一个很小的变动也将会牵涉到大量的代码改动大大的增加了代码维护与开发的工作量。
在通常情况下现实中的web开发应用1是由多个开发人员或团体共同完成的每一个项目根据各自的不同的任务、采用各自不同的开发语言及采用各自的技术方法进行开发而共同完成。
由于缺乏应有的规范使得在目前的大多数实际项目开发过程之中各部分开发人员之间出现相互影响、缺少交流而导致互相制约直接导致了开发成本的直线上升。
软件开发人员迫切需要工程化的Web开发方法和新的对基于Web的系统和应用的开发、部署及评估的方法和工具。
MVC开发模式正是由此被提出由控制器进行流程控制凭借其特有的显示和模型相互分离等优点使系统开发变得灵活大大提高了设计开发的可重用性。
通过上述的分析我们在应用MVC开发模式进行Web应用系统的设计与开发显现出广泛的应用价值和非常重要的现实意义。
本文在对.NET等平台下优秀的 MVC框架进行详细的研究分析后利用其中的基本原理构建了PHP版的MVC开发框架并用于现实开发项目中。
1.2 发展现状 1. MVC开发模式的发展现状 目前使用最广泛、最具有代表性的两大类分别是SUN等公司提出的J2EE平台和Microsoft公司提出的NET平台可以实现企业级应用。
下面是对这两种技术作简单介绍并给出比较。
一、NET 第1章 绪 论 2ASP.NET2 1.x中应用了CodeBehind技术终结了传统ASP程序开发中HTML界面元素与程序逻辑混杂在一起的恶梦。
CodeBehind技术将程序界面View的.aspx文件与逻辑Controller代码.vb/.cs文件的分离即是一种MVC式的设计。
ASP.NET 2.0后又提出了CodeBeside技术一个.aspx文件可以有多个.vb/.cs文件这又方便了界面与逻辑代码的进一步分离加强了程序的灵活性。
微软于2008年3月正式发布了针对ASP.NET 3.5 的MVC框架 - Preview 2 版本 。
这是一个真正意义上的ASP.NET MVC框架。
该框架是对之前为开发人员所熟悉的基于Web Form3的应用程序开发方式的一次quot革命quot。
提出了以下技术 1. URL Routing技术Web程序的URL不再是指向具体的.aspx页面而是指向某个Controller的具体方法。
典型的MVC架构的程序其URL可能如下所示 http://www.yoursite.com/Customer/Method 使用该MVC架构的程序其URL不必有文件扩展名。
URL中的Customer即为Controller的名字。
而Method是Customer定义的一个方法名。
2. Web程序的界面.aspx不再使用服务器端的Form: ltasp: form runatquotserverquotgtlt/formgt 与服务器端的Form相关的Postback和页面生命周期的事件也不在存在。
3. 页面中不再有View State。
MVC下将不使用View State来存储程序状态信息。
4. 不再提供依赖于服务器端Form的服务器控件事件象Button_Clicked这样的事件在MVC下将不再被需要。
二、J2EE J2EE4是Sun 现已归入Oracle公司 等公司推出的一种企业级JAVA程序开发框架构建于Java 2标准版本平台上提供与J2SE标准版相同的特色和优点。
J2EE支持环境异构 J2EE开发的程序具有跨平台特性可跨平台移植不依赖于特定的操作系统。
它同时也是一种技术规范定义了标准的应用开发体系结构和环境部署为开发人员提供了一个开发标准工作平台。
提供了多层的分布式组件应用模型、灵活、重用的事务控制以及一致的安全模型设计出一个基于组件的方法用来设计、部署、装配及开发企业应用程序。
J2EE的核心技术有Servlet
JSP JDBC等。
从J2EE 14开始定义了在J2EE应用程序中服务器中如何支持Web服务又增加的Web Services for J2EE的规范。
使开发的应用程序在不同应用服务器之间保持良好的可移植性。
通过统一开发平台技术构成的体系框架和J2EE容器能够满足需要高可靠性而又没有太多费用、高可用性以及可扩展性第1章 绪 论 3应用的需求5。
对现有应用程序集成提供了强有力的支持降低了开发多层应用的费用和复杂度具有良好的部署应用打包和向导支持添加目录支持增强安全机制等功能。
Java开发Web Application有几种符合MVC设计模式的开发方式22。
1: JspJavaBeanControllerJavaBeanEJBModel 2: JspServletJavaBeanEJB 3: Xsp 4: JspStrutsJavaBeanEJB 5: TDKTurbineVelocity... 2. ORM发展现状 目前国内外流行的ORM产品有很多种5有商业性的也有开发源代码的。
下面是一些当下应用比较广泛的ORM产品。
TopLink TopLink性能优异而且功能强大对关系的查询和处理都非常有效并且提供独特的过滤查询机制 TopLink逐渐从商用化关系对象映射工具中胜出成为领先的ORM工具。
早期是面向c平台的ORM产品后来也实现了Java的版本。
以下为TopLink的往数据库中写一个对象代码。
UnitOfWork uow uow sessionacquireUnitOfWork Course coursel CourseunitOfWork.registerObjectcoursel unitOfWork.commit SimpleORM 作为一个ORM它显得非常简单的轻量级。
在JDBC之上形成的低开销低代价的ORM实现。
它不需要配置文件。
没有预处理也没有后处理采用了最小的反射。
网址httpwwwsimpleormorg Vanatec OpenAccess 商业化的基于Net平台的ORM产品。
网址httpwwwvanateccomen Hibernate 第1章 绪 论 4Hibernate是一个基于Java的关系对象映射框架。
Hibernate使开发人员像开发通常的Java程序一样开发持久类。
这些类可以使用多态缀合关联 Java集合等框架。
提供了一个HibemateQueryLanguage简称HQL被设计为最小的SQL的面向对象扩展在关系和对象间搭建了一个优雅的桥。
同时也没有放弃对原生SQL的支持。
网址httpwwwhibernateorg Nhibernate NHibemate是Hibernate面向NET框架平台的产品。
提供一个XML的配置文件处理一个NET对象与潜在的关系型数据库的一致。
NHibernate会自动生成SOL语句用来读取或者存储对象。
支持透明的持久你的对象类不需要按照一个限制性模式编写。
持久类继承特定的类或实现任何接口。
使得设计业务逻辑使用纯粹的.NET对象成为可能。
网址httpwwwhibemateorg343html 1.3 主要研究内容 本文根据软件开发的多个知识域设计了一个基于MVC开发模式和部分实现ORM技术实现对象的持久化存储的PHP开发框架。
本文的主要研究的工作和创新性成果包括 1深入学习和探讨了目前流行的几种软件开发技术J2EE、NET和开发框架以及设计模式MVC、CS、BS的优势和不足遵从MVC模式设计并实现显示、控制和业务逻辑相分离4。
2通过在PHP中实体类中为属性赋初值以JSON对象字符串的方式工来实现类似于Hibernate中的映射的过程。
实现php的对象持久化存储。
第2章MVC模式和ORM技术介绍 5第2章MVC模式和ORM技术介绍 2.1 MVC设计模式 MVC6即英文Model、View、Controller的缩写即将一个应用程序的表示层以View、Model、Controller的方式进行剥离。
在SmaUtalk-80中模型视图控制器ModelViewController三元组MVC 用于构建用户界面。
其中模型、视图、控制器各自担负不同的任务。
模型Model对应为应用对象视图View则是要在屏幕上的显示控制器Controller定义用户界面对用户输入面产生的不同的响应。
不使用MVC用户界面设计往往将这些对象混在一起而MVC的核心主要是将系统分成三个部分7模型Model、视图View、控制器Controlle。
从而实现三层甚至多层的松散耦合。
模型所有应用系统持久状态的数据都应该保存于模型对象之中。
当模型状态发生变化模型会通报给视图。
模型被控制器访问用.