XAF应用开发教程(一) 创建项目
XAF是DevExpress公司的快速开发框架,全称eXpress Application Framework,是企业信息系统的开发利器,快速开发效果显著,在.net框架中,笔者至今没有找到一款可以与之比较的产品。下面以应用为中心,讲述如何应用XAF。
下载与安装,如果你已经安装好了sqlserver和visual studio,请至http://www.devexpress.com 下载试用版,安装完成后即可体验。
我使用的是vs2015+sqlserver 2014(与vs内置一起的)。
一、XAF有哪些优点呢?
1,Web项目(b/s)
2,win项目(c/s)
3,平板电脑(beta)
4,移动端(beta)
上述4种项目一次编码,同时生成。其中web/win是两个项目,3,4都是web项目,只是使用了不同的适应界面可以在移动设备和平板电脑上进行浏览操作等。
二、14种数据库支持
可以支持所有常见数据库,如Oracle,MySQL,SqlServer,Access,DB2等等 ,切换数据库无需修改编码。
三、内置模块丰富,涉及到开发中的方方面面,如权限系统、报表系统、数据分析、图表、验证模块、外观模块,等等 。
下面演示一个简单CRM系统中的部分内容。
四、新建项目:
打开VS后,依次选择 文件->新建->项目 后,出现如下画面,展开Visual C#->DevExpress XAF->DevExpress v15.1 XAF Solution Wizard.

在名称中输入一个自己取的项目名称,我输入的是XCRMDemo.并按确定。
出现如下画面:

这里是在询问我们,要创建windows项目还是web项目,通常我会都选中,默认的只有windows选中。点击next.
接下来会出现如下画面,是在询问我们要使用哪种ORM,用过Entity Framework的同学应该会感觉很熟悉有EF 的CodeFirst和ModelFirst可选。
我使用的是XPO,最后一项,为了学习XAF请选择最后一个,后面熟悉了,再用EF也是一样的。

然后出现的是权限模块相关的内容,第一个radio box组选择第二项。Standard(requests login and password)这一项是指开发好的程序需要用到用户名和密码进行登陆。
Active Directory(users windows account)这一项是和域身份绑定的,我一般不用这个。
Database Security选择第一项,Client-Side Security-UI-LevelMode。后面几项以后介绍。
当然,如果这里一开始做项目时没有选对,以后也是有机会可以修改的。

然后会出现选择需要用到的模块的选项。

本项目中只为演示,所以仅选择几个模块:



然后按Finish按钮,项目就开始创建了。
项目创建完成后,我们可以直接按下F5看看XAF为我们创建了什么样的东西出来。

这时会出现这个登陆框,用户名输入 admin,没有密码,按下log on按钮。

可以看到有导航菜单,工具菜单,还有MyDetail的详细界面,当然,你可以点点看看,体会一下:D
好,接下来再看看自动创建web项目是什么样子的:

在解决方案资源管理器中,选中XCRMDEMO.Web,右键,找到“设为起动项目”,然后按下F5.出现如下界面:

同样的,用户名为admin,没有密码。按下logon按钮。进入系统。

好,创建项目完成了。下面我们来看看数据库情况:
1.数据库在哪里呢?
1.1web,找到XCRMDemo.Web中的web.config文件,可以看到如下配置节:
<connectionStrings>
<add name="EasyTestConnectionString" connectionString="Integrated Security=SSPI;Pooling=false;Data Source=(localdb)\mssqllocaldb;Initial Catalog=XCRMDemoEasyTest" />
<add name="ConnectionString" connectionString="Integrated Security=SSPI;Pooling=false;Data Source=(localdb)\mssqllocaldb;Initial Catalog=XCRMDemo" />
<!--
Use the following connection string to connect to a Jet (Microsoft Access) database that is already created and located in the <application root>/app_data folder.
<add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source=|DataDirectory|\XCRMDemo.mdb;Mode=Share Deny None;"/>
If the database doesn't exist, it won't be created until you replace the |DataDirectory| substitution string with the fully qualified path to the database. For instance:
<add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source=C:\myDataFolder\XCRMDemo.mdb;Mode=Share Deny None;"/>
-->
</connectionStrings>
其中,ConnectionString是
Integrated Security=SSPI;Pooling=false;Data Source=(localdb)\mssqllocaldb;Initial Catalog=XCRMDemo 1.2win,找到XCRMDEMO.Win中的App.Config文件,同样会有上面的文字。
看看数据库:

可以看到,XAF程序自动为我们创建了数据库,不用纠结这些表是干什么的,慢慢的就明白了:D 下一节介绍简单的开发。 文章示例项目源码下载
QQ 4603528 QQ群:336090194
XAF应用开发教程(一) 创建项目的更多相关文章
- iOS 9应用开发教程之创建iOS 9项目与模拟器介绍
iOS 9应用开发教程之创建iOS 9项目与模拟器介绍 编写第一个iOS 9应用 本节将以一个iOS 9应用程序为例,为开发者讲解如何使用Xcode 7.0去创建项目,以及iOS模拟器的一些功能.编辑 ...
- (转)Ratchet教程:创建项目
原文:http://www.w3cplus.com/mobile/how-to-create-mobile-project-width-ratchet.html Ratchet教程:创建项目 ...
- MVC5 网站开发之二 创建项目
昨天对项目的思路大致理了一下,今天先把解决方案建立起来.整个解决包含Ninesky.Web.Ninesky.Core,Ninesky.DataLibrary等3个项目.Ninesky.Web是web应 ...
- 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板
标题:从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11155 ...
- node+vue进阶【课程学习系统项目实战详细讲解】打通前后端全栈开发(1):创建项目,完成登录功能
第一章 建议学习时间8小时·分两次学习 总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章]) 视频教程地 ...
- XAF应用开发教程(七)外观控制模块
很多时候,我们需要按照不同的条件显示不同的效果,在传统的软件开发中,我们会直接使用 控件名称.BackColor,Enable,Visible等属性进行控制. 如果一个业务对象在多处使用,要么我们会去 ...
- App开发流程之创建项目和工程基本配置
我的开发环境为:Mac OS X EI Capitan(10.11.6),Xcode 7.3.1 首先说明一下这个项目的初衷,我并非要创建一个完整的上架应用,旨在创建一个可运行的,通用配置.架构,提供 ...
- XAF应用开发教程(六)控制器
是的,XAF也是MVC结构的,但不仅限于MVC,ViewModel也存在,它是一项复合技术,AOP,ORM,MVC都有. 真实运行的系统中,仅有增删改查功能肯定是远远不够的,ERP.CRM等系统的开发 ...
- XAF应用开发教程(四)应用程序模型
XAF是重量型框架,确实够重量的,方方面面都做得规规矩矩. 如果看了前面三节,可能会认为,这N多的Attribute到底都是从哪里来的?到底有多少这样的Attribute?如果不够用了怎么办?等着官方 ...
随机推荐
- python 读取全国城市aqi数据,差值生成png图片
# -*- coding: utf-8 -*- import arcpy import sys import datetime import cx_Oracle import json import ...
- java中OutputStream字节流与字符流InputStreamReader 每一种基本IO流BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWriter,FileInputStream,FileReader,FileWriter,InputStr
BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWri ...
- 模拟http响应头
1.打开需要模拟的页面请求头 2.编码要发送的数据 3.通过fsockopen函数发送请求头 代码如下 //方法二 $URL="http://device.test.com/admin/ma ...
- linux修改mac地址
先禁用网卡ifconfig eth0 down 再用ifconfig eth0 hw ether 新地址 这样就可以了 要想永久修改的话,在/etc/rc.d/rc.local里加上下面三句(/etc ...
- android的基础入门
一. A通信技术 1. 1G 仅限语音的蜂窝式通话标准 2. 2G (时分多路复用)数字语音传输技术和增加接收数据的功能 3. 3G 传输声音和数据的速度有很大的 提升 4. 4 ...
- Catch That Cow 分类: POJ 2015-06-29 19:06 10人阅读 评论(0) 收藏
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 58072 Accepted: 18061 ...
- css基本样式总结
1:背景(background) <!DOCTYPE html> <html> <head lang="en"> <meta charse ...
- JMeter基于http请求的web接口性能测试总结
[本文出自天外归云的博客园] 基于http请求的web接口性能测试总结 压测的目的:对于Web接口压测的目的最终是要在对数据库造成压力的情况下观察压测服务器的cpu是否达到预警值.memory是否发生 ...
- key可以重复的Map集合:IdentityHashMap
所有Map操作中key的值是不能重复的,例如,HashMap操作时key是不能重复的,如果重复则肯定会覆盖之前的内容,如下代码所示. 范例:Map中的key不允许重复,重复就是覆盖 package o ...
- 2016年11月30日 星期三 --出埃及记 Exodus 20:21
2016年11月30日 星期三 --出埃及记 Exodus 20:21 The people remained at a distance, while Moses approached the th ...