.NET开发框架的选择历程

2023-11-12

     去年来新公司后第一件事就是应领导要求,选择一款合适的开发框架。之前有熟悉的开发框架,Extjs+.NET简单三层,对于一般的企业后台管理系统够用了。

    但是现在Extjs这种前段端架基本被淘汰了,后端简单三层也显得非常落伍。但是对于选框架这个事情也不是越新的技术越好,要考虑到团队的人员能力、网上的文档及相关代码的丰富程度,以及快速开发的能力等。

    最开始团队里只有两个人,一个只会简单的拖服务器控件然后简单的C#,数据库增删改查。另一人刚毕业一年,只做过BPM系统的简单二次开发,甚至不知道数组怎么用。因此考虑选框架的重点就是“出活率”,就是有一套框架包含常用的权限管理等复杂又常有的功能,前台界面最好是拖拽或配置出来的的,不需要掌握JS、CSS等布局技术,后台写写简单的增删改查sql。这套框架还真有,机缘巧合是威海当地的一个程序员组织老大自己写出来的框架,所用的技术其实就是基于bootstrapaceadminjqueryHTML5C#webservicesRedissqlserver等技术或工具,通过独创的设计模式进行整合。自己亲自试用了一下,感觉对人员技术要求非常低,但是又可以做出一个比较好看的系统。系统登录、权限功能管理、数据录入、报表图形展示、导出Excel等功能一应俱全,除了后台写一些简单的sql代码,其他基本靠配置和粘贴修改的代码即可,上手相当快。这个老大对我说用熟了,他自己对一个有50多个功能页的系统,自己一个人只用了两周就开发了出来。




尽管整个系统都是源代码开源的,也没用什么高深的技术。但是领导始终感觉将企业系统建立在这样一个个人构建的框架上有风险,最后也没说通,将这个框架PASS掉了。

    然后又开始了漫长的寻找新框架之路。但是巧妇难为无米之炊,任何比较先进的框架都需要学习成本,但是对非专业软件企业而言,公司有没有太多项目来学习练手,只要是接到用户的一个需求不管用什么技术都必须快速的实现出来。后来这两个成员调离别的项目不做开发,公司又给我招聘了一个.NET开发经验相对丰富的,还有一个java经验丰富的人员即将入职。这样选择框架的方向又发生了变化。

    首先要考虑架构的通用性,因为有.net也有java的,所以我倾向于用REST的开发方式,前端可以用Vue.js这种前端框架。用Vue.js重新写一套包含常用的界面不现实,因为所有人本来对Vue.js都不太熟悉,后来发现阿里巴巴的开源框架“飞冰”。这个框架包含很多现成的控件,前端用问题不大,但是选框架最主要的还是提高开发效率,包含基础的功能是必须的。这套框架只是一个前端框架,后端用来获取数据的方式都不是我们所熟悉的,也 不包含常用的一些功能。

   偶然的机会发现了开源的ABP框架,包含常用的功能,有完善的权限功能(名为ZERO),感觉是有点靠谱。具体功能正在探索,未完待续。。。。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET开发框架的选择历程 的相关文章

  • Vue高德地图自定义信息窗内绑定点击事件

    因为信息窗肯定是在生成标记后点击触发的事件 所以在 methods 中直接定义点击生成标记事件 不过多赘述 本文主要解决点击标记弹出的信息窗内的点击事件绑定问题 这是高德官方文档中 自定义窗口数据的添加方式 看起来太麻烦且不好对代码进行操作
  • centos安装rocketmq

    1 下载 https github com apache rocketmq releases 2 环境 jdk1 8 0 211 maven3 6 3 3 安装 gt tar xf rocketmq all 4 7 1 tar gz gt
  • 【Spring中@Autowired和@Resource注解的区别?】

    一 背景 Spring中 Autowired和 Resource注解的区别 Spring框架想必大家都知道吧 那么Spring中 Autowired和 Resource注解的区别你知道吗 如果不知道也不要紧 我们就一起来学习一起吧 二 Au
  • linux库文件安装报错:arm-none-linux-gnueabi-ranlib: command not found

    交叉编译glog 再安装时报以下错误 libtool install arm none linux gnueabi ranlib usr local lib libglog a libtool line 1734 arm none linu
  • xshell SSH 连接出现 outgoing encryption ,或者no matching host key algorithm found错误的解决...

    首先看看xshell的使用版本 如果是xshell 4 提示的信息为 no matching host key algorithm found 如果是xshell 5 提示的是 outgoing encryption算法不支持的情况 值得注
  • MPAndroidChart 修改柱状图高亮效果

    MPAndroidChart 默认的选中高亮效果如下 只是颜色加深 然后设计想要实现下面这种效果 类似阴影效果 且显示的宽度需要增加 一 MPAndroidChart 是否支持 查看该框架对外的接口 发现下面两个方法 BarDataSet
  • 共基、共射、共集三种放大电路的总结及比较

    说明 分析基本放大电路要遵循 先静态 后动态 的原则 只有 Q点合适 动态分析才有意义 直接耦合共射放大电路 B极输入 C极输出 直流工作点 阻容耦合共射放大电路 B极输入 C极输出 直流工作点 基本共射放大电路及交流小信号模型 计算 B
  • Linux--主函数的三个参数(环境变量)、printf隐藏的缓冲区(目的、存在感、强制刷新、退出)

    目录 1 主函数的前两个参数 编辑 2 环境变量 3 envp argv都是以NULL作为结尾的 4 printf隐藏的缓冲区 1 目的 2 环境变量 3 缓冲区的存在 4 强制刷新 5 exit与exit 1 主函数的前两个参数 argc
  • hlog 详解

    为了防止regionserver 宕机时 正在写数据 没写完 然后 wal预先写入磁盘完成 由于wal没有回滚机制 故写盘速度快 StoreFile在写盘时有回滚机制 效率较慢 同时 如果hlog写盘失败 则认为写数据操作失败 需要重新发起
  • 产品经理 研发管理 ——周辉

    产品经理 研发管理 周辉 1 产品运作的四大体系 1 1 1 欠缺的市场体系和产品开发体系 1 1 2 技术开发与产品开发的区别
  • 使用Python和OpenCV标记超级像素的炫彩度

    使用Python和OpenCV标记超级像素的炫彩度 1 效果图 2 步骤 3 源代码 参考 这篇博客将介绍如何使用SLIC分割算法来计算输入图像的超像素 并对每一块超像素区域计算炫彩度量值 然后将每个区域的炫彩度量值加入到掩模图像 以展示图
  • Linux系统中杀死僵尸进程的方法

    在linux系统管理中 当用ps命令观察进程的执行状态时 经常看到某些进程的状态栏为defunct 这就是所谓的 僵尸 进程 僵尸 进程是一个早已 死亡的进程 但在进程表 processs table 中仍占了一个位置 slot 由于进程表
  • qt通过ODBC驱动与mysql连接

    参考 https blog csdn net m0 38128647 article details 89482413 创建你的mysql服务器 我创建的mysql服务名称为mysql80 新建一个test数据库 里面新建一张student
  • 关于 Linux 之父,你可能不知道的 7 件事

    如果让你现在说出三个程序员的名字 Linus 很可能就在其中 作为世界上最著名的电脑程序员 黑客之一 Linus Benedict Torvalds 写出了 Linux 内核 1 0 版 发起了开源运动 开发了代码管理工具 Git 这三个成
  • Vue3封装全局函数式组件

    文章目录 前言 一 函数式组件是什么 二 创建一个函数式组件 1 封装toast组件 2 创建应用实例 3 注册插件 可省略 Q A 补充一些注释 为什么采用调用函数方法的方式去控制显隐 函数式组件的这两个文件之间的联系 三 调用 1 注册
  • 服务器记录到虚拟mac,Mac 模拟JSON数据

    一 使用Apache本地服务器 1 开启 sudo usr sbin apachectl start 在浏览器中输入 https localhost 页面显示 it works 2 其实本地apachec指向一个文件下 Library We
  • Mycat/Mysql主从复制搭建详解

    Mycat server 1 6 mysql 5 7 24 linux 工具下载地址 mycat mysql navivat 链接 https pan baidu com s 1KCmSgXYXs9O5vHMHIgnbAg 提取码 ukaq
  • java 操作ES 增删改查总结

    本实例框架采用 nutz ES 如果 您查找相关知识 请注意过滤不相干的信息 controller 层 package com test ownasset controller import java io File import java
  • centOS 6 服务管理与服务脚本

    服务管理与服务脚本 linux服务 服务管理与服务脚本 linux服务 服务启动过程详解 chkconfig命令 非独立服务与xinetd进程 一个特殊的服务脚本 服务启动过程详解 在开机启动过程中 我们计算机的各种服务也会按照配置信息启动

随机推荐

  • python 数据标准化

    def datastandard from sklearn import preprocessing import numpy as np x np array 1 1 2 2 0 0 0 1 1 print 原始数据为 n x print
  • 交换机上抓包

    1 常用交换机抓包方式 华为 华三 锐捷交换机一般使用packet capture命令可以进行抓包 Arista交换机通过在bash下 使用linux命令tcpdump进行抓包 Cisco nexus 抓包使用ethanalyze命令 具体
  • AS400银行核心系统开发中的技术总结--数据字典和枚举值

    数据字典和枚举值 在核心系统应用开发中 数据字典有举足轻重的作用 数据字典是对系统中所有字段的归纳抽象 需要规范同类字段的类型长度 方便定义和修改 但是 在过去的核心系统中 数据字典的理解往往也会有失误 常见的错误方法 是试图穷举定义所有可
  • Flink Client 使用技巧和心得(Flink on Zeppelin)

    Flink 链接Kafka 先建立catalog CREATE CATALOG flink hive WITH type hive default database imods hive conf dir home admin flink
  • 八个维度讲解秒杀系统架构分析与实战

    路人 Java充电社 2022 09 06 08 06 发表于上海 收录于合集 java充电社263个 大家好 我是路人 更多优质文章见个人博客 http itsoku com Java充电社 Java充电社 专注分享Java技术干货 包括
  • 最小熵原理

    种草很好的博文 苏剑林 2018 Apr 18 最小熵原理 一 无监督学习的原理 Blog post Retrieved from https spaces ac cn archives 5448 苏剑林 2018 Apr 24 最小熵原理
  • scrapy框架的使用

    1 什么是scrapy框架 文档地址 http scrapy chs readthedocs io zh CN 1 0 intro overview html 这个详细的文档地址 大家可以保存一下 之前的文章中也有一些链接大家可以保存下来方
  • 云计算中的存储基础知识

    物理存储方式 云计算中的三辆马车 计算 网络 存储 硬盘分为两种型态 机械硬盘 HDD 和固态硬盘 SSD 物理磁盘类型 SATA盘 串口硬盘 常用于个人电脑 物理磁盘类型 SAS盘 常用于服务器 物理磁盘类型 NL SAS盘 采用SAS磁
  • Doris-查询(三)

    目录 1 查询设置 1 1 增大内存 1 2 修改超时时间 1 3 查询重试和高可用 1 3 1 代码方式 1 3 2 JDBC Connector 1 3 3 ProxySQL 方式 2 简单查询 3 Join查询 3 1 Broadca
  • PyQT5播放音频

    最近自己写的一个软件需要在持续监测T box的信号强度值时 领导提出在信号低于阈值时给出警报或指示 之前的想法是在软件界面上加一个指示灯 但这样还是需要Tester去盯着屏幕 这样不友好 所以索性在通过声音的方式给出警示 这样就不用一直盯着
  • 基于sklearn的特征选择方法

    1 特征选择 我们主要关心以下几个问题 1 特征差异性 也就是一列特征值若几乎没有什么变化 那么这个特征对模型并没有什么作用 2 相关性大小 也就是该维特征与target的相互作用有多大 2 过滤法 1 方差判别 给定阈值 排除那些方差低于
  • GZ-2022034 物联网技术应用赛项赛题(Windows系统运行维护)

    任务书1 使用过程发现局域网内网络设备无法获取到有效IP 请配置DHCP服务分配的IP从172 16 工位号 150开始至172 16 工位号 200结束 并启用服务 使用路由器配置DHCP 在工作站计算机中使用DOS窗口测试服务器计算机8
  • exure9 秘钥_AxureRP9.0秘钥(持续更新)

    Axure RP 9 0 0 3717 3719 正式版 Axure Enterprise Edition Licensee Freecrackdownload com KEY 5vYpJgQZ431X G5kp6jpOO8Vi3TySCB
  • 嵌入式系统之linux系统编程---16 守护进程

    1 什么是守护进程 守护进程 守护进程运行在后台 不跟任何控制终端关联 2 怎么创建一个守护进程 有两个基本要求 a 守护进程必须作为 init 进程的子进程 b 守护进程不跟控制终端交互 创建守护进程的步骤 1 使用 fork 函数创建一
  • 百度云的sugar大屏模板1

    1 企业实时销售数据1 2 企业实时销售数据2 3 电商618大数据 4 实时数据分析 5 某平台智能监控系统
  • Spring WebFlux编写响应式Controller接口

    文章目录 一 基本概念 1 什么是响应式编程 2 响应式流中的各个角色和关系 二 Reactor简介 1 Mono与Flux 三 Spring WebFlux 1 简介 2 构建响应式Controller 3 使用函数式编程模型编写API
  • docker--扩展学习-网络--命令--15

    docker 扩展学习 网络 命令 15 1 创建网络 1 1 简单创建容器 创建 docker network create net111 查看 docker network inspect net111 1 2 指定参数创建容器 创建
  • rabbitmq基础1——消息中间件概念、Rabbitmq的发展起源和基本组件的作用流程

    文章目录 一 消息中间件 1 1 概念 1 2 作用 1 2 1 消息队列持久化 1 2 2 消息队列分发策略 1 2 3 消息队列的高可用和高可靠 1 2 3 1 一主多从共享集群 1 2 3 2 一主多从同步集群 1 2 3 3 多主多
  • Go语言编程思想4——测试与性能调优

    Go语言编程思想4 测试与性能调优 Debugging Sucks Testing Rocks 多做测试 少做调试 Go语言使用表格驱动测试 一 传统测试 正确结果在前 函数结果在后 判断是否相等 测试逻辑和测试数据混在一起 出错信息不明确
  • .NET开发框架的选择历程

    去年来新公司后第一件事就是应领导要求 选择一款合适的开发框架 之前有熟悉的开发框架 Extjs NET简单三层 对于一般的企业后台管理系统够用了 但是现在Extjs这种前段端架基本被淘汰了 后端简单三层也显得非常落伍 但是对于选框架这个事情