您的位置:首页技术开发ASP教程 → asp.net高级教程(二)- 转换编程思维

asp.net高级教程(二)- 转换编程思维

时间:2004/11/7 4:13:00来源:本站整理作者:蓝点我要评论(1)

上次的内容说过asp.net和asp的最大区别在于编程思维的转换,那么我们现在就来看看如何转换编程思想。以前的web编程从cgi(perl)到asp,php,jsp的编程过程都是这样:美工人员给出页面原型,编程人员照页面填空,最后堆起来算完,下次如果原型变动,那么就再修改程序,这样业务逻辑和html页面混在一起,可以说是事倍功半。那么,现在有了asp.net,我们应该怎么做呢?



    让我们找个实际的例子,就拿论坛来说吧,先从顶至下看看它的业务逻辑。我们可以把一个论坛视做一个对象,它有自己的属性和方法,常见的属性有名称、贴子数、用户数、版面数等等,这样的话,我们就可以这样来构造论坛对象:



namespace MyOwnClass

{

    using System;

    using System.Data.SQL ;

    using System.Data ;

    

    ////////////////////////////////////////////////////////////////////

    //

    // Class Name :       BBS

    //

    // Description:       论坛类,构造一个论坛对象

    //

    // date:              2000/02/03

    //

    /// ////////////////////////////////////////////////////////////////

    public class BBS

    {

        //私有变量

        private string m_strTitle ;        //bbs名称

        private int m_intForumCount ;        //版面数

        private int m_intTopicCount ;        //贴子数

        private int m_intUserCount ;        //注册用户数

        

        //属性

        public string Title

        {

            get

            {

                return m_strTitle ;

            }

        }



        public int ForumCount

        {

            get

            {

                return m_intForumCount ;

            }

        }



        public int TopicCount

        {

            get

            {

                return m_intTopicCount ;

            }

        }



        public int UserCount

        {

            get

            {

                return m_intUserCount ;

            }

        }



        //构造函数

        public BBS(string a_strTitle)

        {

            //

            // TODO: Add Constructor Logic here

            //

            m_strTitle = a_strTitle ;



            //读取数据库

            MyConnection myConn = new MyConnection() ;

            SQLCommand myCommand = new SQLCommand() ;

            myCommand.ActiveConnection = myConn ;

            myCommand.CommandText = "up_GetBBSInfo" ;    //调用存储过程

            myCommand.CommandType = CommandType.StoredProcedure ;



            try

            {

                myConn.Open() ;

                SQLDataReader myReader ;

                myCommand.Execute(out myReader) ;

                if (myReader.Read())

                {

                    m_intForumCount = (int)myReader["ForumCount"] ;

                    m_intTopicCount = (int)myReader["TopicCount"] ;

                    m_intUserCount  = (int)myReader["UserCount"] ;

                }

                else

                {

                    throw(new Exception("表或存储过程不存在")) ;

                }



                //清场

                myReader.Close();

                myConn.Close() ;

            }

            catch(SQLException e)

            {

                throw(new Exception("数据库出错:" + e.Message)) ;

            }



        }

    }

}



    这个bbs类很简单,有四个私有变量,对应四个只读属性,方法只有一个带参数的构造函数,作用是从数据库中读取相应的数据,填充四个私有变量。类构造好了,让我们看看如何使用,在需要显示论坛这些属性的页面文件里(.aspx)里,构造四个Label,象这样:

     

       

          

          

       

       

          

          

       

       

          

          

       

      


              注册用户数:

          
    

              

          


              贴子总数:

          
    

              

          


              版面数:

          
    

              

          


然后在对应的c#文件里这样使用:



        protected void Page_Init(object sender, EventArgs e)

        {

            //

            // CODEGEN: This call is required by the ASP+ Windows Form Designer.

            //

            InitializeComponent();



                //初始化页面对象

            //创建bbs对象

            try

            {

                m_objBBS = new BBS("鹰翔山庄论坛") ;

            }

            catch(Exception exp)

            {

#if DEBUG

                Response.Write ("初始化bbs对象出错:" + exp.Message + "
") ;

                return ;

#endif//DEBUG

                Server.Transfer("error.aspx") ;

            }

            

            //论坛名称

            lblBBSName.ForeColor = Color.White ;

            lblBBSName.Text = m_objBBS.Title ;



            //用户数

            lblUserCount.ForeColor = Color.White ;

            lblUserCount.Text = m_objBBS.UserCount.ToString() ;



            //文章数

            lblTopicCount.ForeColor = Color.White ;

            lblTopicCount.Text = m_objBBS.TopicCount.ToString() ;



            //版面数

            lblForumCount.ForeColor = Color.White ;

            lblForumCount.Text = m_objBBS.ForumCount.ToString() ;

        }



    看出这样使用的好处吗?对,就是业务逻辑和html代码分开,这样无论页面原型如何修改,代码都不需要做丝毫改动。bbs对象构造好了,让我们看看论坛的其他对象,他们分别是用户(BBSUser)、版面(Forum)和贴子(Topic) , 我将在下节的内容里详细解释。




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 《龙珠:超宇宙》 战斗E3 2014:瘆人僵尸《消 asp代码实现access数据导出到excel文件如何使用FSO读取Js文件内容并可以编辑修改对初学者有用的一些asp函数集学习ASP编程必会的代码

人气排行 asp代码实现access数据导出到excel文件asp不需要任何配置的伪静态实现如何使用FSO读取Js文件内容并可以编辑修改asp去除html标记和空格的代码Asp全选删除代码教大家网页伪静态知识及其2种实现方法Microsoft SQL Server 7.0安装问题(一)ASP.NET中的Code Behind技术4