分类

链接

2025 年 4 月
 123456
78910111213
14151617181920
21222324252627
282930  

近期文章

热门标签

新人福利,免费薅羊毛

ASP.NET跨域单点登录实现

前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助。SSO的解决方案很多,但搜索结果令人大失所望,大部分是相互转载,并且描述的也是走马观花。       闲话少叙,进入正题,我的想法是使用集中验证方式,多个站点集中Passport验证。 如下图所示:       为方便清晰描述,先定义几个名词,本文中出现之处均为如下含义。       主站:Passport集中验证服务器 http://www.passport.com/ 。       分站...

.NET 暂无评论 阅读(3,727)

WPF实战系列-图形透明度与混色特效

 提示框(有趣小Demo) 做了一个有趣的小Demo,下面首先给大家Share一下成果: 做出来的最后运行效果如上图所示,由于只能用图片显示,其实但当你按住鼠标左键,然后可以在屏幕上拖动该提示框(我觉得效果还可了,哈哈),我会在后面提供源码的下载,大家可以下载下来,在本地运行着看一哈子,体验一下。用WPF来做这个提示框其实很简单,很多复杂的东西Microsoft都给我们做好了,我们只要会用就可以了,以后在慢慢搞清楚其中的实现原理就OK啦。其实我觉得学新技术就是这样子的,先学会怎么用,然后在运用的过程中...

.NET 暂无评论 阅读(4,521)

C# CHECKEDLISTBOX用法总结

一般认为:foreach (object obj in checkedListBox1.SelectedItems)即可遍历选中的值。 其实这里遍历的只是高亮的值并不是打勾的值。遍历打勾的值要用下面的代码: for (int i = 0; i < checkedListBox1.Items.Count; i++){    if (checkedListBox1.GetItemChecked(i))    {        MessageBox.Show(checkedListBox1.GetItemText(checkedListBox1.Items[i]));    }} 参考: 最近用到checklistbox控件,在使用其过程中,花了较多的时间,这里我收集了其相关的代码段,希望对大家有所帮助。1.添加项checkedLis...

.NET 暂无评论 阅读(8,260)

改善您的C#程序系列(12)-装箱和拆箱

值类型是数据的容器,它们不具备多太性。另一方面就是说,.Net框架被设计成单一继承的引用类型,System.Object,在整个继承关系中做为根对象存在。设计这两种类型的目的是截然不同的,.Net框架使用了装箱与拆箱来链接两种不同类型的数据。装箱是把一个值类型数据放置在一个无类型的引用对象上,从而使一个值类型在须要时可以当成引用类型来使用。拆箱则是额外的从“箱”上拷贝一份值类型数据。装箱和拆箱可以让你在须要使用System.Object对象的地方使用值类型数据。但装箱与拆箱操作却是性能的强盗,在些时候装箱与...

.NET 暂无评论 阅读(2,602)

复制数据库表

下面介绍两种复制数据库表的方法  这可以用在备份表的时候 1.在没有目标表的情况下使用 需要注意的是, 这种方法可以自动的创建表,但是不会创建主键. 例如 select  列 into 目标表名 from 源表名 select *  into wx from zl 2.在目标表已经存在的情况下使用 这种情况下目标表最好取消自动增长列的 自动增长 ,不会就引起错误. 例如 insert into 表(列) select (列) from 表 select into wx(w,x) select z,l from zl  

.NET, MySQL, Oracle, SQL Server 暂无评论 阅读(2,348)

项目经理:给年轻程序员的几句话

我收到了不少新手的来信,他们都希望能成长为一名真正的程序员。我绝对不是第一个谈论这个话题的人,所以,我不知道应该做哪方面的补充。不管怎样,下面的是一些一直记在我心头的、有必要读一下的建议:   找其他开发人员合作开发。我们正处在科技历史上第一个绝好的时代,你几乎不用在意在哪工作、为谁工作。只要你 有一个还过得去的网络,你就可以和另外一个在世界任何角落里的人一起来完成某段程序。我知道,越来越多的有经验的开发人员开始把他们的一部分时间投入到这 种知识共享里。我的朋友Evan Light...

.NET, News, Others 暂无评论 阅读(2,456)

改善您的C#程序系列(11)-垃圾回收器

垃圾回收器对内存管理表现的非常出色,并且它以非常高效的方法移除不再使用的对象。但不管你怎样看它,申请和释放一个基于堆内存的对象总比申请和释放一个不基于堆内存的对象要花上更多的处理器时间。你可以给出一些严重的性能问题,例如应用程序在某个方法内分配过量的引用对象。 你不应该让垃圾回收器超负荷的工作,为了程序的效率,你可以使用一些简单的技巧来减少垃圾回收器的工作。所有的引用类型,即使是局部变量,都是在堆上分配的。所有引用类型的局部变量在函数退出后马上成为垃圾,一个最常见的“垃圾”做...

.NET 暂无评论 阅读(2,216)

改善您的C#程序系列(10)-资源清理

使用非托管资源的类型必须实现IDisposable接口的Dispose()方法来精确的释放系统资源。.Net环境的这一规则使得释放资源代码的职责是类型的使用者,而不是类型或系统。因此,任何时候你在使用一个有Dispose()方法的类型时,你就有责任来调用Dispose()方法来释放资源。最好的方法来保证Dispose()被调用的结构是使用using语句或者try/finally块。 所有包含非托管资源的类型应该实现IDisposable接口,另外,当你忘记恰当的处理这些类型时,它们会被动的创建析构函数。如果你忘记处理这些对象,那些非内存资源会在晚些时...

.NET 暂无评论 阅读(2,232)

改善您的C#程序系列(9)-构造函数

写构造函数是一个反复的工作。很多开发人员都是先写一个构造函数,然后复制粘贴到其它的构造函数里,以此来满足类的一些重载接口。希望你不是这样做的,如果是的,就此停止吧。有经验的C++程序可能会用一个辅助的私有方法,把常用的算法放在里面来构造对象。也请停止吧。当你发现多重构造函数包含相同的逻辑时,取而代之的是把这些逻辑放在一个常用的构造函数里。你可以得避免代码的重复的好处,并且构造函数初始化比对象的其它代码执行起来更高效。C#编译器把构造函数的初始化识别为特殊的语法,并且移除预置方法...

.NET 暂无评论 阅读(2,563)

改善您的C#程序系列(8)-静态构造函数

(译注:initializer在上文中译为了“初始化器”,实在不好听,本文中全部改译为:“预置方法”) 你应该知道,在一个类型的任何实例初始化以前,你应该初始化它的静态成员变量。在里C#你可以使用静态的预置方法和静态构造函数来实现这个目的。一个类的静态构造函数是一个与众不同的,它在所有的方法,变量或者属性访问前被执行。你可以用这个函数来初始化静态成员变量,强制使用单件模式,或者实现其它任何在类型的实例可用前应该完成的工作。你不能用任何的实例构造函数,其它特殊的私有函数, 或者任何其它习惯方法来...

.NET 暂无评论 阅读(2,122)