1、对于公用的类型定义,要单独抽取出来,放到单独的DLL中。
2、通过大量定义interface接口,来提高模块化程度,不同功能之间通过实现接口来面向接口编程。
3、如果项目中存在很多非常相似,但是又存在一些差异的类,最好的办法是进一步抽象,得到它们的共同基类,将相同点放到基类中实现,然后通过派生类实现差异。使用方根据实际情况决定自己要使用的类。
4、项目中,经常会遇到一些全局范围内有且只有一个实例的类,该怎么办呢?此时,请一定要想起单例模式。定义一个类,该类只开放一个静态方法GetInstance,在该方法中,要么直接返回已经创建过的实例,要么创建一个新的返回其引用。
5、对于异常捕获来说,并非将全部代码都放到try-catch中就是好的做法,好的做法是只将必要的代码,以及可能会出现异常的代码放到里面,同时为了避免未捕获的异常导致程序意外退出,需要在Program中添加捕获未处理异常的代码,此时还应该区分UI线程和工作者线程都可能产生未处理的异常,程序应该同时捕获并处理它们(记录到日志)。
6、对于使用this.invoke转发工作者线程处理结果,或者处理的中间状态信息的地方,不需要加try-catch。如果要加,只需要加到invoke之后即可。
7、有时候,界面上可能存在设计时和运行时状态不一样,请想起来DesignMode属性。
8、基本上,每个项目都会涉及系统的一些运行参数的序列化问题。常见的两种处理方案:
       1、使用ini来保存。
       2、可以写个类,使用静态属性来保存所有设置,然后提供save方法,load方法,reload方法,然后将值都序列化到二进制文件中去。

C#做项目时的一些经验分享的更多相关文章

  1. 做一个MVC4的项目时留下的经验--增加IPrange

    /* CR#1796870 modify by v-yangwu, add a js file to control the page controls. */ $(document).ready(f ...

  2. 今天做项目时,用到了好多关于js的知识点,有的忘记了,然后晚上回来自己整理一番,明天继续整理。哈哈,分享给大家。

    javascript 数据类型 typeof (直接量/变量)-------判断数据类型 简单数据类型(栈,空间小,速度快) string字符串 用引号引起来的文本 number数字 所有数字 NaN ...

  3. 微信小程序豆瓣电影项目的改造过程经验分享

    在学习微信小程序开发过程中,一部分的难点是前端逻辑的处理,也就是对前端JS的代码编辑:一部分的难点是前端界面的设计展示:本篇随笔基于一个豆瓣电影接口的小程序开源项目进行重新调整,把其中遇到的相关难点和 ...

  4. SqlDbHelper备份,做项目时方便应用(目前不太全,把自己项目中的逐渐转移过来)

    ****************************************** 这是官网新闻左侧类别那部分用到的 **************************************** ...

  5. 初学vue 在做项目时遇到的问题与解决办法(使用element组件)(二)

    表格每行里都有按钮 <el-table-column prop="option" label="操作" align="center" ...

  6. 常用sql,在做项目时用mysqlWorkBeach里面自动生成的

    -- 修改表中的字段的长度ALTER TABLE `sfkbbs`.`sfk_father_module` CHANGE ) NULL DEFAULT NULL COMMENT '父板块名字' ; 在 ...

  7. 项目优化经验分享(八)TeamLeader经验总结

    引言 通过前面的七篇博客.我把自己在项目优化过程的经验进行了分享,今天这篇博客,作为一个总结,就来讲讲作为一个TeamLeader,在项目管理中遇到的问题和解决经验! 正文 问题一:团队之间怎么沟通? ...

  8. 项目经验分享[转自min.jiang]

        最近三个月,我非常荣幸的做为TeamLeader带领几个小组成员做了一个国外项目,这里想为大家分享一些小经验,尽管我佣有六年多的项目经验,但我一直的方向是架构师.大家知道架构师一般情况是偏向技 ...

  9. Georgia Tech Online Master of Science in Computer Science 项目经验分享

    Georgia Tech Online Master of Science in Computer Science 项目经验分享 Posted on 2014/04/22 项目关键词:工科名校,计算机 ...

随机推荐

  1. bzoj4373:算数天才与等差数列

    算术天才⑨非常喜欢和等差数列玩耍. 有一天,他给了你一个长度为n的序列,其中第i个数为a[i]. 他想考考你,每次他会给出询问l,r,k,问区间[l,r]内的数从小到大排序后能否形成公差为k的等差数列 ...

  2. 2017-10-3 清北刷题冲刺班a.m

    P99zhx a [问题描述]你是能看到第一题的 friends 呢.——hja怎么快速记单词呢?也许把单词分类再记单词是个不错的选择.何大爷给出了一种分单词的方法,何大爷认为两个单词是同一类的当这两 ...

  3. PJzhang:英国通信总部GCHQ开源产品-网络瑞士军刀CyberChef

    猫宁!!! 参考链接:https://www.4hou.com/info/news/981.html 这个产品免费开源易用,如果称之为网络瑞士军刀,没什么异议. github地址:https://gi ...

  4. gitlab web客户端的使用

    3.2.1 新建项目 3.2.2 初始化项目(git init) 正如上图显示的,gitlab会给我们相应的命令供我们使用(需要安装客户端).初始化一个项目可以是一个新建的空项目,也可以是一个已经存在 ...

  5. thinkphp5.1使用支付宝接口(沙箱环境)

    接口文件以及沙箱的测试账号可以去支付宝开发中心获取,下面给出一个简单地例子 我新建了一个控制器Pay用来专门做支付 <?phpnamespace app\index\controller; us ...

  6. IPv6邻居发现协议

    IPv6邻居发现协议 邻居发现协议NDP 邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议.邻居发现协议替代了IPv4的ARP(Add ...

  7. 平衡树合集(Treap,Splay,替罪羊,FHQ Treap)

    今天翻了翻其他大佬的博客,发现自己有些...颓废... 有必要洗心革面,好好学习 序:正常的BST有可能退化,成为链,大大降低效率,所以有很多方法来保持左右size的平衡,本文将简单介绍Treap,S ...

  8. DB2的常用数据类型

    今天在db2中查询数据时出现错误: Overflow occurred during numeric data type conversion:SQLCODE=-413, SQLSTATE=22003 ...

  9. jquery——尺寸

    1. 获取和设置元素的尺寸 2. 获取元素相对页面的绝对位置:offset() 这种方式增加的盒子不会对之前的结构产生影响 demo: <!DOCTYPE html> <html l ...

  10. Java面向对象_继承——基本概念以及管理化妆品实例分析

    一.继承的基本概念: 1.继承是面向对象三大特征之一 2.被继承的类成为父类(超类),继承父类的类成为子类(派生类) 3.继承是指一个对象直接使用另一个对象的属性和方法 4.通过继承可以实现代码重用 ...