利用C#编写客户端程序总结

来源:互联网 发布:北京 java培训完 工资 编辑:程序博客网 时间:2024/06/01 01:33
 

利用 C#编写上位机程序内容提要


1序言

2. 总体规划架构
模式1.dock模式还是MDI模式

C#语言技巧与面向对象的三特点:封装,多态,继承
3.1C#语言基本技巧
http://www.cnblogs.com/anytao/archive/2007/09/14/must_net_catalog.html
3.1.1C#语言的基本题目

3.1.2 net与C#的区别与联系

 

3.2 面向对象的三特点
3.2.1封装
3.2.2多态
3.2.3继承


4.多线程,委托与中断
4.1 多线程
4.1.1 线程与进程
线程的优先级问题

线程同步问题。

线程锁问题。
读锁
写锁
读写锁
死锁
//死锁的核心是解锁的时候锁上不止一把锁。

 


4.1.2 线程池
线程池是托管的。

 

4.2 委托
界面委托,事件响应的问题

//构造委托一般命名为 Setdg;
//声明委托 一般命名为 dgtest;
//委托函数一般命名为 delegateFun


1.跨线程操作控件
2.父界面给子界面传递消息
1.声明窗体
2.构造新委托
3.委托声明

ScreenShow()
{
1.窗体实例化
2.委托实例化
3.窗体展示
4.窗体null
}


//线程调用函数
ThreadFun
{
在线程函数中写操作控件,包括form.
需要利用委托。
method.invoke(obj, new Object[] {})返回的是一个Object类型
Object类型强制进行转换为其他类型。

 

}
3.子界面给父界面传递消息
1.在子界面中构造委托
2.在子界面中声明委托
3.在父界面中实例化子界面
4.把子界面的委托嫁接到父界面的方法上
5.子界面展示

4.父子界面相互传递消息
5.


4.3 中断
中断与轮询的优缺点
利用timer控件直接进行轮询。
其中利用全局变量进行交互。

 

 

5.界面与控件
5.1 整体风格,颜色
5.2 界面

元界面-类界面-功能性界面
元界面
命名Std_Base

类界面:
Std_Main
Std_Func
Std_Notice

主界面布局问题:
主界面->panel进行停靠  分为上,左,右,底,全
上:软件LOGO,时间,登录信息,语言选择
左:状态栏
右:无
底:信息栏
全部:停靠从属功能性界面
panel:BackColor   DarkGray

主要有两个函数:
一个功能性界面显示函数
private void Frm_NoApp(Form frm){}
一个功能性界面消失函数
private void Frm_OnApp(Form frm){}

功能性界面初始化函数
Private void Frm_Init(Form frm){}


界面的构造函数
1.界面需要的外部文件的检查。
2.控件的实现

界面的载入函数
1.数据的绑定
界面的激活函数
1.显示当前的状态与数据

//消息拦截函数
 protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_NCLBUTTONDBLCLK)
            {
               // do something
            }
            base.WndProc(ref m);
        }

参看Windows消息机制

 

让MDI窗口只保留一个实例
1.利用反射
2.利用静态
3.利用
http://my.oschina.net/agile/blog/2125?from=rss

 

//界面的特殊效果
1.淡入淡出效果
2.

界面的退出函数,差异与区别。
this.close()
this.dispose()
application.exit();
envirnment.exit();

5.3 控件
提供控件,第三方控件
控件属性设置
充分利用TabIndex的作用,并列控件相应函数利用此性质可以
优化代码。

 


控件的基本响应函数
控件的特殊技巧
控件外形的规范化

 

 


6.数据库
6.1 数据库基本知识与SQL语言学习
6.1.1简介
VS2008插入数据库文件
服务器,数据库,数据表,数据列(域),记录
对数据表架构进行修改
对记录进行修改
增加
编辑
插入
删除
查询


数据库设计

1. 利用添加数据源
2. 利用显示数据源
3.直接定义SqlDataAdapter
                  
6.2 Access
6.3 SQL server
6.4 Mysql
6.5 Oracle
 
 
7.通讯
7.1 简介
通讯是一直连接,还是需要用的时候再进行连接?

7.2 socket
Socket通讯类
7.3 Ftp
Ftp通讯类

7.4 TCP/UDP
7.5 SOAP
7.5.1soap简介
7.5.2声明一个全局的soap类,作为写操作。
然后在某个界面中实例化,并且登录。
7.5.3利用多线程进行读操作,读取控制器状态

7.6 串口
串口类
7.7 Modbus
7.8 与PLC通过网线通讯

7.9 与PLC通过串口通讯


8.附属硬件
8.1 PLC
 利用.net与PLC程序进行通讯
8.2 WAGOWAGO接线

8.3 BIO
BIO卡接口                              

9.全局变量与全局函数
9.1 全局变量
9.1.1 界面配置全局变量
9.1.2 通讯全局变量
9.1.3

9.2 全局函数
9.2.1正则表达式
9.2.2界面自适应函数
9.2.3
9.2.2 界面与控件全局函数

10. 工业软件基本要求
10.1工业软件简介

10.2欢迎界面
软件名称
软件版本

10。3.登录界面
登陆与登出
10.3.1利用this.DialogResult直接来登录
登录成功:DialogResult.OK
登录失败:this.DialogResult = DialogResult.Cancel;
登录取消:
然后在主界面中进行判断。
10.3.2在登录界面中本身进行判断。
利用Application exist
This.close();
10.3.3从登录界面中引出主界面(不推荐)
10.3.4

 

 

10.4.生产界面
产品选择
客户选择
开始
停止
暂停
继续
周期结束
周期时间

10.5.事件与报警界面
报警等级
报警内容
报警处理

 

10.6.生产分析界面
分析时间,良品率,精度

10.7.系统配置界面
10.7.1用户管理

 

11.软件常见问题分析
11.1异常处理
11.2 软件的封装
要求所有的内容均在安装目录下,包括配置文件,数据库,各种类库
11.3软件重要文件的自动备份

11.4 操作其他类型数据
11.4.1读写文本数据
11.4.2保存为图形文件
11.4.3读写为excel格式
11.4.4读写XML文本格式
11.4.5操作字节流
11.5其他
1.在panel里面停靠,并显示出淡入淡出效果

附录
附录1:命名规范
附录2:函数书写规范
附录3:标准程序列表
附录4:一般均以类的形式进行访问。
附录5: 参考资料
http://topic.csdn.net/u/20090702/21/421386f0-03ae-4f78-aafd-9029315dff07.html
附录6:开发方向
1、界面层:布局、色彩,需要Html、CSS等基本知识,ASP.NET的母版、主题、皮肤等
2、用户管理:ASP.NET的用户与角色管理,数据库,程序设计基本知识进行用户级别等逻辑管理
3、帖子管理:分类管理,检索、存储,筛选等,主要是数据库操作和ASP.NET数据控件,比如Sql语句(Select、Insert、UpdateDelete)、存储过程、连接字符串、GridView、FormView、DataList等。
附录7:储备知识
附录8:利用API操作
1..net系统调用
2.API调用
3.自己dll调用
本来是在解决方案管理器中可以进行引用,然后添加命名空间就可直接操作。
声明外部函数。

http://hi.baidu.com/%BF%AA%D0%C4_%D0%D6%B5%DC/blog/item/f0d22582581266a70df4d2f6.html
附录9:UI基本知识
附录10:一些基本技巧
1.桌面悬浮窗
2.最小化到任务栏
3.

附录11:异常处理
try
{
}
catch()
{

}
finally
{
}
以性能换稳定
 附录12:资源消耗问题
 附录13:一些有用的资料
http://www.cnblogs.com/zhoujg/
附录14:利用C++和MFC对程序进行重写。