2012年6月14日
摘要: 这两天主要在学习如何给图片添加水印,查找了一下相关的解决方案,其中有一个别人写好的水印dll,虽然能实现很多的功能,但很遗憾不能用于其他商业用途,没办法只能再找找别的办法,后面找到的这种方法比较简单,就是通过Graphics重新绘制bitmap的方法来绘制水印,当然,文字水印可能稍微要麻烦一点儿,需要设置字体相关的东东,比如字号、阴影、颜色啥的,但整体来看,思路基本是一样的。 至于具体的步骤说明,请查看源码上的注释即可,应该能够保证大家不至于太迷糊: 阅读全文
posted @ 2012-06-14 15:13 酸甜西瓜 阅读(3738) 评论(5) 推荐(0) 编辑
  2012年4月12日
摘要: 关于百度等搜索引擎对于是否带"www"前缀的域名的识别问题:即搜索引擎会将www.abc.com和abc.com识别为不同的两个域名,这样做的后果就是分散了对网站的关注度,不利于网站的宣传和推广。 阅读全文
posted @ 2012-04-12 11:11 酸甜西瓜 阅读(2387) 评论(6) 推荐(0) 编辑
  2011年8月31日
摘要: 这两天在写个小应用,主要是web上实现对各种琐事事情记录这方面的功能,倒是颇有一点儿小感受,正好也好久没有写点儿东东,总觉得有种小小的罪恶感~ 最大的一个感受就是要“简单”:其实,以前自己也看过很多这方面的文章和书籍,但那只是一种自己比较认同的观念,但却没有切身的体会,这次算是小小的体验了一把。一开始,自己虽然也是先大致勾画了应用的基本界面和功能,但在实现的过程中,以及和木瓜同学的交流中,发现其实很多东东都是“冗余的”,自己最应该关注的应该是“这东西到底能帮我干啥?”,于是,把那些自己认为有趣的,必备的,花哨的功能都做了个减法,结合自己以前的工作体会,往往是做加法的时候很容易,也很自然,但是做减法的时候往往要耗费N多脑细胞,所以一般情况下,是很少会涉及这方面的工作的,尤其是在任务的后期和维护阶段,加法是一种必然,已经很难在做减法了,因为成本甚巨~! 阅读全文
posted @ 2011-08-31 21:02 酸甜西瓜 阅读(2041) 评论(2) 推荐(1) 编辑
  2011年8月18日
摘要: 事件提供了一种标准的机制来通知监听者。.NET的事件模式使用了事件语法来实现观察者模式。任意数量的客户对象都可以将自己的处理函数注册到事件上,然后处理这些事件。这些客户对象不需要再编译期就给出。时间也不必非要有订阅者才能正常工作。在C#中使用事件可以降低发送者和可能的通知接受者之间的耦合。发送者可以完全独立于接收者进行开发。事件是实现广播类型行为信息的标准方式。 阅读全文
posted @ 2011-08-18 14:35 酸甜西瓜 阅读(4041) 评论(8) 推荐(4) 编辑
  2011年8月16日
摘要: 简单描述下俺要废话的背景吧,这几天都在排查一个bug:silverlight客户端应用中的某个控件,会因为多次操作而导致浏览器内存飙升,至于飙升的速度嘛,差不多操作半个小时后,浏览器估计就累死了…… 阅读全文
posted @ 2011-08-16 10:52 酸甜西瓜 阅读(1712) 评论(4) 推荐(1) 编辑
  2011年8月15日
摘要: 1. 委托为我们提供了类型安全的回调定义。虽然大多数常见的委托应用都和事件有关,但这并不是C#委托应用的全部场合。当类之间有通信的需要,并且我们期望一种比接口所提供的更为松散的耦合机制时,委托便是最佳的选择。委托允许我们在运行时配置目标并通知多个客户对象。 阅读全文
posted @ 2011-08-15 17:02 酸甜西瓜 阅读(443) 评论(0) 推荐(0) 编辑
  2011年8月12日
摘要: 1.基类描述并实现了一组相关类型间共用的行为。接口则定义了一组具有原子性的功能,供其他不相关的具体类型来实现。二者均有其用武之地,但用处各有不同。接口是一种按契约设计的方式:一个实现了某个接口的类型,必须提供接口中约定的方法实现。抽象基类则为一组相关的类型提供了一个共用的抽象。使用类层次来定... 阅读全文
posted @ 2011-08-12 16:23 酸甜西瓜 阅读(353) 评论(0) 推荐(0) 编辑
  2011年8月10日
摘要: 1. 并不是所有人都要看到所有的事情,你的每个类型也不都需要是公有的。在保证类型可以完成其工作的前提下,你应该尽可能地给类型分配最小的可见性。类型的可见性一般都没有你预料中的那么高。内部或似有的类也能实现公有的接口。所有的使用者都能访问到私有类型中公有接口定义的功能。 阅读全文
posted @ 2011-08-10 17:47 酸甜西瓜 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 经常会遇到一些需要保证常量值不能被外界修改的情况,当然,我们可以通过使用private set;的方式来保证内部成员属性不会被外界修改,但是,如果遇到了多线程的情况,可能还是保证不了常量内部数据值的一致性,下面把常用的三种常量定义方式罗列一下,且越往后的方式越使得常量的原子性更强: 阅读全文
posted @ 2011-08-10 10:17 酸甜西瓜 阅读(2104) 评论(12) 推荐(0) 编辑
  2011年7月1日
摘要: 不知道别的公司啥情况,就自己带过的3家公司来说,基本都存在一种普遍的“赶工期”的现象,之所以说是普遍现象,这也有一些朋友的亲身经历,似乎这就是一种IT行业的特色,毕竟随着互联网化的长足发展,对产品的更新速度是一个空前的挑战!时间就是利润啊,这个道理想必大家都懂,这里就多说了。暂时不考虑这些外部因素的影响,但从产品研发周期上来讲,我们大家在疲于奔命的无休止的为了产品上线,而不断地以铲地皮的速度累积功能的同时,我们也在为我们产品的未来埋下N多的“定时炸弹”! 阅读全文
posted @ 2011-07-01 23:48 酸甜西瓜 阅读(3570) 评论(19) 推荐(10) 编辑