asp.net报表结构学习记录
当一份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报表结构学习记录的更多相关文章
- ASP.Net Mvc 5 学习记录2015-9-9
我之前一直都是学习和开发都采用ASP.Net WebForm,对MVC的一直都是一知半解,最初以为ASP.Net WebForm的N层架构就是MVC.其实N层架构设计思想是"高内聚,低耦合& ...
- asp.net identity的学习记录
# identity数据库 ## 创建空数据库 交给ef管理 ### 添加asp.net identity包 ``` Install-Package Microsoft.AspNet.Identity ...
- asp.net Code CSRedis学习记录
1.安装Redis for windows 安装地址 https://github.com/MicrosoftArchive/redis/releases Redis 是完全开源免费的,遵守BSD协议 ...
- ElasticSearch 学习记录之如任何设计可扩容的索引结构
扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引 ...
- ElasticSearch 学习记录之父子结构的查询
父子结构 父亲type属性查询子type 的类型 父子结构的查询,可以通过父亲类型的字段,查询出子类型的索引信息 POST /product/_search { "query": ...
- ASP.NETCore学习记录(一)
ASP.NETCore学习记录(一) asp.net core介绍 Startup.cs ConfigureServices Configure 0. ASP.NETCore 介绍 ASP.N ...
- ASP.NET MVC基础学习
ASP.NET MVC基础学习 传统的MVC概念 模型:组类,描述了要处理的数据以及修改和操作数据的业务规则 视图:定义应用程序用户界面的显示方式 控制器:一组类,用来处理来自用户,整个应用程序流以及 ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
随机推荐
- map 函数基本写法
map(需要对对象使用的函数,要操作的对象) 函数可以是自定义的,也可以是内置函数的,或者 lambda 匿名函数 操作的对象多为 可迭代对象可以是函数名的列表集合 2020-05-04
- 程序人生丨听说程序员是相当就能当的?BAT大牛当场就不乐意了!
有一种对软件开发者的偏见是:他们都是无趣的极客,是学校里的数学天才,每天都要在计算机屏幕前花费多个小时去写代码. 没错,开发者确实会在计算机屏幕前花费多个小时去写代码.但是,每天的工作中还有很多比写代 ...
- ERROR 1054 (42S22): Unknown column 'password' in 'field list'
解决: update MySQL.user set authentication_string=password('123456') where user='root'; FLUSH PRIVILEG ...
- TearmQuery()
lucene 中的 TearmQuery() 在.search( tearmQuery, q)查询时 比较矫情 q只能是小写
- ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等)
可以写一个nssring的category 给nsstring 增加一些方法,而这些方法就是一些正则表达式. 比如写一个叫做Helper的类 创建完了就是 NSString+Helper 然后在进行 ...
- H5移动端手势密码组件
项目简介 最近参加了2017年360前端星计划,完成了一个有趣的UI组件开发大作业,借机和大家分享一下移动端开发的技术啦~~ 本项目采用原生JS和Canvas实现移动端手势密码组件,支持手势密码设置和 ...
- Android 的Fragment组件(写完放假。。。)
今天写的有点晚,做个题目有点慢,然后搞其他事搞定就到了0点,总结下就差不多该睡了. 今天学长讲的是Fragment: 一个可以将activity拆分成几个完全独立封装的可重用的组件,每个组件有自己的生 ...
- spring boot中集成Redis
1 pom.xml文件中添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <arti ...
- 【av68676164(p25-p30)】同步和P-V操作
4.5 同步和P-V操作 4.5.1 同步和互斥的概念 进程的互斥关系 例子 进程的互斥关系 多个进程由于共享了独占性资源,必须协调个进程对资源的存取顺序:确保没有两个或以上的进程同时进行存取操作. ...
- 使用cors完成跨域请求处理
跨域的含义 同源策略以及其限制内容 同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS.CSFR等攻击.所谓同源是指"协议+域名+端口&quo ...