FreeSql 项目大概在20天前想着要做的,今天发布0.0.4在群里被一位大神讽刺。

这位无名氏哥们的观点,先声明这不是找安慰的文章,更加不是报复打击的目的。

1 所以这个比EF好在哪里
2 毕竟EF是官方的技术,你自己造的轮子得说明自己哪里不是重复造轮子,而不是问已有的轮子到底怎么样
3 EF完全可以胜任并且超出一个ORM框架需要的所有功能
4 你可以觉得EF不够好,自己做一个更好的,但是这建立在你能指出EF哪里不好的前提下
5 另外插入一个话题,[图片]这个项目引用 很显然 这违背了.NET Core的小包思想,四个字,按需引用
6 这根本就不是什么拆包的问题,而是在开发的时候就是小包,你不了解.NET Core的思想,每必要非得说自己是正确的,有人教你,你就虚心接受,没什么大不了的
7 你target了.NET Standard,却走的是原来的那一套思路,
8 在接受一个新的平台的时候,你需要接受它的思想
9 不要重复造轮子,你如果觉得ef有缺陷,哪不好,自己提issue,给pull request,如果你觉得ef一无是处,你自己做,那也得说明它比ef好在哪里,是吧
10 你和ef的区别在于你把sql语句暴露出来了,而ef是使用IQueryable来完全封装sql的
11 IQueryable是一个标准接口,你要标新立异,本来就是兼容性很差的
12 你觉得微软不对你可以别用微软,但是你用微软你就得遵循用微软的人在遵循的标准
13 ORM框架本身,并不是一个功能性的东西,就是提供一个优雅的coding style,但是你的ORM框架,却忽略了coding style的问题
14 现在.NET上的ORM框架、甚至是一些no sql的数据驱动,他们的查询操作,主流的,你觉得有几个不是实现IQueryable接口的?
15 你标新立异,就代表着现存项目没有这个开发成本来重构成基于你的框架的版本,新的项目也无法接受选型你这个框架的风险
16 不实现IQueryable接口的查询API,实际项目无论是迁入到你这个框架,还是从你的框架迁出到别的框架,都有巨额的重构成本
17 你写出来一个东西来符合自己的理解,自己觉得更优雅,但是实际项目选型的时候要选用你的框架,会有这些问题:
1)你的文档中没有任何对比说明你的框架哪比EF更好
2)你的框架迁入迁出成本太高
3)你的框架缺乏学习资源
4)你的框架缺乏可靠的社区支持
18 是,有了.NET Core,微软拥抱开源了,.NET开发者都可以融入开源社区了,但是你得知道什么是开源社区,开源社区什么东西能好,什么东西得避免,开源社区的运作思想,而不是,哦,我写一个库,放github上,就是开源,你造轮子也得按照基本法,不要重复造轮子
19 [图片]从关键字搜索来看,这个项目里没有任何连接池控制的逻辑
20 我不知道你的项目里有没有实现数据库的版本控制的逻辑,如果没有,那你真的该去好好了解为什么要用ef,如果有,那么你是真正的勇士,花了一大把时间来重复造了一个很繁琐的轮子
21 算了,你自己要花时间,谁也拦不住,但是当成果被认可的程度没有达到你的预期时,请不要忘记我曾经提醒过你,大家都是程序员,坑都得自己跳一下才知道深,这个我是理解的

老哥应该是怕我被坑,我觉得做项目不容易,愿意开放源代码不应该鼓励吗?下班的时候和这位老哥聊了半小时,我很感激你的提醒,但是我需要更多的应该是认可。

咱们无偿开放源代码容易吗,好好给一点点鼓励就行,.net社区的未来才会更好。

项目仓库:https://github.com/2881099/FreeSql
目前版本 0.0.4,目前可用性已经挺高了,如果觉得不容易,请给予一星,谢谢

这年头做开源项目,被冷嘲热讽,FreeSql 0.0.4的更多相关文章

  1. Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)

    下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableVie ...

  2. Coolpy开源项目简介

    1.Coolpy初识 基于ARDUINO的迷你操作系统.只需一个ARDUINO主板+Ethernet Shield即可运行.成本低,Coolpy主件以目前淘宝价只需要76元人民币. 2.Coolpy能 ...

  3. 阿里开源项目 druid 相关资料汇总

    项目发起人访谈:http://www.iteye.com/magazines/90 github主页:https://github.com/alibaba/druid druid 项目,我想我能用很短 ...

  4. github上关于iOS的各种开源项目集合(转)

    UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITable ...

  5. iOS -- 开源项目和库

    TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 gif动画 ...

  6. 转: Github上关于iOS的各种开源项目集合

    https://blog.csdn.net/jiashaoying/article/details/79079500 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. ...

  7. 一个基于 Vue3 的开源项目,3个月时间 star 终于破千!

    本文主要是对如何做开源项目的一些思考. 前文回顾: <Vue3 来了,Vue3 开源商城项目重构计划正式启动!> <一个基于 Vue 3 + Vant 3 的开源商城项目> 关 ...

  8. 原创开源项目HierarchyViewer for iOS 2.1 Beta新功能介绍

    回顾 HierarchyViewer for iOS是我们发布的一个开源项目,采用GPL v3.0协议. HierarchyViewer for iOS可以帮助iOS应用的开发和测试人员,在没有源代码 ...

  9. .NET ORM 开源项目 FreeSql 1.0 正式版发布

    一.简介 FreeSql 是 .NET 平台下的对象关系映射技术(O/RM),支持 .NetCore 2.1+ 或 .NetFramework 4.0+ 或 Xamarin. 从 0.0.1 发布,历 ...

随机推荐

  1. 团队项目第二阶段个人进展——Day5

    一.昨天工作总结 冲刺第五天,找到了一个专门的提供后端数据服务的网站:leancloud,并学习了相关操作 二.遇到的问题 对leancloud的数据如何请求和响应不懂 三.今日工作规划 深入学习le ...

  2. springboot集成rabbitmq(实战)

    RabbitMQ简介RabbitMQ使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现(AMQP的主要特征是面向消息.队列.路由.可靠性.安全).支持多种客户端,如:Python.Ru ...

  3. python_选择结构

    >>> if 3>2:print('ok') ok>>> if True:print(3);print(5) >>> chTesst=['1 ...

  4. 如何使用 toml 配置 SpaceVim

    配置 SpaceVim 主要包括以下几个内容: 设置 SpaceVim 选项 启动/禁用模块 添加自定义插件 添加自定义按键映射以及插件配置 设置SpaceVim选项 原先,在 init.vim 文件 ...

  5. Spring+Mybatis多数据源的一种实现方式,支持事务

    最近一个项目用到了多个数据库,所以需要实现动态切换数据源来查询数据,http://www.cnblogs.com/lzrabbit/p/3750803.html这篇文章让我受益匪浅,提供了一种自动切换 ...

  6. kvm常见故障及解决

    一.启动虚拟机Connection reset by peer # virsh start vmhost1error: Failed to start domain vmhost1error: Una ...

  7. Reactor模式的.net版本简单实现--DEMO

    近期在学习DotNetty,遇到不少的问题.由于dotnetty是次netty的.net版本的实现.导致在网上叙述dotnetty的原理,以及实现技巧方面的东西较少,这还是十分恼人的.在此建议学习和使 ...

  8. 你不知道的JavaScript--Item29 DOM基础详解

    看完JavaScript高级程序设计,整理了一下里面的DOM这一块的知识点,比较多,比较碎!DOM在整个页面的地位如图: DOM(文档对象模型)是针对HTML 和XML 文档的一个API(应用程序编程 ...

  9. app后端设计(7)-- 项目管理

    移动互联网行业是个快速发展的行业,需求不断变化,产品更新快.基于移动互联网的以上特点,在开发产品的过程中,我们放弃了传统的瀑布流开发模型,引入了精益的理念和scrum这个敏捷开发框架,下面谈谈实施过程 ...

  10. killall 、kill 、pkill 命令详解

    killall 命令 Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name).我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀 ...