微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VB.NET机房个人重构版-磨刀篇一

原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 :http://blog.csdn.net/lantingxv_jing/article/details/8980101

【阶段说明】

就要开始重构机房了,脑子里一片乱糟糟的感觉,有些措手不及。我忽然想起《致青春》的一句经典台词“天空没有留下痕迹,但鸟儿已经飞过。”可是,对于前面已经学过的知识,我都不太确定“鸟儿真的飞过了吗?”好纠结呀!

什么“软件工程”啦?脑子就剩下“文档”两个字;

什么“UML”啦?脑子里就剩下“九种图”,重要的要数:用例图、类图、时序图。至于类图是怎么抽象的,现在还不是很清楚的样子。

什么“设计模式”啦?我貌似只记得29个小故事;

什么“三层架构”啦?就是UI-BLL-DAL,外加Model实体类

……

对于知识的理解有种似懂非懂的感觉,却没有办法用自己的语言来表达清楚……

【剪不断,理微乱】

下面的这张图主要是重构机房前的准备工作,看起来有些乱,是因为我正在整理自己的思路,貌似“耦合性”很高的嘛O(_)O~



【基础知识】

软件工程

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

UML统一建模语言

统一建模语言(UMLUnified Modeling Language)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。

1、用例图,从用户角度描述系统功能,并指出各功能的操作者。

2、静态图 (Static diagram)包括类图、对象图和包图。

3、行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。行为图包括:状态图、活动图、顺序图和协作图。

4、交互图(Interactive diagram),描述对象间的交互关系。

5、实现图 ( Implementation diagram ),包含构件图、部署图

设计模式

设计模式是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。

面向对象设计模式通常以类型或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类型或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。

并非所有的软件模式都是设计模式,设计模式特指软件“设计”层次上的问题。还有其它非设计模式的模式,如架构模式。同时,算法不能算是一种设计模式,因为算法主要是用来解决计算上的问题,而非设计上的问题。

三层架构

三层架构(3-tier architecture)通常是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。

DataSet

DataSetADO.NET的中心概念。可以把DataSet当成内存中的数据库DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库DataSet依然是可用的,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。正是由于DataSet才使得程序员在编程时可以屏蔽数据库间的差异,从而获得一致的编程模型。

DataTable

DataTable一个临时保存数据的网格虚拟表(表示内存中数据的一个表。)DataTable ADO.NET 库中的核心对象。它可以被应用在 VB ASP上。它无须代码就可以简单的绑定数据库。它具有微软风格的用户界面。

其他使用DataTable的对象包括DataSetDataView

DataSet支持多表、表间关系、数据约束等,和关系数据库的模型基本一致。

sqlHelper

sqlHelper用于简化你重复的去写那些数据库连接(sqlConnection,sqlCommand,sqlDataReader等等。sqlHelper封装过后通常是只需要给方法传入一些参数如数据库连接字符串,sql参数等,就可以访问数据库了,很方便。

sqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。在 sqlHelper类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 sqlHelper类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 --------------------------------     固定格式参数:     General Number 普通数字,如可以用来去掉千位分隔号     format$("100,1
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和系统设置的区域语言的日期和时间格式相关。意思是尽管你用诸如 Format(Now, "MM/dd/yyyy"),如果系统的设置格式区域语言的日期和时间格式分隔符是"-",那他还会显示为 MM-dd-yyyy     只有拼凑: <%response.write
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 ‘添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦 ‘======================================================== ‘以下事件
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没有认真去找这个方法呀。 https://blog.csdn.net/chzjxgd/article/details/6176325 金蝶K3 BOS的插件官方是用VB6编写的,如果  能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用V
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, tmpStr As String, s As String Dim x As Integer, y As Integer, subStr As String If MsgBox("确定要分列处理吗?请确定分列的数据会覆盖它后面的单元格!", _
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 2 Dim path As String, hash As String 3 For Each fil
  Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS Dim conString As String = "Server=localhost;Database=net2;Uid=root;Pwd=123456;" Dim con As New MySqlConnection
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop   Private Sub A1() Dim Sql As String Dim Cnn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim S As String   S = "Provider=OraOLEDB.Oracl
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class Form1 Dim A(254) As String    Function ping(ByVal IP As Integer) As String Dim IPAddress As String IPAddress = "10.0.
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5494084 Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Pr