VB.NET视频

前端之家收集整理的这篇文章主要介绍了VB.NET视频前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

第一单元 21世纪的程式执行

  .net framework组成元素
    基底类别库(BCL)
      提供开发各种解决方案时所需使用的物件
      所有的.net语言皆使用同一组
      将各种不同解决方案的模型一致化
    共同语言执行时期(CLR)
      提供所有.net程序语言执行程式时的服务
      提供自动记忆管理
      提供与COM元件互通的能力
      内建多执行绪执行能力@H_403_12@

  中介语言格式IL
    由微软所指定,是CLR的组合语言
    所有.net程式语言编译器的目标格式皆为IL
    可在不同平台,跨平台使用
    编译成原生码之后的执行,仍被CLR管理@H_403_12@

  组件的搜寻规则:
    从GAC中找(搜寻组件公用快取)
    如果没有找到,不过有组态设定档存在,则搜寻组态设定档所指定的位置。
    如果还是没有找到,.net会搜寻执行档所在的目录
    如果还是没有找到,应用程式将发生错误并结束执行、@H_403_12@

  部署的选择
    XCOPY Deployment
    注册到GAC中
    透过.Config@H_403_12@

单元2

物件的导向程式设计
物件——对象
属性——属性
行为——方法@H_403_12@

物件的复制
e.Clone()@H_403_12@

物件的产生
Dim e as employee
e=new employee();@H_403_12@

Dim e as new employee()

物件的毁灭(回收空间)
GC资源收集器来自动回收,会周期性地自动执行@H_403_12@

虽然GC帮我们减少了很多工作,但有时大文件空间的时候,最好还是要自己手动回收一下。
    方法:
    Obj.Dispose()
    Obj=Nothing      '让物件变成没有被参考

装箱(Boxing)
  所有的东西不见得都是物件
  实质型,放在堆点里面, 当成物件来看,tostring()装箱@H_403_12@

方法Method
  用来执行一些动作的程式,就是Method@H_403_12@

多载(Overloading)其实就是函数的重载(可能版本有点老吧,说法都没跟上时代潮流)
  多个名称相同的方法@H_403_12@

资料的保护(就是访问修饰符)
  尽可能的将资料隐藏起来。(将内部成员限制访问)@H_403_12@

属性的操作
set方法与get方法@H_403_12@

只读  ReadOnly    关键字
只写 WirteOnly    关键字 
好处:
    可以通过方法来对这个属性做一些判断或修改

Shallow copy
Deep copy(需要自己写两层复制)@H_403_12@

第三单元 类别与基底类别库

常量和共享
  Const
  Shared(共用成员)@H_403_12@

共用成员不用创建物件(不用实例化)直接用类名.属性方法@H_403_12@

列举型别(Enum)
  就是枚举类型@H_403_12@

模组@H_403_12@

Public Module  _name

  End Module

命名空间@H_403_12@

Namespace _name

    End Namespace

  命名空间可以嵌套,空间里可以有子空间。增加可读性,把一类的东西分到一个空间中,好区分,减少类名的冲突。@H_403_12@

使用:
  完整参照(完整的名字)
    优点:确保对象的类型正确
    缺点:代码冗长@H_403_12@

导入命名空间
  Imports
  就可以只写最关键的类名
  导入太多命名空间可能会:妨碍程序的可读性,增加名称冲突的风险
  折衷方法:建立命名空间的别名。@H_403_12@

Imports BT=TeamX.BusinessTier
            …
            Dim c as BT.customs

集合
  ArrayList 还可以排序
  HashTable @H_403_12@

使用vs建立类别库,类别库将会编译成DLL@H_403_12@

方式1:加入DLL参考
  执行起来较有效率,因为只有一个专案
  当Dll变更之后,必须手动重新 编译@H_403_12@

方式2:加入专案
  将自动编译DLL
  会在背景编译变更过的元件,这会导致暂时停止回应。@H_403_12@

第四单元 事件驱动程序设计

多对一的事件处理  
        Private Sub form_load(…) Handles button1.click,button2.click       
            Message.show("Changed!") 
        End Sub
    一对多的事件处理


在執行時期可以動態加入或移除事件與事件處理的關連
 *範例: *在按鈕的事件中,呼叫 AddHandler 或是 RemoveHandler
Private Sub cmdMonitor_Click(…) Handles cmdMonitor.Click     
        Dim txt As TextBox,c As Control     
        For Each c in Me.Controls         
            If TypeOf c Is TextBox Then             
                txt = c             
                AddHandler txt.TextChanged,AddressOf Me.Common_TextChanged        
            End If     
        Next 
    End Sub

WinForms
AutoScroll属性
Anchor属性(固定控件的位置)@H_403_12@

窗体调用显示
    窗体是类,引用时需要new
        Show 会可以往下执行
        ShowDialog 会此窗体被关闭才会往下执行

物件的毁灭
无法自行毁灭物件
物件只能被garbate collector所毁灭@H_403_12@

我们可以选择释放资源
    呼叫Dispose方法
    表单物件为例,可以呼叫close或dispose方法

第五单元

明确型别转换
Option Strict On 开启明确型别转换
Option Explicit On 开启显示声明@H_403_12@

例外处理
  发生了预期之外的状况
  例如: 除零錯誤
    數值溢位
    存取陣列超過界限
    物件參考不存在
    檔案不存在
    無法存取資料庫@H_403_12@

每一个例外都被视为物件,通过throw掷出,通过catch方式捕捉

例外的类别
    System.SystemException系統定義的例外
    System.ApplicationException使用者自訂的例外

处理
    使用try-catch语法
    Try        
        statement1        
        statement2 
    Catch ex As Exception        
        statement4        
        Statement5
    Finally
        Statement6
        Statement7
    End Try
(ps:Throw New System.ApplicationException(“File not found!”,ex) 扔出一个新的错误例外)

应用程式的追踪
追踪会记录有关从程式执行的讯息@H_403_12@

第六单元 资料库设计与sql

开放式资料库设计
    栏位
    栏位是具有型别的(string,int。。。)
    主索引键(primary key)

    关联
        一对多
        一对一
        多对多

    资料库正规化
        第一阶正规化:一个栏位中只包含一个“原子”的资料
        1NF,2NF,3NF,…


    不要有重复的资料,资料只要储存一次
    命名规则很重要



资料库管理系统(DBMS)
    资料
    资料库引擎JET

        要求→ 资料库引擎 → 资料

    类型:MS sql Server,Oracle,DB2,MysqL

    工具
        sql Server 
                Query Analyzer : 執行 T-sql 語法 
                服務管理員 : 啟動或停止 sql Server
                Enterprise Manager : 管理 sql Server 

        Microsoft Access
                建立資料庫、查詢、…
                使用 JET 引擎,免費 

        其它:
                使用 Visual Studio .NET 中的伺服器總管 
                WebMatrix 整合開發環境 (http://www.asp.net/)


结构化查询语言(sql)
    DML:Data Manipulation Language (select,update,…)
    DDL:Data Definition Language (create,drop,…) 
    DCL

    Join   table_name on 
    Outer join

    Insert
    Update
    Delete

  删除记录的时候,最好多设置一个字段来标记已不被使用,不要真的删除,这会节省效率,也会减少不必要的麻烦。@H_403_12@

预储程序(存储过程)
    可以接受參數 
    可以回傳資料表 
    預先編譯、最佳化過 – 幾乎是十倍快


    优点: 
        *執行快速 
        *將複雜的 sql 程式封裝起來 
        *提供另外一層的存取控制能力 
        *大部份的資料庫提供者都支援 
        *sql Server,etc. 
        *缺點: *每個資料庫提供者的預儲程序語法都不一樣 
        *預儲程序不容易轉換成其它格式的程式

第七单元 资料库ADO.NET

ADO.NET架构


    资料提供者
        原生提供者: sql Server,Oracle
        非原生提供者: OLEDB,ODBC

    核心命名空间
        一般:     System.Data,System.Data.Common
        sql Server: System.Data.sqlClient
        Oracle: System.Data.OracleClient
        OleDB:      System.Data.OleDb
        ODBC:   System.Data.Odbc
    存取方式



资料读取与写入
    DataReader类可以逐一读取资料
    只能下一个,唯独的游标

    存取资料步骤
        1、开放资料库连线
        2、进行资料库操作(读取)
        3、关闭资料库连线



DataSet
    就是一个在记忆中的资料结构,用表格的方式来储存

    DataSet = 離線式的 Recordset
        資料是由伺服端複製回來
        然後在用戶用端離線處理資料
    允許你 :
        減少資料庫伺服器的負載
        關閉資料庫連線,並且離線處理資料
    特別是在分散式應用程式中特別有用 


    使用DataAdapter类填满DataSet类
        sql = "Select * From Products;"
         .
         .
         .
        Dim adapter As ss.sqlDataAdapter,ds As System.Data.DataSet
        dbConn  = New ...
        dbCmd   = New ...
        adapter = New ss.sqlDataAdapter(dbCmd)
        ds      = New System.Data.DataSet()

        dbConn.Open()
          adapter.Fill(ds)
        dbConn.Close()

        ds.Tables(“Table”).TableName = “Products”  ‘** 修改 DataSet 中表格的名稱 …

    DataSet :
        可以儲存你想要處理的所有資料
        可以搜尋、排序、修改
    範例:
        將整個 Sales 資料庫的資料填滿 DataSet
        sql = "Select * From Customers; Select * From Orders; " & _
              "Select * From OrderItems; Select * From Products;"
         .
         .
         .
        dbConn.Open()
          adapter.Fill(ds)
        dbConn.Close()


工具

第八单元 界面:类别的设计(接口)

首先制定协定
    Interface
    使用implements 来实现


第二步才是实作
    必须实现接口中的每一个方法,否则无法编译

优点:
    统一了方法,当具体行为改变时,不用改变客户端的程序。

多型
    就是声明接口,实例不同对象,就可以达到程序不用修改效果

物件的复制
    IClonable
Public Class Customer: Implements IClonable 
    Private m_Name As String 
    Private m_Email As String 
    Private m_Balance As Decimal 
    ... 
    Public Function Clone( ) As Object Implements ICloneable.Clone 
        Return Me.MemberwiseClone( ) ‘** returns a shallow copy... 
    End Function


IComparable接口
    比较两个物件,并传回一个数值(使用ASCII码来比较)
        < 0 表示 obj1 < obj2 
        = 0 表示 obj1 = obj2 
        > 0 表示 obj1 > obj2

    Public Interface IComparable     
        Function CompareTo(obj As Object) As Integer 
    End Interface


泛用型资料层
    通过选择判断来决定实例化具体的那个数据库对象连接。

第九章 继承:类别的设计

继承的基础
    inherits继承

    术语
        Base/Super/Parent
        Derived/Sub/Child

    特点:单继承。就是只能继承一个对象

重写与动态细节
    Overridable:定义为可重写的方法
    Overrides 来重写

    就是动态方法和静态方法
        静态方法比较快,因为要呼叫的方法已经预先决定。
        动态方法比较有弹性,因为是动态的。

基底类别的设计
    必须被继承和必须被重写
        MustInherit
        MustOverride

    限制不被继承
        NotInheritable


    Equals和GetHashCode
        如果物件是相等的,那么GetHashCode必须要相等

第10单元 资料库 商业层设计

资料存取的一般化
    连线的开启与关闭
        单一或少数使用者的情况:保持连线开启
        多使用者的情况:用时开,用完就关闭。
    连线集区(Pooling)
        连线会存放到集区中



一般资料存取的问题
    sql指令隐码攻击(注入)
    验证输入
    Regular expressions

    友谊类别
        Friend  

资料层的设计
    多层次设计:模组化、弹性、重复使用
    重量化和轻量化


商业逻辑层的设计
    支持流程中所有安全性、逻辑与资料存取(验证、维护、存储)

    具型别DataSet
        Dim DS As System.Data.DataSet 
        Dim customersDS As DataTier.CustomersDataSet 
         . 
         . 
         . 
        dataAdapter.Fill(DS) 
        dataAdapter.Fill(customersDS) 
        ‘ 一般的 dataset 存取方式
        FirstName = DS.Tables(“Customers”).Rows(i).Item(“FirstName”).ToString() 
        ‘ 具型別 dataset
        FirstName = customersDS.Customers(i).FirstName

    ORM Framework

第十一单元 以元件为基础的开发

组件
建立一个DLL组件
组件层级的attributes

强式名称

数字签章

.snk挡

com元件
互通机制
.net呼叫com元件

建立ccw

interop的运作

第十二单元 应用程式设计与布置

应用程式设计
    (1)整体的:布署单一的      .exe+ .net 到用户端
    (2)分层结构的, .exe,DLLs,.net 到用户端
    (3)远端,布署到用户端与服务端
    (4)以web为基础的,布署web网页,DLLs+.net到web服务器



应用程式布署
    .net必须安装
        CLR + FxCL必须安装在 .exe执行的主机上
    组件manifest

    AppBase
        .exe所在的位置称为AppBase,应用程式的主目录


    布署选项
        XCOPY布署
            将exe,dlls+相关档案,全部拷贝到同一个资料夹
        零接触布署
            给exe一个url,用户直接透过ie浏览url
            NET 將 AppBase 設定到 Web 伺服器上的虛擬目錄 ! 
            .NET 從 AppBase 下載 .EXE 和 .DLLs 
            問題: 安全性? 如何下載必要的檔案 (資料庫)
    组建搜寻演算法

    版本转向
        应用程式的.config挡设计可以重写.exe manifest

    GAC
        Global Assembly Cache 
        位於 C:\Windows\Assembly 
        直接用檔案總管就可以檢視… 

        安装组件到GAC
            组件必须有强式名称,使用gacutil.exe命令列工具(要有管理员权限)

    CodeBase


    共用布署
        将共用的各版本组件安装到GAC
        具有强式命名的组件载入的效率比较快

    下载布署
        使用CodeBase来指定DLLs位置

    潜在的问题:
        (1)config档hell问题
        (2)程式码逆向工程
        (3)程式码存取安全性


通过reflection机制手动布署
    是一种在执行阶段针对组件进行处理的机制
        载入组件
        建立物件
        检查栏位、方法属性的规格
        存取栏位、方法属性

第十三单元 分散式程式设计

分散式设计
    同步
        用户端呼叫服务端,然后等待回应
        简单,传统的程式设计模型
        基于RPC的基础上
        RPC架构
            Proxy-stub物件用来建立爽法的同步呼叫机制
            proxy是在用户端,stub在服务端

        常见的同步设计
            Form-based web 应用程式(webForms)
                浏览器解决方案,要求某一页,等待服务器传回html
            Web service
                呼叫web方法,等待xml资料传回来
                连接不同平台的应用程式
            Remoting
                程式,呼叫方法,等待结果传回来
                两端都是.net平台
                连接.net平台下各层的元件(例如,java和.net)
                例如:
                    .NET on Linux & .NET on Windows 
                    .NET on WinXP & .NET/COM+ on Win2003


    非同步
        用户端传送要求,然后用户继续进行其它工作,服务端执行完后在将回应传给用户端
        比较有弹性
        比较难设计、实作、测试


Remoting设计
    Sales物件是一个“single-call MBRO”

    使用IIS(web server)
        很容易开发和设定服务端
        可以使用windows安全机制


Web services
    WSDL=web service description language


    .net web service
        步骤:
            1、建立一个asp.net web 服务专案
            2、专案位置=http://localhost/SalesWebService 
            3、参考businessComponent.dll
            4、将sercicel.asmx改名为Sales.asmx
            5、撰写Sales.asmx的程式码Sales.asmx.vb

第十四单元 concurrent Programming

指的是有多个操作会同时执行的程式。@H_403_12@

Concurrency
    多个操作同时执行
    范例
        web服务器慧颖多个浏览器的要求
        资料库服务器处理多个查询
    怎么办到?
        实际上,一个cpu会在多个程式之间快速切换,看起来就像同时执行

    cpu切换
        由硬件切换
        每隔一段时间,程式暂停、等候回应

    行程(process)
        多行程
        多执行绪


多执行
    设计上很困难
        1、协调问题
            通过执行绪通讯协调
            等待彼此执行结束
                join:值得就是等待执行绪执行完
                    一直等
                    等一段时间(带参数)
            检查执行绪执行状况
                IsAlive

        2、通讯问题
            参数
            结果
            执行过程中的变数值

            使用队列
                执行绪使用dequeue方法从队列取出资料
                执行绪使用enqueue方法将资料加入队列
        3、同步问题
            使用syncLock指令
                只有一个执行绪可以进入,其它执行绪要等
            使用执行绪安全的队列物件

        多执行绪很难设计
            很多细节要注意
            很难证明执行结果一定正确
            很难进行侦错
            可能产生死结(deadlock)
            必须在执行绪中处理例外


delegates
    是一种方法的指标,可以做呼叫端与被呼叫端的抽象化。

    在执行绪上的另一层抽象化
    内建支援多执行绪
    更有效率:因为使用执行绪集区(thread pool)
    支持参数传进与传回值

第十五单元 软体工程

  所谓的“软体工程”其实就一个软体开发程序,依循这些程式就可以开发出稳定、可靠的软体系统,这些开发程序也可以不断重复使用、不断改良@H_403_12@

软体工程
    背景:
        软件越来越困难
        软件应用在重要的系统上
        软件甚至用在和生命相关的系统上

    一般的做法:
        传统“瀑布式”模型
            1.需求分析
            2.设计
            3.实作
            4.单元测试
            5.整合测试
            6.布署
            7.维护
        最近流行的“eXtreme Programming”模型
            一个非常不同、比较精简快速的流程
            主要原则:
                把客户整合到软件开发流程中
                随时设计
                随时测试
                不做过当的设计,越简单越好

工具
    UML绘制工具
    程式码分析工具:
        FxCop
    测试工具:
        NUnit是一个免费的单元测试工具
    原始码管理工具:
        版本管理工具(Visual SourceSafe 、CVS 、 WinCVS)
    文件产生工具:
        XML注解
    Make工具:
        是一个在Unix系统上常用的工具,用自动化整个软件的组建(编译)流程。
        NMake是视窗版的

  我好像学了一门古老的语言,而且跟语法都没有关系,介绍了从最初的程序设计到后来的软件工程,从软件设计到程序的编译会产生什么文件,需要那些系统工具的支持,比如CLR、DLL等等,再到软件的部署、维护用到的技术、工具和方法,从一个更加接触底层的角度去学习了软件的整个流程。   视频里面讲了好多都不认识的系统软件,原来我们编写的程序要真正的发布运行还需要学习很多的东西,不仅仅只是写完代码就ok了,还要考虑不同平台上的运行,并发操作带来的问题,需要有什么样的支撑环境等等一系列的工作。@H_403_12@

猜你在找的VB相关文章