ASP.NET MVC高级编程摘要易忘知识点

1、理解MVC模式在Web场景中的工作原理的简便方法就是记住:MVC提供的的是方法调用结果,而不是动态生成的(又名脚本)页面。
2、事件驱动编程的思想—根据用户触发的事件来执行程序操作。
3、侵入式JavaScript:在Web早期,没出现jquery以前,同一个文件中混杂JavaScript代码和Html标记是很流行的。将JavaScript代码作为HTML某个特性的值也是很常见的。如以下代码:

<div onclick="javascript:alert('click');">Testing, testing</div>

非浸入式JavaScript很好的实现了JS代码和标记的分离,可以将脚本代码打包到JS文件中符合MVC提倡的关注点分离。
注:非浸入式JavaScript除了实现了内容显示和交互行为的分离,还有其他优势,例如将所有脚本代码保存在单独的可下载的文件中让浏览器能够在本地缓存脚本文件,从而提高网站性能。
4、Jquery的引入方式
①通过每个页面单独引入文件

<script src="~Scripts/jquery-1.10.2.js"></script>

②在布局页引入JS方法和①一样
③虽然脚本引用是有用的,但是这种方法依赖于版本,如果想要更新到最新版本的Jquery,就必须在代码中查找脚本引用,并使用新版本号加以替换。更好的在视图中包含Jquery引用的方法是使用内置的、版本无关的Jquery脚本捆绑。
@Scripts.Render(~/bundles/jquery)
上面的调用将渲染/App_Start/BundleConfig.cs中预定义的“jquery”脚本捆绑,这种捆绑利用了ASP.NET中的捆绑和微小特性,该特性利用版本号中包含的通配符匹配,自动优先使用jQuery的轻量版本。

public static void RegisterBundles(BundleCollection bundles)
 {
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                "~/Scripts/jquery-{version}.js"));

        //......
 }

5、关于min.js
在新建的Web项目Script文件夹下每个文件都包含另外一个对应脚本文件的微小化版本。JavaScript微小化是通过删除注释、进而缩短变量名来缩小JavaScript文件的过程,以及其他缩小文件大小的过程。
Jquery也包含一个.min.map.js版本。这是一个源代码映射文件。源代码映射是一种新兴的标准,允许浏览器将微小化的、编译后的代码映射为原来编写的代码。
6、Respond.js
Respond.js 是一个很小的JavaScript库,包含这个文件是因为BootStrap要用到它,属于所谓的pollyfill
,即让旧浏览器支持新浏览器标准的JS库。
7、捆绑和微小
捆绑(bundling)和微小(minification)功能由名称空间System.Web.Optimization中的类提供。故名思议这些类是用来优化Web页面性能的,他们通过缩减文件大小,捆绑文件(把多个文件合并成一个下载文件)来实现优化。
8、ASP.NET MVC框架中的路由主要由两种用途:
①匹配传入的请求(请求不匹配服务器文件系统中的文件),并把这些请求映射到控制器操作
②构造传出的URL,用来响应控制器操作。
路由关注的是如何将URL映射到资源。
9、传统路由和特性路由
MVC一直支持使用集中的、强制的、基于代码的风格来定义路由,我们将其称为传统路由这是一个很好的选项,现在仍得到完整支持。不过MVC5添加了另外一个在控制器类或者操作方法上使用声明式特性的选项,称为特性路由。
10、特性和传统路由的比较
如果传统路由和特性路由存在重叠,那么会使用第一个遇到的路由。在实践中建议把MapMvcAttributeRoutes调用放在首位。特性路由通常更加具体,传统路由更加宽泛,所以让特性路由首先出现可以让他们有比传统路由更高的优先级。
11、MVC区域
区域允许我们将模型、视图和控制器分成单独的功能节点。
12类和结构的区别
1、结构是值类型,类是引用类型。
注意:结构的new运算符与其他类型的工作方式不同。new运算符并不分配堆中内存,而是调用相应的构造函数,根据传送给它的参数,初始化所有的字段。
在调用struct实例方法之前,必须给struct的所有字段赋上初值,即要求完全初始化,部分初始化是不允许的。要么通过"struct实例.字段名"给所有字段显式赋值,要么通过struct构造函数,给所有字段赋上默认值。
2、结不能从一个结构中继承,

猜你喜欢

转载自blog.csdn.net/weixin_44007644/article/details/84940659