XAF应用开发教程(四)应用程序模型

https://www.cnblogs.com/foreachlife/p/xafml.html

XAF是重量型框架,确实够重量的,方方面面都做得规规矩矩。

如果看了前面三节,可能会认为,这N多的Attribute到底都是从哪里来的?到底有多少这样的Attribute?如果不够用了怎么办?等着官方开发吗?

好吧,我不是为了解决上面的这些问题的,从另一个角度来看一下我们的应用程序吧!

我们回过头来看看解决方案中的项目都是做些什么用途吧:

XAF的默认项目结构中,XCRMDemo.Module中写了代码,就会同时生成了web和win项目。

也就是说,上图中的模块是从上到下的继承关系。

但实事上,做过开发的朋友都知道,web中显示的textbox和win中显示的textbox是完全不同的控件,一个是html支持的,一个是winform中的控件。

XAF只是把他们做成了同一个名称的控件,让类型与控件有了对应关系,

但有些时候,Web下面和Win下面可能并没有一个同样功能的控件,

比如我使用了第三方的控件Excel编辑控件,但我只找到了Win版本,没有Web版本,这时,我们只能把控件扩展写到XCRMDemo.Module.Win中去。

再来看看应用程序模型,展开XCRMDemo.Module项目,双击Model.DesignedDiffs.xafml文件,可以看到:

如果你是从上面章节中下载的源码,请编译一次ctrl+shift+B

可以看到,这里可以控制着应用程序中的方方面面功能。

其中,ActionDesign,是对按钮进行设置的,比如之前开发中使用过的New按钮,Save,SaveAndClose等等。

假如我们想要开发的系统仅有中文,也可以直接在这里修改进行汉化。

为了展示效果,我做个简单的修改设置:

如上图所示,我将Cancel的标题,即为在界面上显示的文字修改为“取消”

并用同样的方法将,Delete,New,Save等几个按钮都做修改。

可以看到已经有了变化。

Views:这个是使用频率很高的结点,可以设置视图的多数信息,布局,控件可用,按钮隐藏等等 。

在XAF中,共有4种视图类型:

列表视图

详细视图

搜索视图

DashboardView

其实在过去的章节中,除了DashboardView以外,我们都已经见过了。

例如上图就是列表视图,

点击新建按钮,出现的就是详细视图。

在客户类中,点击选择客户分类的弹出窗口,就是搜索视图。

视图都是根据业务模型推导出来的。也就是说,在BOModel中做的设置,将会生效于BOModel的视图,举例说明:

我们已经写了客户类,在界面上任何地方显示的都是“客户”这两个字,下面我们把文字改成客户信息。

看列表视图效果:

看详情视图效果:

可以看出列表和详细视图经过一次修改都被改变了,这里只是演示标题,看起来是非常简单的,但如果要修改的是其他信息,这个过程其实是非常有用的,一次修改多处变化,不用像普通的开发一样反复的修改很多次。

来再看看视图的修改:

按图上的路径打开详细视图设置,

可以看到右侧的属性设置窗口,其中包含了很多设置,AllowDelete\AllowEdit\AllowNew这些,可以直接控制视图上的按钮显示情况。

此时修改Caption,则只会影响详细视图了。

BOModel是用于模型的设置,指我们建的类,客户,业务对象,DomainObject这些名词都对应着模型,只是叫法不同。

CreatableItems:这里面的模型会在界面上出现一个下拉框,点击后直接调用了新建功能,显示出详细视图。

ImageSources:在导航菜单、各种视图中,会使用到图标信息,这里列出了相关信息。

Localization:这里列出了一部分需要本地化的内容。

NavigationItems:之前在代码中使用过[NavigationItem("基础信息")]这样的Attribute,事实上它是指示此处的NavigationItems的创建,是个树形结构,可以更直观的进行操作修改出想要的结构。

Validation:可以看到系统中用到的所有验证规则,这里还没有演示过,后续将在代码中给出示例。

ViewItems:系统已经存在的编辑器与类型的对应关系,一般不会在这里作修改

原文地址:https://www.cnblogs.com/xyyhcn/p/11719519.html

时间: 2024-11-08 04:30:49

XAF应用开发教程(四)应用程序模型的相关文章

微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo

原文:微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo 教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo 前几章中我讲解了微信开发平台提供第三方平台的好处,和使用流程,如果你看了我的文章相信你对开放平台有了初步的了解,但是在实际的开发过程

公众号第三方平台开发 教程四 代公众号处理消息和事件

公众号第三方平台开发 教程一 创建公众号第三方平台 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取 公众号第三方平台开发 教程三 微信公众号授权第三方平台 公众号第三方平台开发 教程四 代公众号发起网页授权说明 公众号第三方平台开发 教程五 代公众号处理消息和事件 公众号第三方平台开发 教程六 代公众号使用JS SDK说明 另,感谢一下这个大虾的博客,这几篇东西都是在他的博文基础上完成的,他的博客里也有一些接口代码可以下载 微信开发系列

XAF应用开发教程(七)外观控制模块

很多时候,我们需要按照不同的条件显示不同的效果,在传统的软件开发中,我们会直接使用 控件名称.BackColor,Enable,Visible等属性进行控制. 如果一个业务对象在多处使用,要么我们会去一个地方一个地方的修改,要么会集中代码做个方法进行控制. 在XAF中,就实现了一处控制全局生效的方法. 下面我们来看看外观模块: 上图中展示了几种效果:1,整行红色背景.2,蓝色字体加删除线.3编辑时控件禁用.4.单元格颜色变化. 详细界面中,同样生效了,上面两幅图,一个是web的,一个winfor

ERPSYSTEM开发教程03 DEMO程序开发过程

DEMO程序说明 提供了两个演示接口 IBplOne=interface ['{E4C1C5FA-C598-4834-9111-26B52634068D}'] function Add(A,B:Integer):integer; function Sub(A,B:Integer):Integer; end; IDllOne=interface ['{0434DE04-07C9-4623-9009-CF7892768431}'] function GetString:string; procedu

100套最适合自学的实战开发教程视频(程序员都在学)

BAT大咖助力 全面升级Android面试 BAT大牛亲授 基于ElasticSearch的搜房网实战 从天气项目看Spring Cloud微服务治理 Java企业级电商项目架构演进之路  Tomcat集群与Redis分布式 Java深入微服务原理改造房产销售平台 SSM到Spring Boot-从零开发校园商铺平台 Java Spring Boot企业微信点餐系统 Java秒杀系统方案优化-高性能高并发实战 Spring Boot技术栈博客企业前后端 Java SSM快速开发仿慕课网在线教育平

XAF应用开发教程(六)控制器

https://www.cnblogs.com/foreachlife/p/xafviewcontrollerAndValidationContext.html 是的,XAF也是MVC结构的,但不仅限于MVC,ViewModel也存在,它是一项复合技术,AOP,ORM,MVC都有. 真实运行的系统中,仅有增删改查功能肯定是远远不够的,ERP.CRM等系统的开发中,有无数的业务逻辑,通常这些都是在控制器中实现的,控制器有两种: ViewController:应用于视图,需要操作视图的数据. Win

XAF应用开发教程(一) 创建项目

XAF是DevExpress公司的快速开发框架,全称eXpress Application Framework,是企业信息系统的开发利器,快速开发效果显著,在.net框架中,笔者至今没有找到一款可以与之比较的产品.下面以应用为中心,讲述如何应用XAF. 下载与安装,如果你已经安装好了sqlserver和visual studio,请至http://www.devexpress.com 下载试用版,安装完成后即可体验. 我使用的是vs2015+sqlserver 2014(与vs内置一起的). 一

微信公众号开发教程 微信小程序

PHP微信公众平台开发高级篇 http://www.imooc.com/u/197650/courses?sort=publish 微信小程序教程 .链接:http://pan.baidu.com/s/1slmAwDf 密码:ciry

XAF应用开发教程(二)业务对象模型之简单类型属性

https://www.cnblogs.com/foreachlife/p/XAFBOSimpleTypeProperty.html 使用过ORM的朋友对这一部分理解起来会非常快,如果没有请自行补习吧:D. 不说废话,首先,我们来开发一个简单的CRM系统,CRM系统第一个信息当然是客户信息.我们只做个简单 的客户信息来了解一下XAF好了. 新建项之后,可以看到如下代码界面: using System; using System.Linq; using System.Text; using Dev