随笔分类 - [37]C#12
-
开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
摘要:热衷于开源框架探索的我发现ASP.NET MVC与jQuery easyUI的组合很给力。由于原先一直受Ext JS框架的licence所苦恼,于是痛下决心寻找一个完全免费的js框架——easyUI。它有完整的demo和强大AIP手册,使我在开发过程中得心应手。以下是这篇博文Demo程序的演示效果: 解决方案如图1所示图1 Domain:领域模型 Dao:持久层 Service:服务层 WebSite:表示层 Common:通用类 首页如图2所示,可以选择中文和English。图2 英文首页如图3所示图3 公司简介效果如图4所示图4 后台登陆页面如图5所示图5 后台首页如图6所示图6 后台首页 阅读全文
-
使用Varnish代替Squid做网站缓存加速器的详细解决方案[原创]
摘要:Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (vg.no) 使用3台Varnish代替了原来的12台squid,性能比以前更好。 Varnish的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算机系统的内存除了主存外,还包括了cpu内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操 阅读全文
-
Office系列在线预览
摘要:最近客户有个需求,需要在线预览PPT、Excel、Word,开始打算用第三方组建去读取office系列,然后生成html,这样的话样式相当于丢了,只剩下数据,而且第三方组件对office版本支持不够完善,最关键的是还是样式丢了!最后决定,用户在上传的过程中调用office API里面的saveAs,自动生成了静态html,预览的时候就直接访问的该html页面。[a].WordToHtml1publicstaticstringWordToHtml(stringpath,stringsavePath,stringwordFileName)2{34//在此处放置用户代码以初始化页面5Microsof 阅读全文
-
[转]WinForms UI Thread Invokes: An In-Depth Review of Invoke/BeginInvoke/InvokeRequred
摘要:This blog comes from here:http://weblogs.asp.net/justin_rogers/pages/126345.aspxAbstract:Marshalling the execution of your code onto the UI thread in the Windows Forms environment is critical to prevent cross-thread usage of UI code. Most people don't understand how or when they'll need to u 阅读全文
-
微软一站式示例代码库(中文版)2011-08-08版本, 新添加ASP.NET, Azure, Silverlight, WinForm等15个Sample
摘要:2011年的8月8日,立秋,转眼间,秋天悄悄走来;2011年的8月8日,奥运,转眼间,北京奥运会已过三载;2011年的8月8日,七夕,转眼间,情人节的幸福或失落尚在心间;自问:时光飞逝,我们曾否孤单、兴奋、快乐?我说:有家,有你,有微软一站式示例代码库,幸福常在!——赠给所有为情人节而忙碌和奋斗的兄弟姐妹们!今天我们发布了新一版本的All-In-One Code Framework 中文版,新增15个Sample。包括4个ASP.NET Sample, 2个Azure Sample, 3个Program Language Sample, 2个Silverlight Sample, 2个Wind 阅读全文
-
管道的基本用法
摘要:有关管道的基本用法请看System.IO之使用管道在进程间通信 (System.IO.Pipes使用)。本文介绍命名管道使用实例,文中例子是几个客户端都通过一台服务器获得新生成的int类型id。服务器端功能:当客户端请求一个新的id时,将现有id自增1,然后返回给客户端。服务器端实现:在程序启动时,启动n个线程,在每个线程中都声明一个NamedPipeServerStream的实例,并循环的WaitForConnection(),将新的id写入到命名管道中,然后断开连接。在程序退出时释放NamedPipeServerStream实例如下代码实现:001using System;002using 阅读全文
-
2011 年最佳代码
摘要:c# 扩展方法奇思妙用滥用篇一:改进 2011 年最佳代码 2011-08-08 18:39 by 鹤冲天, 2219 visits, 收藏, 编辑今天从老赵 的文章《谈谈年度最佳代码“不管你们信不信,反正我信了”》中学习了 2011 年最佳代码:123456789101112131415try{ if (you.believe(it) || !you.believe(it)) { I.believe(it); }}catch (Exception ex){ throw new Exception("It's a miracle!");}finally{ it.ju 阅读全文
-
为什么要关闭数据库连接,可以不关闭吗?
摘要:首先要说明的是连接数是有限制的:代码如下:for (int i = 0; i < 10000; i++){ SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFilename=""E:\DB\NORTHWND.mdf""; Integrated Security=True;Connect Timeout=30;User Instance=True"); conn.Open(); Console.WriteLine("打开 阅读全文
-
ISAPI_Rewrite引起的IIS应用程序池崩溃(fatal communication error)
摘要:在园子的发展过程中,曾经遭遇过多次应用程序池崩溃问题(比如:为什么应用程序池总是崩溃),每次都被搞得精疲力尽,后来稀里糊涂地解决了问题,却没找到问题的真正原因。而这一次,一天内解决了问题并找到了真正原因。这次与以前有什么不同呢?我想主要的不同是面对问题时心态的改变。心态一变,一切随之而变。在去年阻挡淘宝图片外链造成的巨量请求时(满园尽是503,记曾经的一次IIS 7性能考验),ISAPI_Rewrite曾经立下了汗马功劳,而这次它却是罪魁祸首。一切皆有可能,解决问题时,不要主观地忽视一些因素。遇到Crash问题,用WinDbg分析dump文件是王道。之前由于觉得它高深、复杂,不敢轻易用它。而这 阅读全文
-
.net Windows服务调用quartz.net 实现多个作业
摘要:这两天摸索了一下Windows服务调用quartz.net,在这里分享一下下,欢迎同学们给建设性的意见。还是先大概介绍下quartz.net: 你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用.NET编程吗?如果这些问题中任何一个你回答是,那么你应该使用Quartz.NET调度器。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Qua 阅读全文
-
Distinct 扩展
摘要:c# 扩展方法 奇思妙用 基础篇 八:Distinct 扩展 2011-08-01 20:57 by 鹤冲天, 1590 visits, 收藏, 编辑刚看了篇文章 《Linq的Distinct太不给力了》,文中给出了一个解决办法,略显复杂。试想如果能写成下面的样子,是不是更简单优雅:12var p1 = products.Distinct(p => p.ID);var p2 = products.Distinct(p => p.Name);使用一个简单的 lambda 作为参数,也符合 Linq 一贯的风格。可通过扩展方法实现:Distinct 扩展方法首先,创建一个通用比较的类, 阅读全文
-
系统服务的最简单实现
摘要:下面我告诉你,只需三个文件,即可完成一个系统服务。 1.新建一个类,命名为TestService,并继承于System.ServiceProcess.ServiceBase。重启其中的OnStart方法和OnStop方法1publicclassTestService:ServiceBase2{3protectedoverridevoidOnStart(string[]args)4{5NLogHelper.Trace("OnStart");6}78protectedoverridevoidOnStop()9{10NLogHelper.Trace("OnStop&qu 阅读全文
-
选择持续集成工具需要考虑的几个因素
摘要:目前,持续集成工具多达30种,每种工具都有自己的特点。在国内,软件企业很少为这类产品付费,所以国个目前最流行的包括Hudson(开源),CruiseControl(开源),TeamCity(商业版,买了IntellJ的License就能免费使用)。而在国外,还有两个比较流行的商业软件是AnthillPro和Go(原名为Cruise)。根据目前软件发展的特点,在选择持续集成工具时需要考虑对版本控制工具、构建工具、测试工具等的支持。而对于企业级用户和复杂软件来说,需要考虑的因素更多。详见http://www.continuousdelivery.info/index.php/2011/07/23/ 阅读全文
-
C#中定义数组和一个简单排序算法实现。
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApp20110730{ class Program { static void Main(string[] args) { int n = 18; int[] a = new int[18]{ 0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5}; int[] b = new int[18] { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 阅读全文
-
浅谈.NET编译
摘要:.NET是一门多语言平台,这是我们所众所周知的,其实现原理在于因为了MSIL(微软中间语言)的一种代码指令平台。所以.NET语言的编译就分为了两部分,从语言到MSIL的编译(我喜欢成为预编译),和运行时的从MSIL到本地指令,即时编译(JIT)。JIT编译分为经济编译器和普通编译器,在这里就不多说了,不是本文的重点。本文主要讨论下预编译过程中我们能做的改变编译情况,改变生成的IL,从编译前后看看微软C#3.0一些语法糖,PostSharp的静态注入等等。1:我们先来看看最简单的var:C#:publicvoidTestVar(){ vari=0; Console.WriteLine(i);}. 阅读全文
-
http://www.cnblogs.com/msdnchina/archive/2011/07/28/MSDNPortals.html
摘要:2011年7月20日,微软开发者网络平台MSDN中文官方网站新版上线了。新版网站增加了两个标签入口,把站点分为了平台和任务两大区域,突出它们各自的消息,内容更紧凑,分类更为合理。下面给大家简单介绍下平台和任务两大区域各自的特色。1、平台:这里从入门概述、基础知识,到开发工具的下载最后到视频教学、程序编译一条龙服务手把手教你学习四大类型的相关开发。桌面——了解桌面开发,获取工具,并立即开始编码。Web——获取所需的工具,然后开始在一小时内构建您的首个 Web 应用程序。云——构建您的首个 Azure 应用程序,然后了解如何将其部署到云。手机——获取所需的工具,然后使用 Silverlight 或 阅读全文
-
基于.NET的分词软件设计与实现V6.0--使用数据库篇(涉及索引、聚集因子和存储过程)
摘要:基于.NET的分词软件设计与实现V4.0--使用SortedList提高分词效率 隔了一段时间,忙其他的去了,下面继续偶之前的分词软件。 在之前的3个版本里,我们已经实现了分词的基本功能,并对其合理性等作了大量的测试评估工作,但是性能的提升还很不如意,所以这里我提出了使用SortedList提高分词效率的方案。 C#中提供了众多集合类的数据结构,如大家常用的List<T>,Dictionary<T>等,这里我将着重介绍一下SortedList,并实现其在偶的分词软件中的应用。 一、SortedList简介引自MSDN:SortedList 元素可通过其键来访问 (如任意 阅读全文
-
程序员的本质
摘要:很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么的都没有清晰的概念。在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:Computers are useless. They can only give you answers. ? Picasso 计算机没有什么作用。他们只能告诉你答案。——毕加索 很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他 阅读全文
-
Windows PowerShell
摘要:Windows PowerShell是微软公司为Windows环境所开发的壳程序(shell)及脚本语言技术,采用的是命令行界面。这项全新的技术提供了丰富的控制与自动化的系统管理能力。之前的开发代号是Monad,程序另一个名称叫Microsoft Shell(MSH)。目录[隐藏]1源起与目的2程序特性3技术基础4示例5参考文献6外部链接[编辑]源起与目的UNIX系统一直有着功能强大的壳程序(shell),Windows PowerShell的诞生就是要提供功能相当于UNIX系统Bash的命令行壳程序,同时也自带脚本语言以及辅助脚本程序的工具。[编辑]程序特性一致性的设计让所有工具和系统数据的 阅读全文
-
.NET简谈路由事件
摘要:本篇文章讲解关于路由事件的相关原理。什么叫路由事件,字面理解就是事件是可以传递,路由的意思也好理解。路由事件其实就是,事件是会随着某种变化,来回传递。路由事件其实在.NET2.0时期就已经存在了,只不过在一般开发过程中用不到。从C#3.0开始,就已经封装了关于路由事件的机制。其实这种实现应该可以换个名字来解释。我们可以给路由事件起个便于理解的名字,“事件的路由设计模式”。我们都知道,任何大的框架都是从微小的基本语法开始编写的,平台、语言给我们提供的仅仅是一些能满足日常需求的东西;好东西还得我们自己去写、去创新。在常见的设计模式中,少不了对事件的使用,本人深有体会。是不是高手,不能用他会哪种框架 阅读全文
浙公网安备 33010602011771号