突然想起来大学的一个专业课老师,教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修行入门讨论的更多相关文章

  1. ASP.NET 5 入门 (2) – 自定义配置

    ASP.NET 5 入门 (2) – 自定义配置 ASP.NET 5 理解和入门 建立和开发ASP.NET 5 项目 初步理解ASP.NET5的配置 正如我的第一篇文章ASP.NET 5 (vNext ...

  2. ASP.NET + MVC5 入门完整教程八 -—-- 一个完整的应用程序(上)

    https://blog.csdn.net/qq_21419015/article/details/80509513 SportsStore 1.开始创建Visual Studio 解决方案和项目这里 ...

  3. ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)

    前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...

  4. ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...

  5. ASP.NET Aries 入门开发教程4:查询区的下拉配置

    背景: 今天去深圳溜达了一天,刚回来,看到首页都是微软大法好,看来离.NET的春天就差3个月了~~ 回到正题,这篇的教程讲解下拉配置. 查询区的下拉配置: 1:查询框怎么配置成下拉? 在配置表头:格式 ...

  6. ASP.NET MVC4入门到精通系列目录汇总

    序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...

  7. 1、ASP.NET MVC入门到精通——新语法

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...

  8. 5、ASP.NET MVC入门到精通——NHibernate代码映射

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...

  9. 6、ASP.NET MVC入门到精通——ASP.Net的两种开发方式

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 目前,ASP.NET中两种主流的开发方式是:ASP.NET Webform和ASP.NET MVC.从下图可以看到ASP.NET WebFo ...

随机推荐

  1. MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页

    前几天做一个小小小项目,使用了MVC+Bootstrap,以前做分页都是异步加载Mvc部分视图的方式,因为这个是小项目,就随便一点.一般的列表页面,少不了有查询条件,下面分享下Drapper+Page ...

  2. 刨根究底字符编码之十一——UTF-8编码方式与字节序标记

    UTF-8编码方式与字节序标记 一.UTF-8编码方式 1. 接下来将分别介绍Unicode字符集的三种编码方式:UTF-8.UTF-16.UTF-32.这里先介绍应用最为广泛的UTF-8. 为满足基 ...

  3. RSA加密算法

    class Program { static void Main(string[] args) { RSAPublicKey P = new RSAPublicKey(); P.Exponent = ...

  4. SQL Server2012数据库的备份和还原

    一.数据库的备份: 1.选择要备份的数据库“accountInfo”,点击鼠标右键 → 任务 → 备份 2.在打开的“备份数据库 —accountInfo”对话框中,先点击删除,然后点击“添加” 3. ...

  5. 第2章 系统用户/组管理(2) su和sudo

    本文目录: 2.1 su 2.2 sudo 2.2.1 /etc/sudoers文件 2.2.2 sudo和sudoedit命令 2.1 su 切换用户或以指定用户运行命令. 使用su可以指定运行命令 ...

  6. 【CC2530入门教程-01】IAR集成开发环境的建立与项目开发流程

    [引言] 本系列教程就有关CC2530单片机应用入门基础的实训案例进行分析,主要包括以下6部分的内容:1.CC2530单片机开发入门.2.通用I/O端口的输入和输出.3.外部中断初步应用.4.定时/计 ...

  7. Vue-cli 记录

    出自http://www.cnblogs.com/nutritious/p/6494479.html 先给出能正确安装的步骤: 1.进盘符 2,为啥不用npm,这是国外的东西,有些电脑无法FQ,会导致 ...

  8. c/c++面试准备笔记1

    在c++程序中调用被C编译器编译后的函数,为什么要加extern  "C"? C++语言支持函数重载,C语言不支持函数重载.函数被C++编译后在库中的名字与C语言的不同.C++提供 ...

  9. 关于MATLAB处理大数据坐标文件201761

    前几天备战考试,接下来的日子将会继续攻克大数据比赛 虽然停止了一段时间没有提交数据,但是这几天的收获还是有的,对Python 随机森林了解的更了解了 随机森林是由多课决策树组成(当然这个虽然我们初学者 ...

  10. 流畅的python学习笔记第七章:装饰器

    装饰器就如名字一样,对某样事物进行装饰过后然后返回一个新的事物.就好比一个毛坯房,经过装修后,变成了精装房,但是房子还是同样的房子,但是模样变了. 我们首先来看一个函数.加入我要求出函数的运行时间.一 ...