`
jonyzhu
  • 浏览: 3597 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

基于分层的.NET Web软件快速开发

阅读更多
Web软件一般被从物理结构上分为3层:
  • 数据层,含数据库引擎及其操作代码,存取数据的地方。
  • 应用层,含Web应用服务程序(IIS、Apache),响应浏览器请求、执行Web程序。
  • 表现层,用户最后看到的网页。

当然,如果你把数据库和应用服务安装在一台电脑上,然后在这台电脑上面用localhost访问,也是可以的 

开发Web软件,主要是通过设计、编码、测试来实现这3层的功能。

设计、实现的方法很多。但是,我要的,是一种最快速的实现方法:
  • 层与层之间的设计、开发不能脱节,一气呵成
  • 很容易修改,不要那种加了一个字段就得从数据库、实体、DAO、Business(还有用Facade的)、ASP.NET Form一路改过来的
  • 真的让我只用关注“业务”就可以了


因为第2、第3个要求都是希望能够在开发中有一个可以“盯住”的基准。所以,首先要找到的,就是:以什么为基准?

基准的选择,大概有2种:
  • 对象驱动
  • 数据驱动


选择对象驱动,对于快速Web开发,似乎不合适。
你可以说,做一个Order类来处理所有的订单,并且和Customer、Product类来聚合实现业务要求。但是,你无法写出:
// 生成订单
Order order = new Order(customer,product,qty);
// 请用户确认订单
if(order.Confirm()){
  // 如果用户确认了订单,那么保存订单
  order.Save();
}
// 无论用户是否确认订单,都在界面上显示订单的内容供进一步操作
order.Show();  

(随别写的,可能编译不了: )

为什么?
因为分层。订单对象不能在客户端执行,服务器也不会等客户端确认了再往下运行后面的代码。
所以,如果做订单,一般得有操作订单数据库的类(对象)、对订单进行业务处理的类(对象)、显示订单内容的Form类(对象),来分别在各自的物理层上完成一个完整的订单功能。

所以,我选择了“数据驱动”。
不知道大家有没有这样的感觉:无论你如何的面向对象,心里始终有个声音在说:“数据库、数据库,表结构!”。至少,我是这样的。
动态Web站点,不能不想着数据库。无论你的类怎么设计,继承也好、聚合也好、范型也好,在内存里面跑完以后,还得存到数据库或者从数据库拿数据。
数据库变了,一切都变了。

想不变?也许可以,ORMapping的工具也许能够帮忙。但是,那个配置太烦了,只是把代码的耦合替换成了XML的耦合。相比之下,我更加喜欢代码的耦合,至少还可以通过开发工具方便的跳转来查找引用

既然一直想着数据库,那么,就盯住数据库好了。

继续之前,先说明一下开发的核心:.netTiers
.netTiers本身的配置相对简单,链接里面的文档说明比较详细了。

但是,仅仅.netTiers是不够的,因为.netTiers只能生成框架,而且是基于数据库来生成框架(要的就是这个效果)。

所以需要一些配套的工具:


关键的工具,就是:PowerDesigner 和 CodeSmith。
现在,我们要做的,就是:
  • 分析清楚业务流程
  • 提取名词、关系、约束,用PowerDesigner设计数据库的表。之所以用PowerDesigner设计表,主要是为了做数据库的版本控制。利用其“Generate Database”的功能可以生成数据库。而且对SQL Server 2000支持很好!设计的时候要注意:表间约束要规范,1个外键1个主键。
  • 生成数据库。
  • 用.netTiers来生成Web软件框架。这需要用到CodeSmith和微软企业库。
  • 用Visual Studio打开生成的框架,编译。
  • 用NUnit测试。
  • 直接用生成好的业务层、数据层、实体层的类来创建对象,开发具体的业务逻辑。

一气呵成!

当数据库需要修改的时候,只要重复以上过程就可以了。.netTiers 一个好用的地方就是:可以跳过一些可能会在生成后被修改的文件,比如web.config。这样,重新生成的时候,就不会担心了。

RoR 里面 scaffold 和这个效果很像,所以我当初很有兴趣的研究了一下。不过,因为缺乏可视化的数据库建模工具,还是又转回 .netTiers 了。
  • 大小: 34.2 KB
0
0
分享到:
评论

相关推荐

    基于.NET技术的管理软件快速开发平台

    【极致业务基础平台(Jeez Business Framework,JBF)】是基于Microsoft .NET开发技术构建的一款高效能的管理软件快速开发平台。JBF的核心设计理念是模型驱动架构,旨在简化和加速业务应用软件的开发、实施和维护,...

    ASP.NET Web应用程序开发新思维(英文版)

    ASP.NET还引入了Web Forms模式,允许开发者使用类似于WinForms的事件驱动编程模型,使得Web开发更加直观。 ASP.NET MVC(Model-View-Controller)是ASP.NET框架的一个重要组成部分,它鼓励使用分层架构,分离关注点...

    ASP.NET Web应用程序开发

    11. **持续集成与持续部署(CI/CD)**:对于现代Web开发,CI/CD是必不可少的实践,如使用Jenkins、GitHub Actions或Azure DevOps来自动化构建、测试和部署过程,确保代码质量并加快交付速度。 综上所述,ASP.NET Web...

    ASP.NET Web开发学习实录_源码

    ASP.NET Web开发是一种微软公司推出的用于构建Web应用程序的框架,它基于.NET Framework,提供了一种高效、可扩展的平台来创建动态网站、Web服务和Web应用程序。本学习实录源码着重介绍了如何利用ASP.NET进行Web开发...

    深入.Net平台软件系统分层开发

    《深入.Net平台软件系统分层开发》项目是一个全面探索基于.NET框架和C#语言的软件系统构建技术的实践性教学案例。在这个项目中,我们将会深入理解如何利用.NET平台的强大功能,采用分层架构来设计和实现高效、可扩展...

    基于的.net的分层架构

    .NET框架提供了强大的支持来实现分层架构,例如,ASP.NET MVC提供了一个灵活的Web应用程序开发框架,而Windows Communication Foundation(WCF)则可以用于服务层间的通信。此外,.NET Core的跨平台特性使得基于.NET...

    ASP.NET web系统

    ASP.NET 是微软公司推出的一种用于构建Web应用程序的开发框架,它基于.NET Framework,为开发者提供了一种高效、易用且功能强大的工具,支持C#和VB.NET等多种编程语言。在ASP.NET中,可以构建B/S(浏览器/服务器)...

    基于asp.net的网上商城系统的设计与实现

    1. ASP.NET框架:ASP.NET是微软推出的Web应用程序开发框架,支持.NET Framework或.NET Core。它提供了丰富的服务器控件、事件驱动模型以及自动页面状态管理,简化了网页开发流程。 2. MVC(Model-View-Controller)...

    基于ASP.NET的人事管理系统

    ASP.NET是由微软公司开发的一种Web应用程序框架,它提供了丰富的功能和工具,使得开发人员可以快速地构建动态、数据驱动的Web应用。 在人事管理系统中,ASP.NET的核心组件包括ASP.NET MVC(Model-View-Controller)...

    基于.net Framework471搭建的WebAPI简单框架配套demo

    内容概要: 通过带着读者手写WebApi框架,了解 WebApi核心原理。...此资源以开发WebApi框架,最基本的DDD领域分层,让初学者对DDD的一个切面有所了解,同时内置了详细的运行说明,只需本地部署数据库即可运行。

    NFine快速开发框架C#源码完全开源版 基于ASP.NET MVC+EF6+Bootstrap框架等

    NFine快速开发框架是一款以C#语言编写的,完全开源的软件开发框架,适用于ASP.NET MVC平台。这个框架集成了Entity Framework 6(EF6)作为数据访问层,利用Bootstrap进行前端界面设计,旨在提高开发效率,降低项目...

    asp.net web 博客系统

    在ASP.NET Web开发中,C#用于编写控制器、模型和视图等组件,以处理用户请求、操作数据库、实现业务逻辑和呈现视图。 博客系统的关键组成部分可能包括以下几个方面: 1. 用户管理:登录、注册、身份验证和授权。这...

    基于XPO的.NET软件开发

    理解并掌握以上知识点,对于基于XPO的.NET软件开发至关重要。通过熟练应用这些概念和技术,开发者可以更高效地构建和维护复杂的数据库驱动的应用程序。同时,不断学习和遵循最佳实践,能够提升开发效率,降低项目...

    参考文档-基于ASP.NET技术的WEB网站开发与设计.zip

    通过深入学习以上知识点,并结合"基于ASP.NET技术的WEB网站开发与设计"的文档,开发者不仅可以掌握ASP.NET的基础,还能进一步提升在Web开发领域的专业技能,构建高效、可维护的Web应用。在实际项目中,还需要结合...

    深入.NET平台的软件系统分层开发7

    在深入.NET平台的软件系统分层开发中,第7章可能着重探讨了如何构建高效、可维护的酒店管理系统。在软件工程中,分层架构是一种常见的设计模式,它将复杂的应用程序分解为多个独立的、职责明确的层,从而提高了代码...

    C# 基于asp.net图书管理系统

    【C# 基于asp.net图书管理系统】是一种基于微软.NET框架开发的Web应用程序,用于高效管理和维护图书馆的各类资源信息。此系统采用C#作为后端编程语言,结合ASP.NET技术,为用户提供友好的界面和强大的功能。下面将...

    ASP.Net web application

    总的来说,ASP.NET Web应用程序是一个强大的开发平台,结合了高效的开发工具、灵活的架构模式和丰富的功能集,是Web开发领域的主流选择之一。通过深入学习和实践,你可以成为一个精通ASP.NET的开发者,构建出高性能...

    基于asp.net的学生管理信息系统

    总结来说,基于ASP.NET的学生管理信息系统是一个综合性的项目,涵盖了Web开发的多个方面,包括前端设计、数据库管理、用户交互、安全性以及系统维护。通过学习和掌握这些知识点,开发者能够构建出高效、稳定且易于...

    ASP.NET 3.5动态网站开发基础教程源文件

    ASP.NET 3.5包含了一些核心组件,如ASP.NET Web Forms、ASP.NET MVC、ASP.NET AJAX以及ASP.NET Web Services,它们各自对应不同的Web开发模式。 1. **ASP.NET Web Forms**:Web Forms是ASP.NET的一个重要组成部分,...

Global site tag (gtag.js) - Google Analytics