自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (4)
  • 论坛 (32)
  • 收藏
  • 关注

原创 你不知道的.NET-汪磊-专题视频课程

作为靠.NET吃饭的你,真的了解.NET吗?在开发过程中,你是不是会遇到某些不太理解的问题,由于赶进度顾不上仔细研究、或者不理解这些问题对继续项目没有影响,但是心里总感觉像有一根鱼刺一样如鲠在喉,时不时感到不舒服?本课程带你从一个全新的、独特的、“冷门”的视角,来近距离观察你所熟悉的.NET。...

2017-12-27 14:29:16 259

原创 带你读开源之EntityFramework-汪磊-专题视频课程

手把手带你阅读的ORM框架EntityFramework源码,教你掌握阅读开源代码的有效方法,在更加深入的了解EF的使用方法及其原理的基础上,你可以获得好的思想,激发编程灵感;学习常用的架构与模式;对于与自己工作领域相关的开源项目,阅读开源项目有助于发现解决问题的新思路;吸收别人的设计思想;学习他人的写法,提高自己的代码质量;学习项目的组织和设计,提高自己的组织代码的能力。...

2017-11-13 08:46:30 192

原创 【麻雀系列】中国象棋游戏开发实战(C#)-汪磊-专题视频课程

在你的程序猿修炼之路上有没有感觉到迷茫、没有目标、没有方向?有一颗持续精进的心、却感觉自己的技术进步碰到了天花板、遇到了瓶颈?曾经痴迷于设计模式、架构、框架等高大上的概念,却苦于无处下手?初出茅庐、没有行业经验,害怕难以胜任真正的企业开发?入职好几年,却始终在做一些添改删查的重复性工作,感觉自己毫无进步?好吧,跟着我们的“麻雀系列”课程出发吧,你会重拾自信、找回自我!...

2017-07-13 09:03:09 728

原创 联机俄罗斯方块游戏开发实战(C#)-汪磊-专题视频课程

本课程手把手的教你从零开始实现一款支持联机对战的俄罗斯方块游戏,强化大家关于面向对象的编程思想,突出设计模式在软件开发中的意义,强调重构对于编写高质量代码的极端重要性,明确编码规范的重要性,打磨软件架构的可维护性、可扩展性。...

2016-11-14 08:51:42 535 1

原创 带你读开源—ASP.NET_MVC(十五)

上篇讨论了BindSimpleModel方法,今天我们看一下BindComplexModel方法。代码段1为BindComplexModel方法的定义,执行过程是:首先检查请求的参数类型,依次按照数组、字典、集合、枚举、普通类的顺序进行处理。      internal objectBindComplexModel(ControllerContext controllerContext,

2016-09-22 20:34:48 540

原创 带你读开源—ASP.NET_MVC(十四)

上回书说到ModelBinderDictionary类的GetBinder方法的实现原理,今天继续解释第四条注释。        4、用户提供的备用Binder        这一条很简单,fallbackBinder是用户提供的一个备用Binder,从语句【returnbinder ?? fallbackBinder;】可以看出,如果第三条也没有得到合适的IModelBinder的话,则

2016-09-18 20:18:59 491 1

原创 带你读开源—ASP.NET_MVC(十三)

今天紧接上篇的进度,继续讨论ModelBinding。        为了衔接顺畅,把上篇最后一段代码再贴一遍,姑且称作代码段1吧。  protected virtual objectGetParameterValue(ControllerContext controllerContext, ParameterDescriptorparameterDescriptor)

2016-09-14 20:08:13 532

原创 带你读开源—ASP.NET_MVC(十二)

今天我们主要聊一聊WebViewPage这个类,为什么突然要研究这个类呢?大家还记得View中Razor视图引擎的.cshtml文件吧?它被MVC即时翻译成C#的类,这个类继承于WebViewPage类。对于强类型的Razor视图,.cshtml文件被翻译成WebViewPage泛型类,我们之所以能够在视图页面顶部用形如“@model string[]”的东东定义强类型的View,是因为MVC把其

2016-09-14 20:05:09 505

原创 带你读开源—ASP.NET_MVC(十一)

上篇说到HtmlHelper,今天继续这个话题。        我们在自己建立的MVC项目中,随便打开一个.cshtml文件,找到一个HtmlHelper调用,例如:@Html.TextBox("CustomerName"),把光标放在Html上,按F12进入其定义,即代码段1中的语句【public new HtmlHelper Html { get; set; }】。可见,@Html是Htm

2016-09-14 20:01:57 1066

原创 带你读开源—ASP.NET_MVC(十)

今天研究一下HtmlHelper,ASP.NET MVC框架有数量众多的Helper,包括内置的和用户自己定义的,这些Helper的存在,极大方便了实际开发。我们最为熟悉的莫过于HtmlHelper.ActionLink方法了,它用来在View中生成标签,也就是超链接。在源码中找到其定义,发现它有很多个重载,我们找到其中比较常用的重载版本,见代码段1。        public static

2016-09-09 21:02:59 590

原创 带你读开源—ASP.NET_MVC(九)

继续上篇的内容。        如果程序未定义Authentication和Authorization这两个过滤器,则执行InvokeActionMethodWithFilters方法以获取ActionResult,继而通过执行InvokeActionResultWithFilters方法来处理ActionResult。从名称可以猜测出,InvokeActionMethodWithFilter

2016-09-09 20:56:13 377

原创 带你读开源—ASP.NET_MVC(八)

上篇说到GetControllerTypeWithinNamespaces方法,我们跟踪进入其定义后,发现其调用了ControllerTypeCache.GetControllerTypes方法,从ControllerTypeCache这个名称我们就可以猜测出,它是从某个缓存中查找控制器类型的。跟踪之,进入代码段1。    public ICollection GetController

2016-09-09 20:50:55 561

原创 带你读开源—ASP.NET_MVC(七)

我们继续谈细节。        我们注意到ASP.NETMVC项目都包含一个Global.asax文件,这个文件代码很少,只包括三个方法,即RegisterGlobalFilters、RegisterRoutes、Application_Start。我们看RegisterRoutes方法的定义(代码段1)。       public static void RegisterRoutes

2016-09-09 20:47:57 916

原创 带你读开源—ASP.NET_MVC(六)

我们接着上一篇的进度,跟进到“带你读开源—ASP.NET_MVC(五)”代码段6中的Execute()方法的定义,发现它是WebPageExecutingBase类的一个抽象方法,而且我找遍了整个MVC源码,也没有找到Execute()方法的具体重写版本。我靠!一个抽象方法没有任何地方重写它,这是“什么鬼”?于是乎,我苦苦哀求度娘指点迷津,她老人家凭借渊博的知识给了我答案。还记得上一篇上标[1]处

2016-08-29 14:53:43 775

原创 带你读开源—ASP.NET_MVC(五)

书接上文,我们继续跟踪CreateView方法,发现它是一个抽象方法,好吧,我们发现BuildManagerViewEngine继承了VirtualPathProviderViewEngine,但是它并没有重写了CreateView方法,不要慌,我们继续摸索,发现RazorViewEngine和WebFormViewEngine(先不管他)又继承了BuildManagerViewEngine,在这

2016-08-27 12:38:35 1232

原创 带你读开源—ASP.NET_MVC(四)

上篇聊到ActionResult的ExecuteResult方法,今天继续。        我们首先看一下ActionResult的定义(代码段1),它是一个抽象类,只有一个抽象方法ExecuteResult。 public abstract class ActionResult { public abstract voidExecuteResult(Cont

2016-08-25 21:12:21 1239

原创 带你读开源—ASP.NET_MVC(三)

上篇说到ControllerActionInvoker的InvokeAction方法,今天继续。        谈点题外话,MVC中大量使用接口和IOC,即控制反转(或依赖注入),这个我们留个专题讨论。        在ControllerActionInvoker的InvokeAction方法实现中,主要用到了Filter,即过滤器。Filter我们一直没有提及,因为不想让它分散大家的注

2016-08-25 21:02:32 1011

原创 带你读开源—ASP.NET_MVC(二)

上篇文章从整体上介绍了ASP.NET MVC的请求处理流程,大概分为“路由”、“控制器”、“视图”以及“模型”,下面便按照流程依次展开。        一、路由        提到路由,实际上分为ASP.NET的核心路由引擎和MVC路由。核心路由引擎是不开源的(微软留了一手),它负责解析浏览器端传来的URL,并为之分配控制器。这里我们要分析的是MVC路由,即MvcRouteHandle

2016-08-25 20:40:53 1048

原创 带你读开源—ASP.NET_MVC(一)

憋了好久,今天终于腾出时间,开始“带你读开源”系列文章,正所谓好事多磨啊!好了,不瞎扯了,书归正传。大家都知道,阅读开源代码对于提高我们程序狗的“内外修为”都有很重要的作用,不但可以大开眼界,看看大师们是怎么写程序的,还可以从中学习到很多比较具体的知识。但是,我相信很多程序猿对阅读开源项目是又爱又恨,“爱”的是希望通过阅读大师的代码,学习人家优雅的编程风格、飘逸的建模手段和高深莫测的技术水平;

2016-08-23 21:13:11 1842

原创 细说函数的值传递和引用传递

函数的参数传递包括“按值传递(不加关键字ref)”、“按引用传递(加关键字ref)”两种;而变量的类型包括“值类型”和“引用类型”两种。其中,值类型的参数可以按值传递,也可以按引用传递;引用类型的参数同样既可以按值传递,也可以按引用传递。下面细说一下其中的细节。一、对于值类型参数来说,按值传递和按引用传递区别如下:1、按值传递:对形参的操作不会影响实参。例如, //======

2015-11-04 19:43:12 395 1

原创 三层架构通用ORM类库 ThreeTierLib v2.0

此类库是上篇ThreeLayerLib v1.0的升级版本,对系统的整体组织架构做了进一步优化和改进,在此感谢sp1234、cfx等大神的指点。改进:1、增加了数据库的数据类型和.NET语言数据类型的映射类DataTypeConverter,从而支持了多种数据库字段类型,不再仅于数字、文本类型。2、增加了SQL的参数化查询的DAL实现SqlLibWithParam,不再仅限于SQL语句

2012-05-19 00:09:50 798 1

原创 逻辑三层ORM通用类库 ThreeLayerLib.dll v1.0

逻辑三层ORM通用类库 ThreeLayerLib.dll v1.0作者:wxl本类库的目标用户是使用C#开发基于数据库的.NET程序的开发者,旨在简化对常用数据库的CRUD操作,同时提供了一种简化的ORM机制,使基于本类库开发的程序具有更好的可扩展性和可维护性。本类库默认SQLServer数据库,但并不受数据库类型的限制,开发者可以使用任何自己需要的关系数据库,如 SQLSe

2012-04-25 18:47:34 475

原创 基于.NET的Windows数据库应用程序开发的心路历程 --我的程序“猿”进化之路

自从2008年3月份开始接触.NET,不不不,应该说是接触C#以来,就一直从事以数据库为中心的各种Windows平台的应用程序开发,屈指一算,已四年矣,现在把这几年中的一些心得体会做一总结。虽然在本科和读研期间就一直接触编程,但一直使用的C、C++,而且只是粗懂一些皮毛。工作以来,由于项目的需要,改用C#,从而开始了我的.NET之路。工作以来,小弟也开发了大大小小十几个项目,不过百分之二百

2012-04-25 18:30:51 661

原创 利用PE结构给Windows可执行程序加密码

Windows下可执行文件称为PE格式,包括常见的exe、dll等,通过PE格式的合理利用,可以实现许多有趣且使用的功能。本文提出了利用PE结构给Windows可执行程序加密码的方法(仅针对未经加壳处理的exe文件,且因为Kernel32.dll不同,故仅适用于Windows X

2011-10-14 14:12:27 674

三层架构通用ORM类库 ThreeTierLib v2.0

此类库是上篇ThreeLayerLib v1.0的升级版本,对系统的整体组织架构做了进一步优化和改进,在此感谢sp1234、cfx等大神的指点。 改进: 1、增加了数据库的数据类型和.NET语言数据类型的映射类DataTypeConverter,从而支持了多种数据库字段类型,不再仅于数字、文本类型。 2、增加了SQL的参数化查询的DAL实现SqlLibWithParam,不再仅限于SQL语句的拼接,降低了被SQL注入攻击的风险。 3、去掉了BLL一层,因为它只是个传声筒,没有存在的必要,具体的业务逻辑由客户就具体情况自己设计。类库入口改为DataAccess。 4、把IDAL从抽象接口改为普通基类,并实现通用操作,从而使子类得以简化,减少了用户自行实现DAL的工作量。 5、增加了自动生成实体类的工具类ModelCreater,自动生成符合规范的实体映射类。 6、增加了分页语句生成类IPagerSqlStringBuilder,并预置了基于MAX算法的分页实现PagerMax,以解决当数据量较大时的分页需求。 未解决的问题: 1、GetMaxID的多用户并发控制问题。

2012-05-19

逻辑三层ORM通用类库 ThreeLayerLib.dll v1.0

本类库的目标用户是使用C#开发基于数据库的.NET程序的开发者,旨在简化对常用数据库的CRUD操作,同时提供了一种简化的ORM机制,使基于本类库开发的程序具有更好的可扩展性和可维护性。 本类库默认SQLServer数据库,但并不受数据库类型的限制,开发者可以使用任何自己需要的关系数据库,如 SQLServer、Access、MySQL等。 使用方法: 目前版本需用户自己定义数据库表格的相应实体类,下一版本中作者将实现自动化。实体类应具有【TableAttribute】特性,以标识数据库表名。默认SQLServer数据库,如果用户需要扩展其他类型数据库,则需要自己做一个类库项目,且包含如下两个类: 1、能够实现IDAL的类 2、能够实现IDbHelper的类

2012-04-26

三层框架生成器ThreeLayerCreater

一个简单的三层逻辑架构的自动生成器,可以自动生成一个基本的三层结构的数据库操作项目,用户可以在其基础上完成简单的数据库操作。(由于本人能力实在有限,这个拙作还很幼稚,没有考虑并发,没有考虑性能,请大家多多批评,指出不足,谢谢!)

2012-04-27

ThreeLayerLib源代码

ThreeLayerLib.dll的源代码,请各位大神多多指点其中存在的问题,不胜感激,再次感谢各位大神对在下的关注和指点!

2012-04-27

带你读开源—ASP.NET_MVC(一)

发表于 2016-08-23 最后回复 2020-04-30

ps2鼠标数据包解析疑问

发表于 2018-11-02 最后回复 2018-11-02

带你读开源—ASP.NET_MVC(十六)

发表于 2016-09-23 最后回复 2018-09-28

带你读开源—ASP.NET_MVC(十五)

发表于 2016-09-22 最后回复 2018-09-28

带你读开源—ASP.NET_MVC(二)

发表于 2016-08-23 最后回复 2018-01-15

带你读开源—ASP.NET_MVC(十)

发表于 2016-09-09 最后回复 2017-12-31

带你读开源—ASP.NET_MVC(十一)

发表于 2016-09-12 最后回复 2017-12-31

带你读开源—ASP.NET_MVC(十二)

发表于 2016-09-14 最后回复 2017-12-31

带你读开源—ASP.NET_MVC(十三)

发表于 2016-09-14 最后回复 2017-12-31

带你读开源—ASP.NET_MVC(四)

发表于 2016-08-25 最后回复 2017-12-31

带你读开源—ASP.NET_MVC(九)

发表于 2016-09-09 最后回复 2017-10-31

中国象棋游戏开发实战(C#)【一】

发表于 2017-08-02 最后回复 2017-08-03

中国象棋游戏开发实战(C#)【四】

发表于 2017-08-02 最后回复 2017-08-02

中国象棋游戏开发实战(C#)【二】

发表于 2017-08-02 最后回复 2017-08-02

中国象棋游戏开发实战(C#)【三】

发表于 2017-08-02 最后回复 2017-08-02

带你读开源—ASP.NET_MVC(六)

发表于 2016-08-29 最后回复 2017-08-02

带你读开源—ASP.NET_MVC(五)

发表于 2016-08-27 最后回复 2017-08-02

带你读开源—ASP.NET_MVC(七)

发表于 2016-09-01 最后回复 2017-08-02

带你读开源—ASP.NET_MVC(三)

发表于 2016-08-25 最后回复 2017-08-02

带你读开源—ASP.NET_MVC(八)

发表于 2016-09-04 最后回复 2017-08-02

带你读开源—ASP.NET_MVC(十四)

发表于 2016-09-18 最后回复 2017-08-02

网盘项目,如何实现下载整个文件夹?

发表于 2016-08-28 最后回复 2016-12-06

网站下载进度条怎么实现?

发表于 2016-09-01 最后回复 2016-09-22

逻辑三层ORM通用类库 ThreeLayerLib.dll v1.0

发表于 2012-04-25 最后回复 2016-08-29

ThreeLayerLib前传------三层代码生成器

发表于 2012-04-27 最后回复 2016-08-29

你必须知道的参数传递

发表于 2015-11-03 最后回复 2016-08-26

想做一个权限验证的通用工具,大家谈谈自己的看法

发表于 2012-05-05 最后回复 2016-08-26

WPF程序初始化进度显示

发表于 2012-08-15 最后回复 2015-11-03

三层架构通用ORM类库 ThreeTierLib v2.0

发表于 2012-05-18 最后回复 2015-11-03

基于.NET的Windows数据库应用程序开发的心路历程 --我的程序“猿”进化之路

发表于 2012-04-25 最后回复 2015-11-03

Softman的困惑

发表于 2011-11-26 最后回复 2011-11-26

利用PE结构给Windows可执行程序加密码

发表于 2011-10-14 最后回复 2011-10-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除