认识CLR [《CLR via C#》读书笔记]
摘要:认识CLR [《CLR via C#》读书笔记]《CLR via C#》读书笔记什么是CLRCLR的基本概念通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.Net虚拟机所选用的名称。这是通用语言架构(简称CLI)的微软实现版本,它定义了一个代码运行的环境。CLR运行一种称为“通用中间语言”的字节码,这个是微软的通用中间语言实现版本。CLR运行在微软的视窗操作系统上。查看通用语言架构可以找到该规格的实现版本列表。其中有一些版本是运行在非Windows的操作系统中。(维基百科CLR)以上定义至少包含以下几点信息:CLR是一个类似于JVM的虚拟机,为微软
阅读全文
const 还是 static readonly
摘要:到底是 const 还是 static readonly真的一样?const 和 static readonly 常在程序中用来声明常量,调用方法也没有什么不同,他们真的一样吗?我们可以做个试验。程序集内的常量现在我们建立一个程序,里面有一个MyClass的类,分别用const和static readonly定义常量然后在程序运行时输出运行程序,输出把这两个值改一下,再运行看来没什么问题跨程序集的常量现在我们建新建一个类库,创建一个类,同样的内容在程序中加入对类库的引用,并把这两个常量输出正常输出改变这两个值我们现在Rebuild那个类库(在类库上右键->Rebuild,不要Rebuil
阅读全文
c#实现Google账号登入授权(OAuth 2.0)并获取个人信息
摘要:c#实现Google账号登入授权(OAuth 2.0)并获取个人信息此博主要介绍通过google 账号(gmail)实现登入,授权方式OAuth2.0,下面我们开始介绍。1.去google官网注册一个gmail账号:https://accounts.google.com/SignUp?service=devconsole&continue=https%3A%2F%2Fcode.google.com%2Fapis%2Fconsole%2F,然后去https://cloud.google.com/console?redirected=true#/project新建一个project(如果有
阅读全文
C#接口总结
摘要:C#接口总结浅析C#接口特点及实例应用 C#接口(interface)的掌握对我们开发有什么作用呢?C#接口的使用能够使我们的程序有什么改进?那么我们首先我们来看看C#接口特点以及具体的实例使用分析:C#接口特点1:都是“虚的”不能被实例化,这也是接口中为什么不能包含字段--成员变量的原因C#接口特点2:正因为接口是虚的,所以接口内的索引,属性,时间等只能有声明,而不能在接口内实现,具体如何实现是派生接口或者派生类的事.C#接口特点3:都具有模板的性质,如果一个接口或者类从某一个接口继承,它将自动具有被集成者的特征(包括索引,属性,函数,实践等).C#接口特点4:接口支持多重继承,而C#中,类
阅读全文
.NET:线程本地存储、调用上下文、逻辑调用上下文
摘要:.NET:线程本地存储、调用上下文、逻辑调用上下文目录背景线程本地存储调用上下文逻辑调用上下文备注背景返回目录在多线程环境,如果需要将实例的生命周期控制在某个操作的执行期间,该如何设计?经典的思路是这样的:作为参数向调用栈传递,如:CommandExecuteContext、HttpContext等。好在很多平台都提供线程本地存储这种东西,下面介绍一下 .NET 提供的三种机制。线程本地存储返回目录代码 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5
阅读全文
LinQ动态排序
摘要:LinQ动态排序首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为sort这个名称填写错误,会导致后台一直无法获取datagrid的排序字段本来是没有这一讲的,为了使20行的代码精简成2行,我查阅了一些资料,借鉴了一些大神的建议,首先感谢第八讲中,11楼@nyth和15楼@红颜醉丶帝的建议投递,每一次的的排序要都一个判断这的确很麻烦,我们利用反射来解决这个问题。先看原来的代码 //排序 if (pager.order == "desc") { switch (pager.order) ...
阅读全文
Winform(C#.NET)自动更新组件的使用及部分功能实现
摘要:Winform(C#.NET)自动更新组件的使用及部分功能实现声明:核心功能的实现是由园子里圣殿骑士大哥写的,本人是基于他核心代码,按照自己需求进行修改的。 而AutoUpdaterService.xml文件生成工具是基于评论#215楼 ptangbao的代码而改写的。由于这个组件是在10年写的,.net也有更新有的方法已提示过时,更改如下://Added the function to support proxy//clientDownload.Proxy = System.Net.WebProxy.GetDefaultProxy();clientDownload.Proxy = We...
阅读全文
.Net Attribute详解(一)
摘要:.Net Attribute详解(一)2013-11-27 08:10 by JustRun,1427阅读,14评论,收藏,编辑Attribute的直接翻译是属性,这和Property容易产生混淆,所以一般翻译成特性加以区分。Attribute常常的表现形式就是[AttributeName], 随意地添加在class, method的头上,然后就能够产生各种各样奇特的效果和行为。比如关于序列化的标签[Serializable]用来指定一个实体类可以序列化。[NonSerialized]可以用来指定某些属性不包含在序列化中。一, Attribute本质是什么?Attribute类似于标签, 可以
阅读全文
使用 HttpClient 进行连接
摘要:对于System.Net.Http的学习(二)——使用 HttpClient 进行连接对于System.Net.Http的学习(一)——System.Net.Http 简介使用 HttpClient 进行连接 使用System.Net.Http命名空间中的HttpClient类可以向WebService发送POST与GET请求并检索响应数据。 System.Net.Http命名空间中的类可为现代HTTP应用提供编程接口。System.Net.Http命名空间和相关的System.Net.Http.Headers命名空间提供的HTTP客户端组件,允许用户通过HTTP使用现代的WebServi..
阅读全文
DotNetOpenAuth搭建OAuth2.0
摘要:使用DotNetOpenAuth搭建OAuth2.0授权框架标题还是一如既往的难取。我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案。当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1.0、1.0a还是2.0,单看版本号就让人神伤。对接过各类开放平台的朋友对OAuth应该不会陌生。当年我小试了下淘宝API,各种token、key、secret、code、id,让我眼花缭乱,不明所以,虽然最终调通,但那种照猫画虎的感觉颇不好受。最近公司计划,开放接口的授权协议从1.0升到2.0,这个任务不巧就落在了我的头上。声明:我并没有认真阅
阅读全文
算法、设计模式、企业应用架构模式、架构模式
摘要:> 几种概念区别 - 算法、设计模式、企业应用架构模式、架构模式算法:相信大家对算法肯定不陌生(但其实绝大多数开发人员对这个非常陌生且抗拒),因为从学校没毕业开始就已经被算法折磨了,哈哈设计模式:爱学习的开发人员对这个也不会陌生,是些到了一定工作阶段必须学的思想以及解决问题的通用方法企业应用架构模式:Martin Fowler所著,其实从难度上讲,比不上设计模式,只是内容较多,更加实际且更加符合人类的理解架构模式:最著名的资料是POSA那几本书,讲的是云里雾里,看这本书时,设计模式那点难度根本就不叫难度,哈哈,看起来极其痛苦,但是又非常快乐(哈哈,这就要看看书的人了)在这些概念当中,个人
阅读全文
CAS
摘要:目录背景CASCAS 的标准模式累加示例写着玩的 RingBuffer备注背景返回目录大多数企业开发人员都理解数据库乐观并发控制,不过很少有人听说过 CAS(我去年才听说这个概念),CAS 是多线程乐观并发控制策略的一种,一些无锁的支持并发的数据结构都会使用到 CAS,本文对比 CAS 和 数据库乐观并发控制,以此达到强化记忆的目的。CAS返回目录CAS = Compare And Swap多线程环境下 this.i = this.i + 1 是没有办法保证线程安全的,因此就有了 CAS,CAS 可以保证上面代码的线程安全性,但是 CAS 并不会保证 Swap 的成功,只有 Compare 成
阅读全文
权限管理系统准备
摘要:权限管理系统准备这节我们说下权限系统的特点,本系统采用的是MVC4+EF5+IOC 接口编程的架构,其中的权限树用的是DWTree,功能上做到灵活,授权操控细致,权限可以细到按钮级别,为了部署简单,导致设计和编码上也是比较复杂该系统主要功能如下:自定义操作动作(如增加、删除、修改、审核等,不再是以前见过的那种粗粒度的 按模块分配权限,或者稍微先进点的规定死某几个操作了)。无限级功能模块管理,自定义模块排序,可以更好地对整个系统中所有模块进行 分类管理。灵活地为各模块分配操作,即每个模块有哪些操作需要被控制(将步骤1中添加的 操作按需分配给各模块)。对所有用户基础信息进行管理,实行有效期机制,过
阅读全文
读懂正则表达式就这么简单
摘要:读懂正则表达式就这么简单一 前言 对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云。其实只是对正则不了解而以,了解了你就会发现,原来就这样啊正则所用的相关字符其实不多,也不难记,更不难懂,唯一难的就是组合起来之后,可读性比较差,而且不容易理解,本文旨在让大家对正则有一个基本的了解,能看得懂简单的正则表达式,写得出简单的正则表达式,用以满足日常开发中的需求即可。0\d{2}-\d{8}|0\d{3}-\d{7} 先来一段正则,如果你对正则不了解,是不是完全不知道这一串字符是什么意思?这不要紧文章会.
阅读全文
用NPOI实现导入导出csv、xls、xlsx数据功能
摘要:用NPOI实现导入导出csv、xls、xlsx数据功能直接上代码首先定义一个接口View Code如果需要直接操作文件的话,就自己在封装一次然后定义csv类的具体实现View Code这个需要引入命名空间LumenWorks.Framework.IO.Csv;可以Nuget里面下接着定义excel的实现类的基类View Code这个需要下载NPOI 2.01版本下载地址http://npoi.codeplex.com/releases/view/92382接着实现2003版本View Code接着实现2007版本View Code然后定义一个枚举实现一个简单的工厂View Code客户端调用代
阅读全文
TFS二次开发系列:八、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(二)
摘要:TFS二次开发系列:八、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(二)上一篇文章我们编写了此例的DTO层,本文将数据访问层封装为逻辑层,提供给界面使用。 1.获取TFS Dto实例,并且可以获取项目集合,以及单独获取某个项目实体 public static TFSServerBll Instance = new TFSServerBll(); public TFSServerDto dto; public TFSServerBll() { dto = new TFSServerDto("http...
阅读全文
C# 版 flvmerge:快速合并多个flv文件
摘要:C# 版 flvmerge:快速合并多个flv文件网上的视频很多都是分片的flv文件,怎么把他们合为一体呢?GUI工具就不考虑了,不适合批量执行,不适合在后台运行。有没有命令行工具或库可以实现呢?ffmpeg提供了一个方法:(1)先把flv文件转换成mpeg;(2)将多个mpeg文件合并成1个独立的mpeg文件(二进制合并即可)(3)将独立的mpeg文件转换成独立的flv文件。网上搜到的最多的也是这种解决办法。这种方法有两个缺点:(1)需要两遍转码,非常耗时;(2)转换后的独立的mpeg文件比原视频要短一点点。木有办法了,只好另寻他路。有人说有一个flvmerge.exe程序可以将多个flv合
阅读全文
让线程支持超时
摘要:目录背景如何让线程支持超时?使用CancellationTokenSource使用Join基于 Task 的实现如何让线程在执行结束后销毁?备注背景返回目录本文是为了回复博客园一个兄弟的问题,主要回答两个问题:如何让线程支持超时?如何让线程在执行结束后销毁?MS 现在不推荐使用低级别的 Thread 编程,而推荐使用 Task,另外我多数情况都是做企业应用,很少需要多线程编程的场景,本文中的知识都是从 《clr via c#》学习而来。如何让线程支持超时?返回目录使用CancellationTokenSource返回目录代码 1 private static void Time...
阅读全文
.Net 4.5 异步编程初试(async和await)
摘要:.Net 4.5 异步编程初试(async和await)前言 最近自己在研究Asp.Net Web API。在看到通过客户端来调用Web API的时候,看到了其中的异步编程,由于自己之前没有接触过,所以就稍微的学习了解一下。这两篇文章是:Calling a Web API From a .NET Client (C#)http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-clientCalling a Web API From a WPF Application(C#)http://w.
阅读全文
Linq to Objects
摘要:我们用CloudStack做什么原文地址:http://www.sdfengxi.com/?p=376我想很多同学会有类似的疑问,就是我配置好了CloudStack或者OpenStack之类的环境之后能够提供什么服务或者应用呢?下面我就我们公司这一年多来搭建CloudStack及在其上而进行的开发做一下简单描述,大家可能会对CloudStack这类云平台能干什么用有更进一步的认识。公司刚刚准备本地地税局的云计算试点项目时,我测试搭建了openstack,而另一位同事则负责测试CloudStack,后来参考了网上对openstack与CloudStack的比较,觉得CloudStack在稳定性及
阅读全文