随笔分类 - Asp.Net
摘要:Recipes 在开发速度方面,MVC框架缺乏复杂的用户控件是相当不利的。MVC团队正在想办法提供一种方式,能实现象Web Forms一样快速开发,而不会被缺乏控件的情况所拖累。一个想法是“Recipes”的使用。这用一个例子能够很好的解释: 假设开发人员相要一个客户端排序的复杂网格。在Web Froms模式,开发人员会选择一个合适的网格式用户控件。虽然一些定制是允许的,但在大多数情况下,他们会被迫接受该控件所有的功能无论是否是真正想要的。当使用MVC下的recipe,开发人员将会在一个对话框中选择他们需要的功能。然后recipe会使用必要的类库如jQuery来生成所需的HTML和Java..
阅读全文
摘要:一、前言插件模型指应用程序由一些动态的独立模块构成,每个模块均具有一个或多个服务,并满足一定的插件协议,能够借助主程序实现主程序-插件,插件-插件之间的通讯。它定义了一套公共的接口,通过接口与插件进行通信,主要是通过反射来获取相关的属性和方法,然后再执行指定的操作。其实,它也可以理解为定义一套通用的解决方案,通过反射来获取相应的程序集的相关类型,然后执行这些指定类型的相关操作。它是一种即插即用的方案,更新及维护简便。本文仅仅是描述插件开发的大体模型,设计比较简单,主要的步骤如下:(1)、定义公共的接口以及抽象类。(2)、定义和实现相关组件。(3)、实现通用程序集反射操作类。其中,公共的接口和抽
阅读全文
摘要:网络上流传了很多关于敏捷开发的具体建议,加起来可能超过上百条,有些内容很精彩,而有些说法比较片面,值得商榷。收集和整理这些至理名言是我的一项工作。这些建议的分析和评论,供大家参考、拍砖。* 完整地做完第一件事后再开始第二件。软件开发的一个大问题就是同时做几件事情,这将不可避免地使得某些工作被废弃从而造成浪费。用厨房来比喻就是:“先上这道菜,再开始烧下一个。”不一定。并行工作还是必要的,但是要有限度。* 不要害怕做决定;不要害怕改变先前的决定。最大可能地延迟决策,直到必须做决定的时候。一旦有新的信息了,不要害怕改变先前的决定。不错,这是敏捷精神所在。* 度量、度量、度量。敏捷开发帮助处理了未来不
阅读全文
摘要:创建一个WPF应用程序 使用WPF(Windows Presentation Foundation),您可以创建两种主要类型的应用程序:安装应用程序和 Web 浏览器的应用程序。两者之间的主要区别在于它们的托管方式,以及是否支持页面到页面之间的导航。Microsoft Visual Studio 2008为这两种应用都提供了模板。 在本实验室,我们将一起创建一个安装应用程序,最后将其通过ClickOnce或MSI部署安装到用户的操作系统,并托管在一个独立的窗口之中。这种类型的应用程序对最终用户的系统资源有完全访问权限,在部署之前也必须获得用户的许可。 1.创建基本应用 (1)启动Mi...
阅读全文
摘要:转自:http://tech.hexun.com/2011-03-11/127852645.html 简介 ASP.NET 4中有大量由微软或第三方提供的控件,但要是这些控件不能满足你的需求,那该怎么办呢?答案是:自己动手去设计! 本教程会指导你如何去开发一个ASP.NET 的服务端控件,你会感受到在开发自己的服务端控件的同时,也提升了你开发的Web应用的质量。我们一般在开发自己的服务端控件的时候,会继承已有的一些服务端控件并添加一些自己的功能。当开发完服务端控件后,我们可以在不同的工程中共享这个控件。一般地,我们会把开发后经过编译的控件放在Web控件库,跟我们正常的工程分开。当我们要在某..
阅读全文
摘要:想让一个程序在启动系统的时候自动运行,你有什么好办法?添加到启动组?那如果别人删除掉就不管用了。如果你使用了Windows NT/2000/XP,就可以试试把这个程序添加为一个服务,这样只有拥有权限的人才可以更改服务,只要你设置好权限,就不用担心会被别人删除了。 要把应用程序添加为服务,你需要两个小软件:Instsrv.exe和Srvany.exe。 Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行。 把这两个程序保存在一个方便的位置,例如C盘根目录下。 我们举例来说明,把OE作为一个服务添加进Windows XP Professional...
阅读全文
摘要:问题 近几个月来,ASP.NET MVC框架正吸引越来越多的Web开发人员的关注。如今,已经在网上断断续续地看到有些发烧友正试着使用这个框架编写一些DEMO,甚至还简单地结合进ASP.NET AJAX框架相关技术。那么,ASP.NET MVC框架是否发展成替换ASP.NET Web表单框架技术而一跃成为ASP.NET未来主流的UI平台呢?为此,微软的Joe Stagner有一篇简洁的BLOG(地址为:http://www.misfitgeek.com/Will+ASPNET+MVC+Be+The+Main+Web+UI+Platform+For+ASPNET.aspx)对这一问题作了十分清楚的
阅读全文
摘要:COOKIES的限制和缺陷 首先,让我们来回顾下cookies。Cookies的出现可谓大大推动了Web的发展,但它既有优点也有一定的缺陷。Cookies的优点在于,它可以允许我们在登陆网站时,记住我们输入的用户名和密码,这样在下一次登陆时就不需要再次输入了,达到自动登陆的效果。 另一方面,cookie的安全问题也日趋受到关注,比如cookie由于存储在客户端浏览器中,很容易受到黑客的窃取,安全机制并不是十分好。 另外一个问题是cookies存储数据的能力有限。目前在很多浏览器中规定每个cookie只能存储不超过4KB的限制,这估计是来自 1997年rfc2109中的规定(http:/...
阅读全文
摘要:一、简介MVC(模型—视图—控制器)结构模式把一个应用程序拆分成三个主要组件:模型、视图和控制器。在创建基于MVC框架的Web应用程序时,你可以把ASP.NET MVC框架作为ASP.NET Web表单模式方案的一种重要候选。较之于基于Web表单的应用程序,ASP.NET MVC框架是一个轻量级的、测试性强的描述框架,它能够与现有ASP.NET特征(例如母版页面和基于成员身份的认证)紧密集成。MVC框架定义于System.Web.Mvc命名空间中。长时间以来,MVC是一种为众多开发人员所熟悉的标准设计模式。一些类型的Web应用程序受益于MVC框架,而另一些将继续使用基于Web表单与回寄技术的传
阅读全文
摘要:在做.NET项目时,经常会遇到要导出文件的问题,如将DataGrid中的数据导出到word、excel文件等。下面是自己写的一个.net导出文件操作类,现把代码贴出来,以供参考,如有不当之处望予指正!1usingSystem;2usingSystem.Web;3namespaceFLX.ComplexQuery4{5///<summary>7///导出报表数据存入word或execl文件9///</summary>10publicclassExportData11{12#region构造函数13publicExportData()14{15//16//TODO:在此处添
阅读全文
摘要:算法评测——复杂度记法刚才说过,线性查找的计算量为O(n),二分查找的复杂度为O(log n)。大多情况下,算法的复杂度可以这样定量评测。算法评测一般使用复杂度记法(Order记法)。复杂度记法表示的含义是,当算法的输入大小为n时,大致需要这么多的计算量。花费时间与n的大小无关,能在固定时间内完成的处理,其复杂度为O(1)。例如从散列中查找数据,虽然要计算散列函数,但散列函数计算不依赖于n,所以复杂度为O(1)。而散列搜索中,给定键的值(几乎)是唯一的,因此通过键搜索值的处理也是O(1)(也依赖于具体实现)。因此,散列搜索整体复杂度为O(1)[1]。如前所见,线性查找要从开头开始查找,最大要查
阅读全文
摘要:1、ClientIDMode 渲染ASP.NET控件时会自动生成一个ID,当我们在客户端脚本中引用它们时,却会制造不少麻烦,虽然它是命名容器和ID的简单串联,但仍然无法预测生成的ID范围。 ASP.NET 4.0使用ClientIDMode属性解决了这个问题,它允许你控制生成这些ID的方法,ClientIDMode有四个可选择的值:AutoID,Static,Predictable和Inherit。下面是这四个值的含义解释: AutoID – 和4.0以前的版本保持一致,自动生成ID。 Static – 由你指定ID的值,在渲染控件时不会发生变化。 Predictable – 由你指...
阅读全文
摘要:输出缓存Output caching 数据缓存Data caching 1. 输出缓存(Output Caching) 使用输出缓存,你可以缓存最后输出的HTML页面,当相同的页面再次请求的时候,ASP.NET不会再执行页面的生命周期和相关代码而是直接使用缓存的页面,语法如下: <%@ OutputCacheDuration=”60”VaryByParam=”None”%> Duration 属性设置页面将被缓存60妙。任何的用户请求都会被缓存,在缓冲的60秒内相同的请求都会直接使用缓存的页面。当缓存过期后ASP.NET会再次执行页面代码并且为下一个60秒创建一个新的HTML缓存。
阅读全文
摘要:撇开那些文章不说,C#/.NET慢似乎是业界公认的铁则,不论大家如何证明C# / .NET其实不比C++慢多少,但是应用程序级别的性能却依然这么慢。 那么C#/.NET慢在哪里? 很不幸的是大部分c#程序是被大部分程序员拖慢的,也许这个结论不太容易被人接受,却是一个广泛存在的。 String的操作 几乎所有的程序都有String操作,至少90%的程序需要忽略大小写的比较,检查一下代码,至少其中大半的应用程序有类似这样的代码:if(str1.ToUpper()==str2.ToUpper()) 或者ToLower版的,甚至我还看到过有个Web的HttpModule里面写上了:for(i...
阅读全文
摘要:小白听完Mr.林对数据分析的介绍后,问道:数据分析这么有用,那成为一个优秀的数 据分析师要具备哪些素质呢?以我现在的能力可以做数据分析师吗?Mr.林看了看小白说:小白,先别着急。我们先来看看菜鸟与数据分析师之间的差别。刚好我这儿有张菜鸟与数据分析师想法对比图(参见图1-2),你可以对比一下,看看自己在哪些方面还是菜鸟,在哪些方面已经达到了数据分析师的水平。从他们思考问题的不同 方式,就能发现为什么一个是菜鸟,而另外一个是数据分析师了。Mr.林:小白,从菜鸟与数据分析师想法对比图中,你发现菜鸟与数据分析师有什么区别小白:我发现,菜鸟很迷茫,目的不明确,而且一味追求高级的分析方法。而数据分析师的目
阅读全文
摘要:1.控制反转控制反转(Inversion of Control,IoC),简言之就是代码的控制器交由系统控制,而不是在代码内部,通过IoC,消除组件或者模块间的直接依赖,使得软件系统的开发更具柔性和扩展性。控制反转的典型应用体现在框架系统的设计上,是框架系统的基本特征,不管是.NET Framework抑或是Java Framework都是建立在控制反转的思想基础之上。控制反转很多时候被看做是依赖倒置原则的一个同义词,其概念产生的背景大概来源于框架系统的设计,例如.NET Framework就是一个庞大的框架(Framework)系统。在.NET Framework大平台上可以很容易地构建AS
阅读全文
摘要:在.NET中,函数并不是第一级成员,所以并不能像JavaScript那样通过在函数中内嵌子函数的方式实现闭包,通常而言,形成闭包有一些值得总结的非必要条件:嵌套定义的函数。匿名函数。将函数作为参数或者返回值。在.NET中,可以通过匿名委托形成闭包:delegate void MessageDelegate(); static void Main(string[] args){ string value = "Hello, Closure."; MessageDelegate message = delegate() { Show(value); }...
阅读全文
摘要:一段时间没有写东西了,不是因为俺懒,也不是因为俺忙,是因为俺上不了网....今天项目中用到了数据的序列化和反序列化,数据用的是EF自动生成的代码,开始用的.net 自带的DataContractJsonSerializer进行序列化和反序列化,当代码写完以后,调试,我X(原谅我的脏话,因为确实让我生气),实体因为有[DataContractAttribute(IsReference=true )] 这样一个属性,提示不能序列化,当然手改一下啦,改完以后,提示基类EntityObject 的这个属性不可以MY God!!后来也是因为DataContractJsonSerializer 反序列化成
阅读全文
摘要:1 .Global.asax文件是 ASP.NET 应用程序的中心点。它提供无数的事件来处理不同的应用程序级任务,比如用户身份验证、应用程序启动以及处理用户会话等。你应该熟悉这个可选文件,这样就可以构建出健壮的ASP.NET 应用程序。2 .sln:解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息。3 .csproj:项目文件,创建应用程序所需的引用、数据连接、文件夹和文件的信息。4 .aspx:Web 窗体页由两部分组成:视觉元素(HTML、服务器控件和静态文本)和该页的编程逻辑。Visual Studio 将这两个组成部分分别存储在一个单独的文件中。视觉元素在.asp
阅读全文
摘要:分页我相信大家存储过程分页已经很熟悉了,ajax更是耳熟能详了,更别说我们的json,等等。如果说您没用过这些东东的话,我相信看完这篇博文会对您有帮助的,,如果有任何问题不懂或者有bug没问题,欢迎随时联系我,同时也欢迎高手多给点意见,我不建议在喷子中成长。前言相信很多朋友都用过,Jquery的分页插件,我之前就用的jquery.paper这个,如果有兴趣可以留下QQ,我发份简单的实例源码给您。该代码是晚上匆忙中完成的,所以没怎么优化,但是主要作为实例来结合这些知识的一个综合运用。好了废话不多说,直接上代码。vs2010+sql2005express正文首先我们创建一般处理程序,来读取数据库中
阅读全文