TFS二次开发系列:四、TFS二次开发WorkItem添加和修改、保存
摘要:TFS二次开发系列:四、TFS二次开发WorkItem添加和修改、保存WorkItemStore:表示跟踪与运行 Team Foundation Server的服务器的工作项客户端连接。A.添加工作项 1.首先获得某服务器的WorkItemStore。 WorkItemStore workstore = server.GetService(); 2.然后通过对上面WorkItemStore获得Project项目。 Project project = workstore.Projects["Calueng"]; 3.根据Project获得工作项类型WorkItemType,可
阅读全文
上传图片时生成缩略图,可以自定义图片尺寸
摘要:上传图片时生成缩略图,可以自定义图片尺寸前段时间整理一些项目中可能用到的通用的方法,放到自己定义的项目中,以方便日后用到,可以快速查阅,节省时间,在这里个人也建议大家将平时好的代码收藏起来(当然这里针对初学者),以便以后用到,编程养成好的习惯!下面是上传图片生成缩略图的代码,可以自定义图片大小,跟大家分享下/// /// 生成缩略图 /// /// 源图路径(物理路径) /// 缩略图路径(物理路径) /// 缩略图宽度 /// 缩略图高度 /// 生成缩略图的方式 publ...
阅读全文
进程及进程间通信
摘要:进程及进程间通信基础知识1.进程:具有独立功能的程序在一个数据集合上一次动态的执行过程。通俗点讲就是“一个正在运行的程序”2.程序:静态的程序以文件的形式保存在磁盘上。3.操作系统的进程管理:每一个正在运行的程序都对应着一个独立的进程,当这些程序装入内存开始执行时,操作系统会为每个进程创建好相关的数据结构。由于操作系统可以同时装入多个程序,为此必须有一种方法来保证这些同时运行的程序不相互影响,不会由于一个程序出现异常而直接影响其他程序,甚至操作系统的正常运行。位于操作系统核心的“进程管理“模块负责管理并行执行的多个程序。4.操心系统的用户模式和核心模式:Windows设计了两种代码运行的环境—
阅读全文
C#基于Socket的简单聊天室实践
摘要:C#基于Socket的简单聊天室实践序:实现一个基于Socket的简易的聊天室,实现的思路如下:程序的结构:多个客户端+一个服务端,客户端都是向服务端发送消息,然后服务端转发给所有的客户端,这样形成一个简单的聊天室功能。实现的细节:服务端启动一个监听套接字。每一个客户端连接到服务端,都是开启了一个线程,线程函数是封装了通信套接字,来实现与客户端的通信。多个客户端连接时产生的通信套接字用一个静态的Dictionary保存。具体的实现可以参考代码及其注释。术语理解:套接字Socket:源于Unix,为了解决传输层网络编程的问题,Unix提供了类似于文件操作的方式来完成网络编程。要实现不同的主机,不
阅读全文
自己动手开发模板引擎
摘要:由浅入深:自己动手开发模板引擎——解释型模板引擎(一)摘要: 与置换型模板引擎不同的是,解释型模板引擎包含了一个专用解释器,有了解释器的存在就可以支持一些更加复杂而严谨的语法。熟悉设计模式的朋友此时此刻应该能够回想起来“解释器模式”,它是将一些业务封装成一个或多个命令,然后通过一个复杂的解释器(Interpreter)来解析执行来满足生产需求的。实际上,解释型模版引擎就是一个较为复杂的解释器模式的实现而已。具体到模板引擎技术上来,解释器的工作任务实际上就小了很多。按照数据封装模式的不同,解释型模板引擎分为命令解释器和反射解释器两个大类。阅读全文posted @2012-04-09 09:01陈
阅读全文
彻底抛弃PeopleEditor,SharePoint中利用Jquery Chosen创建新的人员选择器
摘要:彻底抛弃PeopleEditor,SharePoint中利用Jquery Chosen创建新的人员选择器基于SharePoint平台开发时,人员选择器使用频率是非常高的,但是原生的人员选择器使用太麻烦,而且非常笨拙,非常不友好,特别是对呆在政府部门的老爷们,要让他们手动输入人员,简直就是痴心妄想。总之一句话,越简单越好。 为了让客户满意,必须要对人员选择器进行改造,原生的PeopleEditor彻底抛弃。只能另辟蹊径,寻找适合的JQuery插件,创建新的人员选择器,分析了一下需求,可以归纳新的人员选择器必须支持如下情况:支持人员的多选,比如像会议、通知需要对多人进行发送,当然也要支持删除。对.
阅读全文
在C#中模拟Javascript的setTimeout方法
摘要:在C#中模拟Javascript的setTimeout方法背景每种语言都有自己的定时器(Timer),很多人熟悉Javascript中的setInterval和setTimeout,在Javascript中为了实现平滑的动画一般采用setTimeout模拟setInterval,这是因为:setTimeout可以保证两次定时任务之间的时间间隔,而setInterval不行(小于设置的间隔时间)。C#中如何模拟setTimeout呢?System.Timers.Timer模拟setInterval代码 1 using System; 2 using System.Collections.Gene
阅读全文
委托事件
摘要:委托事件C#基础知识回顾--委托事件在上一篇看到他我一下子就悟了(续)---委托,被人狂喷。说写的太空,没有什么内容之类的。所以准备在这里重写下,不过还是按着以前的方式尽量简单的写。这里我们以打篮球为例。第一步:首先,其他对象订购事件当发球的球员产生它的发球事件之前,其他球员需要订购这个事件,采用这种方式,只要出现一个发球事件,其他球员就能够知道。第二步:触发事件当球被发出时,此时发球员对象产生一个新事件。第三步:球产生一个事件 创建一个新事件,这个事件还有一些参数,如球的距离和轨迹。这些参数作为EventArgs对象的一个实例关联到事件,然后事件发出,所有监听对象都能得到这个事件。一旦事件产
阅读全文
定时器Timer不定时
摘要:订餐系统之定时器Timer不定时 经过几天漫长的问题分析、处理、测试、验证,定时器Timer终于定时了,于是开始了这篇文章,希望对还在纠结于“定时器Timer不定时”的同学有所帮助,现在的方案,在系统日志中会有警告,如果您有更好的方案,也请不吝赐教。问题描述 先交代下背景吧:“订单审核后,商家3分钟内未确认的订单,自动生成催单记录,客服通过催单记录联系商家,于是,我们就用的System.Threading.Timer 来作来定时器”。下图为Timer初始化部分代码: 因为是重要客户,我们本地测试服务器都经过自认为严格的测试后,才提交正式服务器。可是,每次提交正式服务器后,每天总有几个时间段..
阅读全文
利用Aspose.Cell控件导入Excel非强类型的数据
摘要:利用Aspose.Cell控件导入Excel非强类型的数据导入Excel的操作是非常常见的操作,可以使用Aspose.Cell、APOI、MyXls、OLEDB、Excel VBA等操作Excel文件,从而实现数据的导入,在导入数据的时候,如果是强类型的数据,那么这几种方式好像都表现差不多,正常操作能够导入数据。如果是非强类型的数据,那么就需要特别注意了,一般情况下,导入的DataTable数据列的类型是以第一行内容作为确定列类型的,本文介绍利用Aspose.Cell控件导入Excel非强类型的数据的操作。什么是强类型的数据呢,就是在Excel表格中,除了第一列名外,他们的数据格式都一样的,如
阅读全文
.net下简单快捷的数值高低位切换
摘要:.net下简单快捷的数值高低位切换做网络通讯中数值传输是很普遍的事情,但数值的存储在不平台和硬件上存储方式都不一样,主要有两大类分别是高位和低位存储;而.net平台下是低位存储,通过.net提供的函数读写是低位也不提供设置;对于高位存储的就有比较流行的语言平台有Java。由于存储不一样所以在读取和写入的时候就需要另一方面做转换。在.net下其实简单地通过反转数组或移位存储的方式可以简单的进行高位转换。不过程序已经写好了而在读写的时候用了低位,又不想修改读写代码可以简单地通过以下函数对数值转换一下即可.代码(在一个老外网站找到的)?12345678910111213141516171819202
阅读全文
DateTimePicker.Text不靠谱
摘要:DateTimePicker.Text不靠谱获取时:在DateTimePicker.ValueChanged事件中,获取到的Text有可能是string.Empty!!!,特别当ValueChanged事件是在构造函数或Load、Shown等启动事件中触发时,得到string.Empty的几率增大;赋值时:有可能触发不了TextChanged事件(该事件默认不显示在设计器中,但的确是存在的);可能的原因:先看Value属性的setter源码:set{ bool flag = !DateTime.Equals(this.Value, value); if (!this.userHas...
阅读全文
利用.NET生成数据库表的创建脚本,类似SqlServer编写表的CREATE语句
摘要:利用.NET生成数据库表的创建脚本,类似SqlServer编写表的CREATE语句(喷血分享)利用.NET生成数据库表的创建脚本,类似SqlServer编写表的CREATE语句 在我们RDIFramework.NET代码生成器中,有这样一个应用,就是通过数据库表自动生成表的CREATE语句,如下图所示: 在实现此功能前摸索了很多方法,最后借助MSSQLSERVER自带的dll文件来完成。先截图展示下此功能生成后的效果,然后再分享代码与方法,欢迎大家讨论其他可行方式,谢谢。 通过上图可以看到,生成的表CREATE语句与SQLSERVER企业管理器生成的语句完全一样。现在我们来看一看如何实现...
阅读全文
C#参数传递
摘要:(译)C#参数传递前言菜鸟去重复之Sql的问题还没有得到满意的答案。如果哪位大哥有相关的资料解释,能够分享给我,那就太谢谢了。接触C#一年了,感觉很多东西还是很模糊,像C#中的委托和事件有些东西看多了不用也还是不会。还有些东西用多了不想也还是不精。这次发现一篇解除我对于C#里面参数传递困惑的详细条例文章,忍不住翻译留存以备回顾。英文好的可以直接点此处看原文了。MSDN相关解释链接在此处。前奏:引用类型在C#中有两种常用的类型:引用类型和值类型。他们表现不同,很多人在使用他们的时候都感到了困惑,这里简单解释下他们的区别:引用类型指引用类型的变量存储对实际数据的引用。如下代码:StringBuil
阅读全文
C#基础知识回顾--线程传参
摘要:C#基础知识回顾--线程传参在不传递参数情况下,一般大家都使用ThreadStart代理来连接执行函数,ThreadStart委托接收的函数不能有参数,也不能有返回值。如果希望传递参数给执行函数,则可以使用带参数的ParameterizedThreadStart委托, public delegate void ParameterizedThreadStart(Object obj)可以将要传送给线程函数的信息封装为一个对象,然后调用Thread类的以下构造函数 public Thread (ParameterizedThreadStartstart)启动线程时,向其传送一个参数信息...
阅读全文
使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
摘要:使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)先直接上程序界面,了解整体工作流程是什么样子的,求服务器进行挂机测试,需要固定IP,空间大概需要10G左右(主要是BT种子占用空间过大),最好有SQLSERVER来做为存储数据库,目前采用的是ACCESS数据库做为测试,怕后期数据过百万,对网站进行查询操作很慢。开源地址:https://github.com/h31h31/H31DHTMgr程序下载:H31DHT下载也提供ASP网站的访问模式:正在运行中的状态:本次主要介绍对DHT磁力搜索的HASH文件进行处理操作流程。后台处理程序主要采用C#里面读取文件类来进行读取,目前文件
阅读全文
C#内获取泛型方法及扩展
摘要:C#内获取泛型方法及扩展 C#内我们可以通过反射来动态获取实例方法和静态方法,不管方法存在多少个重载都可以通过GetMethod内的第二个参数去筛选出所要获取的方法,代码如下:type.GetMethod("方法名",newType[]{});//第二个参数是方法对应的参数类型数组 但是当我们要获取的是一个泛型方法且该方法存在其他重载方法的时候,就会出现异常,异常如下: 在这种情况下,只能通过将相应方法名的方法全部获取出来,然后通过遍历去查找符合条件的方法,代码如下:var methods = targetType.GetMethods(BindingFlags.Publi
阅读全文
.NET:国际化和本地化
摘要:.NET:国际化和本地化背景国际化(i18n)和本地化(l10n)是高端程序的必备技术,可惜从业五年从没有尝试过,下一步准备做一个多用户的博客系统,想支持多语言,今天就学习了一下,写出来,希望大家批评。收集的资料I18N:http://baike.baidu.com/view/372835.htm。CultureInfo:http://msdn.microsoft.com/en-us/library/System.Globalization.CultureInfo.aspx。.NET - Localization using Resource file:http://www.codeproje
阅读全文
QuickSwitchSVNClient,快速完成SVN Switch的工具
摘要:[开源]QuickSwitchSVNClient,快速完成SVN Switch的工具在实际的开发中,我们一般使用SVN工具进行源代码的管理。在实际的产品开发中,根据项目的一些定制要求,往往需要对某一些代码的修改,但是又不想影响主要的开发,这个时候需要对当前的主分支做一些分支处理(branch)。 在分支的过程中,我们有时只需要对其中的一些文件或者某几个目录进行分支,但是当分支一多,往往对于我们的工作来说就是个噩梦,至少是TortoiseSVN是没有批处理的功能的,而他的命令行支持更是难用至极。 在最初的试验中,我采用命令行对分支进行批量操作,但是命令行一个是编写麻烦,另外就是日志信息不够明..
阅读全文
C# Attribute 特性 学习
摘要:C# Attribute 特性 学习一、特性的概述公共语言运行库允许您添加类似关键字的描述性声明(称为特性 (Attribute))来批注编程元素,如类型、字段、方法和属性 (Property)。属性与 Microsoft .NET Framework 文件的元数据一起保存,并且可用于向运行库描述代码或影响应用程序的运行时行为。特性是一个对象,它可以加载到程序集及程序集的对象中,这些对象包括 程序集本身、模块、类、接口、结构、构造函数、方法、方法参,方法的返回值等,加载了特性的对象称作特性的目标。特性是为程序添加元数据(描述数据的数据)的一种机制,通过它可以给编译器提供指示或者提供对数据的说明
阅读全文