前面的文章讲解了技术细节,这一篇来了解一下这个框架的制作前后,经历的一些思考。代码只对部分需要的朋友有用,重要的是经历和思路。前后花了3个月的时间,完成了这个基础的ASP.NET页面框架。

功能导航

来看一个整体的效果图,围绕这个图,看图说话,看看各个部分是如何完成的。

ERP系统功能多,如何设计一个简洁的界面,承载它的功能导航,一努力追求的目标。这里的菜单均是用菜单设计器设计出来,代码中只是读出来,并呈现成树结构。一段时间曾把它分离到X_Menu表中,后来又合并代码,直接读取框架的菜单表,这样达到B/S与C/S的统一。虽然不可能同时有两种实现,但以此为技术追求,寻求好的实现方法。

同步对比一下,C/S程序上的实体,和上面的界面模式几乎相同。

来看一个具体菜单项System Administration的界面模式,它如下图所示

左边的树节点,右边展示了它下面的功能类型,这个部分的设计,以菜单设计器设计它,先是功能类别,再为具体功能。

数据库

SQL Server是首选的数据库平台。其次,SQL Server有许多版本,高版本的可读取低版本的数据文件,但是一旦附加进入后,低版本的SQL Server再也无法读取这个文件。一开始以SQL Server 2008 R2开发,后来意识到要兼容于客户方面的的选择,果断把所有数据都迁移到SQL Server 2005中。版本信息是

SELECT @@VERSION
Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)   Nov 24 2008 13:01:59   Copyright (c) 1988-2005 Microsoft Corporation  Express Edition with Advanced Services on Windows NT 6.1 (Build 7601: Service Pack 1) 

一个主数据库Framework,业务数据库为TS。请先配置数据库的主从关系,设定TS的数据库属性。

框架会为你做很多基础的工作,这个简单的配置,可以减少很多基础的重复的工作量。

应用程序结构

首选为插件式结构。框架只关注于自己的基础数据读写,当遇到具体业务数据时,以反射方式交给业务类型去执行。

每个应用分四层,界面层Presentation,接口层IService,接口实现层Manager,业务实体层Businss Logic。

业务逻辑层为LLBL Gen生成,接口层和实现层由Code Smith生成,界面则根据应用布局,并绑定数据属性。

ExtAspNet控件进行了部分定制,修改了少量源码以满足框架的应用需要。原计划是以它为基础进行Extension的,后来发现这样增加了测试的时间,也不利于修改维护,于是直接修改源码。这样带来的问题是当ExtAspNet控件有新版本时,需要手工合并代码。选择Beyond Compare对比两个版本的文件夹,有差异的地方用不同的颜色区分,打开一个文件后,合并到另一边,保存即可。

数据操作模式

有五种数据操作模式

1 单一实体表 例子比如上面提到的Company.aspx页面

2 主从表 比如销售单,有主表销售单表头和销售单明细表

有表头和表明细,一对多的关系。

3 List列表 比如要对一个或多个表进行查询,显示到一个页面中

4 Lookup 查找 用于数据选择  数据查询

5 Query 自定义查询 用户自定义查询转化为页面功能

与List相似,只不过这是由查询设计器设计出来的,List由程序编码完成。

在数据操作模式一节中,这个问题还要详细讨论,它对数据读写影响很大。

下载地址: http://files.cnblogs.com/files/JamesLi2015/EnterpriseSolutionWebSource.rar

转载于:https://www.cnblogs.com/JamesLi2015/archive/2012/10/09/2716089.html

ASP.NET Web开发框架之八 所有ERP部分的源代码全部开放下载相关推荐

  1. asp.net web开发框架_Web前端开发必不可少的9个开源框架

    大多数人想到Web开发时,通常会想到HTML或JavaScript,往往忽略了CSS,根据Wikipedia的说法,CSS既是网页中最重要也是最常被遗忘的部分之一,尽管它是万维网的三大基础技术之一. ...

  2. asp.net web开发框架_百小僧:拥抱.NET 5,从这个极速开发Web应用框架开始,Fur开源了!...

    今年年初,微软 .NET 程序管理总监 Scott 在博客中表示,发布 .NET 5 的首个预览版,并提供SDK 和运行库下载.Scott 表示,.NET 5 是 .NET Framework 和 . ...

  3. ASP.NET Web开发框架之七 开发流程与模式

    经过前面六篇文章的讲解,基本的理论已经介绍完毕,这一篇进行实战练习,讨论如何从头开始开发一个完整的ASP.NET 页面,并进行数据读写,业务逻辑设定. 1 设计数据库表 Table Design 公司 ...

  4. asp.net web开发框架_用Python开发一个Web框架

    一.Web框架 首先我们今天要做的事是开发一个Web框架.可能听到这你就会想.是不是很难啊?这东西自己能写出来? 如果你有这种疑惑的话,那就继续看下去吧.相信看完今天的内容你也能写出一个自己的Web框 ...

  5. asp.net web开发框架_Python之Web开发框架学习 发送电子邮件

    Django带有易于使用的轻型引擎来发送电子邮件.与Python类似,您只需要导入smtplib.在Django中,您只需要导入django.core.mail.要开始发送电子邮件,请编辑您的项目se ...

  6. asp.net web快速开发mvc网站框架源码

    标签:asp.net web开发框架,.net快速开发框架 ,.net mvc框架,网站源码 如何使用.net快速搭建自己的网站开发平台呢?我们可以使用三层架构配合MVC开发模式搭建. 模块包括BLL ...

  7. 使用ASP.NET Web API和Handlebars的Web模板

    目录 介绍 目标听众 期待什么 示例代码概述 总览 Handlebars和模板 使用代码 起步 第1步 从GitHub下载 介绍 Web应用程序的开发趋势不时发生变化.几年前我们用来构建的应用程序体系 ...

  8. ASP.NET企业开发框架IsLine FrameWork系列之八--AppLogProvider日志框架(下)

    ASP.NET企业开发框架IsLine FrameWork系列之八--AppLogProvider日志框架(下) 接上文 上面的配置实例是按照将日志写入文本文件来配置的(节点具体含义见上文),程序调用 ...

  9. 基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计

    基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计 整个Framework结构如下: Framework.Common - 常用组件(Design By Cont ...

最新文章

  1. img下面的png图片 vs 读不出来_VUX中XImg组件加载图片不正确,BusPlugin不好使,求解...
  2. 各类操作系统的TTL字段值
  3. hive 配置参数说明
  4. 浅谈构建 apache 2 虚拟主机[zt]
  5. github服务器停止响应,如何解决“git pull,致命:无法访问'https://github.com ... \':服务器空回复”...
  6. Gradle技巧–显示buildscript依赖项
  7. 主流硬盘接口有哪些?
  8. 如何减小Exe, DLL 的大小
  9. GridBagLayout
  10. 二分查找(java代码实现)
  11. 用C语言实现正则表达式匹配器
  12. 采用gfzrnx软件进行RINEX批量格式转换(rinex3到rinex2,rinex2到rinex3)
  13. IPv6知识概述 - IPv6地址
  14. 纯CSS实现多行文本溢出显示省略号(兼容不同浏览器)
  15. ICCV 2019 Vehicle Re-identification with Viewpoint-aware Metric Learning
  16. js 页面跳转方法 当前页与新增页面
  17. PHPstudy小白起步
  18. 苹果首席设计师艾维将离职开办新公司 还会开发苹果产品
  19. outlook通过联系人搜索不到邮件
  20. 第十六届北京师范大学程序设计竞赛决赛

热门文章

  1. Linux安装Typora
  2. python pdb调试多进程_Python使用pdb进行调试
  3. android常见的面试题,Android常见笔试面试题
  4. 伺服电机常用参数设置_安川伺服电机参数基本调整..doc
  5. python列表去括号_python的常用序列
  6. 加拿大上市矿企Bitfarms完成第二笔1500万美元普通股私人认购
  7. 风控趋势|隐私计算几大落地场景与三方数据市场
  8. 手把手系列|实操市场风险Var
  9. 十五天数据分析-笔记
  10. ASP禁止刷新当前页