asp.net修行入门讨论
突然想起来大学的一个专业课老师,教C,C#,他的教学特点就是只教简单知识,现在想想真有道理,假如上来就教我们枯燥难以理解的高深知识,我们会恐惧编程的,极大地打击学习的兴趣,所以他C语言的指针从来没教过我们(我是考软考及工作中自学的指针,感觉还不错)。
言归正传:
《HTML》
html是标签解释性语言,浏览器的页面是不是绘图文档?把标签控件元素绘制到这个文档图面上?这个绘制过程是不是用浏览器引擎(一直不太理解引擎在软件中的意思)完成的(还是有游览器内核的功能完成的)?绘图是不是由图层叠加N层(像ps制作图,winform拖一个控件就是一个图层,微观想象成图层很厚)而来?
标准的html是遵守xhtml约定的。
《CSS》
浏览器在绘制渲染(不太理解渲染与绘制的区别)标签元素控件的时候,是不是除了绘制元素本身,再根据(感觉用查找,寻找更准确)样式来进一步绘制?
主要的三种样式:样式找元素(这个范围是N(N>0));元素找样式(.class选择器);一对一的寻找(ID选择器);
样式的位置:元素内联<head中<单独link文件(目的也是为了松耦合)
《JavaScript》
浏览器能执行js程序是不是用了一个解释一行代码就可以执行一个代码的工具(这点我也不懂)?js是解释性弱语言(直接按照正常逻辑思维理解),没有数据类型的概念,好像不是申明一个数据类型,而是直接要一个内存空间(只是个人理解)?这个内存空间可以动态的存各种“类型”的数据?可以模拟面向对象的各种类型,js中的闭包好像调用一个方法,返回结果又是一个方法,这要明白,C语言中的方法名表示一个内存地址,这样这个内存地址一直使用中,就可以保存调用方法的局部变量了。我记得C#中的委托,有个target对象,这个对象就可以取到委托处理函数寄宿的对象。
js引用的方式:元素加载后<script>标签中<页面head标签中<单独的js文件中。(同样是体现隔离松耦合或者是通用提取集中管理)
用var申明一种类型(其实没有类型的概念,如果去掉var相当于页面变量);数组是一种特殊的字典。var arr=[1,2,3,4]; var dic={"name":wwj,"age":30};这是简写初始化对象。
字符串用单引号或双引号都可以。
《DOM》
DOM是把页面上的元素构造成一个树状对象。用JS脚本来操作DOM对象。页面上标签控件的事件是不是也走的消息队列模式?像Winform一样,窗口事件触发后把消息给操作系统,操作系统再把消息给应用程序的消息队列,然后调用相应的处理函数。DOM好像是api类库,js可以调用其中的对象(类库是不是在浏览器进程中或者类库文件在哪里?)
dom中的常用对象是Window对象(我理解成入口对象),dom最常用的操作就是选择器与过滤器,因为要在dom这个对象树上查找要操作的对象。
document.getElementById("元素ID")
事件的处理函数是谁,及事件调用那个方法执行,这是两种写法。
《JQuery》
因为各个浏览器操作dom的方法不是完全相同,所以JQuery把这些差异封装起来提供统一的访问方式,内部应该是把判断不同浏览器的操作封装在JQuery方法内部。
链式编程是建立在隐式迭代的基础上。在此匿名方法表现的淋漓尽致(因为方法只是临时用一次,没必要起名称)
因为需要对界面元素进行操作,所以选择器,过滤器是获取界面元素对象的方式。
《WebForm》
先探讨原理:http通过socket通信,端与端(IPEndPoint)的通信,客户端把数据发到服务器端,IIS等web服务器来监听请求,完成端与端通信。
asp.net是不是一个插件框架?我们的web应用程序跑在这个微软写的插件框架上(比如大型的桌面程序就是采用插件框架osgi或者自己实现)?凡是框架都有很多约束规则
HttpRuntime有个PR方法来处理请求,所以asp.net首先会把请求封装成HttpWorkerRequest。然后继续封装成HttpContext对象,这种对象属于逐步填充对象,它把处理过程中所有需要的参数都组合到一个对象里。参数有了,接下来HttpRuntime创建处理请求对象HttpApplication。这个对象采用处理管道的方法把处理函数抛出来。(具体是采用反射的方法创建IHttpModule来注册我们的事件处理函数【插件框架基本都会用到反射】)而真正处理请求的是在处理管道第八个事件PostMapRequestHandler触发的时候创建(获取)IHttpHandler处理程序。在第11个事件PreRequestHandlerExecute之后,HttpApplication执行处理程序的PR方法。
asp.net都是围绕请求,处理,响应的模型运行的。
只有form中带name的value及cookie才会提交到服务器,当然对webform来说还有viewstate。
webform中的页面aspx是一种模板,(把模板理解成里面有很多占位符,.net程序处理后替换占位符,然后渲染回浏览器)。
浏览器只认识html标记语言,所以.net会把服务器标签渲染成html标签,原生的html当成字符串原样发回浏览器。
《Ajax》
目的是整个页面不刷新,只是局部刷新。对IE来说,JS在浏览器端new一个XMLHttpRequest(如同C#异步new一个WebClient发送请求)向处理程序发请求,然后回调我们写的处理函数。
《MVC》
asp.net这个框架是怎么把webform请求的URL换成请求控制器的方法?(包括框架把请求URL对应成WebForm的页面,这些都是asp.net这个框架所完成的功能)
由于aspx耦合度太高,太臃肿,MVC这个扩展框架把它分成控制器和视图。一个控制器里可以有N个action方法,这样也避免了html+js+ajax+一般处理程序模式中太多的处理程序的问题。
以上只是个人理解,后续会在工作中继续深入理解。
本人目前处于离职状态,有合适的服务器端开发工作,请帮忙介绍一下,先谢谢了。
asp.net修行入门讨论的更多相关文章
- ASP.NET 5 入门 (2) – 自定义配置
ASP.NET 5 入门 (2) – 自定义配置 ASP.NET 5 理解和入门 建立和开发ASP.NET 5 项目 初步理解ASP.NET5的配置 正如我的第一篇文章ASP.NET 5 (vNext ...
- ASP.NET + MVC5 入门完整教程八 -—-- 一个完整的应用程序(上)
https://blog.csdn.net/qq_21419015/article/details/80509513 SportsStore 1.开始创建Visual Studio 解决方案和项目这里 ...
- ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...
- ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑
前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...
- ASP.NET Aries 入门开发教程4:查询区的下拉配置
背景: 今天去深圳溜达了一天,刚回来,看到首页都是微软大法好,看来离.NET的春天就差3个月了~~ 回到正题,这篇的教程讲解下拉配置. 查询区的下拉配置: 1:查询框怎么配置成下拉? 在配置表头:格式 ...
- ASP.NET MVC4入门到精通系列目录汇总
序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...
- 1、ASP.NET MVC入门到精通——新语法
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...
- 5、ASP.NET MVC入门到精通——NHibernate代码映射
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...
- 6、ASP.NET MVC入门到精通——ASP.Net的两种开发方式
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 目前,ASP.NET中两种主流的开发方式是:ASP.NET Webform和ASP.NET MVC.从下图可以看到ASP.NET WebFo ...
随机推荐
- MySQL数据库安全策略
1. 删除所有MySQL中的用户(包括root用户): mysql> delete from mysql.user root可以保留,然后修改为其他用户 2. 为管理员root用户设置密码 : ...
- Java中的会话管理——HttpServlet,Cookies,URL Rewriting(译)
参考谷歌翻译,关键字直接使用英文,原文地址:http://www.journaldev.com/1907/java-session-management-servlet-httpsession-url ...
- Nmap原理-01选项介绍
Nmap原理-01选项介绍 1.Nmap原理图 Nmap包含四项基本功能:主机发现/端口扫描/版本探测/操作系统探测.这四项功能之间存在大致的依赖关系,比如图片中的先后关系,除此之外,Nmap还提供规 ...
- java加密算法入门(一)-算法概念及单向加密
说起加密,我的第一印象就是电视剧各种密码本破解解密的场景,这两天在看加密相关的东西,做下笔记以便以后查看,也提供给大家个参考. 本文是java加密的第一篇,主要讲述下消息编码Base64以及简单的消息 ...
- javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- 排序算法 - 插入排序(Insertion sort)
插入排序对于少量元素的排序是很高效的,而且这个排序的手法在每个人生活中也是有的哦. 你可能没有意识到,当你打牌的时候,就是用的插入排序. 概念 从桌上的牌堆摸牌,牌堆内是杂乱无序的,但是我们摸上牌的时 ...
- MATLAB仿真中连续和离散的控制器有何区别?
matlab系统同时提供连续和离散的控制器和对象的目的是:在降低用户使用复杂程度的同时提高仿真精度.仿真速度和应用的广泛性. 仿真步长和求解精度的概念对于理解这个问题至关重要. 首先是步长,步长和求解 ...
- 第二章完结,包含exam练习
正则方程(Normal Equation) 梯度下降是最小化代价函数\(J(\theta)\)的一种方式,这里提出了另一种方式即正则方式不使用迭代方式:\(\theta = (X^TX)^{-1}X^ ...
- tomcat运行war包报错,找不到context-root文件
今天在部署项目的时候遇到了这个问题,查看Tomcat日志/logs/cataline.out这个文件. 里面有一句:can not open .....[context-root.xml], 进过很长 ...
- go语言返回变量存储地址
package main import "fmt" func main() { e:= fmt.Println(e) fmt.Println(&e) //&e; 将 ...