自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

oec2003的学习专栏

临渊羡鱼,不如退而结网

  • 博客(139)
  • 资源 (17)
  • 收藏
  • 关注

原创 微服务:事务管理

作者:oec2003公众号:不止dotNET几乎所有的信息管理系统都会涉及到事务,事务的目的是为了保证数据的一致性,这里说的一致性是数据库状态的一致性。说到数据库状态的一致性,相信大家都会想到 ACID :原子性(Atomic):在一个事件的多个数据库操作中,要么同时成功,要么同时失败,例如:转账业务;隔离性(Isolation):不同的业务之间处理数据相互独立,互不影响持久性(Durability):正常提交的数据能够被持久化,不丢失数据,比如 mysql 天然就能持久化,redis 、 r

2022-08-01 08:10:22 1297 1

原创 读《认知觉醒》

作者:oec2003公众号:不止dotNET最近发的几篇文章是跟个人成长和工具相关,突然想起几个月前读的《认知觉醒》,这本书从内在和外在两个大的维度让我们在个人精进的道路上可以少走弯路。后疫情时代,公司的活动少了,家庭的活动也少了,19 年后,没有自驾出过远门,每天家和公司两点一线,一天、一周、一个月过去,大脑没什么记忆点。日子像掉进了 for 循环一样,不断重复着,人就很容易产生疲态。这本书可以给我们一些指引,让我们实际去做一些事情,丰富我们的生活。作者 36 岁才开始探索,从混沌到警醒,从迷茫

2022-07-04 08:38:33 132

原创 技术人如何打造个人品牌?

对技术人来讲,个人品牌非常重要,个人品牌的建立是自我营销的一种方式,也是提升个人价值的一种方式。那什么是品牌呢?一篇文章、一个视频火了,这个不算是品牌,如果提及某个领域,大家能想到你,这就是品牌了。建立个人品牌的方式有很多种,比如:写博客、参加技术大会的演讲、出书、做公众号、视频号等,需要持续地产生有价值的内容,把自己推销出去。在这些方式中,写博客是相对容易,门槛最低的。我很早就开始写博客,但当时没有个人品牌的概念和意识,只是觉得技术人对知识进行分享总是没错的。所以在个人品牌打造上我是比较迟钝,也比较

2022-06-14 08:37:32 141

原创 读《有效需求分析》

最近在一个技术群里看到张逸大佬强力推荐一本关于需求分析的书《有效需求分析》,于是在 Kindle 上下单了,读完后有一种相见恨晚的感觉。本书特点从书中的一些案例可以看出,作者擅长 ToB 软件的需求分析,如果您是从事的 ToB 软件的相关工作,那阅读本书时会有更多的共鸣。书中有大量的案例,阅读起来不仅不枯燥,反倒觉得挺有意思,特别是一些日常生活中例子,能引发我们更多的思考。每一个章节都有能落地的产物输出,所有的产物整合在一起就是完整的需求文档,可以让你不仅知道一些理论,还知道怎么落地。我们常见的问

2021-04-19 20:20:02 548

原创 祝大家新年快乐,我的博客搬家了,欢迎大家访问(http://blog.fwhyy.com)

<br /><br />首先祝大家新年快乐,在2011年里能够心情开心,事事顺心。<br /><br /><br />最近用wordpress搭建了一个个人博客,以前分别在博客园、csdn、新浪发表的博文已经选择性的搬到了新的博客中。<br /><br /><br />地址:http://blog.fwhyy.com<br /><br /><br />欢迎大家访问! 谢谢!<br /> 

2011-01-01 12:03:00 2248 2

原创 Net4.0---Web部署工具

VS2008的Web部署和VS2010的Web部署<br />VS2010的Web部署工具相较于以前的版本做了很大的改进,下面先来看看VS2010和VS2008的Web部署工具的图片:<br />VS2008<br /> <br />在VS2008种首先是弹出Publish Web对话框,点击选择路径按钮后弹出下图的对话框<br /> <br />在这个对话框中可以选择任意一种的发布方式。<br />在VS2010中做了改进,将多个步骤封装在了一起,也称之为“一键部署”,让部署变得更加容易。如下图:<br

2010-06-03 17:10:00 3081 1

原创 SqlServer2008修改表时出现“save changes is not permitted…”解决方法

<br />最近使用SqlServer2008,发现在修改完表字段名或是类型后点击保存时会弹出一个对话框,对话框内容大致如下<br />Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can't be re-created or en

2010-06-03 10:26:00 10567

原创 Net4.0---VS2010新特性

VS2010在用户体验上有了很大提升,可以让我们更方便和快捷地来进行编码工作。早在VS2010Beta版的时候,我曾写过一篇文章介绍VS2010的一些新特性,此文算是对那篇文章的补充吧。1 方便地删除Recent Projects如果用VS2010打开过项目,那么在启动VS2010后,在Start Page页面的Recent Projects列表中会有记录,之前的VS版本中如果想删除Rec

2010-05-27 13:34:00 1431

原创 Net4.0---Framwork新增特性

1 BigIntegerBigInteger是Net4.0种System.Numerics命名空间下的一个新类,表示任意大小的带符号整数。像以前版本中的Int32,int64等这些都有MinValue和MaxValue属性,也就是说有大小的限制,而BigInteger没有大小的限制,所以理论上来说大数字足够大时可能会出现OutOfMemoryException异常。以一个例子来看看BigI

2010-05-26 15:37:00 965

原创 使用LoadRunner测试WMS

LoadRunner是一款非常强大的测试工具,本文为笔者在对LoadRunner有了初步了解后对WMS的压力测试过程,因为接触时间比较短,不对之处欢迎大家指出。由于Licence的原因,对WMS的测试只支持最多100个虚拟用户。下面就开始测试了。 1 要有一个可用的WMS的地址,可以在本机的流媒体服务中创建,也可以使用远程的。 2 打开LoadRunner8.1,并运行窗口中点击Create/

2010-05-21 09:37:00 1072

原创 WMS中添加默认发布点

当我们在服务器中安装了WMS后会自动创建一个默认的点播发布点,对应的目录为C:/WMPub/WMRoot,当然我们也可以根据需要更改。有这个默认发布点,就可以通过mms://ServerName/MediaName  这种方式来访问C:/WMPub/WMRoot目录中的音视频文件。如果一不小心将默认的发布点删除了,之后又想重新添加默认发布点,我们可以像下面这样做。1 创建一个点播发布点,名

2010-05-19 15:26:00 901

原创 Win2008计算机不能添加到域的解决方法

最近接触了一点win2008活动目录,所谓万事开头难,本来很简单的事情在刚刚接触时就很费劲。在远程的一台机子上成功安装了AD后,想将本机添加到域中,试了很多次都不行,出现下面的错误: 查了很久的msdn文档,说的都不是很清楚,也许是我对dns的理解不够深入,最后得知原来是dns的指向问题。假如安装了AD的机子的IP为192.168.1.50,就将需要添加到域中的机子的dns设置为192

2010-04-28 15:48:00 3117

原创 Win2008远程桌面安装AD后的登录问题解决

问题本机操作系统为Win2008 ,远程连接的两台机子A和B的的系统也都为Win2008。先远程连接B,然后在B中远程连接A,在A上安装了AD,安装完要求重启A,A重启后再远程连接A,输入正确的密码不能登录了 解决方法其实很简单,将B添加到域中,然后重启B就可以了

2010-04-28 15:47:00 2353

原创 使用Expression Encoder 3发布媒体文件到WebDAV

使用环境Windows Server 2008  IIS7.0  Microsoft Expression Encoder3 准备在IIS7.0中没有自带WebDAV,可以通过下面的链接进行下载安装,后两个为补丁。Microsoft WebDAV Extension for IIS 7.0 (x86)Microsoft WebDAV Extension for IIS

2010-04-20 17:27:00 1564

原创 HTTP 错误 500.19 - Internal Server Error 错误解决方法

刚在本机部署了一个WebService测试,浏览的时候出现了“HTTP 错误 500.19 - Internal Server Error ”错误,如下图: 经过检查发现是由于先安装vs2008后安装iis的缘故,只需重新注册下AspNet就可以了,具体步骤如下1 打开运行,输入cmd进入到命令提示符窗口。2 进入到C:/WINDOWS/Microsoft.NET/Framewor

2010-04-20 17:24:00 52371 7

原创 AspNet控件开发(1)---入门介绍

AspNet为我们提供了很多的控件,尽管如此,很多时候我们还是会感觉这些控件不够用,想根据自己的需求去定制一些控件,比如想在DropDownList控件中实现可以输入,AspNet并没有为我们提供这样的控件,这时就需要我们去编写自定义控件来满足需要。 本系列文章打算对AspNet控件开发做个入门级介绍,如果想了解更详细和深入可以参考《深入解析ASP.NET 2.0控件开发》和《纵向切入ASP.NE

2010-02-10 09:06:00 1024

原创 设计模式笔记(25)---总结

断断续续经历了几个月的时间将WebCast的设计模式讲座重新完整听了一遍,并做了笔记,才有了这个设计模式笔记系列,本系列的文章大部分只是给出了基本代码的实现,而并没有去衍生其他的一些例子,笔者认为通过基本的代码实现就能够了解到模式的应用场景,弄出些花哨的例子反倒会让人眼花缭乱,可能并达不到预期的效果,毕竟在实际的应用中我们不是去套用模式。本文作为该系列的最后一篇,将对设计模式做个总结。首先看下

2010-02-04 08:38:00 723 4

原创 设计模式笔记(24)---访问者模式(行为型)

Gof定义表示一个作用于某对象结构中的各元素的操作。它可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。动机在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的更改,将会给子类带来很繁重的变更负担,甚至破坏原有设计。如何在不更改类层次结构的前提下,在运行时根据需要透明地为类层次结构上的各个类动态添加新的操作,从而避免上述问题

2010-02-03 08:48:00 772

原创 SqlServer数据库的语句及一些操作整理

临近年终,在工作之余对工作和学习中遇到的问题以及常用的一些知识点做了些整理,以备后用。本文涉及的内容为数据库。1 对于主键设置了Identity的表,在删除表中数据后再往表中插入数据,Identity列不是从1起始了,如果想删除数据后Indentity列仍从1起始,可以用下面代码来删除数据。truncate table tablenameDBCC CHECKIDENT(tablen

2010-02-02 17:39:00 824 2

原创 设计模式笔记(23)---策略者模式(行为型)

Gof定义定义一系列算法,把它们一个个封装起来,并且使它们可互相替换。该模式使得算法可独立于使用它的客 户而变化。动机在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?看下面的策略者模式的结构图和基

2010-02-01 08:52:00 830

原创 设计模式笔记(22)---状态模式(行为型)

Gof定义允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。动机在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合?看下面状态模式的结构图和代码。状态模式结构图: 日常生

2010-01-29 08:58:00 752

原创 设计模式笔记(21)---备忘录模式(行为型)

Gof定义在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。动机在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象本身的封装性

2010-01-28 09:13:00 731

原创 设计模式笔记(20)---职责链模式(行为型)

Gof定义使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。动机在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显式指定,将必不可少地带来请求发送者与接受者的紧耦合。如何使请求的发送者不需要指定具体的接受者?让请求的接受者自己在运行时决定来处理请求,从而使

2010-01-27 08:46:00 621

原创 设计模式笔记(19)---观察者模式(行为型)

Gof定义定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通 知并自动更新动机在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。

2010-01-26 08:42:00 731

原创 设计模式笔记(18)---迭代器模式(行为型)

Gof定义提供一种方法顺序访问一个聚合对象中的各个元素, 而又不暴露该对象的内部表示。动机在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“同一种算法在多种集合对象上进行操作”提供了可能。使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象”提

2010-01-25 08:44:00 587

原创 Lable和Literal控件的使用和区别

Lable和Literal这两个控件是我们非常熟悉的两个控件,都是用作内容呈现用的,但他们之间也有不同之处,分别应用于不同的地方。Lable控件会将内容呈现在html标签span中,即Lable控件的Text属性的值会包含在标签中。而Literal控件生成的代码则比较干净,它的Text属性的值将直接显示在页面中,看下面两段代码:Lable:asp:Label ID="lblUserNa

2010-01-25 08:43:00 865

原创 设计模式笔记(17)---中介者模式(行为型)

Gof定义用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。动机在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。在这种情况下,我们可使用一个“中介对象”来管理对象间的关联关系,避免相互交互的对象之间的紧耦合

2010-01-21 14:07:00 834

原创 设计模式笔记(16)---解释器模式(行为型)

Gof定义给定一个语言,定义它的文法的一种表示,并定义一种解释器,这个解释器使用该表示来解释语言中的句 子。动机在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。下面看下解释器模式的结构图

2010-01-20 09:26:00 660 2

原创 JQuery上传插件Uploadify使用详解

Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中的使用,您也可以点击下面的链接进行演示或下载。官方下载 官方文档 官方演示 首先按下面的步骤来实现一个简单的上传功能。1 创建Web项目,命名为JQueryUploadDemo,从官网上下载最新的版本解压后添加

2010-01-06 10:51:00 8569 22

原创 设计模式笔记(15)---命令模式(行为型)

Gof定义将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。动机在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合——比如需 要对行为进行“记录、撤销/重做(undo/redo)、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一

2010-01-04 09:00:00 698

原创 关于多线程的一个例子(UI实时显示)

在开发Window应用程序的时候,经常需要在界面上显示出已经执行到什么步骤了,拿一个简单例子来说,创建一个Winform程序,在窗体上访一个Button和一个Label,点击Button时做100次循环,在Label上实时显示当前循环的次数。一种简单的做法就是使用Application.DoEvents,代码如下:private void btnTest_Click(object send

2009-12-21 08:59:00 971

原创 设计模式笔记(14)---模板方法模式(行为型)

Gof定义定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个 算法的结构即可重定义该算法的某些特定步骤。动机在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。如何在确定稳定操作结构的前提下,来灵活应对各个子步骤

2009-12-14 10:15:00 832

原创 在JS方法中返回多个值的三种方法

在使用JS编程中,有时需要在一个方法返回两个个或两个以上的数据,用下面的几种方法都可以实现:1 使用数组的方式,如下:html>head> title>JS函数返回多个值--oec2003title>head>body> input type="button" onclick="getNames()" value="test" /> scr

2009-12-13 09:31:00 7907 2

原创 My97日历控件常用功能记录

My97相信大家都不陌生,应该是我所见过的最强大的一个日历控件了,最近的项目中也比较多地用到了此控件,而且项目中经常会有不同时间范围的需求,在此列出一些比较常用的日期范围格式的设置,尽管在My97的官方文档中有很详细的介绍,正是因为很详细所以查找起来不是很方便。1 可以选择任何日期 input id="txtDate" class="Wdate" type="text" onfoc

2009-12-12 13:55:00 3561 3

原创 设计模式笔记(13)---代理模式(结构型)

Gof定义为其他对象提供一种代理以控制对这个对象的访问。动机在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者、或者系统结构带来很多麻烦。如何在不失去透明操作对象的同时来管理/控制这些对象特有的复杂性?增加一层间接层是软件开发中常见的解决方式。看下结构图: Subject:该类中定义了一些Rea

2009-12-12 13:53:00 683

原创 设计模式笔记(12)---享元模式(结构型)

Gof定义运用共享技术有效地支持大量细粒度的对象。动机采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向对象的方式来进行操作?这需要用到享元模式,不过应用享元模式是需要进行评估的,也就是说在当前情况下是否会对系统造成性能上的影响,如果会那么就是用,下

2009-12-09 15:26:00 622

原创 设计模式笔记(11)---外观模式(结构型)

Gof定义为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。先来看个小例子,假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各子系统构成。就会有下面这些类的产生public class Wheel{ }public class Engine{ }pub

2009-12-09 08:45:00 615

原创 设计模式笔记(10)---装饰模式(结构型)

Gof定义动态地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活。首先来看一个小例子,假如我们需要给游戏开发一种坦克,除了各种不同型号的坦克外,还希望在不同的场合来给坦克增加以下的一种或多种功能:比如红外线夜视功能、水陆两栖功能、GPS定位功能等。通常做法如下:/// /// 抽象坦克/// public abstract clas

2009-12-08 13:47:00 542

原创 设计模式笔记(9)---组合模式(结构型)

Gof定义将对象组合成树形结构以表示“部分--整体”的层次结构。Composite使得用户对单个对象和组合对象使用具有一致性。在面向对象系统中,我们经常会遇到一类具有”容器“特征的对象---即他们在充当对象的同时,又是其他对象的容器。比如在一些管理系统中就会出现总公司下面有很多的分公司,分公司下面有很多的部门,每个部门下又有很多的员工,像分公司和部门就是既充当了“对象”的角色也充当了“容器

2009-12-07 14:56:00 568

原创 设计模式笔记(8)---桥接模式(结构型)

Gof定义将抽象部分与实现部分分离,使他们都可以独立地变化。先来看一个简单的例子,假设我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上的功能都一样,有同样的类型,有同样的功能需求变化,而这些游戏中的坦克有多种不同的型号:T50 T60等。根据面向对象的思想,我们可以很容易设计一个坦克(Tank)的抽象类,然后不同的型号都继承抽象类,并且PC和手机上的图形绘制,操作等都是不相

2009-12-04 12:55:00 598

李建忠设计模式视频笔记.pdf

设置模式系列文章是09年听webcast中李建忠讲的设计模式系列视频所做的笔记,也算是对视频内容的翻译。

2019-06-07

patch_KB2781514

电脑已有vs2012,再安装vs2013之后,会出现在vs2012中打开文件时报错,改补丁可以解决此问题

2015-01-23

Pro Git 中文版.pdf

Pro git 中文版 详细介绍git的使用

2012-02-06

MongoDB 0.9.7.2 版

很适用的一款Mongodb管理工具,关键是他是免费的,1.0版以后就开始收费了,对于初学Mongodb的人来说完全够用。

2011-09-12

广告效果代码 (轮播广告 悬浮)

非常全的页面广告源码 , 广告轮播.......

2009-07-30

c#多线程资料pdf

很全的c#多线程资料 , 有很详细的示例 ,可以对c#多线程有全面了解

2009-07-24

QQ IP数据库 (Access版本)

收集了包括中国电信、中国网通、长城宽带、网通宽带、聚友宽带等 ISP 的最新准确 IP 地址数据。包括最全的网吧数据。

2009-05-27

QQ IP数据库 Access版 (更新到2009-5-25号)

收集了包括中国电信、中国网通、长城宽带、网通宽带、聚友宽带等 ISP 的最新准确 IP 地址数据。包括最全的网吧数据

2009-05-27

Programming WCF Service

Programming WCF Service

2008-03-10

SYBASE PowerDesigner 12 入门

SYBASE PowerDesigner 12 入门

2007-11-30

SYBASE PowerDesigner 12 汉化补丁

SYBASE PowerDesigner 12 汉化补丁

2007-11-30

wpf入門白皮书

wpf入門白皮书,暈居然还有十字的限制

2007-11-29

jquery使用技巧

Wilensky总结发布在博客园社区<br>很实用

2007-11-20

asp.net2.0URL重写

UrlReWrite(Url重写或伪静态)完美示例源码 UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题

2007-11-16

15天漫游jQuery中译本

15天漫游jQuery中译本,不是很完整,但是也是学习jquery 不可或缺的东东

2007-11-15

jquery中文初級入門教程

一個很好的jquery的入門教程

2007-11-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除