日期:2014-05-16  浏览次数:21012 次

新闻发布系统 (Asp.net 三层架构 )

                              2012年度课程设计---新闻发布系统(小结)

                                                                                                                                                                                                   -----Presented By muximuxi@Achilles
Tips:因本课程设计大部分代码皆有本人短时间仓促码成,界面恶心,代码丑陋.唯一优点便是:        全部代码都已贴上,并且全部都已注释.另外与Asp.net教程结合恰当,通俗易懂,容易上手.大牛Please PASS.

需求

新闻发布系统需求III
NewsPublish(简称NP)
功能说明
本项目用于对新闻发布进行管理。
1、查看新闻
所有新闻按时间按降序排列;
用户登录后在自己主页可以查看自己当前所发布的所有新闻,在系统首页可以查看系统中所有的新闻;
游客可以查看当前系统所发布的所有新闻。
2、发布新闻
用户登录后,通过填写表单,添加附件或者不添加附件,指定接收人进行新闻发布;
接收人可以为联系人中的某几个人或所有人,其中所有人包括游客。表单见表一。

表一:表单
标题 xxxxxxx
接收人 XXX
发布人 XXX            添加附件 xxx
正文 xxxxxxx

简单需求分析

简单分析:
名词:新闻,用户,主页,表单,附件,接收人,联系人,游客.
抽取名词建立实体类:新闻类(News),用户类(User),附件类(FileService),联系人类(Contact),添加了联系人的新闻类(NewsHaveSetContact)(为了不改变原来的代码,这个类建立应该是很丑陋恶心的,这应该用到设计模式的,这里主要为了展示三层架构就不从设计模式展开,-)_(-)



底层之数据库









项目文件夹部分截图


三层架构代码

Model层

Model层之NewsModel

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace NewsPublish.Model
{
    /// <summary>
    /// 封装News的字段和属性
    /// </summary>
    public class NewsModel
    {

      
        #region NewsModel构造函数

        /// <summary>
        /// NewsModel构造函数
        /// </summary>
        /// <param name="title">新闻标题</param>
        /// <param name="date">新闻发布日期</param>
        /// <param name="content">新闻内容</param>
        /// <param name="newsID">新闻ID(key)</param>
        /// <param name="fileID">新闻所含的上传附件ID(or not)</param>
        public NewsModel(string title, DateTime date, string content, int newsID,int  fileID)
        {
            this._title = title;

            this._date = date;

            this._content = content;

            this._newsID = newsID;

            this._fileID = fileID;

        }
        /// <summary>
        /// 其实建立这个构造函数是为了弥补这个缺陷的:没有绑定用户名;
        /// 不过话说是每一个model只是含有这个样例的
        /// </summary>
        public NewsModel()
        {
    
        }
        #endregion
        

        #region 设置新闻类的属性

        //News标题
        private string _title;

        //News发布时间
        private DateTime _date;

        //发布人
        private string _userName;

        //News内容