摘要: 一. ThreadPool简介 ThreadPool简介:ThreadPool是一个线程池,当你需要开启n个线程时候,只需把这个指令抛给线程池,它将自动分配线程进行处理,它诞生于.Net 2.0时代。 ThreadPool与Thread的区别: ①:Thread每开启一个异步任务,就需要使用一个Th 阅读全文
posted @ 2018-01-02 17:06 Yaopengfei 阅读(3570) 评论(1) 推荐(2)
摘要: 一. Thread及其五大方法 Thread是.Net最早的多线程处理方式,它出现在.Net1.0时代,虽然现在已逐渐被微软所抛弃,微软强烈推荐使用Task(后面章节介绍),但从多线程完整性的角度上来说,我们有必要了解下N年前多线程的是怎么处理的,以便体会.Net体系中多线程处理方式的进化。 Thr 阅读全文
posted @ 2017-12-28 15:13 Yaopengfei 阅读(3026) 评论(3) 推荐(3)
摘要: 一. 再谈委托 1. 委托是一个关键字为delegate的自定义类型,通过委托可以把方法以参数的形式传递给另外一个方法,实现插件式的开发模式; 同时调用委托的时候,委托所包含的所有方法都会被实现。 2. 委托的发展历史:new实例化传递方法→直接等于方法名→delegate匿名方法→省略delega 阅读全文
posted @ 2017-12-23 21:36 Yaopengfei 阅读(3173) 评论(2) 推荐(2)
摘要: 一. 基本认识 1. 简介:HttpContext用于保持单个用户、单个请求的数据,并且数据只在该请求期间保持; 也可以用于保持需要在不同的HttpModules和HttpHandlers之间传递的值; 也可以用于保持某个完整请求的相应信息。 2. 五大核心对象包括:Response、Request 阅读全文
posted @ 2017-12-18 13:46 Yaopengfei 阅读(3777) 评论(3) 推荐(2)
摘要: 一. 基于RouteBase扩展 1. 原理 扩展RouteBase,同样使用的是MVC框架提供的MvcRouteHandler进行处理。 2. 步骤 1. 新建YpfRoute1类,继承RouteBase类型,并覆写里面的两个抽象方法, 在GetRouteData编写业务逻辑,(这里是禁止Chro 阅读全文
posted @ 2017-12-17 18:56 Yaopengfei 阅读(883) 评论(1) 推荐(1)
摘要: 一. 自定义扩展名 1. 前言 凡是实现了IHttpHandler接口的类均为Handler类,HttpHandler是一个HTTP请求的真正处理中心,在HttpHandler容器中,ASP.NET Framework才调用HttpHandler的ProcessRequest方法来对这个HTTP请求 阅读全文
posted @ 2017-12-14 13:41 Yaopengfei 阅读(1117) 评论(1) 推荐(0)
摘要: 1111 阅读全文
posted @ 2017-12-12 20:45 Yaopengfei 阅读(772) 评论(0) 推荐(0)
摘要: 一. 删除WebForm视图引擎 在MVC框架中检索视图的顺序为:当前控制器下对应的文件夹的aspx文件→share文件夹aspx文件→当前控制器下对应文件夹的cshtml文件→share文件夹的cshtml文件。 鉴于以上顺序,如果我们使用的MVC5框架中不需要WebForm的视图引擎,可以删除, 阅读全文
posted @ 2017-12-08 07:59 Yaopengfei 阅读(1006) 评论(1) 推荐(0)
摘要: 一. 简介 1.背景:浏览器默认一次性请求的网络数是有上限的,如果你得js和css文件太多,就会导致浏览器需要多次加载,影响页面的加载速度, MVC中提供Bundles的方式压缩合并js和css,是MVC中特有的一种优化方式。 (当然现在前端也有很多基于node的工作流插件,可以合并压缩混淆js或c 阅读全文
posted @ 2017-12-07 15:59 Yaopengfei 阅读(1273) 评论(8) 推荐(2)
摘要: 一. 简介 写完上一个章节MVC中的常用特性,迫不及待将该系列补全,该章节主要介绍数据批注(也叫:注解)。 一听【数据批注】,好高大上的名字,但仔细一看,它们其实是【System.ComponentModel.DataAnnotations】程序集下的一些特性类,O(∩_∩)O哈哈~,既然是特性,就 阅读全文
posted @ 2017-12-06 16:17 Yaopengfei 阅读(1374) 评论(2) 推荐(0)
摘要: 一. 前世今生 乍眼一看,该标题写的有点煽情,最近也是在不断反思,怎么能把博客写好,让人能读下去,通俗易懂,深入浅出。 接下来几个章节都是围绕框架本身提供特性展开,有MVC程序集提供的,也有其它程序集提供;在本章节将重点介绍几个MVC框架提供的且作用于方法上的特性,并且模仿其源码自定义特性。 其实早 阅读全文
posted @ 2017-12-05 21:41 Yaopengfei 阅读(1302) 评论(1) 推荐(0)
摘要: 。。。。。。。。 阅读全文
posted @ 2017-12-04 18:48 Yaopengfei 阅读(680) 评论(0) 推荐(1)
摘要: 。。。。。。。。。。 阅读全文
posted @ 2017-12-04 11:20 Yaopengfei 阅读(631) 评论(0) 推荐(0)
摘要: 。。。 阅读全文
posted @ 2017-12-03 17:40 Yaopengfei 阅读(732) 评论(0) 推荐(0)
摘要: 一. 背景 提到MVC不得不说MVC中的各种Result,这些高度封装的xxxResult以及在xxxResult再度封装的xxx,大大提高了MVC框架的开发效率。 相信做过MVC开发的朋友都会用到过 return Content("xx"), 给客户端的Ajax请求返值,那么Content内部是怎 阅读全文
posted @ 2017-11-29 11:53 Yaopengfei 阅读(3851) 评论(3) 推荐(2)
摘要: 一. 简介 MVC中的过滤器可以说是MVC框架中的一种灵魂所在,它是MVC框架中AOP思想的具体体现,所以它以面向切面的形式无侵入式的作用于代码的业务逻辑,与业务逻辑代码分离,一经推出,广受开发者的喜爱。 那么过滤器到底是什么呢?它又有什么作用呢? 用户通过URL访问Web系统不一定都能得到相应的内 阅读全文
posted @ 2017-11-28 16:39 Yaopengfei 阅读(4030) 评论(4) 推荐(6)
摘要: 简 介 在前面的章节中,我们已经很清楚,MVC工作模型的流程,Controller中的Action接收到客户端的请求,处理后要将数据返回给View,那么Action中是如何将数据返回给View的,二者之间打通的桥梁又是什么呢? 这些问题正是本章节需要解决的,下面先复习一下MVC的请求模型,如下图: 阅读全文
posted @ 2017-11-27 19:14 Yaopengfei 阅读(5876) 评论(1) 推荐(3)
摘要: 一. 什么是路由 路由是约束URL的一组规范,那么什么是URL呢?通俗的来说URL是一个地址,通过该地址,用户可以访问Web网站或者下载服务器上的文件。 比如下面就是两组URL: http://www.cnblogs.com/yaopengfei/p/7828441.html http://www. 阅读全文
posted @ 2017-11-23 16:34 Yaopengfei 阅读(3888) 评论(4) 推荐(3)
摘要: 。。。。。。。。。。。 阅读全文
posted @ 2017-11-22 20:13 Yaopengfei 阅读(2308) 评论(3) 推荐(0)
摘要: 一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模式,ViewState功不可没,通过的控件的拖拽和绑定,很快就可以搭建出来一个Web项目,其开发速度远胜Java、PHP,当年Web项目并不很重 阅读全文
posted @ 2017-11-13 21:53 Yaopengfei 阅读(1178) 评论(1) 推荐(0)
摘要: 一. 四种初始化策略 EF的CodeFirst模式下数据库的初始化有四种策略: 1. CreateDatabaseIfNotExists:EF的默认策略,数据库不存在,生成数据库;一旦model发生变化,抛异常,提示走数据迁移 2. DropCreateDatabaseIfModelChanges: 阅读全文
posted @ 2017-11-11 21:22 Yaopengfei 阅读(2369) 评论(3) 推荐(1)
摘要: 一. 简介 1. 优先级:Fluent API > data annotations > default conventions. 2. 所有的Fluent API配置都要在 OnModelCreating这个重写方法中进行 3. 常见的配置: ① 获取表对应的配置根: var stu =model 阅读全文
posted @ 2017-11-10 19:47 Yaopengfei 阅读(1387) 评论(0) 推荐(2)
摘要: 一. 简介 1. DataAnnotations说明:EF提供以特性的方式添加到 domain classes上,其中包括两类: A:System.ComponentModel.DataAnnotations命名空间下的特性是表中列的属性的。 包括:Key、Required、MinLength和Ma 阅读全文
posted @ 2017-11-10 09:58 Yaopengfei 阅读(1533) 评论(0) 推荐(0)
摘要: 一. 简介 1. 正宗的CodeFirst模式是不含有edmx模型,需要手动创建实体、创建EF上下文,然后生成通过代码来自动映射生成数据库。 2. 旨在:忘记SQL、忘记数据库。 3. 三类配置:One To One(one-to-zero-or-one)、One To Many、Many To M 阅读全文
posted @ 2017-11-08 21:21 Yaopengfei 阅读(1473) 评论(0) 推荐(1)
摘要: 一. 简介 【来自数据库的Code First模式】实质上并不是CodeFirst模式,而是DBFirst模式的轻量级版本,在该模式中取消了edmx模型和T4模板,直接生成了EF上下文和相应的类,该模式出现在VS2015版本以后。 该模式也是适用于数据库已经设计建好的情况。 生成的上下文和类库如下: 阅读全文
posted @ 2017-11-07 13:24 Yaopengfei 阅读(1959) 评论(0) 推荐(0)
摘要: 一. 简介 顾名思义,ModelFirst是模型优先,是DBFirst的逆向模式,先建立实体数据模型,然后根据实体数据模型来生成数据库,从而驱动整个开发流程.(生成一个空的edmx文件,手动在里面建立实体模型) (1). 优点:符合当前流行的面向领域驱动设计的开发模式,可以用设计建模的思维来进行代码 阅读全文
posted @ 2017-11-04 21:06 Yaopengfei 阅读(1384) 评论(0) 推荐(0)
摘要: 一. 简介 EF连接数据库有三种模式,分别是DBFirst、ModelFirst、CodeFirst,分别适用于不同的开发场景。 该章节,将主要介绍EF的DBFirst连接SQLServer数据库和MySql数据库两种操作方式 该模式在EF中出现的出现的最早,符合我们的传统开发模式,先设计数据库→然 阅读全文
posted @ 2017-11-03 22:52 Yaopengfei 阅读(3509) 评论(0) 推荐(0)
摘要: 一. 简介 我们在前面章节介绍EF基本增删改的时候,曾说过EF的SaveChanges()方法,会一次性的将所有的实体的状态变化统一提交到数据库,那么你是否想过EF的实体会有哪些状态变化呢?什么原因会导致其变化呢?我们怎么来追踪EF的实体变化呢?本章节以追踪EF实体状态变化的三种方式为线索,一一介绍 阅读全文
posted @ 2017-11-03 21:35 Yaopengfei 阅读(4407) 评论(2) 推荐(2)
摘要: 一. 综述 该模块主要介绍:EF的性能优化插件Z.EntityFramework.Extensions,该插件收费。 (一). 简介 1. 相关网站:http://www.zzzprojects.com/ 2. 下载途径:通过Nuget直接下载或者去官网下载(要注意更新最新版本,可能会过期) 3. 阅读全文
posted @ 2017-10-29 22:01 Yaopengfei 阅读(10541) 评论(3) 推荐(2)
摘要: 一. 开发中常见的性能问题 我们在日常开发过程中,由于一些不好的习惯,经常会导致所写的代码性能低下,却毫无发觉,下面就总结一下常见的一些性能问题。 1. 真假分页 ① 假分页: db.xxx.toList().Skip(2).take(4) 。 ② 真分页:db.xxx.Skip(2).take(3 阅读全文
posted @ 2017-10-29 21:25 Yaopengfei 阅读(2034) 评论(0) 推荐(2)