ABP_【模块代码】_技术说明书_XXX(模板)-V1.0
BPLA编程手册V1.7
+ (连>续)域 递增数字(字母) ...............................3.0 ...... - (连<续)域 递减数字(字母) ...............................3.0 ...... ^ 设置相同标签的打印数量 .................................3.0 ..... & 设置连续域的位置 ...................................3.0 ......
- 2 -
BPL编A程手册
STX 开J启Z/ 关闭蜂鸣器报警功能 ..............................1.7 ..... STX 打J印Y机 纵向打印位置调整 指令 ............................1.7 ...... STX 系K统 扩展指令 ...................................1.7 ...... STX 检k测 RS-2串3口2..................................1.7 ...... STX 进L入 标签格式指令 .................................1.7 ...... STX 设l置镜像打印 ....................................1.7 ...... STX 设M置 寻找标签的最大长度 ..............................1.8 ...... STX 设m置 打印机计量单位为米制 .............................1.8 ...... STX 设N置 打印机计量单位为点制 .............................1.8 ...... STX 设n置 打印机计量单位为英制 ..............................1.8 ..... STX 切o刀 测试 ......................................1.8 ...... STX 打p印 暂停 ......................................1.8 ...... STX 清Q除 所有模块的内容 ................................1.8 ...... STX 清q除 指定模块的内容 .................................1.9 ..... STX 选r择 反射传感器 ...................................1.9 ...... STX 设S置 进纸速度 ....................................1.9 ...... STX 进s入 单缓冲工作模式 .................................1.9 ..... STX 打T印 打印头测试样张 .................................1.9 ..... STX 检t测 RAM模块 ....................................1.9 ...... STX 标U签 域替换 ....................................1.9 ...... STX 设u置 旋转打印 ....................................2.0 ...... STX 返v回 当前版本信息 ..................................2.0 ..... STX 返W回 内存配置信息 .................................2.0 ...... STX 检w测 FLAS模H块 ..................................2.1 ...... STX 从x模 块中删除指定文件 ................................2.1 ..... STX 输Y出 传感器的值 ..................................2.3 ...... STX 打Z印 内部信息和打印头测试样张 ...........................2.3 ...... STX 压z缩 模块 ......................................2.3 ...... * 注释行.........................................2.3 ......
ABP系列压力传感器说明书
ABP SERIESFor Use in Medical VentilatorsBasic Board Mount Pressure SensorsHigh Accuracy, Compensated/Amplified60 mbar to 1.6 bar | 1 psi to 15 psiDigital or Analog Output, Liquid Media CapableDESCRIPTIONThe ABP Series are piezoresistive siliconpressure sensors offering a ratiometricanalog or digital output for readingpressure over the specified full scalepressure span and temperature range.They are calibrated and temperaturecompensated for sensor offset,sensitivity, temperature effects andaccuracy errors (which include non-linearity, repeatability and hysteresis)using an on-board Application Specific Integrated Circuit (ASIC). Calibrated output values for pressure are updated at approximately 1 kHz for analog and2 kHz for digital. All products are designed and manufactured according to ISO 9001 standards.• Dry gases option: The input port is limited to non-corrosive, non-ionic media (e.g., dry air, gases) and should not be exposed to condensation. The gases are limited to media compatible with high temperature polyamide, silicone, alumina ceramic, silicon, gold, and glass.• Liquid media option: Includes an additional silicone-based gel coating to protect the electronics underport P1, which enables use withnon-corrosive liquids (e.g. water and saline) and in applications where condensation can occur. Since port P2 is designed for use with non-corrosive liquids, this option is often suitable for wet-wet differential sensing. DIFFERENTIATION• Enhanced accuracy helps the design engineer fully understand the error in measurement.• Wide supply voltage range offers design flexibility.• Power consumption when utilizing sleep mode option allows for use in battery-powered applications.FEATURES• Measures gage and differentialpressures• Total Error Band (see Figure 1): ±1.5 %FSS• Liquid media option: Allows for wet/wet operation on dual ported devices• Industry-leading long-term stability:±0.25 %FSS• Industry-leading accuracy: ±0.25%FSS BFSL• Wide pressure range: 60 mbar to 1.6 bar |1 psi to 15 psi• As small as 8 mm x 7 mm• High burst pressures (see Table 7)• Calibrated over temperature range of0°C to 50°C [32°F to 122°F]• Operates from a single power supply ofeither 3.3 Vdc or 5.0 Vdc• Output: Ratiometric analog or I2C- orSPI-compatible 12-bit digital• Power consumption: 2 uA typical whenutilizing sleep mode option• Meet IPC/JEDEC J-STD-020D.1 MoistureSensitivity Level 1 requirements• REACH and RoHS compliant• Options: Internal diagnostic function,liquid media, sleep mode, temperatureoutput32350389Issue AVALUE TO CUSTOMERS• Simplifies design-in: Small sizesaves room on the PC board (PCB),or simplifies design in smaller andlower power devices. Meets MoistureSensitivity Level 1 requirements, whichallows for unlimited shelf life whenstored at <30 ºC/85 %RH and, undermost storage conditions, allows forPCB soldering without any materialconcern about solder joint quality dueto aging of the sensor terminals, whichminimizes the concern about agingof the terminals prior PCB assembly.Pressure choices allow engineersto select range required for theirapplication. Leadless SMT, SMT, andDIP package options.• Cost-effective: Small size helpsengineers reduce design andmanufacturing costs while maintainingenhanced performance and reliabilityof the systems they design.• Accurate: Total Error Band (TEB) andwide pressure range enable engineersto optimize system performance byimproving resolution and systemaccuracy. Optional internal diagnosticsvalidate that the sensor readings arecorrect.• Flexible: Supply voltage range, varietyof pressure units, types, and ranges,output options, and wide operatingtemperature range simplify use in theapplication.• Versatile: Wet-media compatibility,sleep mode, and temperatureoutput options make the sensor aversatile choice for Internet of Thingsapplications.• Honeywell Brand: Utilizes proprietaryHoneywell technology, and is protectedby multiple global patents.POTENTIAL MEDICALAPPLICATIONSOxygen concentrators, patientmonitoring, sleep apnea equipment,ventilators/portable ventilators.PORTFOLIOHoneywell offers a varietyof board mount pressuresensors for potential use inmedical and industrial applications.To view the entire product portfolio,click here.FIGURE 1. TOTAL ERROR BANDTotal Error Band (TEB) is a single specification that includes allpossible sources of error. TEB should not be confused with accuracy, which is actually a component of TEB. TEB is the worst error that the sensor could experience. The TEB specification on a datasheet may be confusing. Honeywell uses the TEB specification in its datasheet because it is the most comprehensive measurement of a sensor’s true accuracy. Honeywell also provides the accuracy specification in order to provide a common comparison with competitors’ literature that does not use the TEB specification. Many competitors do not use TEB—they simply specify the accuracy of their device. Theiraccuracy specification, however, may exclude certain parameters. On their datasheet, the errors are listed individually. When combined, the total error (or what would be TEB) can be significant.All Possible Errors2Ratiometricity of the sensor (the ability of the device output to scale to the supply voltage) is achieved within the specified operating voltage.3The sensor is not reverse polarity protected. Incorrect application of supply voltage or ground to the wrong pin may cause electrical failure. 4Operating temperature range: The temperature range over which the sensor will produce an output proportional to pressure.5Compensated temperature range: The temperature range over which the sensor will produce an output proportional to pressure within the specified performance limits.6Temperature output option: Typical temperature output error over the compensated temperature range of 0°C to 50°C. Operation in Sleep Mode may affect temperature output error depending on duty cycle. 7Total Error Band: The maximum deviation from the ideal transfer function over the entire compensated temperature and pressure range. Includes all errors due to offset, full scale span, pressure non-linearity, pressure hysteresis, repeatability, thermal effect on offset, thermal effect on span, and thermal hysteresis.8Full Scale Span (FSS): The algebraic difference between the output signal measured at the maximum (Pmax.) and minimum (Pmin.) limits of the pressure range. (See Figure 2.)9Accuracy: The maximum deviation in output from a Best Fit Straight Line (BFSL) fitted to the output measured over the pressure range at25°C [77°F]. Includes all errors due to pressure non-linearity, pressure hysteresis, and non-repeatability.FIGURE 2. TRANSFER FUNCTION LIMITS 1Analog VersionsDigital Versions1Transfer Function “A” is shown. See Figure 3 for other available transfer functions.0102030405060708090100123456789101.5% Total Error BandP min.P max.Pressure (example unit)O u t p u t (%V s u p p l y )0.8 x Vsupply P max. – P min.Output (V) =x (Pressure applied – P min.) + 0.10 x VsupplyIdeal80%P max. – P min.Output (% of 214 counts) =x (Pressure applied – P min.) + 10%O u t p u t (% o f214 c o u n t s )010203040506070809010012345678910Pressure (example unit)P min.P max.1.5% Total Error BandIdealFIGURE 3. NOMENCLATURE AND ORDER GUIDEFor example, ABPDNNN150PGAA3 defines an ABP Series Amplified Basic Pressure Sensor, DIP package, NN pressure port, dry gases only, no diagnostics, 150 psi gage pressure range, analog output type, 10% to 90% of Vsupply (analog), transfer function,no temperature output, no sleep mode, 3.3 Vdc supply voltage.1 Custom pressure ranges are available. Contact Honeywell Customer Service for more information.2See the explanation of sensor pressure types in Table 4. 3The transfer function limits define the output of the sensor at a given pressure input. By specifying Pmin. and Pmax., the output at Pmin. and Pmax., the complete transfer function of the sensor is defined. See the graphical representations of the transfer function in Figure 3.to the operating pressure range. Exposure to higher pressures may cause permanent damage to the product. Unless otherwise specified this applies to all available pressure ports at any temperature with the operating temperature range.2Burst pressure: The maximum pressure that may be applied to the specified port (P1 or P2) of the product without causing escape of pressure media. Product should not be expected to function after exposure to any pressure beyond the burst pressure.3Common mode pressure: The maximum pressure that can be applied simultaneously to both ports of a differential pressure sensor without causing changes in specified performance.V SUPPLYV SUPPLY V OUT *Ground*Analog output version only.0.1 uF0.001 uF*FIGURE 4. RECOMMENDED FILTER CAPFIGURE 5. DIP PACKAGE DIMENSIONAL DRAWINGS (FOR REFERENCE ONLY: MM [IN].)DIP NN: No portDIP AN:Single axial barbed portFIGURE 5. DIP PACKAGE DIMENSIONAL DRAWINGS (CONTINUED)DIP RN: Single radial barbed portDIP RR: Dual radial barbed ports, same sideFIGURE 6. SMT PACKAGE DIMENSIONAL DRAWINGS (FOR REFERENCE ONLY: MM [IN].)SMT NN: No portSMT AN: Single axial barbed portSMT RN: Single radial barbed portSMT RR: Dual radialbarbed ports, both sides4,0FIGURE 7. LEADLESS SMT PACKAGE DIMENSIONAL DRAWINGS (FOR REFERENCE ONLY: MM [IN].)Leadless SMT NN: No portLeadless SMT AN: Singleaxial barbed port32350389-A-EN | A | 04/20© 2020 Honeywell International Inc. All rights reserved.WARRANTY/REMEDYHoneywell warrants goods of its manu-facture as being free of defective materi-als and faulty workmanship during the applicable warranty period. Honeywell’s standard product warranty applies un-less agreed to otherwise by Honeywell in writing; please refer to your order ac-knowledgment or consult your local sales office for specific warranty details. If war-ranted goods are returned to Honeywell during the period of coverage, Honeywell will repair or replace, at its option, without charge those items that Honeywell, in its sole discretion, finds defective. The foregoing is buyer’s sole remedy and is in lieu of all other warranties, expressed or implied, including those of merchantability and fitness for a particular purpose. In no event shall Honeywell be liable for consequential, special, or indirect damages.While Honeywell may provide applica-tion assistance personally, through our literature and the Honeywell web site, it is buyer’s sole responsibility to determine the suitability of the product in the ap-plication.Specifications may change without notice. The information we supply isbelieved to be accurate and reliable as of this writing. However, Honeywell assumes no responsibility for its use.m WARNINGPERSONAL INJURYDO NOT USE these products as safety or emergency stop devices or in any other application where failure of the product could result in personal injury.Failure to comply with theseinstructions could result in death or serious injury.m WARNINGMISUSE OFDOCUMENTATION•The information presented in this product sheet is for reference only. Do not use this document as a product installation guide.•Complete installation, operation, and maintenance information is provided in the instructions supplied with each product.Failure to comply with theseinstructions could result in death or serious injury.ADDITIONAL MATERIALSThe following associated literature is available at :• Product range guide • Installation instructions • Application noteFOR MORE INFORMATIONHoneywell Sensing and Internet ofThings services its customers through a worldwide network of sales offices and distributors. For application assistance, current specifications, pricing or the nearest Authorized Distributor, visit or call:USA/Canada +1 302 613 4491Latin America +1 305 805 8188Europe +44 1344 238258Japan +81 (0) 3-6730-7152Singapore +65 6355 2828Greater China+86 4006396841HoneywellSensing and Internet of Things 830 East Arapaho Road Richardson, TX 75081 。
abp_面向切面的编程_概述说明以及概述
abp 面向切面的编程概述说明以及概述1. 引言1.1 概述本篇文章将详细介绍ABP面向切面编程(Aspect-Oriented Programming,AOP)的概念和应用。
ABP是一种流行的软件框架,它通过AOP技术提供了一种简洁高效的方式来实现面向切面编程。
1.2 文章结构本文将按照以下结构进行阐述:引言部分对ABP面向切面编程进行概述说明;ABP面向切面编程概述部分介绍了ABP和AOP的基本概念;ABP面向切面编程说明部分探讨AOP的原理、ABP中如何实现AOP以及常用的切点和通知类型;ABP的优势和应用案例分析部分评估了ABP在项目开发中的价值,并提供了一些实际应用中的例子;最后,结论和总结部分回顾了整个文章内容,并展望了ABP在软件开发中的前景与挑战。
1.3 目的本文旨在提供关于ABP面向切面编程概述以及其应用场景、原理等方面全面而清晰地说明,同时对其优势和挑战进行合理评估。
读者可以通过本文深入了解并学习如何在自己的项目中使用ABP进行面向切面编程,从而提高软件开发的效率和质量。
2. ABP面向切面编程概述:2.1 什么是ABP:ABP( Boilerplate)是一个开源的应用程序框架,它基于 和Entity Framework等工具,旨在帮助开发人员快速构建现代化的Web应用程序和服务。
ABP提供了一套通用的架构、模式和最佳实践,使开发过程更加简单高效。
2.2 面向切面编程的概念:面向切面编程(Aspect-Oriented Programming,AOP)是一种软件开发技术,其核心思想是将跨越不同模块或对象的特定功能称为“切面”,并在需要时将其应用到目标代码中。
通过这种方式可以有效地提取出系统中共享的关注点,并将其独立处理,从而实现代码逻辑的解耦和重用。
2.3 ABP中面向切面编程的应用场景:ABP框架使用了AOP作为一个核心特性,在许多场景中广泛应用。
以下是一些ABP中常见的应用场景:- 日志记录:通过AOP可以很方便地对各个模块进行日志记录,例如请求日志、异常日志等,在系统运行过程中帮助定位问题并分析性能。
ABP开发框架前后端开发系列---(1)框架的总体介绍
ABP开发框架前后端开发系列---(1)框架的总体介绍ABP是 Boilerplate的简称,ABP是⼀个开源且⽂档友好的应⽤程序框架。
ABP不仅仅是⼀个框架,它还提供了⼀个最徍实践的基于领域驱动设计(DDD)的体系结构模型。
学习使⽤ABP框架也有⼀段时间了,⼀直想全⾯了解下这个框架的整个来龙去脉,并把想把它使⽤历程整理成⼀个系列出来,不过⼀直没有下笔来写这篇⽂章的开篇,就是希望能够深⼊了解,再深⼊了解⼀些,希望⾃⼰能够理解透彻⼀些,不能误⼈⼦弟,也不想和⽹上千篇⼀律的翻译官⽹的内容,官⽹的英⽂介绍也已经很详细了,于是我觉得还是以实际使⽤的过程进⾏⼀定的整理会更好。
初次了解ABP框架,对它还是⾮常惊艳的,它基本上是.NET 领域架构的集⼤成者,⼏乎囊括了我们.NET领域排的上名的各种技术应⽤,⽽且它本⾝可以⽀持.net framework和.net core两种技术流派,对它的介绍也是⾮常感兴趣。
1)ABP框架的特点我们来⼤概了解下ABP框架涉及到的内容。
依赖注⼊,这个部分使⽤ Castle windsor (依赖注⼊容器)来实现依赖注⼊,这个也是我们经常使⽤IOC来处理的⽅式;Repository仓储模式,已实现了Entity Framework、NHibernate、MangoDB、内存数据库等,仓储模式可以快速实现对数据接⼝的调⽤;⾝份验证与授权管理,可以使⽤声明特性的⽅式对⽤户是否登录,或者接⼝的权限进⾏验证,可以通过⼀个很细粒度的⽅式,对各个接⼝的调⽤权限进⾏设置;数据有效性验证,ABP⾃动对接⼝的输⼊参数对象进⾏⾮空判断,并且可以根据属性的申请信息对属性的有效性进⾏校验;审计⽇志记录,也就是记录我们对每个接⼝的调⽤记录,以及对记录的创建、修改、删除⼈员进⾏记录等处理;Unit Of Work⼯作单元模式,为应⽤层和仓储层的⽅法⾃动实现数据库事务,默认所有应⽤服务层的接⼝,都是以⼯作单元⽅式运⾏,即使它们调⽤了不同的存储对象处理,都是处于⼀个事务的逻辑⾥⾯;异常处理,ABP框架提供了⼀整套⽐较完善的流程处理操作,可以很⽅便的对异常进⾏进⾏记录和传递;⽇志记录,我么可以利⽤Log4Net进⾏常规的⽇志记录,⽅便我们跟踪程序处理信息和错误信息;多语⾔/本地化⽀持,ABP框架对多语⾔的处理也是⽐较友好的,提供了对XML、JSON语⾔信息的配置处理;Auto Mapping⾃动映射,这个是ABP的很重要的对象隔离概念,通过使⽤AutoMaper来实现域对象和DTO对象的属性映射,可以隔离两者的逻辑关系,但是⼜能轻松实现属性信息的赋值;动态Web API层,利⽤这个动态处理,可以把Application Service 直接发布为Web API层,⽽不需要在累赘的为每个业务对象⼿⼯创建⼀个Web API的控制器,⾮常⽅便;动态JavaScript的AJax代理处理,可以⾃动创建Javascript 的代理层来更⽅便使⽤Web Api,这个在Web层使⽤。
HP BBOSS MDB模块详细设计 v1.0
中国移动一级集团客户业务支撑系统二期工程项目HP BBOSS MDB模块详细设计中国惠普有限公司通信及媒体行业软件服务部二○○九年三月文档信息分发名单版本记录产权说明本文件中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属中国惠普有限公司和中国移动通信集团公司所有,受到有关产权及版权法保护。
任何个人、机构未经中国惠普有限公司和中国移动通信集团公司双方的书面授权许可,不得复制或引用本文件的任何片断,无论是通过电子形式或非电子形式。
目录产权说明................................................................................................................................................................. I II 目录......................................................................................................................................................................... I V 1.文档介绍.. (1)1.1.文档的目的 (1)1.2.概念和定义 (1)1.3.相关文档 (1)2.模块概述 (2)2.1.系统功能目标 (2)2.2.设计思路 (2)2.3.与外部模块的接口 (2)2.4.总体内部架构 (3)3. MDB模块详细设计 (4)3.1. MDB用例图 (4)3.2.子功能层次图 (4)3.3.子功能层次介绍 (5)3.3.1.内存数据库 (5)3.3.2.定时更新 (5)3.3.3.数据文件生成 (5)3.3.4.外部接口 (5)3.3.5.数据查询客户端 (5)3.3.6.实时更新 (5)3.4.类框架图 (6)3.5.主要功能类的说明 (6)3.5.1. CShmDatabase类说明 (6)3.5.2. CMDBTable类说明 (6)3.5.3. CMDBField类说明 (6)3.5.4. CMDBIndex类说明 (7)3.5.5. CShmMan类说明 (7)4. MDB程序的处理逻辑 (8)4.1.启动说明 (8)4.2.信号量Read/Write互斥流程图 (8)4.3.客户进程和服务进程互斥场景 (8)4.4.文件和配置 (10)4.4.1.目标文件 (10)4.4.2. mdb_main进程的启动 (11)4.4.3.配置文件mdb_serv.cfg (11)4.4.4. .profile文件设置 (12)4.5.内存结构 (12)4.6.停止 (12)5. MDB使用说明 (13)5.1.使用方法 (13)5.2.备注 (13)6.非功能性说明 (15)6.1.日志输出 (15)6.2.如何被HA monitor监控 (15)7. 附录 (16)7.1.附录1:数据库中表定义示例 (16)7.2.附录2:对应的MDB表定义示例 (16)7.3.附录3:对外接口使用范例 (17)图1: MDB系统框图 (3)图2: MDB用例图 (4)图3: MDB子功能层次图 (4)图4: MDB类框架图 (6)图5: 信号量读写互斥流程图 (8)图6: 内存结构图 (12)1.2.文档介绍2.1.文档的目的本详细设计文档主要描述系统中对外接口以及系统内部的实现,各组件的实现以及组件之间的关系,为代码实现人员提供开发依据,并为后期运维人员提供运维指导。
APB PLC样本中 文手册
5.1 APB-22MRA型技术参数…………………………………………………………… 61 5.2 APB-12MRD/APB-22MRD型技术参数………………………………………… 62 5.3 APB-12MTD/APB-22MTD型技术参数………………………………………… 64 5.4 APB-12MGD/APB-22MGD型技术参数………………………………………… 65 5.5 APB-22ERA/APB-22ERD/APB-22ETD/APB-22EGD扩展模块技术参数……… 65 5.6 APB系列产品通用技术参数……………………………………………………… 71
第一章 APB简介
1
第一章 APB简介
APB(Array Programmable Block) 智 能 控 制 器 是 一 种 新 型 的 可 编 程 控 制 器, 它 采 用 功 能 块 FBD(Function Block Diagram) 方式编写程序,比起传统的 PLC 编程(梯形图和指令)方式,更为简单、 易学。利用一套免费的编程软件同时实现对 APB 系列主机和 APB 的人机界面的编程是 APB 系列 产品的主要设计思想。无须连接另外的人机界面,在 APB-SLCD 上可以显示 APB 系列产品的输入 输出状态、计时器、计数器、以及模拟量功能块的设定值和运行值。从而方便操作人员实时监控 PLC 的运行状态。目前,APB 的使用可以遍布工业、农业、家庭等自动化控制等各个方面,真正 的无所不在。
目 录
第一章 APB简介 ……………………………………………………………… 1
1.1 APB的结构 …………………………………………………………………………… 1 1.2 APB系列产品命名规则 ……………………………………………………………… 2 1.3 APB系列产品规格型号 ……………………………………………………………… 2 1.4 APB特性 ……………………………………………………………………………… 3
ABP框架模板开发手册
ABP框架模板开发手册杭州蒙特信息技术有限公司2018年1月目录1ABP框架介绍 (3)1.1ABP简介 (3)1.2ABP多层结构 (3)1.3ABP环境 (5)1.4开发环境 (5)2搭建网站 (5)2.1获取源码 (5)2.2搭建数据库 (6)2.3搭建站点 (8)3模块开发 (9)3.1领域层 (9)3.2应用层 (18)4后台页面 (22)5前台页面 (27)6后台配置....................................................................................................错误!未定义书签。
1ABP框架介绍1.1ABP简介我们总是对不同的需求开发不同的应用。
但至少在某些层面上,一次又一次地重复实现通用的和类似的功能。
如:授权,验证,异常处理,日志,本地化,数据库连接管理,设置管理,审核日志等功能。
所以我们创建架构和最佳实践,如分层和模块架构,DDD,依赖注入等,并尝试开发应用时基于一些约定。
由于所有这些是非常耗时而且很难单独创建并可适用于每个项目,许多公司创建自己的框架,他们用自己的框架能快速开发新应用而且不出错。
但不是所有的公司都是幸运的,大部分公司没有时间,预算和团队来开发好的框架。
他们甚至都没有可能创建一个框架,因为编写文档,培训开发人员和维护框架都是非常困难的。
Boilerplate (ABP) 是一个开源并且有丰富文档的应用框架,开发宗旨是:“为所有公司,所有开发人员,开发出一个通用框架!”,而且不只是一个框架,同时提供一个强大的基于DDD的构架模型和最佳实践。
1.2ABP多层结构一个应用的代码库的分层是一个广为接受的技术,用来减少复杂度和提高代码复用性。
ABP依照DDD理念来分层,在DDD里有4个基本的层:•表示层:为用户提供一个界面。
使用应用层来完成用户交互。
•应用层:表示层与领域层的媒介。
ABP-菜单配置(导航栏选中高亮,高亮并定位当前标题)
ABP-菜单配置(导航栏选中⾼亮,⾼亮并定位当前标题)配置⼀个如上图所⽰的菜单;1.打开⽂件NavigationProvider.cs添加如下代码(如下图所⽰).AddItem(new MenuItemDefinition( PageNames.App.Tenant.Test,//⼀个常量,控制菜单是否被选中 L("Test"),//菜单显⽰名称,在语⾔⽂件中配置 url: "Mpa/Test",//菜单路径 icon: "icon-globe",//菜单图标))2.打开⽂件PageNames.cs【..\MyCompanyName.AbpZeroTemplate.Web\App_Start\Navigation\PageNames.cs】在代码中添加⼀个常量public static class Tenant{public const string Dashboard = "Dashboard.Tenant";public const string Settings = "Administration.Settings.Tenant";public const string Test = "Test";//这⾥是添加的常量}3.打开语⾔⽂件AbpZeroTemplate-zh-CN.xml【..\MyCompanyName.AbpZeroTemplate.Core\Localization\AbpZeroTemplate\AbpZeroTemplate-zh-CN.xml】在最后添加⼀个键值对<text name="Test" value="测试" />保存⽣成,刷新页⾯即可显⽰,现在点击菜单会报404错误,这是因为我们还没有添加对应的控制器在【..\MyCompanyName.AbpZeroTemplate.Web\Areas\Mpa\Controllers】下添加⼀个Test控制器,并创建Index视图4.Index视图修改此时Index视图中的代码改成这样@using MyCompanyName.AbpZeroTemplate.Web.Navigation@{ViewBag.CurrentPageName = PageNames.App.Tenant.Test;//上⾯所定义就是这个常量,作⽤就是选中菜单时会⾼亮,并定位到当然这个菜单}<h2>测试页⾯</h2>。
volo abp swagger 注释
Volo ABPSwagger 注释一、ABP框架简介ABP框架( Boilerplate)是一个用于构建模块化、测试友好和可维护的应用程序的框架。
它提供了一套完整的基础结构,用于简化应用程序的开发和部署。
ABP框架具有以下特点:1.模块化:允许将应用程序拆分为可独立开发和部署的模块。
2.测试友好:提供了一系列的工具和约定,使得测试代码易于编写和组织。
3.可维护性:通过代码生成和约定,减少了代码冗余和混乱,提高了代码的可维护性。
二、Swagger工具介绍Swagger是一个用于构建、描述和可视化RESTful Web服务的框架。
通过Swagger,可以创建清晰的API文档,并使用自动生成的UI来测试API。
Swagger具有以下特点:1.文档生成:自动生成API的文档,包括请求和响应的格式、参数、错误代码等信息。
2.UI支持:提供了一个自动生成的UI,使得测试和调试API变得简单。
3.版本控制:支持对API进行版本控制,便于对API进行迭代和修改。
三、Volo框架与ABP、Swagger的集成Volo框架是一个轻量级的 Core应用程序框架,它提供了对ABP 和Swagger等工具的支持。
通过Volo框架,可以轻松地将ABP和Swagger集成到应用程序中,实现以下功能:1.API文档生成:使用Swagger框架自动生成API文档,并提供一个可视化的UI界面。
2.注释支持:使用注释来描述API的各个部分,包括请求和响应的格式、参数、错误代码等信息。
这些注释将自动被Swagger解析并添加到API文档中。
3.验证和测试:使用ABP框架提供的验证和测试工具来确保API的行为符合预期。
四、Volo框架注释在API文档中的作用在Volo框架中,注释被用来描述API的行为和约定。
这些注释可以被Swagger解析并添加到生成的API文档中,从而提供以下信息:1.请求和响应格式:通过注释指定请求和响应的格式,例如JSON或XML。
ABP框架的体系结构及模块系统讲解
ABP框架的体系结构及模块系统讲解DDD分层为了减少复杂性和提⾼代码的可重⽤性,采⽤分层架构是⼀种被⼴泛接受的技术。
为了实现分层的体系结构,ABP遵循DDD(领域驱动设计)的原则,将分为四个层次:展现层(Presentation):提供⼀个⽤户界⾯,实现⽤户交互操作。
应⽤层(Application):进⾏展现层与领域层之间的协调,协调业务对象来执⾏特定的应⽤程序的任务。
它不包含业务逻辑。
领域层(Domain):包括业务对象和业务规则,这是应⽤程序的核⼼层。
基础设施层(Infrastructure):提供通⽤技术来⽀持更⾼的层。
例如基础设施层的仓储(Repository)可通过ORM来实现数据库交互。
根据实际需要,可能会有额外添加的层。
例如:分布式服务层(Distributed Service):⽤于公开应⽤程序接⼝供远程客户端调⽤。
⽐如通过 Web API和WCF来实现。
这些都是常见的以领域为中⼼的分层体系结构。
不同的项⽬在实现上可能会有细微的差别。
ABP的体系结构⼀个简单的解决⽅案,⼤致包含5个项⽬:每⼀层可以⽤⼀个或多个程序集来实现。
1.领域层(Domain)领域层就是业务层,是⼀个项⽬的核⼼,所有业务规则都应该在领域层实现。
2.实体(Entity) 实体代表业务领域的数据和操作,在实践中,通过⽤来映射成数据库表。
3.仓储(Repository) 仓储⽤来操作数据库进⾏数据存取。
仓储接⼝在领域层定义,⽽仓储的实现类应该写在基础设施层。
4.领域服务(Domain service) 当处理的业务规则跨越两个(及以上)实体时,应该写在领域服务⽅法⾥⾯。
5.领域事件(Domain Event) 在领域层某些特定情况发⽣时可以触发领域事件,并且在相应地⽅捕获并处理它们。
6.⼯作单元(Unit of Work) ⼯作单元是⼀种设计模式,⽤于维护⼀个由已经被修改(如增加、删除和更新等)的业务对象组成的列表。
[Abp源码分析]一、Abp框架启动流程分析
[Abp源码分析]⼀、Abp框架启动流程分析Abp 不⼀定仅⽤于 Core 项⽬,他也可以在 Console 与 WinFrom 项⽬当中进⾏使⽤,所以关于启动流程可以分为两种,⼀种是 Core 项⽬的启动流程,另外则是 ConsoleApplication/WinFrom 项⽬的启动流程,在这⾥我则是通过 Core 项⽬的启动流程来分析,但是他们的核⼼都是 AbpBootstrapper 这个类。
本⽂章基于 Abp 框架的最新版本。
⼀、Abp 的⼊⼝点1.1 添加服务与启⽤中间件要在 Core 项⽬当中使⽤ Abp 框架的话,第⼀步当然是先添加 Abp.AspNetCore 库啦,之后在我们 Startup 类的 ConfigureAbpService(IServiceCollection services) ⽅法⾥⾯使⽤ AddAbp<TStartupModule>。
⽐如像这样:public IServiceProvider ConfigureServices(IServiceCollection services){return services.AddAbp<HKAbpDemoHostModule>();}注意,这⾥我们 ConfigureService 返回类型变成了 IServiceProvider ,这是因为在 AddAbp ⽅法内部替换了 Ioc 容器,变成了 CastleWindsor,后⾯会接着分析的。
然后我们的 Configure(IApplicationBuilder app, IHostingEnvironment env) ⽅法⾥⾯也会有如下代码:public void Configure(IApplicationBuilder app, IHostingEnvironment env){eAbp();}1.2 配置服务之后来到 AddAbp ⽅法内部,⽂件⽬录位置如下:Abp\src\Abp.AspNetCore\AspNetCore\AbpServiceCollectionExtensions.cspublic static IServiceProvider AddAbp<TStartupModule>(this IServiceCollection services, [CanBeNull] Action<AbpBootstrapperOptions> optionsActi on = null)where TStartupModule : AbpModule{var abpBootstrapper = AddAbpBootstrapper<TStartupModule>(services, optionsAction);ConfigureAspNetCore(services, abpBootstrapper.IocManager);return WindsorRegistrationHelper.CreateServiceProvider(abpBootstrapper.IocManager.IocContainer, services);}1.2.1 注⼊ AbpBootstrapper在 AddAbpBootstrapper() ⽅法内部将使⽤ AbpBootstrapper 的 Create ⽅法创建⼀个新的 AbpBootstrapper 实例。
ABP框架的基础配置及依赖注入讲解
ABP框架的基础配置及依赖注⼊讲解配置ABP配置是通过在⾃⼰模块的PreInitialize⽅法中来实现的代码⽰例如下:public class SimpleTaskSystemModule : AbpModule{public override void PreInitialize(){//在你的应⽤中添加语⾔包,这个是英语和作者的⼟⽿其语。
nguages.Add(new LanguageInfo("en", "English", "famfamfam-flag-england", true));nguages.Add(new LanguageInfo("tr", "Türkçe", "famfamfam-flag-tr"));Configuration.Localization.Sources.Add(new XmlLocalizationSource("SimpleTaskSystem",HttpContext.Current.Server.MapPath("~/Localization/SimpleTaskSystem")));//配置导航和菜单Configuration.Navigation.Providers.Add<SimpleTaskSystemNavigationProvider>();}public override void Initialize(){IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());}}和orchard类似,abp框架⼀开始就被设计成模块化的,不同的模块可以通过abp框架来进⾏配置。
ABPvNext-模块
ABPvNext-模块⼀、什么是ABP vNext?ABP.Vnext是⼀个基于 Core Web应⽤程序框架。
主要⽬的是⽤来快速开发Web应⽤,ABP.Vnext不仅提供完整Web应⽤程序开发模板,⽽且提供Web应⽤程序开发所需要的⼀些基础设施功能。
⼆、什么是Module?当然每个⼈看问题的⾓度不⼀样,如何能让⾃⼰快速理解就先⽤什么⽅式吧,从万物皆对象的⾓度,也可以说万物皆模块,只是需要⾃⼰去平衡它的边界。
我⾃⼰认为模块就是对所有组件和业务模块的抽象,取的⼀个名字,例如在OA系统中可以按照业务划分考勤模块,请假模块,员⼯模块等,也可以按照⾃⼰理解的⽅式去拆分处模块,最终各个不同的模块拼凑在⼀起协作,形成⼀个完整的应⽤程序,⽅便维护和及快速开发。
三、在ABP中如何使⽤Module环境vs2019和.NET51.控制台应⽤程序1.创建⼀个控制台应⽤程序2.然后Nuget安装Abp vNextNuget Volo.Abp.Core3.然后在控制台项⽬中创建模块来使⽤ABP,每⼀个⾃定义模块必须继承AbpModulepublic class ConsoleModule : AbpModule{public override void ConfigureServices(ServiceConfigurationContext context){// 1、IOC注册⾃定义类System.Console.WriteLine("加载AbpModuleModule模块");//此处可以⽤于当前模块注册⼀些服务//context.Services.AddSingleton<CustomService>();//ConsoleHostedService主机服务,需要继承⾃IHostedServicecontext.Services.AddHostedService<ConsoleHostedService>();}}4.修改Progarm启动类static void Main(string[] args){CreateHostBuilder(args).RunConsoleAsync().Wait();}internal static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureAppConfiguration().ConfigureServices((hostContext, services) =>{//应⽤程序装载⾃定义模块作为启动模块services.AddApplication<ConsoleModule>();});2.Web应⽤程序1.创建⼀个Web应⽤程序2.然后Nuget安装Abp.VnextNuget Volo.Abp.Core3.然后在WEB项⽬中创建⼀个WebModule模块来使⽤ABP,模块必须继承AbpModulepublic class WebModule : AbpModule{public override void ConfigureServices(ServiceConfigurationContext context){}public override void OnApplicationInitialization(ApplicationInitializationContext context){}}4.在原有Startup类中修改代码public class Startup{public void ConfigureServices(IServiceCollection services){//在服务中⼼注册WebModule为启动项services.AddApplication<WebModule>();}public void Configure(IApplicationBuilder app, IWebHostEnvironment env){//框架初始化应⽤程序app.InitializeApplication();}}5.将原有Web中Startup类中的注册服务和配置中间件的内容移到WebModule中public class WebModule : AbpModule{//注册服务public override void ConfigureServices(ServiceConfigurationContext context){context.Services.AddControllers();}//应⽤程序开始时注册中间件public override void OnApplicationInitialization(ApplicationInitializationContext context){var app = context.GetApplicationBuilder();var env = context.GetEnvironment();if (env.IsDevelopment()){eDeveloperExceptionPage();}eStaticFiles();eRouting();eConfiguredEndpoints();}}四、模块依赖注册1.⾃定义模块除了项⽬启动模块的使⽤如控制台,web项⽬等,如果要⾃定义模块其实也和上述2种使⽤⽅式相同,并且更为简单,不需要其他的加载项配置,只需要引⼊Abp.Vnext继承⾃AbpModule即可。
ABP框架介绍
ABP框架介绍1.1 ABP总体介绍 - ⼊门介绍⽬前.NET上有不少开源框架。
⽐如Apworks和ABP。
其中Apworks是中国⼈写的⼀套开源框架。
它是⼀个全功能的,不仅可以写分布式应⽤,也可以写桌⾯应⽤。
ABP的全称是 boilerplate project(样板⼯程)。
是github上⾮常活跃的⼀个开源项⽬。
它并没有使⽤任何新的技术,只是由两名架构师将开发中常⽤的⼀些⼯具整合到了⼀起,并且部分实现了DDD的概念。
是⼀个开箱即⽤的框架,可以作为分布式应⽤的⼀个良好起点。
ABP是“ Boilerplate Project (样板项⽬)”的简称。
Boilerplate是⼀个⽤最佳实践和流⾏技术开发现代WEB应⽤程序的新起点,它旨在成为⼀个通⽤的WEB应⽤程序基础框架和项⽬模板ABP是“ Boilerplate Project (样板项⽬)”的简称。
Boilerplate是⼀个⽤最佳实践和流⾏技术开发现代WEB应⽤程序的新起点,它旨在成为⼀个通⽤的WEB应⽤程序基础框架和项⽬模板。
Boilerplate 基于DDD的经典分层架构思想,实现了众多DDD的概念(但没有实现所有DDD的概念)。
ABP的官⽅⽹站:ABP在Github上的开源项⽬:ABP框架于2014年5⽉4⽇⾸次在Github开源,截⽌到2015年5⽉25⽇,总共进⾏了1271次代码提交,49次版本发布,现在的版本号是0.6.1.1。
1.1.1 ABP采⽤了以下技术服务器端: MVC 5、Web API 2、C# 5.0DDD领域驱动设计(Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)Castle windsor (依赖注⼊容器)Entity Framework 6 \ NHibernate,数据迁移Log4Net(⽇志记录)AutoMapper(实现Dto类与实体类的双向⾃动转换)客户端:BootstrapLessAngularJsjQueryModernizr其他JS库: jQuery.validate、jQuery.form、jQuery.blockUI、json21.1.2 ABP框架已实现了以下特性多语⾔/本地化⽀持多租户⽀持(每个租户的数据⾃动隔离,业务模块开发者不需要在保存和查询数时写相应代码)软删除⽀持(继承相应的基类或实现相应接⼝,会⾃动实现软删除)统⼀的异常处理(应⽤层⼏乎不需要处理⾃⼰写异常处理代码)数据有效性验证( MVC只能做到Action⽅法的参数验证,ABP实现了Application层⽅法的参数有效性验证)⽇志记录(⾃动记录程序异常)模块化开发(每个模块有独⽴的EF DbContext,可单独指定数据库)Repository仓储模式(已实现了Entity Framework、NHibernate、MangoDB、内存数据库)Unit Of Work⼯作单元模式(为应⽤层和仓储层的⽅法⾃动实现数据库事务)EventBus实现领域事件(Domain Events)DLL嵌⼊资源管理通过Application Services⾃动创建Web Api层(不需要写ApiController层了)⾃动创建Javascript 的代理层来更⽅便使⽤Web Api封装⼀些Javascript 函数,更⽅便地使⽤ajax、消息框、通知组件、忙状态的遮罩层“Zero”的模块,实现了以下功能:⾝份验证与授权管理(通过 Identity实现的)⽤户&⾓⾊管理系统设置存取管理(系统级、租户级、⽤户级,作⽤范围⾃动管理)审计⽇志(⾃动记录每⼀次接⼝的调⽤者和参数)在其他项⽬中的很多优秀设计,在ABP项⽬中也已存在,⽽且可能实现得更好。
[2017-09-05]Abp系列——Abp后台作业系统介绍与经验分享
[2017-09-05]Abp系列——Abp后台作业系统介绍与经验分享本系列⽬录:什么是后台作业系统后台作业系统即BackgroundJob,从需求上讲,是⼀套基础设施,允许我们定义⼀个作业,在未来指定的某个时间去执⾏。
后台作业的⼀般场景:1. 如果某个业务逻辑很复杂,但⼜不是⽴即需要反馈结果给⽤户;2. 如果有个任务需要定时循环执⾏;3. 如果有个批量任务;4. 如果有个任务需要延后⼀段时间(在未来某个指定的时间)执⾏;举⼏个典型例⼦:1. 订单在创建后30分钟未⽀付则⾃动取消并释放库存;2. ⼀个有⼏万甚⾄⼏⼗万粉丝的公众号需要同步粉丝信息到数据库;3. 某个活动开始前15分钟通知感兴趣的⽤户进⾏预热;4. 某个与友商合作的项⽬涉及结算,需要在每⽉指定⽇⼦出账单;5. 每天空闲时间段全量刷新缓存或者重建索引;Abp的后台作业系统Abp的后台作业系统有两个抽象概念:1. BackgroundWorker;2. BackgroundJob;如果是第⼀次⽤Abp的后台作业系统,可以点击下⾯这个链接到官⽅⽂档看具体使⽤⽅法,这⾥主要介绍下这两个的特点和联系。
BackgroundWorker先说BackgroundWorker,BackgroundWorker其实就是基于⼀个Timer(AbpTimer)设置时间间隔,在进程中定时执⾏。
在Abp核⼼模块AbpKernelModule的PostInitialize⽅法的最后:if (Configuration.BackgroundJobs.IsJobExecutionEnabled){var workerManager = IocManager.Resolve<IBackgroundWorkerManager>();workerManager.Start();workerManager.Add(IocManager.Resolve<IBackgroundJobManager>());}我们看到可以通过Configuration.BackgroundJobs.IsJobExecutionEnabled控制是否启⽤workerManager,同时IBackgroundJobManager其实是个Worker(这⾥说的是JobManager,不是Job)。
C#Abp框架入门系列文章(一)
C#Abp框架⼊门系列⽂章(⼀)随着技术的进步,各式各样的框架层出不穷,轮⼦越来越多,那么有没有哪些优秀的开发框架供我们使⽤呢?如果我们能够将各⽅⾯优秀的框架集合起来,应⽤到项⽬开发中,我们的⼯作是不是能事半功倍呢?⽽且各个框架的使⽤⽅向不同,很多配置也不同,如果能够将繁杂的基础⼯作集成起来,由统⼀的框架来完成,那么我们就可以专注于业务逻辑,提⾼⼯作效率。
现在Abp就是这么⼀个框架,使⽤流⾏技术开发现代web应⽤程序的最佳实践。
本⽂作为Abp框架的⼊门⽂章,仅供学习分享使⽤,如有不⾜之处,还请指正。
什么是Abp?ABP是“ Boilerplate Project (样板项⽬)”的简称。
Boilerplate是⼀个⽤最佳实践和流⾏技术开发现代WEB应⽤程序的新起点,它旨在成为⼀个通⽤的WEB应⽤程序框架和项⽬模板。
ABP是基于最新的 CORE, MVC和Web API技术的应⽤程序框架。
并使⽤流⾏的框架和库,它提供了便于使⽤的授权,依赖注⼊,验证,异常处理,本地化,⽇志记录,缓存等常⽤功能。
Abp架构ABP实现了多层架构(领域层,应⽤层,基础设施层和表⽰层),以及领域驱动设计(实体,存储库,领域服务,应⽤程序服务,DTO等)。
还实现和提供了良好的基础设施来实现最佳实践,如依赖注⼊。
了解了Abp框架的基础知识之后,让我们⼀步⼀步的搭建Abp框架,并实现⼀个简单的⼩例⼦。
安装CLI输⼊cmd打开命令⾏窗⼝,然后输⼊以下命令,安装Abp.Cli,如下所⽰:1 dotnet tool install -g Volo.Abp.Cli安装过程,如下图所⽰:创建第⼀个Abp项⽬在命令⾏,切换到程序所在⽬录【最好是空⽬录】,然后通过命令进⾏创建,如下所⽰:1 abp new Acme.BookStore安装过程,如下图所⽰:关于Abp的Cli相关命令,可参考。
项⽬创建成功后,如下所⽰:通过Visual Studio打开解决⽅案,如下所⽰:还原数据库在Abp解决⽅案中,通过运⾏【Acme.BookStore.DbMigrator】进⾏初始化数据库。
入门系列-ABPCLI
⼊门系列-ABPCLIABP CLI (命令⾏接⼝) 是⼀个命令⾏⼯具,⽤来执⾏基于ABP解决⽅案的⼀些常见操作.InstallationABP CLI 是⼀个 . 使⽤命令⾏窗⼝安装:dotnet tool install -g Volo.Abp.Cli更新最新版本:dotnet tool update -g Volo.Abp.CliCommandsnew⽣成基于ABP的新解决⽅案.基本⽤法:abp new <解决⽅案名称> [options]⽰例:abp new Acme.BookStoreAcme.BookStore是解决⽅案的名称.常见的命名⽅式类似于YourCompany.YourProject. 不过你可以使⽤⾃⼰喜欢的⽅式,如YourProject (单级命名空间)或YourCompany.YourProduct.YourModule (三级命名空间).Options--template或者-t: 指定模板. 默认的模板是app,会⽣成web项⽬.可⽤的模板有:app (default): . 其他选项:--ui或者-u: 指定ui框架.默认mvc框架.其他选项:mvc: Core MVC.此模板的其他选项:--tiered: 创建分层解决⽅案,Web和Http Api层在物理上是分开的.如果未指定会创建⼀个分层的解决⽅案,此解决⽅案没有那么复杂,适合⼤多数场景.angular: Angular. 这个模板还有⼀些额外的选项:--separate-identity-server: 将Identity Server应⽤程序与API host应⽤程序分开. 如果未指定,则服务器端将只有⼀个端点.none: ⽆UI. 这个模板还有⼀些额外的选项:--separate-identity-server: 将Identity Server应⽤程序与API host应⽤程序分开. 如果未指定,则服务器端将只有⼀个端点.--database-provider或者-d: 指定数据库提供程序.默认是ef.其他选项:ef: Entity Framework Core.mongodb: MongoDB.module: . 其他选项:--no-ui: 不包含UI.仅创建服务模块(也称为微服务 - 没有UI).--output-folder或者-o: 指定输出⽂件夹,默认是当前⽬录.--version或者-v: 指定ABP和模板的版本.它可以是或者 . 如果没有指定,则使⽤最新版本.⼤多数情况下,您会希望使⽤最新的版本. add-package通过以下⽅式将ABP包添加到项⽬中添加nuget包做为项⽬的依赖项⽬.添加[DependsOn(...)] attribute到项⽬的模块类 (请参阅 ).需要注意的是添加的模块可能需要额外的配置,通常会在包的⽂档中指出.基本⽤法:abp add-package <包名> [options]⽰例:abp add-package Volo.Abp.MongoDB⽰例中将Volo.Abp.MongoDB包添加到项⽬中.Options--project或-p: 指定项⽬ (.csproj) 路径. 如果未指定,Cli会尝试在当前⽬录查找.csproj⽂件.add-module通过查找模块的所有包,查找解决⽅案中的相关项⽬,并将每个包添加到解决⽅案中的相应项⽬,从⽽将添加到解决⽅案中.由于分层,不同的数据库提供程序选项或其他原因,业务模块通常由多个包组成. 使⽤add-module命令可以⼤⼤简化向模块添加模块的过程. 但是每个模块可能需要⼀些其他配置,这些配置通常在相关模块的⽂档中指出.基本⽤法:abp add-module <模块名称> [options]⽰例:abp add-module Volo.Blogging⽰例中将Volo.Blogging模块添加到解决⽅案中.Options--solution或-s: 指定解决⽅案 (.sln) 路径. 如果未指定,CLI会尝试在当前⽬录中寻找.sln⽂件.--skip-db-migrations: 对于EF Core 数据库提供程序,它会⾃动添加新代码的第⼀次迁移 (Add-Migration) 并且在需要时更新数据库 (Update-Database). 指定此选项可跳过此操作.-sp或--startup-project: 启动项⽬的项⽬⽂件夹的相对路径. 默认值是当前⽂件夹.update更新所有ABP相关的包可能会很繁琐,框架和模块都有很多包. 此命令⾃动将解决⽅案或项⽬中所有ABP相关的包更新到最新版本.⽤法:abp update [options]如果你的⽂件夹中有.sln⽂件,运⾏命令会将解决⽅案中所有项⽬ABP相关的包更新到最新版本.如果你的⽂件夹中有.csproj⽂件,运⾏命令会将项⽬中所有ABP相关的包更新到最新版本.Options--include-previews或-p: 将预览版, 测试版本和 rc 包同时更新到最新版本.helpCLI的基本⽤法信息.⽤法:abp help [命令名]⽰例:abp help # 显⽰常规帮助.abp help new # 显⽰有关 "New" 命令的帮助.。
ABP框架中导航菜单的使用及JavaScriptAPI获取菜单的方法
ABP框架中导航菜单的使⽤及JavaScriptAPI获取菜单的⽅法每⼀个WEB应⽤程序都有导航菜单,Abp也为⽤户提供了通⽤的创建和显⽰菜单⽅式。
创建菜单⼀个应⽤程序可能包含不同的模块,⽽每个模块都可能有它⾃⼰的菜单项。
在Abp中,需要创建⼀个派⽣⾃NavigationProvider的类来定义⼀个菜单项。
假设我们有⼀个这样的主菜单:TasksReportsAdministration 1 User Management 2 Role Management由上可知,Administration菜单项有两个⼦菜单项。
对应的⽣成⽅法如下:public class SimpleTaskSystemNavigationProvider : NavigationProvider{public override void SetNavigation(INavigationProviderContext context){context.Manager.MainMenu.AddItem(new MenuItemDefinition("Tasks",new LocalizableString("Tasks", "SimpleTaskSystem"),url: "/Tasks",icon: "fa fa-tasks")).AddItem(new MenuItemDefinition("Reports",new LocalizableString("Reports", "SimpleTaskSystem"),url: "/Reports",icon: "fa fa-bar-chart")).AddItem(new MenuItemDefinition("Administration",new LocalizableString("Administration", "SimpleTaskSystem"),icon: "fa fa-cogs").AddItem(new MenuItemDefinition("UserManagement",new LocalizableString("UserManagement", "SimpleTaskSystem"),url: "/Administration/Users",icon: "fa fa-users",requiredPermissionName: "erManagement")).AddItem(new MenuItemDefinition("RoleManagement",new LocalizableString("RoleManagement", "SimpleTaskSystem"),url: "/Administration/Roles",icon: "fa fa-star",requiredPermissionName: "SimpleTaskSystem.Permissions.RoleManagement")));}}MenuItemDefinition可以有⼀个唯⼀的名字,⼀个⽤于本地化显⽰的名字,⼀个url和⼀个icon,此外,菜单项可能需要与特定⽤户权限相结合(相关权限系统正在开发,暂时还没有说明⽂档)。
abp编译源码
abp编译源码
ABP( Boilerplate)是一个开源的Web应用框架,用于创建模块化、可测试和可维护的Web应用程序。
ABP框架提供了一个编译源码的功能,用于将ABP项目编译成可执行的程序集。
要编译ABP源码,可以按照以下步骤进行操作:
1.确保已经安装了ABP框架和Visual Studio开发环境。
2.打开ABP项目所在的解决方案文件(.sln)。
3.在Visual Studio中,选择“生成”菜单,然后选择“生成解决方案”选项。
4.编译完成后,可以在项目输出目录下找到生成的程序集文件。
需要注意的是,编译ABP源码需要满足一定的条件和要求,例如需要安装正确的依赖项、配置正确的编译选项等。
如果遇到编译错误或无法生成程序集的问题,可以参考ABP官方文档或社区支持获取帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXX增强
目录
版本信息
版本
日期
作者
修改注释
1.0
2015.12.08
创建
文档确认
姓名
职务\角色
签字
日期
XXX项目经理
(手签)
迪立维项目经理
开发组长
开发人员
1
需求提交人
张三
部 门
SD
联系电话
需求日期
2014-02-21
程序名称
事务代码
报表标题
地磅系统增强
文档编号
ABP_MM_0015
模块
2
主要流程图
详细程序逻辑备注和技术重点指引:
1.创建函数:ZFM_CHECK_ZCHH,检查船号
2.在zmme01 & zmme02添加PAI。
3.Moldel:check_all
4.源码:
5.
"判断必须为中文\英文\数字
CONDENSEgw_bdsjb-zchh.
CALL FUNCTION'ZFM_CHECK_ZCHH'
状态(New/Modified)
对象说明
详细信息(一):
Field Name
Description
Key
Data Element
Domain
Type
Length
Check Table
5
MM
填写日期
2014-12-21
评定重要性
高中低
使用频率
每天每周每月
每半年每年其它:
数据量
大中小
数据来源
系统内部系统外部其它:
运行模式
前台后台
需求类型
ReportsInterfacesConversions
EnhancementsForms其它 :
表单纸张
如:A4纵向 A4 横向
目的及概要描述
判断必须为中文\英文\数字
EXPORTING
im_zchh=gw_bdsjb-zchh
IMPORTING
ex_return=lv_return.
IFlv_return <>'X'.ቤተ መጻሕፍቲ ባይዱ非法字符
MESSAGE'船号不允许非法字符'TYPE'E'.
ENDIF.
3
4
概要信息:
对象名称
对象类型(Table/View/Index/Structure)