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. 拾人牙慧篇之——基于HTML5中websocket来实现消息推送功能

    一.写在前面 要求做一个,后台发布信息,前台能即时得到通知的消息推送功能.网上搜了也有很多方式,ajax的定时询问,Comet方式,Server-Sent方式,以及websocket.表示除了定时询问 ...

  2. C++ 文件流的详解

    部分内容转载:http://blog.csdn.net/kingstar158/article/details/6859379 感谢追求执着,原本想自己写,却发现了这么明白的文章. C++文件流操作是 ...

  3. 重温《STL源码剖析》笔记 第三章

    源码之前,了无秘密. --侯杰 第三章:迭代器概念与traits编程技法 迭代器是一种smart pointer auto_Ptr 是一个用来包装原生指针(native pointer)的对象,声明狼 ...

  4. Python_pickle模块操作二进制文件

    import pickle b=7 i=13000000 fa=99.056 s='中国人民 123abc' lst=[[1,2,3],[4,5,6],[7,8,9]] tu=(-5,10,8) co ...

  5. PAT1105:Spiral Matrix

    1105. Spiral Matrix (25) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue This ti ...

  6. JAVA远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)

    RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果.这个请求包括一个参数集和一个文本集,通常形成&qu ...

  7. java 各数据类型之间的转换

    String —> Date SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date ...

  8. ps命令手册

    LINFO ps命令   在PS(即,处理状态)命令被用来提供关于当前正在运行的信息的过程,包括它们的过程标识号(PID)来. 过程也称为任务,是程序的执行(即运行)实例.系统为每个过程分配一个唯一的 ...

  9. Python爬虫进阶六之多进程的用法

    前言 在上一节中介绍了thread多线程库.python中的多线程其实并不是真正的多线程,并不能做到充分利用多核CPU资源. 如果想要充分利用,在python中大部分情况需要使用多进程,那么这个包就叫 ...

  10. tomcat设置端口号,访问指定ip就访问指定项目

    1.修改背景: A.通常我们访问我们的web应用格式为: http://ip:端口号/项目名称 例如: http://127.0.0.1:8080/projectName B.如果想直接输入" ...