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);
                }
    
            }
    

      

  • 相关阅读:
    android加固系列—2.加固前先要学会破解,调试内存值修改程序走向
    算法—12.广度优先搜索
    算法—11.深度优先搜索
    算法—10.红黑二叉查找树
    算法—二叉查找树的相关一些操作及总结
    binary_search
    no title
    be face up to early
    Linux虚拟机网络配置
    网络工程问题历史遗留
  • 原文地址:https://www.cnblogs.com/sunbin123/p/6661342.html
Copyright © 2011-2022 走看看