首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ABP入门系列(15)——创建微信公众号模块

引言 现在的互联网已不在仅仅局限于网页应用,IOS、Android、平板、智能家居等平台正如火如荼的迅速发展,移动应用的需求也空前旺盛。...而恰好ABP框架就已经帮我们解决了这一问题,Abp是基于【模块化设计思想】构建的,开发人员可以将自定义的功能以模块(module)的形式集成到ABP中。 不同的模块通过组装就可以组成一个新的功能。...Abp如何发现并加载模块 Abp中定义了一个启动类AbpBootstraper,该类的职责是启动整个Abp系统,主要负责依赖注入和注册模块以供启动。而该类必须在应用程序启动时最先被实例化。...而作为Abp生成的模板项目,启动项目自然是web应用,所以AbpBootstrapper肯定在Web项目中被初始化。...是不是一目了然,总结以下: Abp在启动项目时根据指定的启动模块(StartupModule)首先加载该模块,然后再去检查该模块的自定义特性是否定义有[DependsOn]特性,若有则按序加载所有依赖的模块

1.6K80

52ABP-PRO 前后端分离架构概述

需要注意的是,我们的 ASP.NET Core 解决方案中没有任何 HTML、JS 和 css 代码,因为它是基于 token 的身份验证,而服务之间的通讯都是通过(RESE)风格的 API。...多租户 多租户的设计是为了让我们在开发 SaaS(软件即服务)应用的时候更加容易。使用这种技术,我们可以部署一套应用而服务于多个客户。 每个租户都有属于自己的角色、用户、设置和其他数据。...我们会默认开启一个名为“default”的租户。 在多租户的应用中,我们有两种不同类型的透视图: 宿主(主机):管理租户和系统。 租户:实际使用这些应用系统功能为此付费的用户。...要声明“所有子域”,可以使用通配符如*.52abp.com 还需要在 IIS 中配置静态 IP 绑定到应用程序。 或许还有其他的办法,但是这个应该是最简单了。欢迎沟通交流。...我们建议将模块化思想贯彻到底,应用程序划分为更小的模块,就像我们在启动项目中所做的那样,而不是将所有功能添加到主模块中。尽量使用懒加载的形式。 作为基础设施的模块,都应该有自己的路由。

3.7K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ABP入门系列(13)——Redis缓存用起来

    引言 创建任务时我们需要指定分配给谁,Demo中我们使用一个下拉列表用来显示当前系统的所有用户,以供用户选择。我们每创建一个任务时都要去数据库取一次用户列表,然后绑定到用户下拉列表显示。...Abp之所以能成为一个优秀的DDD框架,我想跟作者详细的文档有很大关系, 作者已经在ABP官方文档介绍了如何使用Caching,英文水平好的就直接看官方的吧。...当实体更新或删除时它自动将缓存的实体置为无效状态,因此它将会再下一次请求中从数据库中重新获取。 它使用缓存的类的完整类名作为缓存名称,可以通过为构造函数传参来修改缓存名称。 它是线程安全的。...ABP上试玩Redis缓存 跟着我的步伐,对Redis也算有了基本的认识,咱们下面就进入今天的压轴主题,介绍Abp下如何使用redis进行缓存。 首先我们要知道为什么要用Redis进行缓存。...这样我们就用Redis代替了默认的MemoryCache缓存方案,而不需要改动其它代码,Abp就是这么简单、灵活、松藕合! 7.

    2.4K90

    ABP - 模块加载机制

    模块化的实现 通过在一个程序集中,创建一个模块类,继承AbpModule类,就可以很简单的将这个程序集作为Abp框架中的一个模块。如下面的代码,就是一个模块类的定义。...通过对AbpModule类的查看,可以看到这是一个抽象类,它很好的遵循了接口隔离原则。 一个模块就是一个完整的功能点,往往需要对其依赖的一些东西进行配置,如数据库连接、如配置文件读取等。...Abp引擎通过将.net Core管道和容器传递,使得模块中可以配置自己的依赖注入和请求管道,而不需要在外部使用的时候添加一大堆配置,这样就达到了独立开放,开箱即用的目的。...,在这个驱动类中完成了对abp框架启动的配置和操作。...除此之外,volo.abp.core类库中还提供了一些工具类和扩展方法,都是很好用的,就算不用abp框架的童鞋也可以借鉴其中的写法,或者直接拿到自己项目中使用。

    31860

    初识ABP vNext(1):开篇计划&基础知识

    vNext(以下简称ABP)的前身是asp.net boilerplate(老版abp),它不是一个简单的版本更新,而是完全基于.NET Core的重写。...最近认真学习了一下,准备记录下自己的一些心得,计划分为3部分来进行: ABP基础(就是官网上一些基本的功能) ABP实战(使用ABP+vue开发一个简单项目) ABP模块化(微服务简单介绍) 首先,这是以一个...ABP的多租户模块提供了创建多租户应用程序的基本功能,可以很轻松的帮你实现多租户。 DDD分层 表示层: 为用户提供接口,使用应用层实现与用户交互。...简单来说,当一个对象只能由他的标识(Id)来区分,而不是从其他属性来区分时,这种对象被称为实体。比如有很多叫“张三”的男人,你不能通过姓名和性别来区分到底是哪个张三,只能通过Id。...实体通常映射到关系型数据库的表中,ABP中实体相关的基类/接口有:Entity、IEntity、AuditedEntity等等。

    1.6K51

    以Blog.Core的方式来打开Abp.vNext

    1、两个框架的对比 既然要对比呢,我就简单的做了一个图,当然,我也不是真心的要和Abp比较,因为完全没有对比性,只是想说明一下,Abp这个框架的好处: (Blog.Core与Abp框架对比图) 我自己简单的总结了下...其实不是的,如果你看他的源码,就可以发现,他还是有仓储的影子的,只不过是封装了: 刚刚我们在应用层中定义的服务,其实是集成了仓储接口的,只不过是基类,而且命名空间还是Domain领域层: public...这里就引出了第一个重要知识点,领域层中到底是什么?—— 一切包含领域行为的类,都应该封装到领域层中,目前的第一个,仓储接口。那是不是还有其他的呢?...在Blog.Core中,我用Model层,来封装了实体层,这个是没问题的,但是有一个问题就是,这层不应该在定义ViewModels层了,这个不应该写到这里,应该写到应用契约层,毕竟我们知道契约就是为了用户的...在Abp框架中,设计的就比较合理了,详细你也应该能看的懂,这里不多说了。 这里要重点说的就是,领域层第二块内容——实体,刚刚我们说了第一个是仓储接口,这两个其实都是拥有领域行为的类。

    70930

    初识ABP vNext(1):开篇计划&基础知识

    vNext(以下简称ABP)的前身是asp.net boilerplate(老版abp),它不是一个简单的版本更新,而是完全基于.NET Core的重写。...最近认真学习了一下,准备记录下自己的一些心得,计划分为3部分来进行: ABP基础(就是官网上一些基本的功能) ABP实战(使用ABP+vue开发一个简单项目) ABP模块化(微服务简单介绍) 首先,这是以一个...ABP的多租户模块提供了创建多租户应用程序的基本功能,可以很轻松的帮你实现多租户。 DDD分层 表示层: 为用户提供接口,使用应用层实现与用户交互。...简单来说,当一个对象只能由他的标识(Id)来区分,而不是从其他属性来区分时,这种对象被称为实体。比如有很多叫“张三”的男人,你不能通过姓名和性别来区分到底是哪个张三,只能通过Id。...实体通常映射到关系型数据库的表中,ABP中实体相关的基类/接口有:Entity、IEntity、AuditedEntity等等。

    2.3K30

    ABP框架 - 介绍

    在整理这个框架的过程中,参考了一些开源框架的设计和实现,无意中发现了ABP(ASP.NET Boilerplate)已经实现的正是我想要的,本着不重复造轮子的原则,在对ABP做了POC和评估后,在向整个评审小组展示时...在示例中,如果一个用户没有登录,或者没有“UpdateTasks”的权限,那么他将不能访问UpdateTask方法。...ABP默认使用Log4Net来写日志,当然我们也可以通过修改配置来使用其他的日志框架。 本地化(多语言)- 在示例中,当抛出异常时,使用了"L"方法,它会根据用户文化配置自动进行本地化处理。...此外,除了这个示例中展示的ABP的优势以外,ABP还提供了一个健壮的基础架构和应用模型。包括模块化、多租户、缓存、配置管理、调度和后台任务、数据过滤、领域时间、单元测试和集成测试等等。...它让我们可以集中关注在业务实现上,而不用重复的去造轮子。

    75140

    ABP框架 - 介绍

    在整理这个框架的过程中,参考了一些开源框架的设计和实现,无意中发现了ABP(ASP.NET Boilerplate)已经实现的正是我想要的,本着不重复造轮子的原则,在对ABP做了POC和评估后,在向整个评审小组展示时...在示例中,如果一个用户没有登录,或者没有“UpdateTasks”的权限,那么他将不能访问UpdateTask方法。...ABP默认使用Log4Net来写日志,当然我们也可以通过修改配置来使用其他的日志框架。 本地化(多语言)- 在示例中,当抛出异常时,使用了"L"方法,它会根据用户文化配置自动进行本地化处理。...此外,除了这个示例中展示的ABP的优势以外,ABP还提供了一个健壮的基础架构和应用模型。包括模块化、多租户、缓存、配置管理、调度和后台任务、数据过滤、领域时间、单元测试和集成测试等等。...它让我们可以集中关注在业务实现上,而不用重复的去造轮子。

    1.1K100

    .NET 8来了,开发一套基于.NET 8的快速开发框架吧,就叫Simple

    ,还得非要再搞个呢,大家都知道很多快速开发框架,啥ABP 啥水果啥的,怎么评价他们呢,就是一个字,叼!。...可是作为一个打工人,还不是公司用啥我用啥,公司不用ABP,你也不能老新建个项目就上ABP,上各种Orm吧,并且用ABP类的框架,还是需要些学习时间的,这些框架各种约定,各种快捷Api,各种一键生成了啥啥啥...,好用吧,可是一但你公司不能用这些框架,你是不是抓瞎了,之前遇到个只用ABP的新同事,进公司要求只能用基于ASP.Net Core的框架和指定的一些类库,要他开发个文件上传的模块,用于客户服务器打开网页上传下数据库备份之类的文件到公司备份服务器做异地备份...基础库主要包含一些帮助类,用于方便开发的,和其他框架大同小异 Web项目扩展库 Simple.Core.Web 主要实现: 应用模块基类 SimpleModule,继承此模块基类可分模块开发,分模块按需注册...基于 FluentScheduler 封装的自动注册任务,实现任务自动注册,配置基类用于可使每个任务能单独配置执行调度器 以上就是整个框架的封装,够简单吧,是不是感觉啥都没有用,就这么点东西已经完成了我上面构想的支撑

    1.7K11

    (转载非原创)Abp太重了?轻量化Abp框架

    02.png 从架构设计上来讲,模块化是Abp的核心;而从技术角度来看,依赖注入则是Abp实现众多功能的一个主要手段。只要了解Abp的模块化和依赖注入,我们就能够基于Abp框架来进行项目开发。...若从所依赖Nuget包数量来评估框架的“轻”和“重”,那么Abp不可谓不轻。 功能按需使用 得益于模块化设计,Abp将其所能提供的功能,划分并封装到了不同的模块中。...类中配置DependsOn特性,将AbpDddApplicationModule、AbpDddDomainModule和AbpEntityFrameworkCoreSqliteModule模块依赖到我们的项目模块中...得益于模块化的方式,我们可以只依赖我所需要的Nuget包和Abp模块。如果根据功能多少来评判框架的“轻”和“重”,我们按需依赖不同模块时Abp框架不可谓不轻。...在本文之初,我便提出了Abp的核心是模块化及依赖注入的观点,当我们将入门的重点放在模块化和依赖注入上,那么会发现Abp是一个极易上手并且学习曲线很平缓的框架。

    1.3K10

    ABP框架 - 介绍

    在整理这个框架的过程中,参考了一些开源框架的设计和实现,无意中发现了ABP(ASP.NET Boilerplate)已经实现的正是我想要的,本着不重复造轮子的原则,在对ABP做了POC和评估后,在向整个评审小组展示时...授权- ABP可以使用声明式的方式来检查权限。在示例中,如果一个用户没有登录,或者没有“UpdateTasks”的权限,那么他将不能访问UpdateTask方法。...ABP默认使用Log4Net来写日志,当然我们也可以通过修改配置来使用其他的日志框架。 本地化(多语言)- 在示例中,当抛出异常时,使用了"L"方法,它会根据用户文化配置自动进行本地化处理。...此外,除了这个示例中展示的ABP的优势以外,ABP还提供了一个健壮的基础架构和应用模型。包括模块化、多租户、缓存、配置管理、调度和后台任务、数据过滤、领域时间、单元测试和集成测试等等。...它让我们可以集中关注在业务实现上,而不用重复的去造轮子。

    3.9K110

    初识ABP vNext(9):ABP模块化开发-文件管理

    创建模块 模块开发 应用服务 运行模块 单元测试 模块使用 前言 在之前的章节中介绍过ABP扩展实体,当时在用户表扩展了用户头像字段,用户头像就涉及到文件上传和文件存储。...文件上传是很多系统都会涉及到的一个基础功能,在ABP的模块化思路下,文件管理可以做成一个通用的模块,便于以后在多个项目中复用。...两种方式各有优缺点,具体请参考自定义现有模块[1],关于私有NuGet搭建可以参考:十分钟搭建自己的私有NuGet服务器-BaGet[2]。 然后给这些项目的模块类添加对应的依赖,例如: ?...ABP的模板是可以独立运行的,在FileManagement.HttpApi.Host项目的模块类FileManagementHttpApiHostModule配置FileOptions: ?...本文参考了ABP blogging模块的文件管理,关于文件存储,ABP中也有一个BLOB系统可以了解一下。

    1.5K20

    浅入ABP(1):搭建基础结构的 ABP 解决方案

    项目中,每一个模块(项目) 都要创建一个继承 AbpModule 的 类,用于声明此模块的结构、依赖注入等。...AbpBase.Web 此模块是最上层的模块,用于提供 UI 与用户交互、权限控制、提供启动配置信息、控制程序运行等。...下面介绍一下上面模块中出现的一些代码结构。 关于ABP和代码解疑 完成上面的步骤后,相信你应该对 ABP 项目有了大致的认识,下面我们来介绍一下 ABP 中的一些概念以及前面出现到的一些代码解析。...模块 我们看一下 ABP 官网中关于 ABP 的介绍: ABP 框架提供的设计旨在支持构建完全模块化的应用程序和系统 前面我们建立了 7 个项目,相信大家已经体验到了模块化开发的过程。...ABP 模块化,就是将每个项目作为一个模块,然后每个模块中需要定义一个继承 AbpModule 的类,最终集成到上层模块中。

    83220

    abp架构详解_大数定律通俗理解

    大家好,又见面了,我是你们的朋友全栈君。 网上有不少文章说ABP的模块,有的直接翻译自官网介绍,有的分析Modlue的源代码,有的写一通代码,没什么注释,很少有能通俗说清的。...那么,有两个问题:1.ABP中的模块到底是什么?2.搞这个东西是干嘛用的?难道是吃撑了没事做?下面我们来如何通俗回答这两个问题。 第一个问题:ABP中的模块到底是什么?...通俗的理解,这个东西就相当于程序集,你开发的项目不是有很多个类库吗?或者会有很多个所谓的“项目型”的程序集吗?如下图所示: 里面不是有一堆东西吗?...这并没有什么好稀奇,也没什么好神秘的,就是Assembly而已,只不过:在ABP中,我们要让这个程序集成为一个Module模块,需要在这个程序集里单独定义一个继承于AbpModule的类,例如在我的AbpCompanyName.ProjectName.TestModule...当然是ABP框架在背后帮我们做了模块注入的事,具体可以看看AbpBootstrapper,AbpModuleManager,AbpModule等类的代码,重点关注模块管理类AbpModuleManager

    41020

    Java并发编程(5)- J.U.C之AQS及其相关组件详解

    一般情况下,子类只需要根据需求实现其中一种模式,当然也有同时实现两种模式的同步类,如ReadWriteLock。...自定义同步器在实现时只需要实现共享资源state的获取与释放方式即可,至于具体线程等待队列的维护(如获取资源失败入队/唤醒出队等),AQS已经在底层实现好了。...对于锁的快速且重复的获取过程中,连续获取的概率是非常高的,而公平锁会压制这种情况,虽然公平性得以保障,但是响应比却下降了,但是并不是任何场景都是以TPS作为唯一指标的,因为公平锁能够减少“饥饿”发生的概率...J.U.C包中的锁定类是用于高级情况和高级用户的工具,除非说你对Lock的高级特性有特别清楚的了解以及有明确的需要,或这有明确的证据表明同步已经成为可伸缩性的瓶颈的时候,否则我们还是继续使用synchronized...7.监测:此类支持一些确定是读取锁还是写入锁的方法。这些方法设计用于监视系统状态,而不是同步控制。

    56910

    轻量级开源小程序SDK发车啦

    主要有以下步骤: 引用对应的Abp的Nuget包 如果仅需某个支付,仅需引用该支付的包。下面以通联支付为例,我们需要在工程中引用此包: ?...在对应工程的Abp的模块(AbpModule)中,添加 对“WxMiniProgramSdkModule”的依赖,如:添加模块依赖 [DependsOn(typeof(WxMiniProgramSdkModule...配置管理器 需存储JSON对象,对应的key为“App_MiniProgram”。 对于非ABP集成,则需要自己实例化或注入配置类对象,可以参考单元测试的编写。...非ABP集成 请参考Abp相关模块的封装或者相关的单元测试代码,目前“Test”工程对应非ABP集成方式的使用,“Abp.Test”工程对应集成ABP之后的使用。...url); } } 注意事项如下: 添加GetSnsInfoByCodeOutput,需继承自ServiceOutputBase 使用HttpGet或HttpPost方法来完成请求 Output类中的属性请遵守

    1.1K20

    我的技术回顾那些与ABP框架有关的故事-2017年

    对于其他的技术方案如容器化,Nginx并不感冒。...它需要照顾好以前的老客户群体,即:.NET Framework的用户群,同时又要兼容.NET Core 的发展趋势。 这个对于任何一个架构师来说都是非常难的。...当然这个不是最重要的,在我看来,最重要的是ABP的商业版本是要打造一个包含前后端的解决方案,而在这种时候,大多数是可以靠功能进行控制的。...而随着群员越来越多,人员水平并不均衡,也不是所有人都有能力去直接看ABP框架的源码。 我也受邀如鹏网杨中科老师,作为校友开始了第一次对外直播分析ABP框架。 分享完成后了之后,加群的人也变多了。...聊聊NCC社区 现在的我已经不是一个纯粹的程序员了,但是你如果想深耕技术,我想NCC社区是一个非常推荐你去了解的社区和组织,虽然我从来没有和NCC社区的人有过正式合作。

    97361

    BookStore示例项目---菜单栏UI分析

    对于虚拟文件系统的了解,可以参考: 基于ASP.NET Core的模块化设计: 虚拟文件系统 ABP虚拟文件系统(VirtualFileSystem)实例------定制菜单栏显示用户姓名 1.2)、小结...示例项目BookStore的菜单栏,前面两个在上面已经有了描述,而多语言的显示是怎么渲染加载出来的呢?...在ABP的源码中,有多个模块专门处理UI界面。其中,有一个基础的模块,就是我们前面提到的 Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic模块。...而ABP开放出来的多语言配置接口就是这个属性,我们将多语言添加到这个属性中,ABP就会加载出来所有的多语言。...ABP中处理菜单栏视图主要是在Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic模块中 如此,BookStore项目的菜单栏UI便分析完了。

    25610

    【Net】ABP框架学习之正面硬钢

    (我这里安装的是5.1.0,因为最高版本安装不上) 在安装ABP前先检查当前安装的Microsoft.AspNet.WebApi版本,因为ABP5.1.0依赖的是WebApi的5.2.7,如果WebApi...AbpWebApplication是个泛型,要求指定默认启动模块的类,这里我们先写上SdudentApiServiceModule,下面会创建这个类。...因为使用了ABP框架,所以我们不再需要微软提供的默认布局了,下面我们微软的默认布局文件夹删除;如下图: ? 现在我们新建一个类库,创建一个SdudentApi模块,用来编写可以被HTTP访问的接口。...创建完类库后,我们需要在类库里添加一个自定义类,来标记,这个类库是WebApi服务模块。 创建SdudentApiServiceModule类,并继承AbpModule。...很明显AbpModule在SdudentApi类库是未被引用的,所以我们要引用一下ABP的框架。 因为这个模块是WebApi,所以我们直接引用Abp.Web.Api5.1.0就可以了。

    92211
    领券