-
通过添加HTTP Header实现上下文数据在WCF的自动传递
所属栏目:[asp.Net] 日期:2020-12-16 热度:165
多年之前,我写了一篇通过WCF扩展实现上下文信息从客户端自动传递到服务端的文章,其实现机制很简单:将上下文信息存放到SOAP Header进行传递。那么对于非SOAP消息的RESTful服务就不使用了。为了解决这个问题,我们可以将存放上下文信息的地方从SOAP Header[详细]
-
ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式
所属栏目:[asp.Net] 日期:2020-12-16 热度:183
由于ASP.NET Core应用是一个同时处理多个请求的服务器应用,所以在处理某个请求过程中抛出的异常并不会导致整个应用的终止。出于安全方面的考量,为了避免敏感信息的外泄,客户端在默认的情况下并不会得到详细的出错信息,这无疑会在开发环境下增加查错纠错[详细]
-
Roslyn还出现这么低级的错误,不应该呀!
所属栏目:[asp.Net] 日期:2020-12-16 热度:165
前几天对Dora.Interception作了简单的重构,想提供C#脚本来定义Interception Policy,毫无疑问微软提供的编译平台Roslyn使C#脚本化提供了支持。但是没有想到随便尝试了一个简单的功能就出现了问题,我个人觉得这应该是Roslyn的Bug。但是Roslyn经历了这么多次[详细]
-
ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则
所属栏目:[asp.Net] 日期:2020-12-16 热度:71
对于Model验证,理想的设计应该是场景驱动的,而不是Model(类型)驱动的,也就是对于同一个Model对象,在不同的使用场景中可能具有不同的验证规则。举个简单的例子,对于一个表示应聘者的数据对象来说,针对应聘的岗位不同,肯定对应聘者的年龄、性别、专业[详细]
-
ASP.NET MVC集成EntLib实现“自动化”异常处理[实现篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:106
通过《实例篇》的实演示可以看出我们通过扩展实现的自动异常处理机制能够利用EntLib的EHAB根据执行的一场处理策略对某个Action方法执行过程中抛出的异常进行处理。对于处理后的结果,则按照如下的机制对请求进行响应。[源代码从这里下载][本文已经同步到《Ho[详细]
-
.NET Core的日志[2]:将日志输出到控制台
所属栏目:[asp.Net] 日期:2020-12-16 热度:195
对于一个控制台应用,比如采用控制台应用作为宿主的ASP.NET Core应用,我们可以将记录的日志直接输出到控制台上。针对控制台的Logger是一个类型为ConsoleLogger的对象,ConsoleLogger对应的LoggerProvider类型为ConsoleLoggerProvider,这两个类型都定义在 N[详细]
-
通过ASP.NET Web API + JQuery创建一个简单的Web应用
所属栏目:[asp.Net] 日期:2020-12-16 热度:168
看了dudu的《HttpClient + ASP.NET Web API,WCF之外的另一个选择》一文,想起多很久之前体现ASP.NET Web API而创建的一个Demo。这是一个只涉及到简单CRUD操作的Web应用,业务逻辑以Web API的形式定义并以服务的形式发布出来,前台通过jQuery处理用户交互并调[详细]
-
事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[下篇] (
所属栏目:[asp.Net] 日期:2020-12-16 热度:193
在上篇中我们谈到:将一个生命周期较短的对象(对象A)注册到一个生命周期较长(对象B)的某个事件(Event)上,两者便无形之间建立一个引用关系(B引用A)。这种引用关系导致GC在进行垃圾回收的时候不会将A是为垃圾对象,最终使其常驻内存(或者说将A捆绑到[详细]
-
框架升级后某个类型所在程序集发生转移,应用还能正常运行吗?
所属栏目:[asp.Net] 日期:2020-12-16 热度:142
所谓类型转移(Type Forwarding)就是将定义在某个程序集中的类型转移到另一个程序集中。我们先通过一个简单的实例让读者朋友们对类型转移有一个感官上的认识。我们利用Visual Studio创建一个针对.NET Framework 3.5的控制台应用,并编写如下一端简单的程序[详细]
-
关于Type Initializer和 BeforeFieldInit的问题,看看大家能否给
所属栏目:[asp.Net] 日期:2020-12-16 热度:143
下面通过一个简单的Console Application演示Type Innitializer的执行顺序。希望大家各抒己见,对于实验的结果给出一个圆满的解释,同时希望读者从中理解到更多关于编译、关于CLR一些被我们忽略的细节。 代码如下,在类Foo中定义了两个static成员:静态字段Fi[详细]
-
当InternalsVisibleToAttribute特性遭遇"强签名"
所属栏目:[asp.Net] 日期:2020-12-16 热度:186
一、如何让Intenal成员暴露给另一个程序集 我们知道Modifier为Internal的类型成员仅限于当前程序集能够访问,但是在某些情况下,我们希望将它们暴露给另一个程序集。比较典型的应用场景包括如下两种: 将一个组件或者模块定义成两个或者两个以上程序集,一个[详细]
-
如何解决分布式系统中的跨时区问题[实例篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:144
关于如何解决分布式系统中的跨时区问题,上一篇详细介绍了解决方案的实现原理,在这一篇中我们通过一个完整的例子来对这个问题进行深入探讨。尽管《原理篇》中介绍了那么多,解决方案的本质就是:在进行服务调用过程中将客户端的时区信息作为上下文传入服务[详细]
-
T-SQL Enhancement in SQL Server 2005[下篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:151
在第一部分中,我们讨论了 APPLY 和 CTE 这两个T-SQL Enhancement。APPLY实现了Table和TVF的Join,CTE通过创建“临时的View”的方式使问题化繁为简。现在我们接着来讨论另外两个重要的T-SQL Enhancement Items: PIVOT 和 Ranking 。? 三、 ??????????? PIVO[详细]
-
谈谈基于SQL Server 的Exception Handlingp[下篇]
所属栏目:[asp.Net] 日期:2020-12-16 热度:138
六、 SqlException 在上面一节中,我给出了一个完整的例子说明了:如何在将 message 定义在 sys.messages 中保证 message 的一致性和可维护性;如何在 Stored procedure 中使用 RAISERROR 将一个可预知的 Error 抛出;如何在 TRY/CATCH 进行异常的捕捉;在 A[详细]
-
.NET Core的文件系统[1]:读取并监控文件的变化
所属栏目:[asp.Net] 日期:2020-12-16 热度:190
ASP.NET Core 具有很多针对文件读取的应用。比如我们倾向于采用JSON文件来定义配置,所以应用就会涉及针对配置文件读[详细]
-
集成EntLib实现ASP.NET MVC的异常处理
所属栏目:[asp.Net] 日期:2020-12-16 热度:145
本篇通过自定义ASP.NET MVC的异常筛选器实现了与EntLib的EHAB(Exception Handling Application Block)的集成,使我们可以通过配置的方式来定义异常处理策略,并最终通过错误页面显示被处理过的异常信息。[源代码从这里下载] 我们知道ASP.NET MVC具有一个类[详细]
-
为.NET Core项目定义Item Template
所属栏目:[asp.Net] 日期:2020-12-16 热度:169
作为这个星球上最强大的IDE,Visual Studio不仅仅提供了很多原生的特性,更重要的是它是一个可定制的IDE,比如自定义Project Template和Item Template就是一个非常有用的扩展点。这里我们主要关注Item Template,它时我们可以在“Add new Item”对话框中添加[详细]
-
ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期
所属栏目:[asp.Net] 日期:2020-12-16 热度:141
ServiceProvider最终提供的服务实例都是根据对应的ServiceDescriptor创建的,对于一个具体的ServiceDescriptor对象来说,如果它的ImplementationInstance和ImplementationFactory属性均为Null,那么ServiceProvider最终会利用其ImplementationType属性返回的[详细]
-
.NET Core采用的全新配置系统[5]: 聊聊默认支持的各种配置源[内
所属栏目:[asp.Net] 日期:2020-12-16 热度:166
较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持。我们可以将内存变量、命令行参数、环境变量和物理文件作为原始配置数据的来源,如果采用物理文件作为配置[详细]
-
在Entity Framework中使用存储过程(五):如何通过存储过程维护
所属栏目:[asp.Net] 日期:2020-12-16 热度:167
对于数据库设计来说,多对多(或者一对多)是一种常见的数据关系,比如联系人和地址之间的关系。我们通常采用建立关系表的方式来表示这种关系,比如我们创建一张Contact—_Address(ContactID,AddressID)来存储联系人和地址之间的关系。如果我们最终需要通[详细]
-
.NET Core的文件系统[3]:由PhysicalFileProvider构建的物理文件
所属栏目:[asp.Net] 日期:2020-12-16 热度:69
ASP.NET Core应用中使用得最多的还是具体的物理文件,比如配置文件、View文件以及网页上的静态文件,物理文件系统的抽象通过PhysicalFileProvider这个FileProvider来实现,该类型定义在NuGet包“Microsoft.Extensions.FileProviders.Physical”中。我们知道S[详细]
-
如何让普通变量也支持事务回滚?
所属栏目:[asp.Net] 日期:2020-12-16 热度:82
有一次和人谈起关于事务的话题,谈到怎样的资源才能事务型资源。除了我们经常使用的数据库、消息队列、事务型文件系统(TxF)以及事务性注册表(TxR)等,还有那些资源直接可以纳入事务进行状态的管理呢?我说如果我们按照.NET事务模型的规范对相应的资源进[详细]
-
如何让ASP.NET Web API的Action方法在希望的Culture下执行
所属栏目:[asp.Net] 日期:2020-12-16 热度:69
在今天编辑推荐的《Hello Web API系列教程——Web API与国际化》一文中,作者通过自定义的HttpMessageHandler的方式根据请求的Accep-Language报头设置当前线程UI Culture的方式来解决Localization的问题。如果你对ASP.NET Web API的执行机制有足够了解的话,[详细]
-
深入理解C#3.x的新特性(4):Automatically Implemented Proper
所属栏目:[asp.Net] 日期:2020-12-16 热度:182
深入理解 C#3.x 的新特性系列在沉寂一个月之后,今天继续。在本系列前 3 部分中,我们分别讨论了Anonymous Type ,Extension Method 和Lambda Expression ,今天我们来讨论另一个实用的、有意思的 New feature : Automatically Implemented Property 。 一[详细]
-
.NET Core多平台开发体验[1]: Windows
所属栏目:[asp.Net] 日期:2020-12-16 热度:142
微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的.NET程序员,相信传统的.NET应用的开发方式已经深深地烙印在你的脑子里面。.NET Core打来了全新的开发[详细]
- 在ASP.NET WebForms中使用jQuery调用’WebMethod
- asp.net – 如何判断一个方法是否在UpdatePanel回
- asp.net-core – AuthorizationHandler和数据库依
- asp.net-mvc-4 – 多个单选按钮组在MVC 4剃刀
- .net – 如何在ASP成员资格中使用LogOut
- asp.net – 我应该关注受感染的zip文件吗?
- asp.net-mvc – 实体框架核心可空外键
- asp.net – 会话超时后重定向到登录页面
- ASP.NET Mvc Api:设置cookie然后302/303 Redire
- asp.net-mvc-3 – mvc3剃刀条件包装器div