随笔分类 - [27]NET8
-
细说 HttpHandler 的映射过程
摘要:细说 HttpHandler 的映射过程阅读目录开始回顾HttpHandlerHttpHandler的映射过程HttpContext.RemapHandler()HttpContext.RemapHandler()的另类用途GetHandlerMapping()GetFactory()GetHandler()IHttpHandler.IsReusable实现自己的HttpHandlerFactory是否需要IsReusable = true ?HttpHandlerFactory的主要用途在ASP.NET编程模型中,一个来自客户端的请求要经过一个称为管线的处理过程。 在整个处理请求中,相对于其 阅读全文
-
细说 ASP.NET控制HTTP缓存
摘要:细说 ASP.NET控制HTTP缓存阅读目录开始正常的HTTP请求过程缓存页的请求过程缓存页的服务端编程什么是304应答?如何编程实现304应答如何避开HTTP缓存在上篇博客【细说 ASP.NET Cache 及其高级用法】中, 我给大家介绍了ASP.NET Cache,这种服务端使用的缓存API 。在我们开发一个ASP.NET网站的过程中,其实有很多地方都是可以使用缓存的, 只是由于ASP.NET是一种基于服务端的开发平台,自然我们也经常在服务端的代码中使用各类缓存技术, 然而,由于WEB应用程序的服务对象是客户端的浏览器,通常来说,我们并不能直接控制浏览器的行为,但是, 浏览器却可以根据后 阅读全文
-
AntiXSS - 支持Html同时防止XSS攻击
摘要:跨站脚本攻击(XSS)已经不是什么新鲜的话题了,甚至很多大公司也为此吃尽苦头。最简单直接的防范方法,就是不允许任何html标签输入,对用户输入进行编码(htmlencode)。但是如果想用户输入支持一些格式,怎么办?一种办法就是很多论坛采用的BB Code的方法。使用特定的标签代替一些格式。比如:[B]表示粗体,等等。但是,BB Code这种形式并不被广泛接受,它的表现力实在太差了,而且并不是标准格式。为了让用户的输入更具表现力,涌现了大量的Html编辑器控件,著名的有FCKEditor,FreeTextBox,Rich TextBox,Cute Editor,TinyMCE等等。比如,博客园 阅读全文
-
细说 ASP.NET Cache 及其高级用法
摘要:阅读目录开始Cache的基本用途Cache的定义Cache常见用法Cache类的特点缓存项的过期时间缓存项的依赖关系 - 依赖其它缓存项缓存项的依赖关系 - 文件依赖缓存项的移除优先级缓存项的移除通知巧用缓存项的移除通知 实现【延迟操作】巧用缓存项的移除通知 实现【自动加载配置文件】文件监视技术的选择各种缓存方案的共存许多做过程序性能优化的人,或者关注过程程序性能的人,应该都使用过各类缓存技术。 而我今天所说的Cache是专指ASP.NET的Cache,我们可以使用HttpRuntime.Cache访问到的那个Cache,而不是其它的缓存技术。以前我在【我心目中的Asp.net核心对象】这篇博 阅读全文
-
ASP.NET程序也能像WinForm程序一样运行
摘要:ASP.NET程序也能像WinForm程序一样运行阅读目录开始操作方式支持的ASP.NET程序类别它也是个HTTP服务器支持远程机器访问不受限于Windows防火墙尊重每个人的操作习惯内置多标签浏览器支持启动参数及配置文件支持 .NET 4.0部署问题由于现在会使用WinForm的人是越来越少了,可能有时候做点小东西就只好用ASP.NET去完成了(喜欢控制台的朋友请不要顶针), 如果是这样,悲剧就发生了:一个小工具(或者小的演示项目),发给朋友去用,总不至于让人家也装个IIS或者VS20XX吧? 如果没有这二样,这种小工具还真不方便运行。怎么办? 做过ASP.NET开发的人都知道:网站通常要布 阅读全文
-
Asp.net Web开发相关技术
摘要:现实环境在国内.Net开发这个环境里, 中小型公司,或者大公司但主营业务不是软件开发里面的软件小团队,针对.Net开发人员的要求都是十项全能型的全才, 能做的了从前台页面展现到最后数据存储的全套开发流程,甚至有些还需要程序发布,打包部署等知识, 以及还有其他方面的要求, 这个不说那么多.招人难: 在招人的时候,我们碰到的大部分都是有多年工作经验,懂的东西也一大堆,或许有些懂的东西也没多少,问起基础性的概念问题,原理问题,大都没法准确的回答出来, 为何会出现这种情况? 这个时候我们那么多年的开发经验真有多少含金量?从工作当中找原因: 在这里不说具体的做法,只说主要原因,1. 有些东西做了,完成后 阅读全文
-
京东今天还在用.NET架构的原因是什么?
摘要:为什么他会一开始用.NET呢?这个东西就只能我就只能推理了。Windows的东西门槛低,而且有很多媒体为Windows做宣传,所以,在这个大多数人是井底之蛙的国度里,大多数人都会用Windows平台的。AD:被人邀请来回答这个问题,我觉得这个问题有三个部分:1)为什么京东选Win/.NET平台2)选Win/.NET平台行不行?3)京东的系统的问题是什么?1)为什么京东选Win/.NET平台?我觉得京东用.NET的原因应该很简单:一开始他就用.NET/Windows了,所以长期就这样了。那么,为什么他会一开始用.NET呢?这个东西就只能我就只能推理了。Windows的东西门槛低,而且有很多媒体为 阅读全文
-
ASP.NET开发人员经常使用的三十三种代码
摘要:几年前,一篇《ASP.NET开发人员经常使用的三十三种代码》非常流行,它总结了一些经常在ASP.NET开发中使用到的代码,直接可以拿来使用。今天重读这篇文章,有感而发,善于总结也是进步,于是我也从我的项目中总结一些常用的代码片段,分享给各位园友。1. 打开新的窗口并传送参数: 传送参数:response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)</script>") 接收参数:string a = 阅读全文
-
ASP.NET的各种异步操作
摘要:细说ASP.NET的各种异步操作阅读目录开始在ASP.NET中使用异步异步 HttpHandlerASP.NET 异步页的实现方式1. 调用Page.AddOnPreRenderCompleteAsync()的异步页2. 调用Page.RegisterAsyncTask()的异步页3. 基于事件模式的异步页各种异步页的实现方式比较异步HttpModule的实现方式异步的 Web ServiceASP.NET MVC 中的异步方式受争论的【基于事件的异步模式】结束语在上篇博客【C#客户端的异步操作】, 我介绍了一些.net中实现异步操作的方法,在那篇博客中,我是站在整个.net平台的角度来讲述各 阅读全文
-
网站需要提高安全性
摘要:最近公司的网站需要提高安全性。防止用户的恶意攻击。分为几种攻击1.XSS跨站脚本攻击.2.SQL注入攻击.以前没觉得web可以这么轻易的被攻击。用Netsparker工具扫描了一下网站发现sql注入和跨网脚本攻击.(这个软件可以通过http://www.mavitunasecurity.com/communityedition/这个网址下载).主要是由几方面原因引起的:1.前端和后端的输入验证不够规范统一及完整.2.对于用户输入的数据完全信任是危险的,没有编码和过滤一些恶意字符。例如访问这样一个网址: /product/productSearch.aspx? ?coid=3&pmid= 阅读全文
-
写自己的服务框架
摘要:用Asp.net写自己的服务框架我的上篇博客【我心目中的Asp.net核心对象】讲述了一些我认为在Asp.net中比较重要的核心对象,以及演示了直接使用它们也能实现一个简单的服务响应。 今天,我将继续把我认为Asp.net的另一些重要的内容拿出来与大家一起分享,同时将使用本次所讲述的内容改进上篇博客所演示的那个简单的服务,让它成为一个真正能用的服务框架。在这篇博客中,不仅会继续演示上次提到的三个核心对象,我还会再引入另二个关键对象, 我将用更多实战代码来演示它们如何在一起协同工作,来完成许多常见任务, 展现它们的精彩故事,也最终会让它们来实现我的服务框架。 因此,这篇博客不仅仅是针对Asp.n 阅读全文
-
URL友好化
摘要:ASP.NET MVC3 系列教程 - URL友好化的重型武器[路由]I:URL友好化的优势 在过去,我们开发ASP.NET应用程序的时候常常会使用URL的QueryString去传递参数给ASP.NET处理.如:http://localhost:1029/Default.aspx?key_1=value_1&key_2=value_2&key_3=value_3 在使用此类URL格式去做门户网站时,非常不利于让搜索引擎收录页面.另外还包含.aspx结尾还会令搜索引擎爬虫烛觉得这个页面是动态页从而放弃收录或降低页面在搜索结果中的排名. 面对这个问题,我们为了讨好搜索引擎爬虫首先 阅读全文
-
细说Cookie
摘要:Cookie虽然是个很简单的东西,但它又是WEB开发中一个很重要的客户端数据来源,而且它可以实现扩展性很好的会话状态,所以我认为每个WEB开发人员都有必要对它有个清晰的认识。本文将对Cookie这个话题做一个全面的描述,也算是本人对Cookie的认识总结。Cookie 概述Cookie是什么? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。为什么需要Cookie? 因为HTTP协议是无状态的,对于一个浏览器发出的多次请求,WEB服务器无法区分是不是来源于同一个浏览器。所以,需要额外 阅读全文
-
细说 Form (表单)
摘要:Form(表单)对于每个WEB开发人员来说,应该是再熟悉不过的东西了,可它却是页面与WEB服务器交互过程中最重要的信息来源。虽然Asp.net WebForms框架为了帮助我们简化开发工作,做了很完美的封装,让我们只需要简单地使用服务端控件就可以直接操作那些HTML表单元素了。但我认为了解一些基础的东西,可以使我们不必束缚在WebForms框架上,以及遇到一些奇怪问题时,可以更从容地解决它们。今天,我将和大家来聊聊表单,这个简单又基础的东西。我将站在HTML和单纯的Asp.net框架的角度来解释它们的工作方式,因此,本文不演示WebForms服务器控件的相关内容。简单的表单,简单的处理方式好了 阅读全文
-
.NET简谈脚本引擎系列(一:认识脚本引擎)
摘要:提到脚本,大家都耳熟能详但是默默无私奉献的脚本引擎都被大家所忽略,本人也是最近才开始接触脚本引擎的技术的,是我的恩师指点我去学习它, 真是不用不不知道,一用吓一跳;如果我们能熟练的使用脚本引擎,那么将大大增加我们系统的灵活性;一开始不太理解这个技术,脚本引擎听起来感觉很厉害,自从了解了脚本引擎的技术后对一些脚本语言的执行也多了一步的认识,不管是我们B/S中常用的Javascript、vbscript还是数据库中的sqlscript我们都可以用类似的方式去理解,我们先从脚本这个名词进行分析,脚本百度定义:[王清培版权所有,转载请给出署名]脚本(script)是使用一种特定的描述性语言,依据一定的 阅读全文
-
JQuery浮动广告插件
摘要:项目后期维护过程中,客户提出要在网站的首页上加一些广告图片宣传,类似于新浪网打开时的弹出效果。http://www.cnblogs.com/wdong/archive/2011/06/15/higo_plugins_ad.html 需求如下: a).网页两边及中间可以显示广告图片 b).定时或手工关闭 c).可设定图片透明度, d).随网页滚动而滚动 ... x) 需求X待定...(此处奋斗在一线的程序员朋友们,你们懂的...) ok,需求很明确,不就是绝对定位一下图片,然后动态随网页滚动调整位置么,于是三下五除二上js,先看下效果,随后说明详细步骤 步骤如下: 1.构造字符串,通过dom输. 阅读全文
-
.Net调试技巧
摘要:部门内部培训的PPT,版权属于我同事(这里不公布姓名)了,已征的本人同意。 Net调试http://www.cnblogs.com/breezeli/archive/2011/06/14/2081003.html 面向对象编程--听高翔“面向对象与生活”有感 应老赵的要求放个链接,第三届nBazaar大会正在报名http://nbazaar.org/ 面向对象编程是什么?无疑面向对象编程首先是编程,然后编程前面有定语“面向对象”。我很不客气的在前面加一个“你”,你面向对象编程。 为什么把这么个话题又拿出来又说呢!主要是我觉得这个话题虽然说了又说但是很多人还是不明白,所以很有必要拿出来再说一说, 阅读全文
-
高性能web开发经验分享
摘要:高性能web开发经验分享 看到此文标题,我想要表述的你应该会很明确,我所说的“高性能”——本文主要只针对提高用户体验:(网页)快速响应和能支持较多(1000人以上)的用户同时访问而谈下自己所知道的。 首先,无论你是在用什么语言从事web开发,php、asp.net、jsp....(开发语音只是个工具而已,不同只是某些更适合做某类程序的开发),影响用户体验性重要因素除了:操作性和(页面)效果外,就是页面打开速度了。所以,一个网站的性能对其长期稳定的运营起着决定性的作用。 想提高网站的性能,就必须在各方面去做优化,从页面层的请求优化,到数据库层的数据缓存优化;方法或措施列举如下: 一.【页面层】减 阅读全文
-
ASP.NET前台使用__doPostBack函数调用后台事件
摘要:这里需要提一下的是,asp.net编程提供了服务端控件和客户端控件的说法,其实还是脱离不了HTML的本质,客户端和服务端需要交互必须要提交,提交有两种方式get和post,get就是通过向服务端发送连接地址,服务端通过地址的参数来获得信息的,一般这些参数都是明文,能在浏览器地址栏看到。而post是通过表单的input等元素提交到服务端的页面的,这些数据一般是看不到的。asp.net的服务端控件其实就是对一般的HTML控件做了个包装,大体是通过隐藏控件提供控制的参数的。 这里介绍一个常用的函数_doPostBack,这个函数如果如果是ASP.Net render出来的页面就是自动产生这个函数,比 阅读全文
-
HttpApplication,HttpModule,HttpContext及Asp.Net页生命周期
摘要:IIS在接到一个新的http请求后,最终会调用asp.net_isapi.dll的ISAPI扩展(特指IIS6.0环境,iis7.0的应用程序池默认为集成方式,相对有所变化),然后传递到httpRuntime Pipe(http运行时管道),Asp.Net这时才开始运行(即HttpRunTime是Asp.Net真正的入口),HttpRunTime会为每个asp.net应用自动创建一个HttpApplication的实例,而该实例中又包含以下属性:注1Application -->相当于传统意义上asp时代的application对象,通常用于定义一个asp.net应用的全局变量Conte 阅读全文