最好用的 .NET 权限工作流框架
前言
OpenAuth.Net 是基于 .NET Core/.NET 5 的开源权限工作流快速开发框架。框架汲取Martin Fowler企业级应用开发思想及全新技术组合(IdentityServer、EF core、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、VUE、Element-ui等),核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。
功能特性
支持.NET Core sdk 3.1.100 及.NET 5(一分钟从.NET Core 3.1切换至.NET 5)
超强的自定义权限控制功能,请参考:通用权限设计与实现
完整的字段权限控制,可以控制字段可见及API是否返回字段值
可拖拽的表单设计
可视化流程设计
基于Quartz.Net的定时任务控制,可随时启/停,可视化配置Cron表达式功能
基于CodeSmith的代码生成功能,可快速生成带有头/明细结构的页面
支持sqlserver、mysql、Oracle(已集成驱动,但无Oracle脚本,可以利用工具把其他数据库的数据导过来),理论上支持所有数据库
支持同时访问多数据源
支持多租户
集成IdentityServer4,实现基于OAuth2的登录体系
建立三方对接规范,已有系统可以无缝对接流程引擎
前端采用 vue + layui + elementUI + ztree + gooflow + leipiformdesign
后端采用 .net core +EF core+ autofac + quartz +IdentityServer4 + nunit + swagger
设计工具 PowerDesigner + Enterprise Architect
截图预览
教科书级的分层思想,哪怕苛刻的你阅读的是大神级精典大作(如:《企业应用架构模式》《重构与模式》《ASP.NET设计模式》等),你也可以参考本项目。不信?有图为证,Resharper自动生成的项目引用关系,毫无PS痕迹!
OpenAuth.Net 包含了 组织机构、角色用户、权限授权、表单设计、工作流等。功能完整易于扩展,是中小企业的首选。
科学工作流管理框架怎么选,Airavata 还是其他?
Apache Airavata 是一个软件框架,使你能够在分布式计算资源(如本地集群、超级计算机、计算网格和计算云)上组成、管理、执行和监控大规模应用程序和工作流。
它旨在支持科学家和工程师在分布式计算资源上执行复杂的计算任务。它提供了一个易于使用的界面来创建、管理和运行各种类型的科学工作流,包括计算密集型和数据密集型工作流。
Airavata 支持各种计算和数据存储资源,包括本地和远程集群、云和高性能计算机。它还提供了与其他工具和技术的集成,如 Apache Hadoop、Apache Spark、Globus Toolkit、SciGaP 等。Airavata 还提供了一些高级功能,例如工作流自动化、数据管理、监控和调度等。
Apache Airavata 具有以下特点:
- 跨平台:Airavata 可以运行在各种计算和数据存储资源上,包括本地和远程集群、云和高性能计算机。
- 易于使用:Airavata 提供了一个易于使用的界面来创建、管理和运行各种类型的科学工作流,包括计算密集型和数据密集型工作流。
- 可扩展性:Airavata 可以扩展到数千个节点,并支持大规模数据管理和分布式计算。
- 高可用性:Airavata 提供了高可用性和容错机制,以确保任务的顺利完成。
- 高级功能:Airavata 提供了许多高级功能,例如工作流自动化、数据管理、监控和调度等。
- 开源:Airavata 是一个由 Apache 软件基金会维护的开源项目,它遵循 Apache 许可证,可以自由地使用、修改和分发。
这些特点使得 Apache Airavata 成为一个非常强大和灵活的科学工作流管理系统,被广泛应用于各种领域的科学研究和工程应用中。
有一些类似于 Apache Airavata 的科学工作流管理系统,其中一些也是开源的,包括:
- Pegasus:Pegasus 是一个基于工作流的科学计算管理系统,支持分布式计算、数据管理、工作流编排和错误处理等功能。
- Kepler:Kepler 是一个跨学科的科学工作流管理系统,支持各种计算和数据存储资源,包括本地和远程集群、云和高性能计算机。
- Swift/T:Swift/T 是一个基于工作流的科学计算管理系统,支持任务并行和数据并行,以及各种计算和数据存储资源。
- Taverna:Taverna 是一个面向生命科学和其他科学领域的科学工作流管理系统,支持数据管理、工作流编排和错误处理等功能。
选择适合的科学工作流管理框架需要根据具体的需求和应用场景进行评估,以下是一些常见的选择标准:
- 功能需求:根据具体的任务需求选择框架,例如需要支持分布式计算、数据管理、工作流编排等功能。
- 可扩展性:如果需要支持大规模计算和数据管理,需要选择具有良好可扩展性的框架。
- 易用性:框架应该易于使用,支持可视化工作流编排和任务管理,以及具有良好的文档和社区支持。
- 性能和效率:选择具有良好性能和效率的框架可以提高任务的执行速度和效率。
- 开源和社区支持:选择开源的框架可以降低成本,并且能够从社区中获取支持和反馈。
- 集成性:选择支持与其他工具和技术集成的框架可以提高系统的灵活性和扩展性。
- 可靠性和安全性:选择具有良好可靠性和安全性的框架可以保证任务的顺利执行和数据的安全性。
综合考虑以上因素,可以选择最适合自己的科学工作流管理框架。同时也需要注意,不同的框架有不同的学习曲线和使用难度,需要根据具体情况做出权衡。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。