当一份web报表项目压缩包躺在我的文件夹里时,我是完全懵的。作为一个学习了一个月java的asp.net小白,以前从来没有接触过这方面,我完全不知道从何入手。

手里也有asp.net开发学习视频,但都因为懒没看。网上搜集了很多资料,得知这种web报表一般是由三层物理架构组成。(以下内容均是以我手中项目为主角)

物理层                                                                       逻辑层

显示层:呈现给用户的界面                                         UI

逻辑层:后台数据控制与传递                                     BLL+DAL

数据层:获取、更改数据库数据                                 DBHelper

数据层

出于对数据库有一定的了解,于是先从数据层入手。发现数据层web.DBHelper有用到两个数据库,因为这里面有两个cs文件OracleHelper.cs和SQLHelper.cs,用的vs2010打开,因学过一些java,所以.cs这类代码基本看的懂。这两个文件里面都有很多的函数重载,知道他是用来接收sql语句、排序、其他一些不清楚干嘛的参数,去数据库抓取或更改资料。

逻辑层

清楚了DBHelper,于是看到逻辑层,发现逻辑层分为了两个部分,分别是业务逻辑层(BLL)和数据访问层(DAL):

业务逻辑层(BLL)中看到一些表字段的身影,便知道这是在整合QBE条件,以及排序,将结果传递到数据访问层(DAL)。

数据访问层(DAL)中写满了方法,这些方法中写上了sql语句,然后将传到数据层。类似于:return new OracleHelper.GetDataByPage(..........);

这里不知道可不可以将两个内容写在一起,不明白这样分开写的用意。

显示层

显示层着实花费了精力去消化,因为不懂xml、aspx、js、css、html。这个项目中一个个的.aspx叫做页面,而.aspx包含的.aspx.cs叫做页面代码。页面用来在网页上显示内容,而代码则控制页面上的功能;js则是脚本文件,但具体不知道怎么用;css则是样式表,控制着网页中内容的显示样式。(其中.aspx.cs将提交的页面内容,传给业务逻辑层(BLL));在项目中运用到的母版页(master)、控件Ext,查询结合理解:在控件Ext的基础上使用master结合.aspx内容页。

这部分技术尚欠,皮毛都不及,以后在谈。

asp.net报表结构学习记录的更多相关文章

  1. ASP.Net Mvc 5 学习记录2015-9-9

    我之前一直都是学习和开发都采用ASP.Net WebForm,对MVC的一直都是一知半解,最初以为ASP.Net WebForm的N层架构就是MVC.其实N层架构设计思想是"高内聚,低耦合& ...

  2. asp.net identity的学习记录

    # identity数据库 ## 创建空数据库 交给ef管理 ### 添加asp.net identity包 ``` Install-Package Microsoft.AspNet.Identity ...

  3. asp.net Code CSRedis学习记录

    1.安装Redis for windows 安装地址 https://github.com/MicrosoftArchive/redis/releases Redis 是完全开源免费的,遵守BSD协议 ...

  4. ElasticSearch 学习记录之如任何设计可扩容的索引结构

    扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引 ...

  5. ElasticSearch 学习记录之父子结构的查询

    父子结构 父亲type属性查询子type 的类型 父子结构的查询,可以通过父亲类型的字段,查询出子类型的索引信息 POST /product/_search { "query": ...

  6. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  7. ASP.NET MVC基础学习

    ASP.NET MVC基础学习 传统的MVC概念 模型:组类,描述了要处理的数据以及修改和操作数据的业务规则 视图:定义应用程序用户界面的显示方式 控制器:一组类,用来处理来自用户,整个应用程序流以及 ...

  8. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  9. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

随机推荐

  1. PHP zip_entry_filesize() 函数

    定义和用法 The zip_entry_filesize() 函数返回 zip 档案项目的原始文件尺寸(在压缩之前).高佣联盟 www.cgewang.com 语法 zip_entry_filesiz ...

  2. CF R 632 div2 1333F Kate and imperfection

    赛后看了半天题 才把题目看懂 英语水平极差. 意思:定义一个集合S的权值为max{gcd(a,b)};且\(a\neq b\) 这个集合可以从1~n中选出一些数字 求出当集合大小为k时的最小价值. 无 ...

  3. luoguP2154 [SDOI2009]虔诚的墓主人

    SDOI2009虔诚的墓主人 喜闻乐见,我终于把此题读懂了..所以可以写了. 其实就是让我们求有多少个十字架 一个十字架的定义为中间有一个空地 周围4个正方向都有k棵树. 不难想到nm的暴力 我们预处 ...

  4. win10 安装tensorflow2.0 GPU版本遇到的坑

          背景:我的机器上tensorflow 1.14 & 2.0,这俩版本都有,之前都是用1.14版本,今天试一下2.0尝尝鲜, 结果就掉坑去了 把CUDA10.1 和 cudnn 安装 ...

  5. RxJS 中的观察者和迭代器模式

    目录 前言 观察者模式 迭代器模式 RxJS 中两种模式的结合和实现 小结 参考 1. 前言 RxJS 是一个库,它通过使用observable(可观察对象)序列来编写异步和基于事件的程序.其结合了观 ...

  6. 006_go语言中的if else条件语句

    代码演示 package main import "fmt" func main() { if 7%2 == 0 { fmt.Println("7 is even&quo ...

  7. Python-关于正则表达式的总结

    什么是正则表达式? 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),用于字符串的 匹配 和 提取 等操作.正则表达式在所有编程语言中都是通用的. 很多人 ...

  8. Redis服务之Redis Cluster

    在上一篇博客中我们聊到了redis的高可用组件sentinel的相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13429776.html:sentin ...

  9. spring boot-controller中的一个方法获取其他方法返回的值

    @RequestMapping("/test") public String getData() { return "redirect:/other";} re ...

  10. java List接口一

    一 List接口概述 查阅API,看List的介绍.有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的 插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置) ...