Nfine框架基本使用--初学者的总结

Nfine框架基本使用--初学者的总结

最近要上手的Nfine框架,以前学习Java,上手这个感觉和ssm框架基本类似,基于MVC思想。借鉴了其他博主的帖子终于把这个框架增删改查等一套基本逻辑理清楚了,下面是我的总结内容,附带步骤图片.

1.建立Entity,扩展接口 — 这里是建立一个 Camera_InfoEntity 的Entity,也就是表的实体bean.

namespace NFine.Domain.Entity.SystemManage
{
public class Camera_InfoEntity : IEntity<Camera_InfoEntity>, ICreationAudited, IDeleteAudited, IModificationAudited
{
public string F_Id { get; set; }
public string CameraName{ get; set; }
public double Longitude { get; set; }
public double Latitude { get; set; }
public string Position { get; set; }
public int? VLAN { get; set; }
public string IP { get; set; }
public string Mask { get; set; }
public string Gateway { get; set; }
public int? Port { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Remark { get; set; }
public string F_ParentId { get; set; }
public int? F_Layers { get; set; }
public string F_EnCode { get; set; }
public string F_FullName { get; set; }
public string F_CategoryId { get; set; }
public int? F_SortCode { get; set; }
public bool? F_DeleteMark { get; set; }
public bool? F_EnabledMark { get; set; }
public string F_Description { get; set; }
public DateTime? F_CreatorTime { get; set; }
public string F_CreatorUserId { get; set; }
public DateTime? F_LastModifyTime { get; set; }
public string F_LastModifyUserId { get; set; }
public DateTime? F_DeleteTime { get; set; }
public string F_DeleteUserId { get; set; }
public double F_px_X { get; set; }
public double F_px_Y { get; set; }
}
}

2.在同项目下的04 IRepository,建立仓库接口。----这里是声明了名字 ICamera_InfoRepository 的仓库接口,其绑定的IRepositoryBase就是
第一步声明的Camera_InfoEntity.
相当于service层的接口声明,绑定了返回的实体类.

namespace NFine.Domain.IRepository.SystemManage
{
public interface ICamera_InfoRepository : IRepositoryBase<Camera_InfoEntity>
{
}
}

3、在maping中添加映射,其实就是在context中声明你的表名称。 ----这里就是声明了Camera_InfoEntity这个实体类对应的表的和表的主键.
相当于在mybatis中添加表的映射,用反向工程自动生成一套增删改查.

namespace NFine.Mapping.SystemManage
{
public class Camera_InfoMap : EntityTypeConfiguration<Camera_InfoEntity>
{
public Camera_InfoMap()
{
this.ToTable(“ZDYJ_Camera_Info”);
this.HasKey(t => t.F_Id);
}
}
}

4.在NFine.Repository项目中继承接口. ----这里是创建一个类Camera_InfoRepository 继承了 ICamera_InfoRepository 仓库接口。
相当于service层的serviceImpl,serviceImpl实现了接口service.

namespace NFine.Repository.SystemManage
{
public class Camera_InfoRepository : RepositoryBase<Camera_InfoEntity>, ICamera_InfoRepository
{
}
}

5.在NFine.Application中实现应用服务。—用仓库接口 ICamera_InfoRepository 多态实现创建一个 service,
private ICamera_InfoRepository service = new Camera_InfoRepository();
service 调底层框架已经封装好的几个方法操作数据库增删改查。
相当于在Dao层serviceImpl 调 某个表的mapping中已经写好的方法.

namespace NFine.Application.SystemManage
{
public class Camera_InfoApp
{
private ICamera_InfoRepository service = new Camera_InfoRepository();

    public List<Camera_InfoEntity> GetList1(Pagination pagination, string keyword)
    {
        var expression = ExtLinq.True<Camera_InfoEntity>();
        if (!string.IsNullOrEmpty(keyword))
        {
            expression = expression.And(t => t.CameraName.Contains(keyword));
        }
        return service.FindList(expression, pagination);
    }
    public List<Camera_InfoEntity> GetList()
    {
        return service.IQueryable().ToList();
    }
    public Camera_InfoEntity GetForm(string keyValue)
    {
        return service.FindEntity(keyValue);
    }
    public void DeleteForm(string keyValue)
    {
        if (service.IQueryable().Count(t => t.F_ParentId.Equals(keyValue)) > 0)
        {
            throw new Exception("删除失败!操作的对象包含了下级数据。");
        }
        else
        {
            service.Delete(t => t.F_Id == keyValue);
        }
    }
    public void SubmitForm(Camera_InfoEntity Camera_InfoEntity, string keyValue)
    {
        if (!string.IsNullOrEmpty(keyValue))
        {
            Camera_InfoEntity.Modify(keyValue);
            service.Update(Camera_InfoEntity);
        }
        else
        {
            Camera_InfoEntity.Create();
            service.Insert(Camera_InfoEntity);
        }
    }
}

}

5.1. service可以调用的方法就是在IRepositoryBase中定义的通用方法.返回的TEntity也就是调用绑定的实体bean.

namespace NFine.Data
{
///
/// 仓储接口
///
/// 实体类型

public interface IRepositoryBase<TEntity> where TEntity : class,new()
{
    int Insert(TEntity entity);
    int Insert(List<TEntity> entitys);
    int Update(TEntity entity);
    int Delete(TEntity entity);
    int Delete(Expression<Func<TEntity, bool>> predicate);
    TEntity FindEntity(object keyValue);
    TEntity FindEntity(Expression<Func<TEntity, bool>> predicate);
    IQueryable<TEntity> IQueryable();
    IQueryable<TEntity> IQueryable(Expression<Func<TEntity, bool>> predicate);
    List<TEntity> FindList(string strSql);
    List<TEntity> FindList(string strSql, DbParameter[] dbParameter);
    List<TEntity> FindList(Pagination pagination);
    List<TEntity> FindList(Expression<Func<TEntity, bool>> predicate, Pagination pagination);
}

}

6.在views文件夹先建立各个图层页面,直接ajax的 url: “/SystemManage/Camera_Info/GetGridJson”,
会转到对应controller下面去处理,先new出对应的Camera_InfoApp,Camera_InfoApp去调用第五步中的方法并返回值.

namespace NFine.Web.Areas.SystemManage.Controllers
{
public class Camera_InfoController : ControllerBase
{
private Camera_InfoApp Camera_InfoApp = new Camera_InfoApp();

    [HttpGet]
    [HandlerAjaxOnly]
    public ActionResult GetGridJson(Pagination pagination, string keyword)
    {
        var data = new
        {
            rows = Camera_InfoApp.GetList1(pagination, keyword),
            total = pagination.total,
            page = pagination.page,
            records = pagination.records
        };
        return Content(data.ToJson());
    }

发现好像上传文件下载竟然需要C币,只能把图片一张张发出来,感觉比较乱可以把图片拷贝到一个文件夹,看截图感觉对第一次接触这个框架的上手比较有帮助。
1、建立Entity
2、建立仓库接口
3、在maping中添加映射
4、在项目中继承接口
5、在Application中实现应用服务
5.1、service可以调用的方法
6、建立views调用方法
7、controller接收调用

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: nfine是一个使用C#语言的快速开发框架。它提供了一系列的工具和功能,帮助开发人员更加高效地创建和管理.NET应用程序。 首先,nfine提供了一个功能强大的代码生成器,可以根据数据库表格自动生成实体类、业务逻辑层和数据访问层的代码。通过使用代码生成器,开发人员可以节省大量的时间和精力,快速地建立起应用程序的基本框架。 其次,nfine还提供了一套完善的权限管理系统。通过该系统,开发人员可以方便地对用户、角色和权限进行管理,并通过角色的配置控制不同用户的访问权限。这样做可以保证应用程序的安全性,并且对权限的管理也变得更加简单高效。 此外,nfine还提供了一些常用的功能模块,如日志记录、异常处理、任务调度等。这些功能模块可以帮助开发人员更好地管理应用程序的各个方面,并提升应用程序的性能和稳定性。 最后,nfine采用了模块化的设计理念,使得开发人员可以将应用程序拆分成独立的模块进行开发。这种设计方式可以提高开发的灵活性和可维护性,使得团队合作更加容易。 综上所述,nfine快速开发框架是一个功能强大、易于使用的开发工具,它能够帮助开发人员更快地开发出高质量的.NET应用程序。无论是对于个人开发者还是团队开发者来说,nfine都是一个值得尝试的选择。 ### 回答2: nfine是一款快速开发框架,它是基于.NET技术栈的 web 开发框架。该框架具有简单易用的特点,为开发者提供了一套高效快速的开发工具和组件。 首先,nfine提供了一系列的代码生成工具,如代码生成器、表单设计器等,可以帮助开发者快速生成基础代码和界面布局。使用这些工具,开发者只需简单配置相关参数,就能生成带有基本增删改查功能的代码,大大减少了开发时间和人力成本。 其次,nfine内置了丰富的功能模块和扩展组件,如权限管理模块、报表生成器、工作流引擎等,可以满足各种常见的业务需求。这些功能模块和组件可以快速集成到项目中,省去了开发者自行实现的繁琐过程。 此外,nfine采用了模块化开发的架构,每个模块都是独立的,可以独立部署和升级,灵活性很高。开发者可以根据需要选择性地引入和使用某个模块,无需整个框架的依赖。 最后,nfine还提供了完善的技术文档和示例代码,供开发者学习和参考。它的社区活跃度也很高,开发者可以通过社区进行交流和分享,获取帮助和支持。 总体来说,nfine是一款功能强大、易用高效的快速开发框架。它能够帮助开发者快速构建稳定可靠的系统,提高开发效率,减少开发成本。无论是个人开发者还是团队,都能从nfine中获得便利和帮助。 ### 回答3: nfine快速开发框架Nfine Rapid Development Framework)是一款基于Microsoft.NET平台的快速开发框架。它专注于帮助开发人员快速构建可靠、高效的企业级应用程序。 首先,nfine提供了丰富的模版和代码生成器,使开发人员能够快速生成业务代码。通过简单的配置,可以自动生成各种基础的功能模块,包括用户管理、权限管理、角色管理、部门管理等。这大大节省了开发时间,避免了重复劳动。 其次,nfine具有良好的可扩展性。开发人员可以根据实际需求,通过自定义模版和插件来扩展框架的功能。不论是添加新的业务模块,还是修改现有功能,都可以通过简单的配置和代码编写来实现。 另外,nfine还支持分布式部署和云平台。它可以轻松地与其他系统进行集成,无论是在本地服务器上部署还是在云平台上运行。这为企业提供了更大的灵活性和可扩展性,能够满足各种复杂的环境要求。 此外,nfine还提供了丰富的技术支持和文档资源。开发人员可以通过在线文档和社区论坛获取帮助和解决问题。这使得开发人员能够更好地利用nfine框架进行项目开发,并能够更快地解决遇到的技术难题。 总之,nfine快速开发框架是一款功能强大、易用性高的开发工具。它能够快速生成代码、提供可扩展性、支持分布式部署,并提供全面的技术支持。无论是初学者还是经验丰富的开发人员,都能够通过nfine快速开发框架来提高开发效率、降低开发成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值