现在的位置: 首页 > 综合 > 正文

基于.Net平台的extjs单用户Blog系统发布

2011年01月18日 ⁄ 综合 ⁄ 共 3939字 ⁄ 字号 评论关闭
  这是用.net2.0开发的一个基于ExtSJ技术实现的简单blog系统,演示了ExtJS的综合应用。

  系统后台使用.Net平台,语言为C#,技术构架为NHibernate+Spring.Net+Vifir实现,支持多种数据库,采用三层结构,数据访问层DAO、业务逻辑层及表示层完全分离。DAO层使用的泛型DAO,只需要一个DAO接口即可,不需要写具体的实现。

  系统演示:

  系统下载地址:http://www.vifir.com/download/extblog-net.zip

  下面是系统后台的截图

  

  (登录)

  系统中的一些源码摘要:
域模型:

namespace Vifir.Model.Domain
{
   
public class Topic
    
{
        
private long id;
        
        
private string title;      

        
private string content;
        
        
private string intro;       

        
private TopicCategory category;       

        
private IList<TopicComment> comments = new List<TopicComment>();

       
private DateTime inputTime = DateTime.Now;
       
        
private int readTimes = 0;
       
public virtual long Id
        
{
            
get return id; }
            
set { id = value; }
        }

       
public virtual string Title
        
{
            
get return title; }
            
set { title = value; }
        }

       
public virtual string Content
        
{
            
get return content; }
            
set { content = value; }
        }

       
public virtual string Intro
        
{
            
get return intro; }
            
set { intro = value; }
        }

       
public virtual TopicCategory Category
        
{
            
get return category; }
            
set { category = value; }
        }

       
public virtual IList<TopicComment> Comments
        
{
            
get return comments; }
            
set { comments = value; }
        }

       
public virtual DateTime InputTime
        
{
            
get return inputTime; }
            
set { inputTime = value; }
        }

       
public virtual int ReadTimes
        
{
            
get return readTimes; }
            
set { readTimes = value; }
        }

    }

}

DAO接口

namespace Vifir.Model.DAO
{
    
public interface ITopicDAO : GenericDAO
    
{
    }

}

泛型DAO配置 

<object id="TopicDao" parent="abstractDao">    <property name="proxyInterfaces" value="Vifir.Model.DAO.ITopicDAO"/>    <property name="target">      <object parent="baseDAO" type="Vifir.Core.GenericDAOImpl&lt;Vifir.Model.Domain.Topic>,Vifir.Core" />    </property>  </object>

TopicService业务层实现代码

namespace Vifir.Model.Service.Impl
{
    
public class TopicServiceImpl:ITopicService
    
{
            
private ITopicDAO topicDao;

    
public ITopicDAO TopicDao
    
{
      
set { topicDao = value; }
    }

    

    
public long addTopic(Topic topic) {    
        
this.topicDao.Save(topic);
        
return topic.Id;
    }

    
    
public Topic getTopic(long id) {
        Topic topic 
= this.topicDao.Get(id);
        
return topic;
        }

    
    
public bool delTopic(long id) {    
            Topic topic 
= this.getTopic(id);
            
if(topic.Comments.Count>0)throw new LogicException("该文章下还有评论,不能删除!");
            
if (topic != null{
                
this.topicDao.Remove(id);
                
return true;
            }
            
            
return false;    
    }

    
    
    
public IPageList getTopicBy(IQueryObject queryObject) {    
        
return QueryUtil.query(queryObject, typeof(Topic),this.topicDao);        
    }

    
    
public bool updateTopic(long id, Topic topic) {
        
if (id != default(long))
        
{
            topic.Id
=id;
        }
 else {
            
return false;
        }

        
this.topicDao.Update(topic);
        
return true;
    }
    
    }

}

Web层的添删改查代码:

public partial class manage_Topic : BaseAction
{
    
private ITopicService service;   
    
private ITopicCategoryService categoryService;
    
public ITopicService Service
    
{
        
set { service = value; }
    }

    
public ITopicCategoryService CategoryService
    
{  
        
set { categoryService = value; }
    }


    
public void List()
    
{
        QueryObject qo 
= new QueryObject();
        ToPo(qo);
        
string categoryId = Request.Params["categoryId"];
        
if (categoryId != null && !"".Equals(categoryId))
        
{
            qo.addQuery(
"obj.Category.id"long.Parse(categoryId), "=");
        }

        IPageList pageList 
= service.getTopicBy(qo);
        jsonResult 
= pageList;
    }


    
public

抱歉!评论已关闭.