.NET平台C/S架构应用程序开发核心技术总结(MyKTV点歌系统案例分析)
总结日期:10月10日
开发日期:7月-8月
原创版权所有,转载请注明原作者。
PS:今天晚上睡觉之前实在睡不着,还是玩一下代码再睡吧。。。如果本文体验感很差或者内容漏了不过瘾敬请谅解,内容漏了的话可以帮我补充下的啊,一起学习,再说一遍本文是原创手敲的!!!
1.概述
MyKTV点歌系统采用C/S架构(客户端Client/服务器Server),分为前台客户端和后台服务器端,添加了一些辅助功能使得系统功能更加完整,各板块协调一致,更符合实际需求。 MyKTV点歌系统主要组成部分:
(1)前台客户端(Client): MyKTV点歌系统+MyKTV超市系统+MyKTV会员系统+MyKTV包厢预定系统
(2)后台服务器端(Server): MyKTV点歌系统后台服务器端
通过本项目的开发,可以熟练掌握.NET C/S架构项目开发体系中的核心技术点,包括C#语言使用、SQL Server数据库的使用、数据提供程序的使用、WinForms窗体应用程序的使用,C# OOP常用语法、窗体控件类以及C#3.0重要特性。
2.基本环境介绍
2.1 开发环境:.NET Framework 2.5 (CLR公共语言运行时+FCL框架类库,编译器JIT,中间语言MSL)
2.2 数据库环境:SQL Server (DBS),DBMS采用SQL Server Management Studio
2.3 开发工具:Visual Studio (IDE)
2.4 开发语言:.NET平台核心语言C# 2.5/3.0,SQL语言以及基于SQL Server数据库的T-SQL扩展
3..NET平台核心技术点介绍
3.1 技术选型:C# Logic基础语法、C# OOP面向对象、XML文件解析、FTL原生框架类库,WinForms窗体应用控件、WinForms窗体控件类、 数据访问程序(通用的.NET Framework数据提供程序连接式+基于DataSet数据集的断开式访问和操作数据,后者主要用来容灾)、DBMS使用(SQL Server Management Studio )、数据库设计(概要设计E-R图、详细设计UML建模图)、SQL基本语法、T-SQL内置函数、SQL高级查询(IN/EXISTS子查询)、存储过程和触发器。
3.2 本项目是一个基于CS架构的应用程序,安装和部署方式为数据库部署安装、应用程序以可执行文件方式提供,直接可以在所有Windows平台运行(Windows XP 及以上均可直接运行),所主要涉及到的核心技术类型有三种:
(1).WinForms窗体应用程序开发:搭建窗体项目、模型类、控件事件注册
(2).数据提供程序:通过连接式和断开式访问和操作数据库
(3).SQL语法和高级进阶:对数据库数据进行CRUD操作
.NET Framework核心技术体系摘要如下:
C# Logic + C# OOP + C# 高级特性
C#基础语法
数据类型、类型转换
变量和常量
条件语句、循环语句、跳转语句
数组
命名空间
类和对象 类成员:字段、属性、方法
值传递和引用传递
访问修饰符+this关键字
冒泡排序算法
.NET框架核心体系
深入C#数据类型
使用集合组织数据
深入类的方法(方法重载、虚方法、方法重写)
初识继承和多态
深入理解多态
里氏替换原则
可扩展标记语言XML
File I/O文件操作
方法委托和Lambda表达式
默认方法、命名方法、匿名方法
.NET 三层架构设计原则
数据库设计、SQL Server数据库和T-SQL语言
数据库系统基本概念
用表组织数据
数据完整性
主键和外键
创建数据库、表、约束
用SQL语句操作数据(insert语句+update语句+delete/truncate table语句)
select语句基本组成
使用order by排序
日期函数和聚合函数
Like/Between and/IN 模糊查询
GROUP BY实现分组查询
内外全连接查询(INNER JOIN/LEFT OUTER JOIN/RIGHT OUTER JOIN/FULL JOIN)
数据库模式对象(事务、视图、索引、备份和恢复、存储过程、触发器)
数据库设计概述
三大范式设计原则(3NF)
概要设计和E-R图
详细设计和UML建模图
数据提供程序(.NET 持久层框架)
数据提供程序组成概述
数据库连接
数据库连接字符串
连接对象Connection
C#异常处理机制 try-catch-finally结构
数据库操作对象Command对象 DataReader对象
断开式数据访问和操作对象 DataAdapter对象 DataSet对象
操作存储过程和触发器
WinForms窗体应用程序(.NET CS架构应用程序核心类库)
WinForms窗体的基本概念
WinForms窗体的三要素
WinForms操作窗体的属性和方法
WinForms窗体的基本控件的使用
WinForms窗体的高级控件的使用
构建布局良好的Windows窗体
MessageBox消息框
枚举类型的使用
使用断开式访问和操作数据
WinForms窗体常用的视图控件及使用
综合运用两大核心组件访问和操作数据
DBHelper 通用数据库操作类实现源码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Data;
namespace chapter6WinForms { class DBHelp { //数据库连接处理数据的辅助方法
//获取连接 public static SqlConnection GetConnection() { string strConn = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Pwd=sa"; return new SqlConnection(strConn); }
//查询单个结果 public static int GetOneResult(string sql, ref string state) { SqlConnection connection = GetConnection(); try { connection.Open(); SqlCommand command = new SqlCommand(sql, connection); int result = (int)command.ExecuteScalar(); if (result > 0) { return result; } else { return -1; } } catch (Exception e) { state = "出现异常:" + e.Message; return -1; } finally { connection.Close(); } }
//返回DataReader对象(查询结果集,多条记录) public static SqlDataReader GetReader(string sql, ref string state) { SqlConnection connection = GetConnection(); try { connection.Open(); SqlCommand command = new SqlCommand(sql, connection); return command.ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception e) { state = "出现异常:" + e.Message; return null; } }
//执行增删改,返回受影响的行数 public static int GetRows(string sql, ref string state) { SqlConnection connection = GetConnection(); try { connection.Open(); SqlCommand command = new SqlCommand(sql, connection); int result = command.ExecuteNonQuery(); if (result > 0) { return result; } else { return -1; } } catch (Exception e) { state = "出现异常:" + e.Message; return -1; } finally { connection.Close(); } }
//断开连接机制,获取SqlDataAdapter数据适配器对象 public static SqlDataAdapter GetAdapter(string sql,ref string state) { SqlConnection connection=GetConnection(); try { connection.Open(); return new SqlDataAdapter(sql, connection); } catch (Exception e) { state = "出现异常:" + e.Message; return null; } finally { connection.Close(); } }
//断开连接机制,获取DataTable对象 public static DataTable GetTable() { Sqlconnnection connection }
} }
4.MyKTV项目技术摘要
4.1 WinForms窗体的基本概念
1.简介 WinForms窗体是.NET Framework中不可或缺的一部分,使用WinForms窗体配合强大的IDE(集成开发环境)Visual Studio可以高效、便捷地开发出丰富多样的图形化用户界面应用程序,方便用户操作。
2.文件组成部分: Form1.cs 窗体文件 Form1.Designer.cs 窗体设计文件 Form1.resx 资源文件 Program.cs 主程序文件,包含程序的入口Main()方法
3.命名空间:System.Windows.Forms
4.继承关系:所有窗体均继承于Form窗体类,使用‘:’表示继承,窗体文件是分布的partial
4.2 WinForms窗体的三要素
WinForms窗体的三要素: 控件的属性、事件、方法
1.属性:通过设置不同控件的不同属性,可以让控件在不同情况下发挥其不同的作用,用来描述控件的特征
2.事件: 事件指的是用户对应用程序进行的不同操作(大多数由鼠标、键盘引发) 事件又称为事件驱动机制,随时响应用户触发的事件并进行相应处理的机制就是事件驱动机制。
3.方法: 方法指的是控件具有的功能,即控件能够执行的操作
4.3 WinForms操作窗体的属性和方法
Name窗体名称
Text窗体标题文本
BackColor窗体背景颜色
BackgroundImage窗体背景图像
StartPosition窗体加载时出现的位置
WindowState窗体的默认初始显示状态
TopMost窗体是否总保持在最上方(置顶)
ShowInTaskBar窗体是否在任务栏中显示
FormBorderStyle设置窗体的边框样式
MaximizeBox最大化框
MinimizeBox最小化框
Show()显示窗体
Close()关闭窗体
ShowDialog()模式化显示窗体
Hide()隐藏窗体
※技巧:
1.设置窗体显示在屏幕中央 StartPosition:CenterScreen
2.默认最大化显示: WindowState:Maximized
3.窗体不允许被拖拽 FormBorderStyle:FixedSingle
4.窗体间的数据传递:添加公有字段实现
4.4 WinForms窗体的基本控件的使用(具体每个控件三要素组件自行百度)
常用基本控件: Label标签
TextBox文本框
ComboBox组合框
Button按钮
RadioButton单选按钮
GroupBox分组框
Panel面板
DateTimePicker日期控件
Windows MediaPlayer 媒体播放器
PictureBox 图片框
Timer 计时器
MenuStrip菜单栏
ContextMenuStrip快捷菜单栏
ToolStrip工具栏
ImageList 图像列表
SplitContainer 拆分器
4.5 构建布局良好的Windows窗体
窗体控件排列方式: 对齐、Anchor属性、Dock属性
显示窗体的方式: 模式窗体ShowDialog() 非模式窗体Show()
关闭窗体的方式: Application.Exit(); this.Close();
窗体间的关联: SDI单文档界面应用程序 MDI多文档界面应用程序
MDI父窗体 MDI子窗体 设置MDI窗体的步骤
注意:MDI窗体中不允许使用ShowDialog()模式化显示窗体
窗体间信息传递:通过定义公有字段实现
窗体的跳转:实例化窗体类对象,调用显示窗体的方法Show() 或 ShowDialog()
4.6 MessageBox消息框
弹出消息框: MessageBox.Show(“要显示的字符串”,“消息框标题”,MessageBoxButtons消息框按钮,MessageBoxIcon消息框图标); 返回值DialogResult类型,DialogResult类型是一个枚举类型
4.7 枚举
1.枚举的基本概念
2.定义枚举的语法
4.8 使用断开式访问和操作数据
1.DataSet数据集的概念、核心思想、组成部分
2.定义DataSet数据集的语法
3.区分DataTable\DataColumn\DataRow
4.区分Tables\Columns\Rows
5.DataAdapter数据适配器的概念、属性、方法
6.定义DataAdapter数据适配器的语法
7.使用断开式访问操作数据的主要步骤
8.DataView数据视图的概念,创建DataView对象的方式
9.使用DataView实现数据筛选和排序的步骤
10.DataSet/DataTable/DataView三者之间的关系
11.使用断开式访问和操作数据库中数据的优缺点
4.9 WinForms窗体常用的视图控件及使用
1.ListView 列表视图
ListView列表视图的作用
ListView列表视图的属性、事件、方法
ListView的五种视图模式
2.DataGridView 数据网格视图
DataGridView 数据网格视图常用的属性
DataGridView数据网格视图中的列Column的常用属性
3.TreeView树状视图
TreeView树状视图的常用属性、事件
TreeNode树状视图中树节点对象的常用属性
5.0综合运用两大核心组件访问和操作数据
连接式访问和操作数据: Connection\Command\DataReader
Command对象常用方法: ExecuteNonQuery()执行增删改不返回行的操作,返回受影响的行数int类型
ExecuteScalar()返回查询结果中第一行第一列的单个值Object类型,需要进行类型转换
ExecuteReader()返回DataReader对象
断开式访问和操作数据: Connection\DataAdapter\DataSet
MyKTV源码已上传本人的GitHub平台,欢迎下载。
附:MyKTV项目开发进度安排(7月-8月):
原创版权所有,转载须注明原作者。