这一章节主要讲述NClay框架的MVC在实际应用的入门,开发人员可以通过该案例程序可以看到区别于传统WebForm和MonoRail的MVC全新开发模式实现;在NClay中并不需要象传统MVC组件那样实现Controller,这部分完全由NClay内部实现;开发人员通过attribute来描述View和Model的关联处理。NClay还引入的接口规范,设计人员在设计系统时必须把业务相关逻辑接口化来实现功能。

下面通过一个类别处理需求来讲述NClay的处理过程:

逻辑接口和逻辑制定

首先思考类别处理的逻辑有那些,简单的定义有获取,修改,添加和查询等。总结功能后就制定相关接口:

public interface ICategoryView

{

IList<Categories> Categories

{

get;

set;

}

}

public interface ICategorySave

{

Categories Category

{

get;

set;

}

}

public interface ICategoryLoad

{

Categories Category

{

get;

set;

}

int CategoryID

{

get;

set;

}

}

逻辑接口制定完成后接下来就是对接口处理的逻辑处理器

[NClay.MVC.Controller]

public class LogicHandler

{

public void View(ICategoryView logic)

{

Expression exp = new Expression();

logic.Categories = exp.List<Categories>();

}

public void Save(ICategorySave logic)

{

if (logic.Category.CategoryID > 0)

DaoContext.Edit(logic.Category);

else

DaoContext.Add(logic.Category);

}

public void Load(ICategoryLoad logic)

{

if (logic.CategoryID > 0)

{

logic.Category = DaoContext.Load<Categories>(logic.CategoryID);

}

}

}

虽然以上代码处理并不完善,但已经足够体现框架的处理模式。

视图的实现

当接口和处理逻辑都实现后View需要做的事情就是实现相关接口和控制器的描述了。

[NClay.MVC.Tag("~/Categories.aspx")]

[NClay.MVC.Get(typeof(ICategoryLoad))]

[NClay.MVC.Post(typeof(ICategorySave))]

[NClay.MVC.All(typeof(ICategoryView))]

public class CategoriesView:ICategorySave,ICategoryView,ICategoryLoad

{

#region ICategoryLoad 成员

[NClay.MVC.Bind("item")]

public Categories Category

{ get; set; }

public int CategoryID

{ get; set; }

#endregion

#region ICategoryView 成员

IList<Categories> ICategoryView.Categories

{ get; set; }

#endregion

}

[NClay.MVC.Tag("~/Categories.aspx")]

描述当接受Categories.aspx页面请时框架初始化这个视图对象

[NClay.MVC.Get(typeof(ICategoryLoad))]

当页面请求为Get时执行ICategoryLoad逻辑

[NClay.MVC.Post(typeof(ICategorySave))]

当页面请求为Post时执行ICategorySave逻辑

[NClay.MVC.All(typeof(ICategoryView))]

任何请求都处理ICategoryView逻辑

到这里已经描述了NClay的处理过程,对于HTML输出描述就不在这里贴出来了可以下载案例代码了解详情。从实现的代码中可以看到代码非常规范和清晰,就也是NClay框架的出发点。

在线演示

下载案例程序

NClay框架MVC应用入门相关推荐

  1. spring框架mvc框架_Spring的MVC测试框架入门–第1部分

    spring框架mvc框架 最新推出的主要Spring框架是Spring MVC测试框架,Spring Guys声称它是"一流的JUnit支持,可通过流畅的API测试客户端和服务器端Spri ...

  2. spring框架mvc框架_Spring MVC测试框架入门–第2部分

    spring框架mvc框架 这个迷你系列的第一个博客介绍了Spring MVC测试框架,并演示了其在单元测试Spring MVC Controller类中作为控制器而不是POJO进行单元测试的用途. ...

  3. .NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比

    在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)--初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy的优势在哪里?和微软的MVC比 ...

  4. Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次 ...

  5. 【公开课视频】ASP.NET MVC+EF入门-20130315

    20130315 .Net MVC+EF 入门公开课 适合:.Net MVC入门者 一.内容概要: 1.MVC设计模式 Model 是指 要处理的业务代码和数据操作代码 View 视图 主要是指的 跟 ...

  6. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. ❤️《Vue前端基础框架集合从入门到高级》(小白也可学,建议收藏)❤️

    <Vue前端基础框架集合从入门到高级>,小白也可学 文章目录 <Vue前端基础框架集合从入门到高级>,小白也可学 ❤️一.前端核心分析 ❤️1.1.概述 ❤️1.2.前端三要素 ...

  8. spring框架mvc框架_5篇Spring框架书籍,通过MVC学习Spring

    spring框架mvc框架 Spring Framework is one of the most widely used Java EE Frameworks. It's an open sourc ...

  9. 视频教程-Python框架Djanggo从入门到实战教程(企业级项目实战)-Python

    Python框架Djanggo从入门到实战教程(企业级项目实战) 多年web开发经验,精通HTML.CSS.JavaScript.HTML5.CSS3等Web前端开发技术,技术纯熟,项目经验丰富.授课 ...

最新文章

  1. 1-Swift中的Struct 和 Class
  2. 陆奇要离职?先看看百度财报吧
  3. 《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.17 如何选择合适的拍摄地点...
  4. JNDI学习总结(1)——JNDI入门
  5. python:dist-packages site-packages
  6. 谷歌浏览器怎么改html5,关于谷歌浏览器不支持html5中audio的autoplay解决方法(js代码解决)...
  7. PHP-7.1 源代码学习:虚拟机字节码
  8. hdu 1598(最小生成树变形)
  9. dqn在训练过程中loss越来越大_DQN算法实现注意事项及排错方法
  10. Spring Cloud Alibaba 简介
  11. 安卓下载保存到本地(一)
  12. 用android ndk编译ffmpeg,AndroidNDK交叉编译FFMPEG
  13. 物联网的下一步动作会是什么?
  14. 奔腾双核linux服务器,Dell推出双核心奔腾服务器
  15. 后端接口如何提高性能?从MySQL、ES、HBASE等技术一起探讨下!
  16. 一个简单的blog系统(十二) 增加友情链接页面
  17. 智能电视无法进入服务器,三星智能电视无法连接到服务器怎么办
  18. 走好职场每一步:关于求职技巧、跳槽迷思、职场困惑
  19. 专升本英语——菜鸟学习笔记【知识点齐全-轻松学习】!!!
  20. 软件测试常用的性能测试指标,7个常用的网络性能测试指标

热门文章

  1. sql ntext 替换存储过程
  2. Linux文件的复制、删除和移动命
  3. 【Google 行销课】 初学者投放AdWords容易出现的26个错误
  4. 微信公众平台PHP开发
  5. php 添加水印, 格式转换, 变换大小 Watermark, png2jpg, resize
  6. Magento重建所有索引方法
  7. delegate和protocol
  8. 人工智障学习笔记——机器学习(8)K均值聚类
  9. Qt QMYSQL driver not loaded 解决办法
  10. 92030302随堂笔记 c# 1614675886