zoukankan      html  css  js  c++  java
  • 软件系统的分层开发

    (1)其实分层模式可以这样定义:将解决方案中功能不同的模块分到不同的项目中实现,每一层中的组件应保持内聚性,每一层都应该与它下面的各层保持松耦合。

           分层模式是最常见的一种架构模式,甚至可以说分层模式是很多架构模式的基础。

           数据访问层:

              这一层处于最底层,负责与数据库的交互,也成为DAL(Data Access Layer)

           表示层:

             这一层直接与用户打交道,负责显示或者获取数据,也称为UI(User Interface Layer)

    (2).NET程序集是任何.NET Framework应用程序的基本构造块。程序集由描述它的程序集清单(包含版本号,程序集名称等),类型元数据,MSIL代码和资源组成,

            这些部分都分布在一个文件中。

            程序集主要包括以下两类:

            (1)可执行文件,即.exe文件   (2)类库文件,即.dll文件

    (3)程序集,解决方案,项目和命名空间的关系如下:

            (1)一个解决方案可以由一个或者多个项目组成,这些项目可以是Windows应用程序,类库等。

            (2)一个程序集可以包含多个命名空间,程序集默认的命名空间名称就是程序集的名称。

            (3)命名空间是组织C#程序的一种逻辑架构,一个命名空间可以有多个类。

    (4)分层开发的优点:

           (1)代码的复用(2)分离开发人员的关注(3)无损提换(4)降低了系统间的依赖

    (5)异常处理

       常见的异常类型:

          System.Exception :这个类提供系统异常和应用程序异常之间的区别

          System.SQLException :当SQL Server返回警告或者错误时引发的异常

          ArgumentNullException :当将空引用传递给不接受它作为有效参数的方法时引发的异常

          FileNotFoundException :试图访问磁盘上不存在的文件失败时引发的异常

          IOException :当出现I/O错误时,引发此异常

          ApplicationException :在应用程序执行过程中检测到由应用程序定义的异常

      异常类的常用属性:

         Message :提供引起异常的详细信息

         Source :表示导致异常发生的应用程序或者对象的名称

         StackTrace :提供在栈堆上所调用方法的详细信息,并首先显示最近调用的方法

         InnerException :对内部异常的引用,如果此异常基于前一个异常,则内部异常指最初发生的异常

    (6)异常处理回顾

        语法:

    try-catch
     try
    {
      //可能引发异常的工作代码
    }
    catch(异常对象)
    {
     //异常处理
    }
    
    try-finally
     try
    {
     //可能引发异常的工作代码
    }
    finally
    {
     //清理相关对象的代码
    }
    
    try-catch-finally
     try
    {
    //可能引发异常的工作代码
    }
    catch(异常对象)
    {
     //异常处理
    }
    finally
    {
     //清理相关对象的代码
    }
    

      

     public  class StudentDAL
        {
    
            public  void AddStudent()
            {
    
            }
    
            public DataTable SelectStudent()
            {
                string str = "Data Source=.; initial catalog=MySchools;user id=sa;";
                string sql = "select * from student ";
                SqlConnection con = new SqlConnection(str);
                SqlDataAdapter da = new SqlDataAdapter(sql,con);
                DataSet ds = new DataSet();
                
                try
                {
                    //int num = 0;
                    //int result = 1 / num;
                    da.Fill(ds, "stuInfo");
                    return ds.Tables["stuInfo"];
                }
                catch (SqlException ex)
                {
                   
                    throw new Exception("访问数据库失败" + ex.Message);
                }
                catch (DivideByZeroException ex)
                {
                
                    throw new Exception("除数不能为0" + ex.Message);
                }
                catch (Exception ex)
                {
                 
                    throw new Exception("失败" + ex.Message);
                }
    
            }
    

      

  • 相关阅读:
    Oracle常用命令大全(很有用,做笔记)
    表格驱动编程在代码中的应用
    mac 利用svn下载远程代码出现Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
    FAILURE: Build failed with an exception.
    There is an internal error in the React performance measurement code.Did not expect componentDidMount timer to start while render timer is still in progress for another instance
    react native TypeError network request failed
    Android向系统相册中插入图片,相册中会出现两张 一样的图片(只是图片大小不一致)
    react-native Unrecognized font family ‘Lonicons’;
    react-native SyntaxError xxxxx/xx.js:Unexpected token (23:24)
    Application MyTest has not been registered. This is either due to a require() error during initialization or failure to call AppRegistry.registerComponent.
  • 原文地址:https://www.cnblogs.com/sunbin123/p/6661342.html
Copyright © 2011-2022 走看看