.net framework从1.0说到4.0
摘要:做为技术人,这些年我们一直追技术,不仅技术需要反思总结,学习技术的过程本身也需要调整,优化;爱因斯坦说什么叫做愚蠢,就是用同样的方法做同一件事情还期望不同的结果,就是愚蠢;当我们尝试着用不同的视角看同一个东西的时候,会有不同的收获,当我们开始学习一门新技术的时候,之前的技术细节无法直接迁移过来使用,但是切入技术的视角可以复用; 下面是在团队分享的一个PPT,简单介绍了.net framework从1.0到4.0的演变历程;对于相同的知识从不同的角度切入会有不同的收获,尝试着去发现自己的视角,学习才会有收获;下面就是"我自己的一点看法",抛砖引玉,你的视角是怎样的?.net
阅读全文
微软在线翻译API试用
摘要:一直喜欢用Google Translate API进行在线翻译,但是,后来,大家都知道的,因相关政策及法律原因,Google的服务越来越慢,无法忍受,只好寻找更快的在线翻译接口,后来找到Microsoft Translate,觉得非常好用,我用SOAP方式做一个示例,希望给有相同需求的小盆友一点参考,老鸟就不用看了,没什么技术含量的。首先,需要在Bing开发人员中心,注册一个应用,获得一个Appid,这是必须滴~,注册地址如下:http://cn.bing.com/developers?如上图所示,点击“开发人员”,点“Add”,输入基本资料后,等待片刻,刷新页面,则会看到一个Applicat
阅读全文
SharpUpdater:开源的.NET桌面程序自动更新组件
摘要:SharpUpdater开源了!http://sharpupdater.codeplex.com/简 介SharpUpdater是一个开源的.NET Windows桌面程序自动更新的组件。它提供一个启动程序在主程序启动时检测最新版本并升级。此外,还提供了一个VS插件生成配置清单。工作原理依赖于一个发布清单的XML配置文件(我们称之为ReleaseList),通过对比客户端和服务端的ReleaseList,计算出需要更新的文件,然后逐一下载覆盖本地客户端程序文件或资源文件。配置文件示例:?<ReleaseList xmlns:xsi="http://www.w3.org/2001
阅读全文
泛型接口的协变和逆变
摘要:泛型接口中的泛型参数可以声明为协变参数或者逆变参数,首先介绍一下泛型接口的协变和逆变: 协变:泛型参数定义的类型只能作为方法的返回类型,不能用作方法参数的类型,且该类型直接或间接地继承自接口方法的返回值类型,称为协变。可以使用关键字out,将泛型类型参数声明为协变参数。 逆变:泛型参数定义的类型只能作为方法参数的类型,不能用作返回类型,且该类型是接口方法的参数类型的基类型,称为逆变。可以使用in关键字,将泛型类型参数声明为逆变参数。首先我们来定义一个协变接口,代码如下所示: 具有协变参数的泛型接口 1 interface ISample1<out T> 2 { 3 T Functi
阅读全文
OEA体验 :常用功能1
摘要:一、摘要 我下面写的是我在使用OEA中用到的功能,当然还有好多现在还没有用到,希望高手们多多指点指点。OEA 源码:OEA框架 2.9 Pre-Alpha 源码公布可以到BloodyAngel的博客中可以下到。二、本文大纲 a、摘要。 b、数据过滤。 c、托管属性。 d、支持树型实体 。二、数据过滤数据查询是一个在平常不过的事,我们来看看OEA是怎么帮我们实现的。下面用一个简单的例子来说明,如我们要实现根据客户名称来查询,效果图如下:要达到上面效果实现代码如下:前台调用如下: 1: internal class ClientinfoConfig : EntityConfig<Client
阅读全文
好代码并非一蹴而就-----读《代码整洁之道》
摘要:虽然本书所提供的实例、代码均源于java,但是不管我们是使用什么编程语言,编写出"好代码"对于一个想成为优秀的程序员都应该是最基本的。 良好的方法命名、适宜的注释、短小的方法、各种环境下的变量命名等等,这都是大师在多年编程中总结下来的经验之谈。 在网上经常会看到很多牛人是这么说的:“项目要注意可扩展、灵活性”、“要为以后的需求变更提供好的接口”、“要灵活使用设计模式”等等,仿佛各种各样的项目功能,在设计之初就已经是如此完备,能应付各种各样突如其来的需求变更,能一下子构建出如此完备的功能,更是我们这些新手所不能及,所崇拜的。 然而通读本书之后,我得到的体会则是一开始编写完成的
阅读全文
基于MSMQ(消息队列)
摘要:消息队列(Message Queue)简介及其使用利用MSMQ(Microsoft Message Queue),应用程序开发人员可以通过发送和接收消息方便地与应用程序进行快速可靠的通信。消息处理为您提供了有保障的消息传递和执行许多业务处理的可靠的防故障方法。MSMQ与XML Web Services和.Net Remoting一样,是一种分布式开发技术。但是在使用XML Web Services或.Net Remoting组件时,Client端需要和Server端实时交换信息,Server需要保持联机。MSMQ则可以在Server离线的情况下工作,将Message临时保存在Client端的消
阅读全文
微软公司的两大主流的通讯技术之一消息队列:MessageQueue(另一个是SQL Server Service Broker)
摘要:微软公司的两大主流的通讯技术之一消息队列:MessageQueue(另一个是SQL Server Service Broker).windows相当强悍的一个东东,具体能用来做什么,这里不啰嗦了,只贴实现的代码了,哈哈。[c-sharp]view plaincopyusingSystem;usingSystem.Messaging;///<summary>///消息队列///</summary>publicclassQueue:IDisposable{protectedMessageQueuequeue;protectedTimeSpantimeout;protecte
阅读全文
IIS应用程序池崩溃
摘要:System.Threading.Tasks.Task引起的IIS应用程序池崩溃问题现象IIS应用程序池崩溃(Crash)的特征如下:1. 从客户端看,浏览器一直处于连接状态,Web服务器无响应。2. 从服务器端看(Windows Server 2008 + IIS 7.0),在事件日志中会出现Event ID为5010的错误:A process serving application pool 'q.cnblogs.com' failed to respond to a ping. The process id was '20080'.这个错误的意思是:IIS
阅读全文
WebMatrix之数据访问
摘要:WebMatrix数据访问系列目录:WebMatrix之数据访问WebMatrix之WebMatrix.DataWebMatrix之WebMatrix.Data揭密WebMatrix之改造WebMatrix.DataWebMatrix是微软专为Asp.net web pages打造的一款轻量快捷型的Web开发工具,适合非专业开发人员,新手入门,详细可参考此处。下文是结合微软教程而总结的WebMatrix简单访问数据库的方式。当然,所选数据库是WebMatrix御用轻量型数据库Sql Server Compact Edition,也可以选择创建连接选择服务器版本的Sql server:上图可以看
阅读全文
(译)一个通用快速的反射方法调用
摘要:=============C#.Net 篇目录==============原文:http://www.codeproject.com/Articles/14593/A-General-Fast-Method-Invoker源码下载:Download source and performance test project - 4.04 Kb介绍有时,我们会碰见需要动态调用对象方法的场景,而这个方法只有在运行的时候才能得知。通常的,会使用方法的反射调用,但是这通常会导致程序速度变慢。这篇文章将介绍一种高效替代方案----动态方法调用。背景环境当我读到文章《Fast Dynamic Propert.
阅读全文
Task的使用
摘要:在我们了解Task之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在.net 4.0之后被一种称为基于“任务的编程模型”所冲击,因为task会比thread具有更小的性能开销,不过大家肯定会有疑惑,任务和线程到底有什么区别?1:任务是架构在线程之上的,也就是说任务最终还是要抛给线程去执行。2:任务跟线程不是一对一的关系,比如开10个任务并不是说会开10个线程,这一点任务有点类似线程池,但是任务相比线程池有很小 的开销和精确的控制。一:Task1. 最简单的使用 开启task有两种方式:<1> 实例化Task1 //第一种方式开启2 var task...
阅读全文
一周最新示例代码回顾 (3/26–4/1)
摘要:回顾上周微软一站式示例代码库最新发布的7篇示例代码:[Sample of Mar 26th] Basic ASP.NET Menu control demo该实例演示了基础的ASP.NET 菜单控件的绑定和使用。适合于ASP.NET初学者。[Sample of Mar 27th] Basic ASP.NET master page demo该实例演示了基础的ASP.NET master page的使用。同样适合于ASP.NET初学者[Sample of Mar 28th] Customize Visual Studio Tool Window该实例演示如何通过Visual Studio Ext
阅读全文
2012 ASP.NET/IIS MVP
摘要:2012年4月1日晚上收到微软的邮件,告知我的ASP.NET/IIS MVP Renew成功 ,从2006开始已经连任ASP.NET MVP 7届。从2011年4月4日开始,ASP.NET和 IIS 的MVP合并了,也就是说我现在是 ASP.NET/IIS MVP。不知不觉在博客园写了八年博客,非常感谢dudu为我们创办的博客园,其他感谢的话就不说了,把提交给微软Renew MVP的文章这里贴下,一起回顾下2011年写的博客,过去的一年(2011年1月到2011年12月),累计发表了99篇技术文章。这99篇博客涉及到了.net、asp.net开发、WCF,sql server,windows
阅读全文
远程对象访问Socket篇
摘要:一、摘要 在上篇我们已经讲了远程访问对象,现在我们来看看他的内部是怎么实现的,本次远程对象访问用Socket实现。二、本文大纲 a、摘要。 b、本文大纲。 c、回顾。 d、Socket设计。 e、其他。三、回顾1:在上篇LiteORM学习六:远程对象中我们说到在实体类上加入DataEntity就可以在网络中访问了,那具体是有什么技术呢,有那几种实现方式.WebSerivce,wcf,socket,Remoting。2:在上篇LiteORM学习六:远程对象中我们只说到了如何使用远程对象。四、Socket设计 在OHA中使用了SOCKET技术进行远程访问业务对象的方法。1:在上篇中我们说到在实体类
阅读全文
扩展多线程应用程序 CLR 和 线程
摘要:设计CLR 的目的是创建一个提供多种服务(比如编译、垃圾回收、内存管理以及基于.NET 平台的线程池技术)的托管代码环境。 当然,Win32 平台和.NET Framework 平台在定义我们的应用程序使用的用来作为线程宿主的进程方面是不同的。在传统Win32 应用程序中,每个进程都由一个线程集合组成。如果一台机器仅有一个CPU,那么每个线程都要与其他线程交换线程本地存储和调用堆栈以实现时间轮转。单一处理器基于线程优先级来为每个线程分配时间片。当一个特定线程的时间片用完以后,它会被暂停执行同时其他线程被允许执行它的任务。在.NET Framework 中,每个Win32 进程都被逻辑上划分为同
阅读全文
编写有效的C# 代码
摘要:最近,一位在和一位同学交流的时候,他让我看看他的代码情况,我看了许久,逐步记录了一些,现在慢慢总结出来,与大家分享,编写有效的C#代码很重要,虽然我们平时写的时候只管实现,但是在面向大型的项目或者参与国际开源项目的时候,经常会遇到有效的C#问题。今天列举几个,供大家参考。 第一:ToString() 很好,但是就这样? 我们常常喜欢用ToString()将各个类型强制转换为字符串,但是如何应用有效呢?举个例子:获取当前时间:System.DateTime.Now.ToString() 这是我们太习惯不过的代码了,但是里面至少有两处问题。1)"System." 是冗余代码,因
阅读全文
Winform 应用
摘要:Winform 应用 【假框架】实例代码下载学习SCSF 有写日子了,对该框架有一些了解,于是自己脑子发热写了个假SCSF 虽然不成熟,但是是对自己学习的一个总结。主要框架示意图(解决方案):概念: 1.整个系统共用一个WorkItem(工作单元). 2.WorkItem中有 Service集合. 3.初始默认使用ShellForm.WorkItem:WorkItem是自定义的静态类,在程序启动时加载默认设置,当前是代码以后会使用XML配置。WorkItem代码:WorkItemWorkItem中有一个IServices类型的属性 Services,该属性用于保存全局的Service,ISer
阅读全文
C# 小文件缓存 适用并发下载
摘要:构思: 普通的文件下载上传需要反复的进行IO 操作,占用服务器虚拟内存好IO 线程较高,如果控制不好会导致CPU适用率一直占用率过高,本人在项目中遇到该问题,为解决该问题才有以下构思. 为了解决IO操作频繁IO线程占用过高,采用内存缓存文件(因此只能支持较小文件),那么采用缓存的时候就要考虑到文件的使用率和内存占用率的问题,为了解决文件使用率过低并占用内存的问题,采用文件使用心跳的检测文件的存活率,并对自定义的缓存器设置文件缓存上限,解决的文件存活率问题那么新的问题来了,如何辨认相同文件,相同文件是否需要缓存两份,因此采用的文件MD5加密获取文件MD5字符串作为缓存键来区分不同文件,那么就可以
阅读全文
C#开发高性能Log Help 类设计开发
摘要:概述项目中要在操作数据库的异常处理中加入写Log日志,对于商业上有要求,写log时对其它操作尽可能影响小,不能因为加入log导致耗时太多.设计思想在写入日志时利用Queue来管理,写日志有一个专门的backgroud线程来处理,如果没有日志要写,这个线程处于wait状态,这就有了线程的异步处理.简单的实现方式?1234567891011121314151617181920//<summary>//Write Log//<summary>public static void WriteLog(string logFile, string msg){try{System.I
阅读全文