COM与.NET交互简单示例
摘要:导读:本文以VB6为例,主要介绍.NET引用COM和COM引用.NET的两个简单示例。<1>.NET调用COM为了简单,我们使用VB6,这个据说即将开源的老古董,来制作一个简单的COM。在VB6中新建一个ActiveX dll工程,只有一个类ComCalc.cls,代码如下:注意;设置兼容性,并生成dll然后 ,vs2010中新建一Console项目,微软很奇怪,VB6中的project叫工程,自vs2002起又改名叫“项目”。添加对刚才创建的COM的引用运行效果:也许很多人会对这段c#代码很好奇,这个_ComCalc是什么时候产生的?为什么通过它来调用方法,而不是通过类对象?我们
阅读全文
步步为营 .NET 代码重构学习笔记 九
摘要:一、Duplicate Observed Data(复制[被监视数据])动机(Motivation)将该笔数据拷贝到一个domain object中。建立一个Observer模式,用以对domain object 和GUI object内的重复数据进行同步控制(sync)。示例步步为营 .NET 设计模式学习笔记 十二、Observer (观察者模式)二、Change Unidirectional Association to Bidirectional(将单向关联改为双向)动机(Motivation)添加一个反指针,并使修改函数(modifiers)能够同时更新两条连接。示例01public
阅读全文
步步为营 .NET 代码重构学习笔记 八
摘要:一、Introduce Foreign Method(引入外加函数)动机(Motivation)在client class 中建立一个函数,并以一个server class实体作为第一引数(argument)。示例1DateTime newStart = DateTime.Now.AddDays(1);改为1public DateTime NextDate()2{3return DateTime.Now.AddDays(1);45}二、Introduce Local Extension(引入本地扩展)动机(Motivation)建立一个新class,使它包含这些额外函数。让这个扩展品成为sou
阅读全文
领域驱动设计系列文章汇总
摘要:Entity Framework之领域驱动设计实践EntityFramework之领域驱动设计实践 - 前言 EntityFramework之领域驱动设计实践 (一):从DataTable到EntityObject EntityFramework之领域驱动设计实践 (二):分层架构 EntityFramework之领域驱动设计实践 (三):案例:一个简易的销售系统 EntityFramework之领域驱动设计实践 (四):存储过程 - 领域驱动的反模式 EntityFramework之领域驱动设计实践 (五):聚合 EntityFramework之领域驱动设计实践 (六):模型对象的生命周期
阅读全文
EA(Enterprise Architect)建立数据模型间外键约束
摘要:EA除了画用例图时比较方便,在建立数据模型上也很强大。前段时间一直再为数据模型之间的约束问题纠结,最近终于研究出了一点成就,希望给大家分享一下,有不对的地方也请各位高手指正:一、什么是外键?两种可以访问表的键:主键和外键。一个主键是唯一的,它定义一个表格中的一条记录。外键可以通过其他相关表格中的主键来访问数据。外键在EA的UML模型中是一个衍型操作。一个外间是一个字段(属性)的集合,同时,有一些操作意义(他们加强与另一个表的主键直接的关系)。一个外键模型化为一个衍型操作;这个操作参数成为一个键中的包含的字段。说明:用定义外键的方法,通过另一个表格的主键来访问它并不是必须的。外键是一些数据库管理
阅读全文
步步为营 .NET 代码重构学习笔记 七
摘要:一、Introduce Foreign Method(引入外加函数)动机(Motivation)在client class 中建立一个函数,并以一个server class实体作为第一引数(argument)。示例view sourceprint?1DateTime newStart = DateTime.Now.AddDays(1);改为view sourceprint?1public DateTime NextDate()2{3 return DateTime.Now.AddDays(1);4 5}二、Introduce Local Extension(引入本地扩展)动机(Motivati
阅读全文
sql 2005性能调优
摘要:SQL Server在运行一段时间,随着数据的积累,SQL运行效率会逐步降低,为了使用业务系统正常动作,经常IT部门需要花高价请SQL调优专家来解决。其实调优也不复杂,主要是找到影响效率的SQL,然后对症下药,这里给出几个技巧,相信对大家非常实用。1、检查SQL阻塞原因select blocking_session_id, wait_duration_ms, session_idfrom sys.dm_os_waiting_taskswhere blocking_session_id is not null2、检查前10个等待资源的SQL语句select top 10 *from sys.dm
阅读全文
Sql养成一个好习惯是一笔
摘要:我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。 要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序,下手的时候就胸有成竹,那么下手是不是有把握点呢? 一:查询的逻辑执
阅读全文
程序员
摘要:茫茫大海中,我们寻觅着,寻觅着那让我们激动不已的技术,程序员不是寻觅着女朋友,而是寻觅着能陪伴终身的技术,我们做为程序员,有时候真的为自己的职业感到可悲,没时间陪家人、没时间逛街、没时间聊天等等,我们把那些时间都用在了学习上,技术的道理上没有终点站,只有一个个的里程碑,今天的不学习,就注定明天被淘汰,其实今天我想要将自己的一些心理话说出来,让我们程序员都能勇往直前,成为各个领域的技术专家,这样才不会让我们后悔当初所付出的宝贵时间;技术日新月异,从最早的DOS到今天微软的Windows,我们作为微软技术群体中的一员,为微软的技术感到骄傲,有人会说我在做广告,宣传微软的东西;其实不是,我是说的实话
阅读全文
Distilled
摘要:JavaScript是一种动态的,弱类型的,基于原型的,面向对象的解释型语言。函数是JavaScript中的头等公民。一、语句:1.if语句vardayOfWeek=0;if(dayOfWeek===6){}elseif(dayOfWeek===0){}else{}2.switch语句vardayOfWeek=0;switch(dayOfWeek){case6:break;case0:break;default:break;}switch语句将switch表达式的值和所有指定的Case表达式进行精确匹配(===)。当找到一个匹配时,执行匹配的case从句中的语句。如果没有找到任何匹配,则执行可
阅读全文
Foundation
摘要:1. 数值类型整数字面量:int x = 100; //decimal notationlong y = 0x7F; //hexadecimal notation实数字面量:double x = 1.5; //decimal notationdouble y = 1E06; //exponential notation数值字面量类型推定:如果数值字面量包含一个小数点或者包含指数部分(E),则为double类型。否则,数值字面量是下面第一个能适配的类型:int,uint,long,ulong。数值字面量后缀:float f = 1.0F;double d = 1D;decimal d = 1.0
阅读全文
将ASP.NET MVC 2.0 部署在IIS6和IIS7上的教程
摘要:摘要:此文虽然简单,但是随着ASP.NET MVC框架的流行,越来越多的初学者开始学习这个框架,当然第一步就是环境的搭建了,推荐初学者阅读。 开发环境:Win7+IIS7+VS2008 SP1+ASP.NET MVC 2.0 RC 在部署MVC应用之前,一定要确保你的程序BIN文件夹下面是否包含 System.Web.Mvc.dll(非常重要),如图: 如果没有, 请在你的MVC项目中,打开引用列表,如图: 鼠标右键点击System.Web.Mvc,选择“属性”,转到下面窗口: 将“复制本地”设为True (默认为False),然后生成一下项目,System.Web.Mvc.dll就会出现在B
阅读全文
CLR GC垃圾收集过程模拟(用C#来显示垃圾收集过程的视觉效果)
摘要:废话不多说了,本人是搞Web方向的,C/S不太熟悉,先看界面图(比较粗糙),这里仅仅是从一个视觉的效果来初步显示GC相对应的操作(简单的效果显示,并不是真正的GC内幕,那个我也不懂)基本概念对象的生成过程(newobj指令)1:计算类型(包括基类)所有字段的字节总数2: 字节总数再加上对象开销字段字节数(相加为:对象所需的字节数)。每个对象包含2个开销字段:类型对象指针以及同步块索引。WIN32中,各占32位,WIN64中,各占64位。3:CLR检测托管堆中是否有足够的空间满足对象所需的字节数。如果满足,对象将被分配在NextObjPtr指针指示的地方,实例构造器被调用,(new操作)返回对象
阅读全文
如何将List<T>转换相应的Html(xsl动态转换)(二)
摘要:一、前言紧跟着上一篇随笔,本文主要涉及到如何将xml与xsl动态转换成html,这个才是最关键的地方,所有的内容都是围绕这个主题来进行开展的。根据指定的xsl样式将List<T>转换相应的Html,相关的随笔如下:(一)、将List<T>转换成DataTable。(二)、将Xml与Xsl动态转换成Html。(三)、设置以及控制Xsl的内容样式。二、XslTransform的具体实现XslTransform主要的职责为:将xml与xsl动态转换成html。其中,XslCompiledTransform提供了很多方法可以进行相关的转换,但使用起来并不是十分方便,因此必须在该
阅读全文
如何将List<T>转换相应的Html(xsl动态转换)(一)
摘要:一、前言根据指定的xsl样式将List<T>转换相应的Html,其中涉及到怎样将List<T>转换成DataTable,如何将xml文本、xsl样式文本动态转换成html以及如何设置以及控制xsl样式。主要步骤如下:步骤一、将List<T>转换成DataTable。步骤二、将Xml与Xsl动态转换成Html。步骤三、设置以及控制Xsl的内容样式。以上的三个步骤本人将以此顺序介绍相关的内容,分别对应相关的随笔,因为本人上班的时候不能上网以及时间上的问题,所以才将该文章分3次来写。二、类图设计以上的内容涉及的类图虽然很简单,但是本人还是花了不少时间的来实现具体功
阅读全文
Asp.Net MVC 3 + ExtJs 4.01做一个Quartz.Net管理平台
摘要:Asp.Net MVC 3 + ExtJs 4.01做一个Quartz.Net管理平台效果图:1.定义TriggerInfo,这里为了方便起见只列出了TriggerInfo的定义using System; 2 using System.Runtime.Serialization; 3 4 [DataContract] 5 public class TriggerInfo 6 { 7 [DataMember] 8 public string CalendarName { get; set; } 9 10 [DataMember]11 public string Description { get
阅读全文
.NET4.0 面向对象编程漫谈
摘要:Silverlight 井喷摘要: 在3年前,微软的windows控制着PC95%以上市场,在移动市场windowsCE也为市场的主要力量,但随着苹果公司IPHONE智能手机、IPAD平板电脑的出现,市场格局完全被打破,尤其是google的安卓系统的发力,真有取代微软王者的趋势,现在微软坐不住了,急忙推出了Windows Phone7,到现在还未推出基于平板电脑的操作系统,微软被苹果、google弄得疲于奔命,微软真得愿意退出代表未来商业计算的移动市场? 非也!微软将所有的赌注压在了windows8 的身上。 从现在已透露出的windows8的消息来看,你会觉得windows7只是为了弥补vi
阅读全文
JavaScript设计模式之一Interface接口
摘要:如何用面向对象的思想来写JavaScript,对于初学者应该是比较难的,我们经常用的JQuery其实也是用面向对象的思想去封装的,今天我们来看看如何在Javascript中用Interface,在C#还是JAVA中都应该面向接口设计我们的程序,在C#和Java中都Interface这样的关键字,但是JavaScript中没有相应的机制,但是Javascript很灵活,我们可以用它的特性去模仿Interface,但是我们需要加入一些methods来做check的动作。我们来看下一个Interface的作用: 继承了这个Interface就必须要实现这个Interface中定义的方法(方法签名)/
阅读全文
架构设计-资源
摘要:net 架构设计基于微软并行计算的工作流解决方案 (2) Tasked based Parallel Activity摘要: 上一节我们做了个简单的测试证明了Parallel并不是真正意义上的并行工作流,并且分析了它的缺陷。在.net framework 4里面有很多关于并行计算的组件,现在我们就要利用System.Threading.Tasks.Task类型来实现并行的分支。在此我们不对此类型做解释,有问题的朋友可以参考MSDN或者发邮件给我。我们重写一下PartDBReplicationActivity,public class PartDBReplicationAsyncActivity
阅读全文
ASP.NET MVC 3—MvcHandler、MvcHttpHandler
摘要:如果下载了MVC的源代码进行调试,一般来说会发现开始于MvcHandler,简单看下MvcHandler的代码,主要就是通过控制器的工厂接受控制器的实例,并使用控制器进行进一步处理,那么MvcHandler是如果被创建,如何被调用执行的?首先看看MvcHandler的构造函数,是没有无参的构造函数,显然看来MvcHandler单干是有点难度了。直接查找MvcHandler的所有引用,很容易在MvcRouteHandler中可以找到: protected virtual IHttpHandler GetHttpHandler(RequestContext requestContext) { re
阅读全文
.NET简谈网络系统大局观
摘要:我们都知道软件发展经历了很长一段路程,在软件刚刚起步的时候,有一批世界顶尖的科学家用自己整个的人生为我们创造了今天美好的信息世界,我印象最深的是我看过一本书,书名是《优雅人生》是专门介绍一位伟大的女性IT工作者,她是一位传奇人物,她是编译器的先驱,在她晚年的时候都拼命在一线开发环境中肩负着整个美国的IT重任,这位女性就是,格雷斯-霍珀;值得我们去敬仰,去学习;我为什么要讲上面的一段话呢,其实这源自于本人对技术强烈的欲望和兴趣,尤其崇拜那些传奇人物;在我们现在的软件开发人员中很大一部分人没有兴趣去关心那些历史,那些过去很老的技术,很麻烦的操作过程;有没有必要那就要看每个人的理解了;我们大部分的开
阅读全文
步步为营 .NET 代码重构学习笔记 六
摘要:一、Extract Class(提炼类)动机(Motivation)一个class应该是一个清楚的抽象(abstract),处理一些明确的责任。但在实际工作中,class会不断成长扩展。这个class会变得过份复杂,很快,class就会变成一团乱麻。示例01public class Person02{03private string _name;04private string _officeAreaCode;05private string _officeNumber;0607public string Name08{09get { return _name; }10set { _name
阅读全文
Entity Framework Code First
摘要:Power Tool(翻译的话,好像就是牛逼工具哦?) 下次会为大家深入解析这个小工具。 最先看到这个工具是在EF产品组最新的博客文章上,http://blogs.msdn.com/b/adonet/archive/2011/05/18/ef-power-tools-ctp1-released.aspx。粗略读了下,感觉很酷,马上下载下来试了试,果然很酷,http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d/。大致来说,这个工具有这样几个功能:1) 按照现有数据库结构,生成Code
阅读全文
AgileEAS.NET 4.0 发布最新版本 -下载使用说明
摘要:AgileEAS.NET 4.0 发布最新版本 -下载使用说明 2011-05-25 08:40 by 魏琼东, 82 visits, 网摘, 收藏, 编辑一、AgileEAS.NET发布包内容界面在前些时间,我们对AgileEAS.NET平台平台进行了一次重构,进程序集进行了合并和裁剪,也发布一个基于新版AgileEAS.NET平台的SAAS结构的案例-AgileEAS.NET平台开发实例-药店系统-快速的SAAS开发体验,但一直没有向大家提供最新版本的下载和详细的介绍。AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达.
阅读全文
如何将List<T>转换相应的Html(xsl动态转换)(二)
摘要:一、前言紧跟着上一篇随笔,本文主要涉及到如何将xml与xsl动态转换成html,这个才是最关键的地方,所有的内容都是围绕这个主题来进行开展的。根据指定的xsl样式将List<T>转换相应的Html,相关的随笔如下:(一)、将List<T>转换成DataTable。(二)、将Xml与Xsl动态转换成Html。(三)、设置以及控制Xsl的内容样式。二、XslTransform的具体实现XslTransform主要的职责为:将xml与xsl动态转换成html。其中,XslCompiledTransform提供了很多方法可以进行相关的转换,但使用起来并不是十分方便,因此必须在该
阅读全文
如何将List<T>转换相应的Html(xsl动态转换)(一)
摘要:一、前言根据指定的xsl样式将List<T>转换相应的Html,其中涉及到怎样将List<T>转换成DataTable,如何将xml文本、xsl样式文本动态转换成html以及如何设置以及控制xsl样式。主要步骤如下:步骤一、将List<T>转换成DataTable。步骤二、将Xml与Xsl动态转换成Html。步骤三、设置以及控制Xsl的内容样式。以上的三个步骤本人将以此顺序介绍相关的内容,分别对应相关的随笔,因为本人上班的时候不能上网以及时间上的问题,所以才将该文章分3次来写。二、类图设计以上的内容涉及的类图虽然很简单,但是本人还是花了不少时间的来实现具体功
阅读全文
C#探索
摘要:原来是这样:C#中字符串的内存分配与驻留池cyoooo7 2011-05-24 23:23 阅读:612 评论:0原来是这样:C#中的闭包是怎么捕获变量的cyoooo7 2011-05-22 14:26 阅读:1302 评论:5原来是这样:C#中自增、自减操作符重载是个怎么回事儿cyoooo7 2011-05-21 13:53 阅读:1206 评论:8
阅读全文
模式资源
摘要:当前标签: 模式《模式——工程化实现及扩展》(设计模式C# 版)《桥模式 Bridge》——“自我检验"参考答案蜡笔小王 2011-05-23 22:27 阅读:287 评论:0《模式——工程化实现及扩展》(设计模式C# 版)《桥模式 Bridge》——“自我检验"蜡笔小王 2011-05-23 16:00 阅读:494 评论:0《模式——工程化实现及扩展》(设计模式C# 版)《模板方法模式》——“自我检验" 参考答案蜡笔小王 2011-05-21 12:09 阅读:731 评论:0《模式——工程化实现及扩展》(设计模式C# 版)《适配器模式》——“自我检验&qu
阅读全文
C# 5.0
摘要:第一:绑定运算符,:=:这个只是简化了数据绑定,跟ASP.NET MVC3不断改进一样,其实不是什么亮点改进。comboBox1.Text:=:textBox1.Text;//将文本框的内容绑定到下拉框。第二:带参数的泛型构造函数:这个的加入给一些设计增加了强大功能,泛型早在C#2.0加入后就有着强大的应用,一般稍微设计比较好的框架,都会用到泛型,C#5.0加入带参数泛型构造函数,则在原有基础上对C#泛型完善了很多。:)publicclassTMyClass:T:class,new()//wemighthavepublicclassTMyClass:T:class,new(int)第三:支持n
阅读全文
步步为营 .NET 代码重构学习笔记 四、分解函数和替换算法(Replace Method And Substitute Algorithm)
摘要:Replace Method with Method Object概述将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的值域(field),然后你可以在同一个对象中将这个大型函数分解为数个小型函数.动机(Motivation)小型函数优美动人,只要将相对独立的代码从大型函数中提炼出来,就可以大在提高代码的可读性.示例1publicintGamma(intinputValue,intquantity,intyearToDate)2{3intimportantValue1 = inputValue * quantity + DateTime.Now.Minute;4intimportan
阅读全文
步步为营 .NET 代码重构学习笔记 五、移动函数和移动值域(Move Method And Move Field)
摘要:Move Method概述程序中,有个函数与其所驻class之外的另一个class进行更多交流,调用后者或被后者调用动机(Motivation)如果一个class有太多行为,或如果一个class与另一个class有太多合作而形成高度耦合(highly coupled),我们就会搬移函数。通过这种手段,我们可以使系统中的classes更简单,这些classes最终也将更干净利落地实现系统交付的任务。示例01publicclassMoveMethod02{03privateAccountType _type;04privateint_daysOverdrawn;05publicdoubleOver
阅读全文
MEF(Managed Extensibility Framework)
摘要:MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的。MEF的目标是简化创建可扩展的应用程序,其核心类是ComposablePart,即具有组合能力的组件,每一个称为ComposablePart(中文可为可组合构件,不过下文一直采用英文来表示,这样比较贴切)的组件可以组合(称为Import)其它组件的功能(其它组件通过声明Export提供功能)并且它也可以通过定义Export将其功能暴露给其它组件。ComposablePart通过组件
阅读全文
ASP.NET MVC:Razor 引入命名空间
摘要:ASP.NET MVC:Razor 引入命名空间 2011-05-22 20:09 by 鹤冲天, 634 visits, 网摘, 收藏, 编辑页面中引用c#@using MvcApplication83.Models@using MvcApplication83.Common行尾不需要加分号,加上也无妨(不过得全加上)。VB.Net@Imports MvcApplication83.Models@Imports MvcApplication83.Common配置文件中引用必须在 Views 文件夹中的 Web.config 文件中添加引用。见下图:打开该文件,找到 system.web.w.
阅读全文
Web Client Software Factory v2.0
摘要:Web 客户端软件工厂为尝试管理使用 ASP.NET 构建的大型网站的开发人员提供了引人注目的解决方案。此软件工厂支持创建与站点中的各个子目录相关联的模块,并为模式(如 View-Presenter 和 Application Controller)提供了一个可支持以模块化方式启用网站的独立开发、测试和部署的框架,值得我们认真去研究。现在微软模式与实践团队又发布了Web Client Software Factory v2.0版本,除了支持.NET Framework 3.5和Visual Studio 2008之外,还在2.0中加入了很多小的指导包,称之为“Guidance Bundle”,
阅读全文
发布:Visual Studio 2010 一站式示例代码搜索扩展
摘要:发布:Visual Studio 2010 一站式示例代码搜索扩展2011-05-20 10:09 by Jialiang, 1120 visits,网摘,收藏,编辑微软一站式示例代码库发布Visual Studio 2010示例代码搜索扩展。该扩展将一站式示例代码浏览器的功能集成到了Visual Studio 2010中。有了它,开发人员可以在Visual Studio 2010里面通过Alt+F1快捷键快速搜索和下载来自于一站式示例代码库的600个示例代码。安装方法一访问http://visualstudiogallery.msdn.microsoft.com/4934b087-e6cc-
阅读全文
.NET实现之(ActiveX插件开发)
摘要:在打算讲这篇文章之前我深思一个下午,打算分两篇来讲的,但是又怕读者看着嫌烦;其实稍微了解一点ActiveX插件的朋友都能知道,这样一扯可能出现一堆问题;但是我还是决定通过简单的方式尽量让初学者少接触底层的东西包括OLE(对象连接与嵌入)、COM(组件对象模型)之类的概念,但是ActiveX插件在开发上有很高的技术要求,虽然.NET为我们封装了很好的实现途径,但是我们也总不能停留在,知自然而不知其所以然的层面上;今天这篇文章我大概构思了一下,我主要会由浅入深的去逐层的讲解,对一些概念性的东西,我会给出参考资料供大家去学习,由于它的发展历史我也就不去讲解了,主要是实现为主;如果喜欢刨根问底的朋友可
阅读全文
.NET简谈静态事件链
摘要:在我们日常开发过程中经常会遇到多个类实例之间的关联,不管是B/S还是C/S的项目,在对实例的使用是一样的;只不过C/S的项目比较好控制,不管是UI层的对象都能很好的控制,包括继承、重写等等;而在B/S里面可能不太方便,由于B/S本身的特点,不能暴露内部太多的继承关系,以免不小心破坏类的封闭性;我这篇文章主要是讨论在多个类实例之间怎么进行动态关联,比如我们在开发Winform项目的时候,可能会碰到两个或多个窗口之间协同工作的情况;本人在这种情况下采用的是静态事件链的解决方案,多个实例之间不存在主次之分,有人肯定会觉得在一个类中定义事件,在调用的类中去实例化并订阅相关事件;这样解决不了多实例互操作
阅读全文
步步为营 .NET 代码重构学习笔记 三、临时变量(Temporary Variable)
摘要:Split Temporary Variable(剖解临时变量)概述程序中有某个临时变量被赋值超过一次,它既不是循环变量,也不是一个集用临时变量(collecting temporary variable)动机(Motivation)临时变量有各种不同用途,其中某些用途会很自然地导至临时变量被多次赋值.(循环变量)和(集用临时变量)就是两个典型例子:循环变量(loop variable)会随循环的每次运行而改变(例如 for(int i=0;i<10;i++))语句中的i);集用临时变量(collecting temporary variable)负责将(通过整个函数的运算)而构成的某个
阅读全文
AgileEAS.NET平台开发实例-药店系统-快速的SAAS开发体验[转]
摘要:AgileEAS.NET平台开发实例-药店系统-快速的SAAS开发体验 2011-05-18 16:33 by 魏琼东, 1033 visits, 网摘, 收藏, 编辑一、AgileEAS.NET应用开发简介在4月份,callhot写过一系列的有关于AgileEAS.NET平台的开发应用的系列AgileEAS.NET平台开发Step By Step系列-药店系统-索引,他通过一个接近于实际应用的案例,从头到尾的向大家展示了AgileEAS.NET平台在企业信息系统开发中的应用及其应用开发的过程。AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信.
阅读全文
ASP.NET MVC HtmlHelper用法大全
摘要:HTML扩展类的所有方法都有2个参数:以textbox为例子public static string TextBox( this HtmlHelper htmlHelper, string name, Object value, IDictionary<string, Object> htmlAttributes )public static string TextBox( this HtmlHelper htmlHelper, string name, Object value, Object htmlAttributes )这2个参数代表这个html标签的属性集合。使用方法如下
阅读全文
.NET实现之(WebService数据提供程序)
摘要:说起数据提供程序大家都不陌生,数据提供程序的作用就是以统一的接口去访问不同的数据源,如OledbProvider、SqlServerProvider、OrcaleProvider等等;不同数据源的访问其实是不一样的,微软数据源的访问方式从ODBC到ADO.NET经历了很多路程,各大数据源提供商,都在不断的生产不同结构的数据库,为了以统一的接口去访问各种不同的数据源,微软的.NET为我们提供了ADO.NET,我们通过ADO.NET可以很方便的访问不同厂商生产的不同数据库,ADO.NET也为后期自定义数据提供程序规定了一套接口,只要我们自己去实现它就可以用同一种方式,访问我们自己的数据源,我们可以
阅读全文
动态生成HTML表单
摘要:经测试System.Web.UI.HtmlControls下的HtmlForm类,也就是我们在传统的asp.net中使用的Form表单对象,不适合动态生成Html代码。于是自定义了一个简单的HtmlForm容器控件,只需要几行代码。看来Asp.net在封装Html元素方面还是很有优势的,微软为我们定义了大量的基础结构,很容易扩展使用。public class myHtmlForm:HtmlContainerControl { public myHtmlForm() : base("form") { this.Attributes.Add("method"
阅读全文
.Net MVC3 中前台异步获取json数据的实例
摘要:在mvc3中,最让人称道的当然还是路由的方便与先进之处,类似于java中的mvc,加载每一个页面(包括首页),都要先运行该页面对应的后台controller,处理页面的初始化数据(mvc中的数据传递问题这里不再讲述)、域名读取、权限操作等,然后返回相应的页面。本篇文章讲述如何从mvc的前台页面中异步获取后台的json数据。1.建一个mvc3的项目,取名叫MVC3Test(事先安装mvc3 version:1.13.113.0)2.修改About.cshtml,如下代码@{ ViewBag.Title = "About Us";}<script type="t
阅读全文
.NET实现之
摘要:做开发的人,尤其是做客户端(C/S)系统开发的人都会遇到一个头疼的问题,就是软件的自动更新;系统发布后怎样自动的更新程序,在下有幸开发过一个自动更新程序,更新程序与任何宿主程序是完全独立的;只要在主程序里面启动更新程序就行了;更新程序也是一个可执行文件,在启动的时候可以设置是否是自动更新和是否是手动更新,自动更新的意思就是说不需要人工的干预实现从远程服务器下载更新包,而如果是手动更新就会涉及到用户点击程序中的按钮实现更新;在自动更新与手动更新中可以根据项目的需要进行选择,有的程序必须要求用户进行更新才能继续使用,所以程序自动更新是有必要的;手动更新就是用户可以随时更新程序,不需要严格的控制版本
阅读全文
NET实现之(简易ORM)
摘要:ORM模型在现在的项目开发中用的还是比较多的,他的好坏我们就不讨论了,已学习为主吧;ORM模型的大概思想就是实体与我们库中的表的对应关系,一个实体就好比表中的一行数据,将实体的操作视为对表的操作,如增、删、该、查就是对表的同样操作,我们只需要简单的封装一下就可以省很多的重复劳动,通过ORM模型对我们的代码的简洁程度还是有目共睹的,我们将对数据库的操作通过ORM转换后执行,前者我们省掉了很多复杂的SQL组装,后者其实是一样的只不过将SQL的组装通过ORM将MODEL的一些属性通过反射的方式获取然后拼接SQL去执行,在项目的数据库变更,很容易就切换了上下文的数据库访问代码,将诸如SqlConnec
阅读全文
微软一站式示例代码库(中文版)2011-05-13版本, 新添加Windows Azure, WinForms等16个Sample
摘要:饮湖上初晴后雨 苏轼 水光潋滟晴方好,山色空蒙雨亦奇。 欲把西湖比西子,淡妆浓抹总相宜。五月,我们发布了新一版本的All-In-One Code Framework 中文版!新一版本中,我们又增加10个Azure Sample 和 6个Windows Forms Sample。敬请期待,后续更精彩。下载地址:http://1codechs.codeplex.com/releases/view/66201如果您第一次听说All-In-One Code Framework这个项目,请参阅主页上的相关介绍http://1code.codeplex.com/, 以及下列两篇blogAll-In-One
阅读全文
站内搜索(主要技术点:Luncene.Net搜索引擎核心,Log4Net:日志,定时框架:quartz.Net,Jquery,Json,AJAX)
摘要:站内搜索(主要技术点:Luncene.Net搜索引擎核心,Log4Net:日志,定时框架:quartz.Net,Jquery,Json,AJAX)1.和用“select*from t where body like %计算机%”的区别:(1)效率。Like会造成全表扫描。(2)Like无法实现“怎样学编程”“匹配”“怎样学习编程”.为什么不用discuz的搜索,因为discuz的就是用like实现.蜘蛛,spider 爬网站.百度蜘蛛工作图详情介绍:http://baike.baidu.com/view/1847001.htm爬网站的过程:1,发现网站.百度把CSDN当成关键网站,顺着已知的网
阅读全文
非常棒的 ASP.NET Web Forms 和 ASP.NET MVC 免费培训视频!
摘要:原文名称:Great Free Video Training on ASP.NET Web Forms and ASP.NET MVC原文地址:http://weblogs.asp.net/scottgu/archive/2011/05/15/great-free-video-training-on-asp-net-web-forms-and-asp-net-mvc.aspx最近我们在 http://asp.net 站点上发布了许多很棒的 ASP.NET 培训视频。这些很棒的视频由Pluralsight(一个很棒的 .NET 培训公司)创建,现在免费提供以供学习或者更新你的 ASP.NET W
阅读全文
Web开发框架
摘要:有的时候,像jQuery这样的Web框架对于网站建设非常重要。很多的开发人员会选择合适的框架以帮助他们专注于网站的建设,而不用花太多的时间去思考如何设计一个网站。下面列举了12个新鲜出炉的Web开发框架,掌握其中的一两个,相信可以帮助你节省很多时间和精力。1.Timeglider2.TreesaverJS3.520 Grid System4.LimeJS5.Wink Toolkit6.XUI7.Baker Framework8.ActiveJS9.RightJS10.EZ-CSS11.Marker CSS12. Atatonic你可能还喜欢特别推荐:Web开发常用速查手册大全(100+)分享8
阅读全文
Razor4Orchard v1.2
摘要:书接上回:Razor view for Orchard又添加了些新功能:1. Razor Filter for Body Part:正常Body内容,在开启此Feature后,可以启用对Razor表达式的执行: 1.1 开启Razor Filter 1.2 创建新页 2.3 查看效果 2.4 对比未开启Razor Filter的效果2. 在编辑Razor时 ,添加了TinyMce支持,可以作到HTML"所见即所得" 2.1 开启Razor TinyMce 2.2 使用TinyMce编辑Razor Page 2.3 查看效果3. 重新定义了Razor Model,添加了Con
阅读全文
Trigger4Orchard
摘要:说实话,写的太粗糙,真有点不好意思拿出来示人,可是又一想,写都写了,还怕给人看?!俗话有说,“丑媳妇早晚还是要见公婆”, 不是吗?!主要功能:通过自定义Razor(C#)表达式,对Orchard中Content的Handler添加处理程序,说白了,就是在内容有新建,发布等时,可以自已干点啥,比如:通过输入的内容创建另外类型的内容。支持IContentHandler 定义的全部事件:namespace Orchard.ContentManagement.Handlers {public interface IContentHandler : IDependency {void Activatin
阅读全文
Razor view for Orchard
摘要:本人刚刚创建了个项目Razor4Orchard(http://razor4orchard.codeplex.com/), 是为Orchard(http://orchard.codeplex.com/)开发的一个模块,使用了RazorEngine(http://razorengine.codeplex.com/)用于在Orchard页面上使用C#代码定制更加丰富的扩展功能。可以在asp.net mvc3项目中测试通过后*.cshtml 代码直接的粘贴至页面上使用。如何使用:1. 安装Razor4Orchard模块:从http://razor4orchard.codeplex.com/是下载Orc
阅读全文
步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method)
摘要:一、Inline Method概述一个函数,其本体(method body)应该与其名称(method name)同样清楚易懂.动机(Motivation)以简短的函数表现动作意图,这样会使代码更清晰易读.但有时候你会遇到某些函数.其内部代码和函数名称同样清晰易读.也可能你重构了该函数,使得其内容和其名称变得同样清晰.果真如此,你就应该去掉这个函数,直接使用其中代码,间接可能带来帮助,但非必要的间接性总是让人不舒服.作法(Mechanics)1、检查函数,确定它不具多态性(is not ploymorphic)如果subclass继承了这个函数,就不要将此函数inline化。因为subclas
阅读全文
Project Silk – Mileage Stats 项目架构初步分析(ASP.NET MVC 3) [转]
摘要:如果你正在学习ASP.NET MVC 3,HTML5,jQuery和浏览器客户端交互技术,推荐你下载Mileage Stats 范例程序,可更好理解如何使用当前技术创建当前的web应用程序,尤其关注如何架构一个企业级的应用程序。关于Mileage Stats项目的初步介绍,请参考《Project Silk – 基于ASP.NET MVC 3 的示例应用程序Mileage Stats》。 EntLib.com Team 尝试从架构的角度对MileageStats项目进行分析和解读,并计划运用到实际的电子商务系统中,欢迎大家参与交流和分享。MileageStats RI 运行的主要界面:Milea
阅读全文
步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method)
摘要:动机(Motivation)Extract Method是我们最常用的重构手法之一.当我们看见一个过长的函数或一段需要注释才能让人理解用途的代码,我们就会将这段代码放进一个独立函数中.有数个原因造成我们喜欢简短而有良好命名的函数.首先,如果每个函数的粒度都很小(finely grained),那么函数之间彼此复用的机会就更大;其次,这会使高层函数代码读起来就像一系列注释;再者,如果函数都是细粒度,那么函数的覆写(override)也会更容易些.的确,如果你习惯看人型函数,恐怕需要一段时间才能适应这种新风格.而且只有当你能给小型函数很好地命名时,它们才能真正起到作用,所以你需要在函数名称下点功夫
阅读全文
一起探讨领域驱动设计——架构与建模
摘要:领域驱动设计,挺好的,新做的一个商城也是基于这个思想来进行开发的。由此,想和大家一起分享一下应用这个思想在做项目中的一些领悟与经验,正好也能和大家一块探讨DDD,使我们能更好地理解领域驱动设计。这一篇就和大家分享一下我使用的一些用于架构与建模使用的组件。在这里,个人推荐使用一个开源的DDD框架组件:SharpArch.dll这里是它的官方网站:http://www.sharparchitecture.net/大家可以下载完整包,里面的组件基本上包括了后面项目所要用到的一些开源组件。下面就举一个简单的例子与大家一起分享。 一。业务流程 会员之间的金额转账。 二。建模 在DDD中,实体(Entit
阅读全文
.NET简谈平台大局观
摘要:在很久以前,我刚开始接触.NET的时候,总是搞不清楚.NET与VisualStudio之间的关系,我开发的东西是怎么样层层流转最终形成可执行文件的;这样的疑惑一直困扰着我,我想也困扰着许许多多刚接触.NET的开人员;尽管在学校的学生学过编译原理、操作系统等等计算机原理方面的理论知识;但是就是无法将这股力量用到实实在在的理解上;下面本人就简谈一下.NET中的主要核心东西:高级语言(C#,VB.NET,J#等)、编译器、CLR引擎、VisualStudio系列工具等等之间是如何协调工作的,这样的理解有利于我们自己在开发软件项目的时候可以借鉴一下好的思想(如:文档对象模型、脚本引擎等等),好的实现方
阅读全文
几款 .Net Reflector 的替代品
摘要:.Net Reflector 的免费版本即将过期, 新版本开始收费, 现在运行 .Net Reflector 将会提示:不过,已经出现了几款免费的替代产品可以使用, 虽然不及 .Net Reflector 成熟, 但是已经可以使用了, 它们是:dotPeekJetBrains 公司出品, 与ReSharper师出同门。ILSpyiCSharpCode 团队出品, 这个团队开发了著名的 C# IDESharpDevelop。JustDecompileTelerik 公司出品, 相信很多人都知道该公司的 Rad 系列控件。MonoDevelop自带的 Assembly Browser 也提供了类似
阅读全文
MVC和三层 【转】热闹
摘要:这里说的MVC指的是设计模式里的MVC不是asp.net mvc。 既然MVC是一种设计模式,那么他就应该在任何地方都可以使用。比如三层。 有人说MVC里的V相当于三层里的UI,M相当于三层里的DAL + BLL。这么理解也不错,因为设计模式可以应用在任何地方,这么理解是完全可以的。但是我有另一种理解,大家看看对不对。 我觉得在UI层里面也可以使用MVC设计模式。请注意仅仅只在UI层里。还是用一个实例来说明吧,我不擅长讲原理。 假设我们要显示博客园的首页,再缩小一下范围,我们要实现首页的里博文列表。美工做出来的html是这样的(代码一),那么这个是不是V呢? 下一步,我们要把数据库里的数据填充
阅读全文
步步为营 .NET 代码重构学习笔记 一、为何要代码重构
摘要:最近在学习代码重构,根据自己的学习进度写一个关于代码重构的系列出来,供自己总结提高,也希望能对他人有所帮助。园子里有圣殿骑士的31 天重构学习笔记 给了我很多的启发,自己也在学习《Refactoring improving the Designe of Existing Code》(重构 改善既有代码的设计),希望在代码重构思想上能有自己的心得.一、为什么要重构(Refactoring) 通过重构可以达到以下的目标: 1·持续偏纠和改进软件设计 重构和设计是相辅相成的,它和设计彼此互补。有了重构,你仍然必须做预先的设计,但是不必是最优的设计,只需要一个合理的解决方案就够了,如果没有重
阅读全文
从一个职校走出来的高级程序员
摘要:随笔档案 - 2011年4月从一个职校走出来的高级程序员 2011-04-29 15:09 by wangqingpei, 353 visits, 网摘, 收藏, 编辑摘要:其实这篇文章早就该写了,但是每当打开博客准备着手去写的时候,便开始回忆,记忆渐渐的回到了过去一幕幕的放映着,但是手指却是僵硬的,不知为何连敲键盘的力气都没有,那段经历是我一生当中都永远不会忘记的,我是不愿意去回忆,不愿意让别人知道我的过去,随着时间的流逝,自己也渐渐明白要想成功必定付出常人不能承受的痛苦才能成为可能,希望将自己的经历写出来能够帮助跟我一样曾经徘徊在学校阴暗角落的人,希望不懂事的孩子看过本人的经历之后能够痛改
阅读全文
【前端优化】通过六种方法提高网站访问速度
摘要:1.把你的 .js 库文件地址替换成 Google CDN的地址 ::(google apis目前在中国地区访问不是很稳定,不是很建议使用这条。)随着 jquery 和 mootools 等js库的使用需要加载的.js文件越来越多也越来越大,通常传统的网站是上传到网站本身的目录。但对于一个接近70多KB的jquery.js体积确实不利于网站响应速度的提升,此时就应该使用Google API .把你的 http://www.cnblogs.com/jquery.x.x.js 替换为http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.m
阅读全文
AgileEAS.NET 4.0 重构裁剪后的程序集说明【转】
摘要:AgileEAS.NET 4.0 重构裁剪后的程序集说明前几天在文章AgileEAS.NET 4.0重构裁剪,新的ORM、支持Linq,正式支持WPF,开放更多的接口简单的介绍了一下AgileEAS.NET平台在2011年初的一些重大改进措施,其中涉及对原有程序集的合作与裁剪处理,将原有的近70个程序集合并或裁剪到现在的32个程序集,本文将详细的给大家介绍这30多个程序集的功能。基础程序集:EAS.MicroKernel.dll AgileEAS.NET平台微内核程序集,包含了平台中关于IOC、AOP、ServiceLocator、分布式体系结构、会话、配置文件以及平台与插件的接口及结构。EA
阅读全文
在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)
摘要:背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用。本篇文章将引导你快速理解这个调用的过程。步骤1. 创建一个CSharpInvokeCPP的解决方案:2. 创建一个C++的动态库项目:3. 在应用程序设置中,选择“DLL”,其他按照默认选项:最后点击完成,得到如图所示项目: 我们可以看到这里有一些文件,其中dllmain.cpp作为定义DLL应用程序的入口点,它的作用跟exe文件有个main或者WinMain入口函数是一样的,它就是作为DLL的一个入口函数,实际上它是个可选的文
阅读全文
让Windows远程访问Opensuse桌面的解决办法
摘要:背景 有两台电脑,一台电脑安装了Windows操作系统,另外一台安装了Opensuse Enterprise Linux,现在我要想让Windows能够远程访问Opensuse的桌面。 单单使用Windows自带的“远程桌面连接”无法连接到Opensuse桌面(或许自己还没有找到合适的方法)。这里我提供了两种解决方案,一种利用VNC工具,另外一种利用XManager工具,现在我就介绍下这两套工具的使用方法。工具介绍VNC:VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的。VN
阅读全文
Opensuse网络配置备忘
摘要:概念 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。开始 这里我使用的是redis-2.2.
阅读全文
在多台服务器上简单实现Redis的数据主从复制
摘要:Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面我演示下怎样在多台服务器上进行Redis数据主从复制。这里我假设有两台服务器,一台是Windows操作系统(局域网IP:192.168.3.82),一台是Linux操作系统(局域网IP:192.168.3.90),在两个操作系统都安装redis,Windows操作系统使用cygwin工具进行安装,命令为:view sourceprint?1$ tar xzf redis-2.2.2.tar.gz 2$ cd redis-2.2.2 3
阅读全文
利用Nginx做负载均衡
摘要:最近正在研究Nginx,Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能。 首先我要在官网下载Nginx(http://nginx.org/en/download.html),目前最新稳定的版本为1.0版本,Linux和Windows版本我都下下来了,在两台服务器上做网站负载均衡。在Windows版本中,将压缩包进行解压,执行命令:view sourceprint?1start nginx这样就可以启动nginx服务了。而执行命令:view sourceprint?1nginx -s stop可以停止服务。这是我在192.168.3.82的IIS服务器上,添加.
阅读全文
企业级系统架构的理解
摘要:在我们刚开始学习架构的时候,首先会想到分层的概念,分层架构比较经典的是三层架构,那么,什么是三层架构呢?它包括表现层,业务层,数据访问层;而对于一个新手来说,从抽象意义上的三层架构,逻辑上就划分为三个层。这个是最基本的三层架构模式。表现层充当系统的界面呈现以及UI逻辑的角色,也就是说,UI(用户界面)属于表现层;举一个对于asp.net WebForm来说,人们喜欢把对于UI的控制逻辑(服务器控件的读取、设置、事件等等)写在页面的后置隐藏代码中,并且依赖业务逻辑层。当然,服务器控件支持数据绑定的功能,可以通过数据源进行绑定控件。这样就可以节省在后置隐藏中的代码。因此,我们就可以把表现层分为UI
阅读全文
艺街开放平台开源计划 [转]
摘要:相信园子里也有一部分朋友听说过艺街开放平台了,还有很多关注过她的开发过程。之前是作为自己的一个创业项目,曾经辞职4个多月时间开发,受到很多朋友的支持和鼓励。其中最感谢的要算善友了,他不仅很支持并且给予很多技术上的指点,例如最终采用的OpenID和OAuth的方案,并且我们都喜欢REST;另外还有麒麟也很支持,我们曾经深入讨论过技术方案;还有炭炭等等,以及我的QQ群的很多朋友,他们陪我度过了那4个月枯燥的岁月! 到目前艺街的思路也算完整并完成了很基础的开发。由于种种原因(后面会详细介绍),现在打算将艺街开源出来。本篇会介绍艺街的成长过程以及公布开源计划,如果你感兴趣欢迎你的加入,^_^! 体验地
阅读全文
在C#里使用属性,如Obsolete,Serializable,XmlRoot
摘要:在C#里使用属性,如Obsolete,Serializable,XmlRoot 收藏 原文:Using Attribute In C# 绪论 属性是一种新的声明性信息.使用属性既可以定义设计级信息(例如一个帮助文件或一个文档链接)又可以定义运行时信息(例如使一个XML和一个类相关联).也可以使用属性创建"自描述"组件.通过此篇教程,我们将了解如何创建并附加属性到不同的程序实体,和在运行时如何找到属性信息.定义MSDN的描述是(ms-help://MS.MSDNQTR.2002APR.1033/csspec/html/vclrfcsharpspec_17_2.htm):&qu
阅读全文
SQL 2005 with(nolock)详解
摘要:大家在写查询时,为了性能,往往会在表后面加一个nolock,或者是with(nolock),其目的就是查询是不锁定表,从而达到提高查询速度的目的。什么是并发访问:同一时间有多个用户访问同一资源,并发用户中如果有用户对资源做了修改,此时就会对其它用户产生某些不利的影响,例如: 1:脏读,一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记录,然后,第一个用户放弃修改,数据回到修改之前,这两个不同的结果就是脏读。 2:不可重复读,一个用户的一个操作是一个事务,这个事务分两次读取同一条记录,如果第一次读取后,有另外用户修改了这个数据,然后第二次读取的数据正好是其它用户修改的数据,这样
阅读全文
Resharper上手指南
摘要:面对这样一个问题:为什么.net能够比java更加快速的完成开发?恐怕最大的优势在于Microsoft提供了一个无比强大的IDE。它的强大在于适用于各个层次的开发人员。当你还是一只小小鸟的时候,可以学会drag&drop,当你开始写代码的时候,你会发现设计器生成的代码是多么愚蠢和臃肿。当你自己能够写出干净的代码时,可能再也不想切换到设计器中去了(切换/F7)。我相信我们中的大部分人,即使是最资深的Windows开发人员,用VS写代码比用记事本的效率要高很多,因为我们毕竟需要IDE的帮助以提高我们的生产力。但是在那个没有Resharper的年代里,你的生产力顶多停留在两个轮子的时代,另两
阅读全文
Dynamics AX
摘要:有关Microsoft Dynamics AX的技术文章一种来源于Microsoft Dynamics AX的权限管理设计思想摘要: 网上有很多关于权限管理系统的设计方案以及案例,甚至有相关的可以直接使用的权限管理框架。权限管理并非我的研究对象,我也只通皮毛,今天就在专家面前班门弄斧,简单介绍一下微软Dynamics AX系统的权限管理,以及由此派生出来的一种基于.NET的权限设计思想。或许在看完本文后,你会觉得,我所提出的这个想法很火星,你早就知道这种方案了。不要紧,就当我在此将这些内容整理一下,以备日后参考便是了。演练:体验...阅读全文posted @2010-07-20 11:00da
阅读全文
专注于领域驱动设计的研究与实践系列转载
摘要:专注于领域驱动设计的研究与实践Microsoft NLayerApp案例理论与实践–DDD、分布式DDD及其分层摘要: 这段时间一直在忙工作,已经有一个月没更新博客了。从现在开始,我将继续讨论Microsoft NLayerApp案例,希望各位爱好Microsoft NLayerApp案例、架构设计以及DDD的朋友们能够继续关注。 从架构上看,Microsoft NLayerApp对“复杂的业务系统应用程序”这样一种应用程序的架构设计提供了一系列的设计准则。所谓“复杂的业务系统应用程序”是指这样一类业务系统应用程序...阅读全文posted @2011-05-10 14:01dax.net 阅
阅读全文
Microsoft - Domain Oriented N-Layered .NET 4.0 App Sample (DDD Architecture)
摘要:Project DescriptionDomain Oriented N-Layered .NET 4.0 Sample App.By Microsoft - SpainUsing .NET 4.0, C#, Entity Framework 4.0,Implementing typical DDD architecture & design patternsOptional: Windows Server AppFabric & Windows Azure app versionsSample-App Current state - Version 1.0.NEW! We h
阅读全文
ASP.NET MVC3.0 入门指南 5 从控制器访问模型数据
摘要:从控制器访问模型数据本节,您将创建一个新的MoviesController类并编写代码读取电影数据并用视图模板在浏览器中显示他们。在继续前,请确保您的应用程序被编译。右键Controllers文件夹新建一个MoviesController控制器。选择下面的选项:Controller name:MoviesController. (默认. )Template:Controller with read/write actions and views, using Entity Framework.Model class:Movie (MvcMovie.Models).Data context cl
阅读全文
Wcf通讯基础框架方案-解决方案说明以及源代码
摘要:源代码见http://wcfextension.codeplex.com/注意:1) 本来没打算这么早开源,这只是一个比较原始的实现,请勿直接在商业环境使用2) 请注意本框架的授权条款Apache License 2.03) 本框架依赖的外部程序集或框架版权归原作者所有4) 框架之后可能会增加很多功能,请关注项目主页即使获得最新信息解压缩代码打开sln文件后可以看到这样的结构1) WcfExtension就是核心框架:Client文件夹放的是客户端用到的一些代码,Server自然是服务端用到的一些代码Log是日志相关的一些代码(四种日志),Config是配置相关的代码Setting是框架本身设
阅读全文
面向领域开发示例【转】
摘要:最近面向领域的知识挺火,我也来插一腿。说说我平时做项目时候用到的开发方式,以下代码为伪代码,主要展示一下我现在的开发方式供大家讨论,系统中不考虑持久、UI、AOP和IOC等方面内容。 说到.NET社区的“开发方式”就不得不提一下Petshop了,可以说Petshop真是影响了.NET的一代人。以至于三层成了.NET这边流行的标准的开发方式。但是要说一下Petshop是数据库驱动业务核心的过程式开发,也正是它也毒害了一批人。下面我们以一个最常见也是大家比较熟的下定单来简单看一下。首先是系统的几个领域类:我也就不解释了,发下几个类的代码里面有注解。大家看一下就明白了。这里我们要强调的是类关系,还有
阅读全文
轻量的映射工具Assionsoft.AssionMapper
摘要:这是一个轻量的映射工具,不可与ORM做比较。它不参与到DB。一般用来配合SqlHelper来使用。目前实现的功能有:DataReader到List的映射、DataReader到T的映射、List到List的映射、T到T的映射、T到数据库参数的映射。以上这些都是平时操作数据库工作量最大的部分,而且都是重复的没有含量的工作。其实真正写SQL并不占用多少工作量。 下面来说下如何使用,并写几个各个功能下的使用示例。首先下载:Assionsoft.AssionMapper程序集,所有映射功能全部在这个程序集下面。不需要进行XML的配置。1、我们不采取XML配置的映射形式,而是在实体类上标上特性的方式。通
阅读全文
实现简单DTO适配器,解放你的双手
摘要:多数人不喜欢用DTO的一个重要原因是嫌麻烦,需要写一堆DTO类不说,还要做DTO到DomainObject,DomainObject到DTO的转换映射,就是这个映射部分,让我感到很不爽,所以写了一个较通用的适配器来完成这部分的Mapping工作。这里有几点觉得有必要提一下: 首先,关于DTO,伟大的“码总”说,DTO应该是扁平的,不应该包含过于复杂的对象。所以我就不考虑DTO里面的过于复杂的子对象,当然DTO只是个数据载体,也不应该有错宗复杂的对象关系了。 其次,关于DomainObject,DomainObject是充血的,对象关系是复杂的。其中包含聚合根等各种复杂关系概念。DomainOb
阅读全文
Microsoft NLayerApp案例理论与实践–DDD、分布式DDD及其分层【转】
摘要:从架构上看,Microsoft NLayerApp对“复杂的业务系统应用程序”这样一种应用程序的架构设计提供了一系列的设计准则。所谓“复杂的业务系统应用程序”是指这样一类业务系统应用程序,这类应用程序具有相对较长的生命周期,在其生命周期中,将发生一些可预期的“革命性变更”(比如,所使用的技术/框架的版本升级甚至替换),因此后期维护会变得非常重要。于是,针对这种类型应用程序的设计,我们应该做到,当“革命性变更”来临时,将这种变更对应用程序其他部分的影响减少到最小程度,例如,我们要确保基于基础结构层的设施变更不会影响到其上层的各个部分。更确切地说,应用程序的领域模型部分应该只关注领域本身,变更应用
阅读全文
在ASP.NET MVC3 中利用JSONP跨域登录WEB系统
摘要:在ASP.NET MVC3 中利用JSONP跨域登录WEB系统在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录。一般情况下我们需要在多系统之间使用多个用户名和密码。这样客户就需要在多个系统之间重复登陆。每次登录都需要输入用户名和密码。最近比较流行的就是OAuth。新浪微博这个开放系统做的就很好。但OAuth并非本文讨论范畴。这里主要讨论jQuery1.5 jsonp 在Asp.net MVC3 中的应用。本文应用场景: 假设您的开发团队欲为某集团公司开发一整套信息管理系统,目前首要开发的就是一套订单系统和一套内部OA系统。前提是这两套系统使用同一套数据库。只是两个不同的MVC3.0
阅读全文
使用 .NET4 中的Task优化线程池【.NET4 多核并行】
摘要:阅读本篇前,读者需对.NET4 System.Threading.Tasks 以及 Task Schedulers 有一定的了解。如果不是很了解,请查阅以下相关信息: Task:http://msdn.microsoft.com/en-us/library/system.threading.tasks.task%28VS.100%29.aspx Task Schedulers:http://msdn.microsoft.com/en-us/library/dd997402.aspx 首先回顾相关场景:最近工作需要一直在.NET4下编写window service。在WindowsService
阅读全文
通过代码配置 Log4net
摘要:最近将项目的异常日志模块改造成log4net。在Asp.net MVC3 中的改造非常简单,我们只要继承HandleErrorAttribute类使用自定义类,使用特性即可统一处理MVC controller 下的 所有的Action 方法的异常。无须try ... catch.... 详情请见我的这篇随笔http://www.cnblogs.com/ryanding/archive/2010/11/16/1878168.html。我们只要在上文的CustomHandleErrorAttribute方法内植入Log4Net 即可。具体的留给读者自己去实践了。本文主要讲解如何通过代码配置Log4
阅读全文
新版微软一站式示例代码库5月6日
摘要:新版微软一站式示例代码库 5月6日更新下载。下载地址:http://1code.codeplex.com/releases/view/65772你也可以通过示例代码浏览器,按需下载和管理所需的示例代码。如果您是第一次听说All-In-One Code Framework(一站式示例代码库)这个项目,请参阅微软一站式开发技术框架解决方案 中文说明,以及这段视频:http://www.microsoft.com/showcase/en/us/details/40015bbc-2ded-4aba-9613-2c5a47ee3084。----------------------------------
阅读全文
最强悍的VS插件—reSharper
摘要:用过Java的IDE MyEclipse之后,才发现Visual Studio系列其实作为一个IDE还缺少很多必要的功能。特别是在代码重构和代码风格这一块。骂过好几回了,今天发现reSharper这个VS的插件居然具有几乎所有我想要的东西,当然,这个东东是收费的,不过有总比没有强。代码重构比起VS的refactor鸟枪换炮啊! Adjust Namespaces Change Signature Convert Abstract Class to Interface Convert Anonymous to Named Type Convert Extension Method to Plai
阅读全文
60个精彩VS插件
摘要:A Visual Studio Add-ins: [color=red]API to .NET Mapping Maps common Win32API functions to their .NET CLR equivalents; and, allows the developer to search either MSDN online or Google for more information on either the Win32 function or its .NET counterpart. Visual Studio Add-ins: Add Copyright Notic
阅读全文
Visual Studio 十个有用的小插件
摘要:无意中发现这么个地方:Ten Essential Tools,上面介绍了十个很好用的插件,以前用过几个,比如:TestDriven.NET,CodeKeep,于是使劲下了下来,但是还有两个找不到下载连接一个是PInvoke.NET 一个是VSMouseBindings,有那位朋友有或知道下载连接的提供一下,谢谢,我把下下来的打了个包,免得后来的朋友一个个找,请到这里下载 Vs10Add-Ins.part1.rarVs10Add-Ins.part2.rarVs10Add-Ins.part3.rar TestDriven.NETTest-driven development is the prac
阅读全文
使用 .NET 4.0 中的Lazy<T> 实现延迟初始化
摘要:延迟初始化就是将对象的初始化延迟到第一次使用该对象时。延迟初始化是我们在写程序时经常会遇到的情形,例如创建某一对象时需要花费很大的开销,而这一对象在系统的运行过程中不一定会用到,这时就可以使用延迟初始化,在第一次使用该对象时再对其进行初始化,使用延迟初始化可以提高程序的效率,使程序占用更少的内存。在 .NET 4.0 之前要实现延迟初始化,需要我们自己动手编写具体的实现方式(关于延迟初始化的实现方式,可以参看这个http://msdn.microsoft.com/en-us/vcsharp/bb870976.aspx .NET 4.0 的 Lazy<T> 的实现方式与此相似)。在
阅读全文
.NET 中的泛型
摘要:泛型是 .NET 2.0 中引入的一个新特性,从 .NET 2.0 发布到现在已经过去好多年的时间了,到现在很多公司在面试时都喜欢问诸如用过泛型吗、什么是泛型、怎么写泛型之类的问题。似乎泛型是什么高深莫测的绝学了,犹如辟邪剑法一样,一般人难以运用。其实虽然每个 .NET 程序员的具体工作内容不一样,但是对于 .NET 里的一些基本的东西的运用相差不会很大,我想对于学过C# 的刚毕业的学生也不至于没有用过泛型。下面我就简单说一下泛型。泛型将类型参数的概念引入了 .NET 中,类型参数使类和方法将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候。使用泛型可以最大限度地重用代码、保护
阅读全文
Extjs入门之动态加载树
摘要:EF4的修改跟删除最近做个一个EntityFramework的DEMO,刚开始做的时候在删除跟修改数据时采取的是根据ID查询到对应实体,然后再删除和更新实体,发现这样做多查询了一次数据库。尤其是做修改的时候,还得每个属性进行赋值修改,加大了代码量。 因此寻找另一条出路,思路大概是这样的:首先获取需要修改或者删除的对象,根据EntityKey判断上下文中是否存在,假如存在,则移除上下文中的对象。然后把获取到的对象附加到对象上下文中,再将上下文更新保存的数据库。1publicvoidUpdate(Studententity)2{3entity.EntityKey=Session.CreateEnt
阅读全文
Spring.net在.NET应用程序的标准配置文件中用一个自定义节点来配置容器实例
摘要:在VS2010中使用Spring.net开发应用程序,在新的framework 4.0运行时下,完全不能运行,因为framework4.0的代码安全模型被改变。Spring之前做的很多发射的工作,就不能通过framework 4.0的验证。具体如何解决暂时没有办法。但是vs2010可以提供2.0、3.0、3.5、4.0运行时,用户在创建工程的时候只需要选择3.5即可。因为spring在3.5中能完全跑起来。首先去spring.net官网下载最新版本的spring.net安装包。下载完毕后进行安装,安装好后,打开安装路径,一下是我安装的路径:我们找到bin文件夹下面的net文件夹下面的2.0文件
阅读全文
用asp.net MVC3 简单实现毕业设计 [转]
摘要:用asp.net MVC3 简单实现毕业设计一朋友要交毕业设计,叫我帮他搞个简单的图书管理系统,我反正晚上也没事情,就准备帮他捣鼓一个简单的。由于是毕业设计,因此准备采用在工作中很少使用到的技术来开发,也好给自己练练手,因此选用了Entityframework,spring.net ,asp.net MVC 等技术来开发。以下是我这个项目的工程结构:Common为公共类,主要存放与业务无关的公共类,也包括扩展方法也存放在此类库中。Domain为领域逻辑层,主要存放领域对象。DTO为数据传输对象层,主要用来传输数据对象,MVC中Controller到View或者View到Controller的数
阅读全文
改善C#程序的建议【转】
摘要:开发者总尝试对自己的代码有更多的控制。“让那个还在工作的线程马上停止下来”就是诸多要求中的一种。然而事与愿违,这里面至少存在两个问题:第一个问题是:正如线程不能立即启动一样,线程也并不能说停就停。无论采用何种方式通知工作线程需要停止,工作线程都会忙完手头最紧要的活,然后在它觉得合适的时候退出。以最传统的Thread.Abort方法为例,如果线程当前正在执行的是一段非托管代码,那么CLR就不会抛出ThreadAbortException,只有当代码继续回到CLR中时,才会引发ThreadAbortException。当然,即便是在CLR环境中,ThreadAbortException也不会立即引
阅读全文
Entity Framework 4.1 【转】
摘要:原文名称:Entity Framework 4.1: Optimistic Concurrency(6)原文地址:http://vincentlauzon.wordpress.com/2011/04/17/entity-framework-4-1-optimistic-concurrency-6/看到Entity Framework 4.1 推荐英文教程,为了帮大家看起来方便一些,简单翻译一下。这是一个系列,共有 8 篇,这是第8 篇。Entity Framework 4.1 之一 : 基础Entity Framework 4.1 之二 : 覆盖默认的约定Entity Framework 4.
阅读全文
Jquery调用WCF经验分享
摘要:今天有时间,来总结一下最近项目中用的一些知识知,主要是Jquery调用WCF服务。本文讨论一下Jquery异步调用WCF服务的过程中需要注意的各种问题及经验分享。 我所使用的机器环境是:Windows7 VS2010 。 一、我们首先建好一个项目,在VS2010中,建立好一个Web项目,并添加一个“启用了Ajax的WCF服务”。 二、添加完成后,会自动打开刚才添加的文件,我们进行一些简的修改,便于一会客户端去调用,修改代码如下:View Code 三、客户端代码中如下:View Code以上是最基本的调用没有什么可说的. 下面,我们来进行一个稍微复杂点的例子演示,我们在实现的效果是:“客户端提
阅读全文
泛型委托 Predicate/Func/Action
摘要:Predicate 泛型委托表示定义一组条件并确定指定对象是否符合这些条件的方法。此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素。看看下面它的定义:// Summary: // Represents the method that defines a set of criteria and determines whether // the specified object meets those criteria. //// Parameters: // obj: // The object to compare against the criteria defi
阅读全文
菜单
摘要:相信大家做网页的时候都会用到菜单。最近在CSDN上答题的时候,问动态菜单的还是比较多。这次就整3个动态菜单给同学们玩玩。方便刚入门的小鸟速度掌握。 正所谓天下文章大家抄,抄来抄去有提高.去百度一个JS+CSS菜单。CSS菜单 效果还算一般。我们把它抄袭下来 以后留用. 先来看看HTML<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns=&qu
阅读全文
大家是怎么做Code Review的?[转转]
摘要:先说说我们公司现在的做法,一个团队被人为地分为两个阵营:Senior Developers和Junior Developers,比例差不多是1:1,Senior Developers就担负着对Junior Developers的代码进行Review的职责,每天Review一次,对有问题的代码写上comments,然后也check in到代码库中。这种comments有特殊格式(比如//\\CodeReview:blah blah),要求Junior Developers每天下班前一小时去代码库中找这种格式的comments,然后修复自己的有问题的代码,修复时删除Reviewer留下的Comme
阅读全文
步步为营 .NET 设计模式学习笔记系列总结
摘要:设计模式我从开篇到23种设计模式的讲解总共花了进两个月的时间,其间有很多读者给我提出了很好的建议,同时也指出了我的不足,对此我表示感谢,正是由于很多读者的支持我才能坚持的写到最后.在此表示我真诚的谢意.系列导航步步为营 .NET 设计模式学习笔记 一、开篇(设计模式之泡妞二十三招)步步为营 .NET 设计模式学习笔记 二、Abstract Factory(抽象工厂)步步为营 .NET 设计模式学习笔记 三、Strategy(策略模式)步步为营 .NET 设计模式学习笔记 四、Singleton(单例模式)步步为营 .NET 设计模式学习笔记 五、Prototype(原型模式)步步为营 .NET
阅读全文
步步为营 .NET 设计模式学习笔记 二十四、Factory Method(工厂方法模式)
摘要:概述在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。意图定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。结构图角色说明:抽象工厂(Creator)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。具体工厂(Concrete Creat
阅读全文
itextsharp.dll(4.0.8.0)完整示例PDF
摘要:private void button1_Click(object sender, EventArgs e) { //Document:(文档)生成pdf必备的一个对象,生成一个Document示例 Document document = new Document(PageSize.A4, 30, 30, 5, 5); //为该Document创建一个Writer实例: PdfWriter.GetInstance(document, new FileStream("Chap0101.pdf", FileMode.Create)); //打开当前Document docume
阅读全文
Socut.Data.dll 与AspNetPager.dll使用说明
摘要:Socut.Data.dll 与AspNetPager.dll使用说明及心得体会以前,我是做Java项目的,最近接了的个项目,客户要求使用.net来做,只有一个月的工期。为了能减少学习钻研时间,我选择了Socut.Data.dll做为数据库访问控件,AspNetPager.dll为分页控件。这样我在技术上的主要障外就基本解除了。下面我对该项目使用这2个控件的一些方法与心得体会。一、控件下载地址: 1、Socut.Data.dll:http://data.socut.com/2、AspNetPager.dll:http://www.webdiyer.com/AspNetPager/default
阅读全文
记录C#开发遇到的问题和应用经验
摘要:打造自己地图AxTOCContrl树形控件——XUTocControl(成功解决节点控件拖拽问题)摘要: 打造自己地图AxTOCContrl树形控件——XUTocControl,用于平板电脑,该控件成功解决节点控件拖拽问题阅读全文posted @2011-05-06 23:05无痕客 阅读(73) |评论 (0)编辑仿World Wind构造自己的C#版插件框架——WW插件机制精简改造摘要: 仿World Wind构造自己的插件框架,是基于WW插件机制的精简改造,“麻雀虽小,五脏俱全”! 希望帮助学习WorldWind插件框架的朋友们!阅读全文posted @2011-05-06 21:57无
阅读全文
开源技术
摘要:关注开源!Best Open Source Reporting Tools(转载)摘要: Best Open Source Reporting ToolsImpress your clients with professional reports using these excellent reporting tools.1. iReportiReport is the free, open source report designer for JasperReports, avail...阅读全文posted @2010-09-14 21:52无痕客 阅读(148) |评论 (0)编辑Mak
阅读全文
HttpApplication,HttpModule,HttpContext及Asp.Net页生命周期
摘要:IIS在接到一个新的http请求后,最终会调用asp.net_isapi.dll的ISAPI扩展(特指IIS6.0环境,iis7.0的应用程序池默认为集成方式,相对有所变化),然后传递到httpRuntime Pipe(http运行时管道),Asp.Net这时才开始运行(即HttpRunTime是Asp.Net真正的入口),HttpRunTime会为每个asp.net应用自动创建一个HttpApplication的实例,而该实例中又包含以下属性:注1Application -->相当于传统意义上asp时代的application对象,通常用于定义一个asp.net应用的全局变量Conte
阅读全文
步步为营 .NET 设计模式学习笔记 二十三、Interpreter(解释器模式)
摘要:概述在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。意图 给定一个语言,定义它的文法的一种表示,并定义一种解释器,这个解释器使用该表示来解释语言中的句子。结构图角色说明:AbstractExpression: - 声明一个抽象的Interpret方法,抽象语法树中所有的节点都必须实现该抽象方法。TerminalExpression:- 实现和语法中末端符号相关的Interpret方法。- 在每个句子的末
阅读全文
TFS 2010 基础配置手动升级到高级配置 安装实践
摘要:我公司目前就几个人的小团队,本来打算就用TFS的基本配置实现源代码管理、项目跟踪、工作项管理、BUG收集来进行团队开发足矣,但是当参加了“成都软件技术沙龙 - 开启基于Scrum的敏捷开发全新征程讲座”后,对TFS的高级配置,启用sharepoint团队站点、报表服务、生成服务更着迷了。因为服务器刚配置好,老项目也配置好,不愿意再去修改,所以不愿意重新配置TFS或重新安装,so,有了下面的实践:一、单独下载并安装windows sharepoint services 3.0我公司服务器的操作系统是win2008 r2,所以Windows SharePoint Services 3.0 x64
阅读全文
.net简谈分层架构思想
摘要:.net简谈观察者模式 2011-05-04 16:50 by wangqingpei, 498 visits, 网摘, 收藏, 编辑摘要:观察者模式想必搞程序开发的都听说过,今天我也来简单的总结一下本人在程序开发过程中是怎么使用观察者模式的;希望给大家带来点新的想法,如果哪位高手看到了也不要嘲笑啊;呵呵,最求技术的人,始终都是为了技术而学技术,目的只有一个一起最求技术的最高境界;观察者模式是设计模式里经常被用到的一种,什么叫观察者模式,字面理解就是一个或多个对象观察某个对象这种观察是有目的地,当被观察者发生某种事件时能准确的反馈到外界,通知大家你发生了什么;尤其是在今天面向对象编程的不断成熟
阅读全文
重写的GridView,支持CheckBox选择,DataTable和List排序,SQL分页等
摘要:重新封装了一个 GridView,支持如下功能:1. CheckBox选择记录,指定CheckBox的位置2. 支持List,DataSet,Datatable 排序3. 排序时在Header部分出现图标4. 封装了PageIndexChanged 和DataBind,不用每页都写。5. 支持SQL分页和ApsNetPager等分页控件。注: 没有加入很多的功能,因为本身需要的就是一个轻量级的GridView,产生近可能少的代码。另:选择高亮功能是用JQuery实现的,因此使用时需要JQuery的运行库。代码1 : 辅助对象,实现Sort排序。(其实这部分功能可以用LINQ来做,会简单很多,当
阅读全文
ASP.NET MVC 开发
摘要:本文提供了一些代码设计准则,目标是帮助ASP.NET MVC 开发人员创建可靠的应用程序,当然,你可根据实际应用程序选择合适的标准。本文由EntLib.com 小组翻译,欢迎分享和交流ASP.NET MVC 项目开发设计思路。Model建议 - Model RecommendationsModel是定义业务领域相关的对象,应该包含业务逻辑(对象如何动作和关联),验证逻辑(验证对象的有效值),数据逻辑(数据对象如何持久化),和会话逻辑(跟踪用户状态)。创建独立的Model项目,在ASP.NET MVC 项目中引用Model程序集。将所有业务逻辑放置在Model中。如将所有业务逻辑放置在Model
阅读全文
步步为营 .NET 设计模式学习笔记 二十一、Visitor(访问者模式)
摘要:概述表示一个作用于某对象结构中的元素操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作,它把数据结构和作用于结构上的操作之间的耦合性解脱开,使的操作结合可以相对自由地演化。优点是增加新的操作很容易,因为增加一个新的操作就意味着增加一个新的访问者,访问者模式将有关的行为集中到一个访问对象中。意图 实现通过统一的接口访问不同类型元素的操作,并且通过这个接口可以增加新的操作而不改变元素的类。结构图角色说明:访问者角色(Visitor):为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色。这样访问者就可以通过该元素角色的特
阅读全文
步步为营 .NET 设计模式学习笔记 二十二、Memento(备望录模式)
摘要:http://www.cnblogs.com/guaiguai/archive/2011/05/02/2034512.htmlhttp://demo.tutorialzine.com/2011/03/better-check-boxes-jquery-css/概述在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象本身的封装性。意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态
阅读全文
ASP.NET MVC 动态设置模板
摘要:在页面中添加如下代码(Page_PreInit事件代码中动态设置模板,前提是在页面Action中将用户信息存到ViewData["USER"]了):view sourceprint?<script runat="server">//动态设置模板protectedvoidPage_PreInit(objectsender, EventArgs e){switch(ViewData.Eval("USER.roleid").ToString()){case"1":this.Page.MasterPageFil
阅读全文
表解锁的方法
摘要:[Sql Server]超时时间已到。在操作完成之前超时时间已过或服务器未响应。原因分析:1.如果用到了事务处理 在事务开始BeginTransaction()与事务结束transaction.Commit()中间用到了没有启动事务的过程,如其他查询等,会提示此错误。另外一种情况就是没有正确的使用事务导致表被锁定,此时也会引起超时。2.ADO.NET的使用引发的问题 connection未及时关闭也会引发超时的问题。另外就是Command命令执行超时,此时根据需要可以修改command.CommandTimeout的时间,默认时间为30秒。3.Web页面执行超时,如上传大批量的文件 需要修改配
阅读全文
FusionCharts Free
摘要:在上一篇文章中简单介绍了三款统计图控件,其中FusionCharts Free是我个人觉得很不错的一款。其实类似的支持XML的Flash统计图控件还有amCharts等。只是在使用FusionCharts Free的过程中发现了一些不足,比如饼状图不支持智能标签(SmartLabels),所以数据项很多的时候提示文字相互重叠,显得很乱;多系列的柱状图(Multi-series Column 3D/2D Chart )不支持横向滚动条等等。于是后来我换了与FusionCharts Free同版本号的FusionCharts 3.1Evaluation版(官网现在最新版是3.2>>)。
阅读全文
统计图
摘要:一、免费且强大的Flash统计图——FusionChartsFree官方网址:http://www.fusioncharts.com/free/效果图:使用感想:对.NET、JAVA、PHP等的开发都有对应的支持;能承受大数据量的统计数据,文档齐全,使用方便,唯一的缺憾是Y轴的中文提示无法显示(XML文件必须保存为带签名的UTF-8格式的,其他使用细节我会抽出时间更新上来);统计图类型齐全,分2D和3D。二、免费且相对强大的Flash统计图——Open Flash Chart官方网址:http://teethgrinder.co.uk/open-flash-chart/效果图:使用感想:对.N
阅读全文
XSLT入门
摘要:以XSL为开始XSL代表着可扩充样式表语言(EXtensible Stylesheet Language)。因为基于XML样式表语言的需要,万维网联盟(W3C)开始发展XSL。层叠式样式表(CSS)= HTML样式表HTML使用预定的标签,标签的含义比较容易理解。在HTML中,<table>元素定义了一个表格,浏览器知道如何去显示它。给HTML元素定义样式是比较容易的。通过使用CSS,告诉浏览器对特殊字体和颜色的元素进行显示,是非常容易的。XSL=XML样式表XML不使用预定的标签(我们可以使用任何我们自己喜欢的标签名字),这些标签的含义比较难以理解。<table>元素
阅读全文
再论抽象
摘要:我刚开始进博客园的第一篇文章是不是就是说抽象这个事的?时光荏苒啊.... 有段日子不上了,刚才在园子里看见这么篇文章,觉得有必要就我这些年的思想进展,重新讨论下这个问题。原文在这里:http://www.cnblogs.com/yuyijq/archive/2011/04/26/2028789.html,不长,一定要读一下好知道我这篇文章讨论的基础,我就不重复文章中的重构过程了。类似的例子几年前在博客园的评论上探讨过(好象是跟伍迷),不过现在重新再看这个问题,我个人是清晰了不少。我们先讨论 IsValid(三个String参数一个Int参数) 重构为 IsValid(User) 的情况,因为弄
阅读全文
在asp.net中使用自定义事件(带参数)
摘要:1.首先定义一个参数类public partial class SayEventArgs : EventArgs{ public String Username; public String Websiteurl;}2.定义一个委托public delegate void SayEventHandler(object sender,SayEventArgs e);3.定义一个事件public event SayEventHandler SayEvent;4.引发事件public void OnSayEvent(SayEventArgs e){ if (SayEvent != null) { S
阅读全文
发起一个开源项目合租财务管理 感兴趣的来
摘要:合租账务管理系统(ShareAccount)--项目说明 合租嘛,相信这方面大家遇到这类问题都不少,比如分摊房租,电费,买菜日常生活消费管理,打扫卫生等等很多方面,所以我打算发起一个在线的合租管理系统,后期可能会加入富客户端应用的在线抽签等东西使用技术VS2010+SQL2005,ADO.NET Entity Framework,ASP.NET MVC 版本控制主页 http://www.svnchina.com/project_detail.php?id=6973 SVN 地址: 需要SVNChina账户 https://www.svnchina.com/svn/share_account-
阅读全文
c#的ThreadPool使用笔记(二)
摘要:摘要:系列文章,从一个基本的代码说起,逐步探索 ThreadPool 的奥妙。在上次的基础上,我需要做以下的事情:1、要传递给线程的参数更加复杂;2、线程要处理的工作更加多样;3、在线程中我要改变主线程传入的参数,并告诉主程序。好的,第一个问题,因为 WaitCallback 委托的原型决定了参数只能有一个 ( Object state ),那没有办法,我们只能将多个参数封装到一个Object 中,也就是 class 中。第二个问题,要处理这个问题也很简单,就是再定义一个 WaitCallback 委托的对象,将它作为参数传递给ThreadPool.QueueUserWorkItem ()方法
阅读全文
c#的ThreadPool使用笔记(一)
摘要:摘要:系列文章,从一个基本的代码说起,逐步探索 ThreadPool 的奥妙。首先,看看线程池的样子:从上图看出,线程池维护1个至n个线程,操作系统从请求队列中提取请求分配个线程池中的适合线程处理。先写下如下的代码:usingSystem;usingSystem.Threading;publicclassThreadBase{publicstaticvoidMain(){System.Threading.WaitCallbackwaitCallback=newWaitCallback(MyThreadWork);ThreadPool.QueueUserWorkItem(waitCallback
阅读全文
Excel导入SQL server的例子
摘要:有人提问如下:这个是Excel的,比如是test.xls欠费年份 欠费开始月份 欠费结束月份 应缴金额(月租) 2001 9 12 94.4 2008 5 12 88.8 2010 8 12 90.4___________________________________________这个是表:比如是a表a(pk,int,not null) //主键,自动增长b(varchar(19),null) //费款所属期c(decimal(10,2),null) //应缴金额___________________________________________现在我要将test.xls中的数据导入到a
阅读全文
步步为营 .NET 设计模式学习笔记 二十、Mediator(中介者模式)
摘要:概述在软件构建过程中,经常会出现多个对象互相关联交互的情况, 对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。 在这种情况下,我们可使用一个“中介对象”来管理对象间的关联关系,避免相互交互的对象之间的紧耦合引用关系,从而更好地抵御变化。 意图 用一个中介对象来封装一系列的对象交互。 中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。结构图角色说明:Mediator:抽象调停者角色,它定义出同事对象到调停者对象得接口,这个角色一般由Java抽象类实现 ConcreteMediator:具体调停者模式,从抽象调
阅读全文
步步为营 .NET 设计模式学习笔记 十九、Chain of Responsibility(职责链模式)
摘要:概述在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显示指定,将必不可少地带来请求发送者与接受者的紧耦合。 如何使请求的发送者不需要指定具体的接受者?让请求的接受者自己在运行时决定来处理请求,从而使两者解耦。意图责任链模式是一种对象的行为模式【GOF95】。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。结构图抽象处理者(Handler)角色:定义出一
阅读全文
2011年微软全球Next大赛闭幕。一站式示例代码库等30个项目获Microsoft Next殊荣
摘要:由微软国际业务总裁吉恩-菲利普・卡托伊斯(Jean-Philippe Courtois) 组办的"2011年微软全球Next"四月正是闭幕。微软一站式示例代码库在内的30个创新性项目获Microsoft Next殊荣。微软"Be What’s Next"旨在帮助客户在不断变化的全球经济环境中实现增长。"微软全球Next"竞赛是为了嘉奖公司内部创新者和创新性项目。来自微软全球所有业务事业部和各部门的参赛者同场竞技,竞赛要求参赛者制作富有创新性和创意性的视频,展示如何帮助微软客户或合作伙伴“把握未来契机”。 微软一站式示例代码库 能在此次
阅读全文