-
[ASP.NET] 如果将缓存“滑动过期时间”设置为1秒会怎样?
所属栏目:[asp.Net] 日期:2020-12-16 热度:60
今天编写了一个采用ASP.NET Caching的组件,在为它编写Unit Test的过程中发现了一个有趣的问题,接下来我通过一个简单的实例说明这个问题。我们在一个控制台应用中编写了如下一段程序,这个段程序很简单:我们通过HttpRuntime的静态属性Cache得到表示当前缓[详细]
-
ASP.NET Core的路由[5]:内联路由约束的检验
所属栏目:[asp.Net] 日期:2020-12-16 热度:119
当某个请求能够被成功路由的前提是它满足某个Route对象设置的路由规则,具体来说,当前请求的URL不仅需要满足路由模板体现的路径模式,请求还需要满足Route对象的所有约束。路由系统采用IRouteConstraint接口来表示路由约束,所以我们在接下来的内容中将路由[详细]
-
如何解决分布式系统中的跨时区问题[原理篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:158
《谈谈你最熟悉的System.DateTime[上篇][下篇]》从跨时区的角度对DateTime这个我们熟知的类型进行了深入探讨,它们都是为这篇文章作的准备工作。在接下来的两篇文章中,我们将完整的介绍如果在一个分布式系统中处理时区的问题。 一、场景以及需求 为了让大家[详细]
-
一句代码实现批量数据绑定[上篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:58
对于一个以数据处理为主的应用中的UI层,我们往往需要编写相当多的代码去实现数据绑定。如果界面上的控件和作为数据源的实体类型之间存储某种约定的映射关系,我们就可以实现批量的数据绑定。为了验证这种想法,我写了一个小小的组件。这个小玩意仅仅是我花[详细]
-
如何实现对上下文(Context)数据的统一管理 [提供源代码下载]
所属栏目:[asp.Net] 日期:2020-12-16 热度:146
在应用开发中,我们经常需要设置一些上下文(Context)信息,这些上下文信息一般基于当前的会话(Session),比如当前登录用户的个人信息;或者基于当前方法调用栈,比如在同一个调用中涉及的多个层次之间数据。在这篇文章中,我创建了一个称为ApplicationCo[详细]
-
ASP.NET MVC的Razor引擎:IoC在View激活过程中的应用
所属栏目:[asp.Net] 日期:2020-12-16 热度:71
在《ASP.NET MVC的Razor引擎:RazorView》介绍BuildManagerCompiledView的时候,我们谈到默认使用的ViewPageActivator使用当前注册的DependencyResolver来完成对目标View的激活,这意味着我们可以通过注册自定义DependencyResolver的方式实现基于IoC的View激[详细]
-
在ASP.NET MVC中使用“RadioButtonList”和“CheckBoxList”
所属栏目:[asp.Net] 日期:2020-12-16 热度:97
在《为HtmlHelper添加一个RadioButtonList扩展方法》中我通过对HtmlHelper和HtmlHelperModel的扩展使我们可以采用”RadioButtonList”的方式对一组类型为“radio”的input元素进行操作。昨天对对此进行了一些改进,并将“CheckBoxList”的功能添加进来。[源[详细]
-
[ASP.NET MVC]为HtmlHelper添加一个RadioButtonList扩展方法
所属栏目:[asp.Net] 日期:2020-12-16 热度:168
在前面一篇文章中,我们通过对HtmlHelper的扩展简化了对DropDownList(Single-Line-Select)和ListBox(Multiple-Line-Select)的绑定,以及对作为数据源的列表进行单独维护。现在我们为HtmlHelper/HtmlHelperModel添加一个RadioButtonList/RadioButtonListF[详细]
-
谈谈基于SQL Server 的Exception Handling
所属栏目:[asp.Net] 日期:2020-12-16 热度:179
对于所有的开发人员来说,Exception Handling是我们每天都要面对的事情。对于基于Source Code的Exception Handling,我想大家已经司空见惯了,但是对于Database级别的Exception Handling,就没有那么常见了。在这篇文章中,我将会介绍我对于基于Database编程[详细]
-
[MethodImpl(MethodImplOptions.Synchronized)]、lock(this)与lo
所属栏目:[asp.Net] 日期:2020-12-16 热度:77
对于稍微有点经验的.NET开发人员来说,倘若被问及如何保持线程同步,我想很多人都能说好好几种。在众多的线程同步的可选方式中,加锁无疑是最为常用的。如果仅仅是基于方法级别的线程同步,使用System.Runtime.CompilerServices.MethodImplAttribute无疑是最[详细]
-
ASP.NET Web API自身对CORS的支持:从实例开始
所属栏目:[asp.Net] 日期:2020-12-16 热度:117
在《通过扩展让ASP.NET Web API支持W3C的CORS规范》中我们通过自定义的HttpMessageHandler为ASP.NET Web API赋予了跨域资源共享的能力,具体来讲,这个自定义的CorsMessageHandler的自由主要体现在如下两个方面:其一,为简单跨域请求的响应和继预检请求后的[详细]
-
谈谈IE针对Ajax请求结果的缓存
所属栏目:[asp.Net] 日期:2020-12-16 热度:139
在默认情况下,IE会针对请求地址缓存Ajax请求的结果。换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端。在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据),这篇文章就来简单地讨论这个问题[详细]
-
在Entity Framework中使用存储过程(二):具有继承关系实体的存
所属栏目:[asp.Net] 日期:2020-12-16 热度:129
在《实现存储过程的自动映射》中,我通过基于T4的代码生成实现了CUD存储过程的自动映射。由于映射的都是基于数据表结构的标准的存储过程,所以它们适合概念模型和存储模型结构相同的场景。如果两种模型存在差异,在进行数据更新操作的时候就会出错。本篇文章[详细]
-
为什么GAC和VS引用的程序集不一致?
所属栏目:[asp.Net] 日期:2020-12-16 热度:197
我们知道VS开发中引用的程序集和运行时的程序集来源于不同的地方,前者来源于%ProgramFiles%Reference AssembliesMicrosoftFramework.NETFrameworkv{version},后者则来源于GAC。这可以从VS的添加引用对话框看出来。照理说两者应该一直才对,但是你是否[详细]
-
.NET Core采用的全新配置系统[8]: 如何实现配置与源文件的同步
所属栏目:[asp.Net] 日期:2020-12-16 热度:99
配置的同步涉及到两个方面:第一,对原始的配置文件实施监控并在其发生变化之后从新加载配置;第二,配置重新加载之后及时通知应用程序进而使后者能够使用最新的配置。接下来我们利用一个简单的.NET Core控制台应用来演示针对文件的配置会涉及到数据同步的问[详细]
-
深入理解C# 3.x的新特性(2):Extension Method[下篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:51
四、Extension Method的本质 通过上面一节的介绍,我们知道了在C#中如何去定义一个Extension Method:它是定义在一个 Static class 中的、第一个Parameter标记为 this 关键字的 Static Method 。在这一节中,我们来进一步认识Extension Method。 和C# 3.0的[详细]
-
深入理解C# 3.x的新特性(5):Object Initializer 和 Collectio
所属栏目:[asp.Net] 日期:2020-12-16 热度:152
深入理解 C#?3.x 的新特性系列自开篇以后,已经有两个月了。在前面的章节中,我们先后深入讨论了 C#?3.x 新引入的一些列新特性: Anomynous Type 、Extension Method 、Lambda Expression 、Automatically Implemented Property , 今天我们来讨论本系列的涉[详细]
-
事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[上篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:155
最近这两天一直在忙着为一个项目检查内存泄漏(Memory Leak)的问题,对相关的知识进行了一下简单的学习和探索,其间也有了一些粗浅的经验积累,今天特意写一篇相关的文章与大家分享。那些对内存泄漏稍微有点了解的人,对于本篇文章的标题,相信不会觉得是在[详细]
-
.NET Core采用的全新配置系统[3]: “Options模式”下的配置是如
所属栏目:[asp.Net] 日期:2020-12-16 热度:55
配置的原子结构就是单纯的键值对,并且键和值都是字符串,但是在真正的项目开发中我们一般不会单纯地以键值对的形式来使用配置。值得推荐的做法就是采用《.NET Core采用的全新配置系统[1]: 读取配置数据》最后演示的方式 将相关的配置定义成一个Options类型[详细]
-
如何利用ETW(Event Tracing for Windows)记录日志
所属栏目:[asp.Net] 日期:2020-12-16 热度:110
ETW是Event Tracing for Windows的简称,它是Windows提供的原生的事件跟踪日志系统。由于采用内核(Kernel)层面的缓冲和日志记录机制,所以ETW提供了一种非常高效的事件跟踪日志解决方案。 一、ETW模型 事件监测(Event Instrumentation)总会包含两个基本[详细]
-
谈谈分布式事务(Distributed Transaction)[共5篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:139
[第1篇] SOA需要怎样的事务控制方式 在一个基于SOA架构的分布式系统体系中,服务(Service)成为了基本的功能提供单元,无论与业务流程无关的基础功能,还是具体的业务逻辑,均实现在相应的服务之中。服务对外提供统一的接口,服务之间采用标准的通信方式进[详细]
-
ASP.NET MVC集成EntLib实现“自动化”异常处理[实例篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:118
个人觉得异常处理对于程序员来说是最为熟悉的同时也是最难掌握的。说它熟悉,因为仅仅就是try/catch/finally而已。说它难以掌握,则是因为很多开发人员却说不清楚try/catch/finally应该置于何处?什么情况下需要对异常进行日志记录?什么情况下需要对异常进[详细]
-
一个关于反序列化的小问题
所属栏目:[asp.Net] 日期:2020-12-16 热度:179
大家都知道,我们具有三种定义可序列化类型的方式:在类型上应用SerializableAttribute特性;应用DataContractAttribute/DataMemberAttribute特性和实现ISerializable接口。当你通过继承一个现有的类来定义你需要被序列化的类,如果这个父类实现了ISerializa[详细]
-
Ajax请求过程中显示“进度”的简单实现
所属栏目:[asp.Net] 日期:2020-12-16 热度:51
Ajax在Web应用中使用得越来越频繁。在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求);调用完成后,图片消失,当前[详细]
-
开发自己的Data Access Application Block[上篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:51
经常在网上看到对ORM的讨论沸沸扬扬,我也来凑个热闹,谈谈我写的一个ORM。最近在做一项工作,把我们经常用到的一些业务逻辑抽象出来,写成一个个的Application Block,使之可以运用到不同的Application中,比如Data Access,Messaging,Auditing,Data bind[详细]
- asp.net-mvc-3 – MVC3 WebGrid:可以在行/列上使
- asp.net-mvc-3 – 在ASP.NET-MVC3中缓存数据有什
- asp.net-mvc – ASP.NET MVC – 如何获取一个URL
- asp.net-mvc – Razor MVC4 Url.Action无效
- asp.net-core – 针对每个记录器定位不同的提供程
- 如何在ASP.Net Gridview中添加“确认删除”选项?
- asp.net-mvc – ASP.NET MVC – 如何从不同的控制
- 如何在asp.net C#代码后面的菜单控件中禁用特定菜
- 细说ASP.NET Forms身份认证
- asp.net – HttpContext.Current.User.Identity.