.NetCoreORM选择之路,哪个才适合你通用查询类封装之Mongodb篇Snowflake(雪花算法)的JavaScript实现开发记录如何在B/S项目中使用中国天气的实时天气功能开发记录微信小游戏开发入门——俄罗斯方块~雨落忧伤~

因为老板的一句话公司项目需要迁移到.NetCore,但是以前同事用的ORM不支持.NetCore开发过程也遇到了各种坑,插入条数多了也特别的慢,导致系统体验比较差好多都改写Sql实现。

所以我打算找一款

性能比较好

功能比较完善

方便以后可以切换数据库(经过我对老板的了解这个功能非常重要)

并且要有一定用户基础的ORM

参赛ORM

能够参赛的ORM必须要有以下个条件

第一、功能方面要比较完善

第二、Github需要有一定人气并且最近有更新

第三、支持多种数据库少写Sql,方便以后

筛选结果:

1、EFCore

2、Dapper+扩展

3、SqlSugarCore

4、NhibernateCore

5、PetaPoco

第一轮淘汰赛我们比人气&功能

经过对这几个ORM的初步了解,对功能方面和人气方面进行了初步评分

1、EFCore人气10,功能10

2、Dapper+扩展人气10,功能9

3、SqlSugarCore人气7,功能10

4、NhibernateCore人气7,功能10

5、PetaPoco人气6,功能6

经过第一轮帅选,我淘淘汰了PetaPocoORM

最重要的是这个ORM定位比较尴尬,功能一般并且扩展插件也比较稀少。现有功能以拼Sql为主满足不了我以后切换数据库的需求,第一轮淘态。

第一轮得分排名

1、EFCore胜出

2、Dapper+扩展胜出

3、SqlSugarCore,NhibernateCore胜出

4、PetaPoco淘汰

第二轮淘汰赛我们比易用性

写太牛逼的功能并不是我们所考虑的,需要上手快好用,于是我针对项目中几个需求点进行了上手测试,并给出了评分

1、EFCore10轻松满足

3、SqlSugarCore10轻松满足

4、NhibernateCore1完全不会用

第二轮得分排名

1、EFCore,SqlSugarCore胜出

3、NhibernateCore淘汰

能够通过精心挑选并且进入前3名,相信这3个ORM都有他们独自的魅力

第三轮淘汰赛我们比性能

经过对批量插入、单条插入、批量更新、单条更新、条件查询、多选删除等几种常用场景的并发测试

我意外的发现SqlSugar性能比Dapper更加的优秀,EFCore垫底

第三轮得分排名

1、SqlSugarCore胜出

3、EFCore淘汰

通过上面各种环节我们可以发现,我都会淘汰每场比赛表现最差者,因为我想找一个比较平衡的ORM用于项目,不想有短腿。

决赛我们比大家的建议

目前Dapper+扩展和SqlSugarCore这2个ORM是最适合我们的团队的,同事之间也各有说词,暂且平手吧。明天我们公司会在进行讨论。写个博文让大家给给建议,进行最终定夺。

下面是这2款ORM地址:

Dapper

SqlSugar

查询在应用程序中很重要,花样也特别多,不同得业务需求需要不同的查询条件,还要支持and、or……事实上也确实如此,程序中有N多个查询类,并且很可能其中有多个类查询同一张表,所以特别想弄一个通用的查询类。

前几天也是因为讨论有关查询的问题,想到了一个点子觉得可行,最近就抓紧实现了一下来验证想法的可行性……

思路:其实查询类很简单,无非就是你要查询哪个字段—字段名称(Key)、你想搜索的值—字段值(Value)、以及如何进行比较—查询类型(QueryType),这是单个查询条件(之后都叫做查询因子,不知道合适不合适,也是突然间想起来的),如果是多个条件,弄了一个集合就是好了,问题就在于这些查询因子之间的关系(and、or)……既然叫做查询因子,这个集合我们不管他们之间的关系,只是简单的查询因子的集合,我们在弄一个字段来存储他们之间的关系,这里暂时叫做逻辑表达式,例如:((a|b)&c)|((a&b&d)|e),最后我就解析这个表达式就可以了,a、b、c、d、e只要在集合中找到具体的哪个查询因子就可以了,就是这样了。说通用查询类有点惭愧,目前只是在Mongodb下弄了一个简单的实现(重点是思路了,嘿嘿),因为项目上用的是Mongodb所以先实现的肯定是他了,其他的数据库同理……

1、找到最后一个“(”,之后寻找与之匹配的“)”,处理这对圆括号中的简单表达式,这里是a&b&d,处理完之后将结果放在一个字典之中,记作<1,filter1>,之后字符串变为((a|b)&c)|(1|e)

2、参照1的顺序再次处理表达式((a|b)&c)|(1|e),这次处理1|e,字典中添加一项<2,filter2>,字符串变为((a|b)&c)|2

3、处理a|b,字典中添加一项<3,filter3>,字符串变为(3&c)|2

4、处理3&c,字典中添加一项<4,filter4>,字符串变为4|2

5、至此,圆括号已不再,只是简单的表达式,这就简单了

记录一下代码

类库方式实现:

这个功能需求比较简单,就是想在网页端显示实时天气数据。

解决方案:

第二种:既然方便的方式用不了,那么只能自己去寻找另一种的解决方案了;获取实时天气的步骤我给分了两步,第一步先获取用户的所在地,第二步根据所在地获取实时天气数据。

跨域的问题:

先在这里把跨域的问题提一下吧,js的ajax功能为了安全性考虑,只允许ajax访问相同域名下的接口,其他网站是不允许访问的;虽说ajax有jsonp的跨域请求,但是也得要求被访问的接口支持jsonp的数据格式返回(jsonp也是有一定的数据解析格式的),然而本文提到的接口基本上都是返回html或者字符串,是不符合jsonp数据解析的,因此这里需要后台来进行代理请求(就是js访问自己的后台,然后后台进行一次web请求而已)。

第一种:

第二种:

varreturnCitySN={"cip":"","cid":"370100","cname":"山东省济南市"};调用方式是在html页里面引用就好,也不必再考虑跨域的问题,而且在js里面也可以直接使用returnCitySN这个对象(object)。

使用的是后台来进行代理请求

这样就能根据上面获取对应的城市代码了,以济南(101120101)为例

后台代码如下:

到此为止我们终于获取到了用户所在地的实时天气数据了,返回前台js(同样使用eval(result)函数处理下返回的字符串就可以了)后怎么展示就不是本章的重点了,可以随便前端折腾。

总的来说就是适用后台来进行代理请求

特别注意,上述接口可能会过期失效,到时留言,我若看到会进行更新

在任何开发前都需要对要开发的东西有一定的了解、准备;

环境搭建:

1、新建项目,这里我们选择2d项目与TypeScript项目,由于小程序的游戏包的大小限制,在我掌握控制资源大小能力的时候,我选择了较为简单的2d项目

2、项目结构:1为项目的入口文件,相当于Main文件,至于为什么是入口文件,下面会提到;2为引用的代码资源,里面封装了2d项目必要的封装类;3为项目的场景资源文件,包括音频、视频、图片等游戏需要的资源;

3、bin文件夹:此文件夹是编译之后运行的文件夹,比较重要,下面来做详细介绍;

事实上,虽然我们在使用TypeScript开发小游戏,但是最后还是会编译为JavaScript文件,通过执行JavaScript文件来运行小游戏,只是使用TypeScript会比JavaScript开发的更加严谨一些,若你的JavaScript很强,那么也可尝试使用JavaScript来编写;

4、项目编写:项目的大体结构与编译了解的差不多之后,便开始编写我们自己的小程序——俄罗斯方块了,开发过程略,反正就是api的使用,这个在官网有这不少的案例与代码;

首先将以前的代码、资源文件删除掉,然后建立自己的工程,在发布之前,我将index.html文件中没有使用的js引用注释掉

5、发布,选择发布平台,先来个简单的发布吧,不包含版本控制之类的;发布之后,我们会得到一些文件,其实libs这个文件夹并没有多少用的,虽说里面有编译之后的封装文件,但是项目实际运行的所有代码都被LayaIDE自动压缩到code.js文件中,因此,libs文件夹可以删掉,为了减少游戏包体积嘛;还有一个不怎么好的消息,那就是,上面我说的资源文件夹assets是没有被发布出来的,我也没弄清楚怎么回事,只能手动拷贝出来,并且找到code.js文件中的引用路径并修改正确;

下一步目标:

1、学会使用分包加载游戏,更大的游戏包带来更好的游戏(虽说最多8M);

THE END
1.派对搭啦碰官网入口在哪官网入口地址分享派对搭啦碰官网是一款画风潮流可爱的横版3D派对手游,游戏开启了全星测试,可以进入官网参加获取测试资格,那么派对搭啦碰官网入口在哪?下面本站为各位小伙伴整理出派对搭啦碰官网入口地址分享,希望可以帮助到你。 派对搭啦碰官网入口地址分享 bilibili预约地址:https://www.biligame.com/detail/?id=111639 ...http://m.klq99.com/klqjc/39693.html
2.英语游戏在哪找——你的游戏世界语言指南游戏论坛和社区是寻找英语游戏的重要途径。如TGA(The Game Awards)官网、IGN、GameSpot等,这些专业游戏媒体网站不仅会发布游戏新闻,还会提供游戏下载链接。此外,玩家们在这些平台上分享的游戏推荐和心得也是非常实用的信息。 三、社交媒体是助手 社交媒体平台也是发现英语游戏的好去处。如Twitter、Facebook、Reddit等,在这...https://news.17173.com/z/yxtj3/content/11242024/024113055.shtml
3.PETA:专怼游戏公司比大妈更会碰瓷的动物保护组织PETA毕竟是很有才的,又山寨了一款《精灵宝可梦黑·蓝》,扮演宝可梦先打爆自己的训练师,再打爆其他训练师,解放所有宝可梦。 虽然我不能赞同你的理念,但我觉得你的创意……实在有点骚啊,我确实非常想玩这种新型宝可梦游戏。难道PETA的成员里有很多优秀的设计师吗? https://www.gamersky.com/zl/201901/1149508.shtml
4.九游(ninegame)官方网站?九游官网?已认证: 地址:http://www.www.www.share.lujifgh.cn?九游官网「包含最新官网地址、注册、登陆、登录、入口、全站、网站、网页、网址、娱乐、手机版、app、下载、欧洲杯、欧冠、5大联赛、NBA」|官方温馨提示:游戏好玩,但不能贪玩http://www.mobile.share.lujifgh.cn/cHI/detail/mXwvKfYo.html
5.马跃玩游戏表情镐自称不是“卧底”《中国文艺》 20241115 乐在旅途 《2020中央广播电视总台春节联欢晚会》 20200125 1/4(完整版) 《了不起的挑战》 20160103 《温暖2017》 20171230 《2022中国诗词大会》 20220306 第二场 《2023中央广播电视总台春节联欢晚会》 20230122 4/4(字幕版) 《CMG首届中国电视剧年度盛典》 20230123 《开播吧!国潮》 2024...https://tv.cctv.cn/2023/07/04/VIDEIhIOJmIeEgUdF4A5peTA230704.shtml
6.千万玩家共同创造的世界:「上帝游戏」拯救世界(上)机核GCORES1921年,爱因斯坦拿到诺贝尔物理学奖之后说过一句名言:“游戏是调查研究的最高形式。”爱因斯坦对国际象棋游戏爱恨交织了一辈子。他在孩提时代曾热情地玩它,成年以后基本放弃并对《纽约时报》说:“我不玩任何游戏。”然而很多朋友都说曾和爱因斯坦下过无数局国际象棋,爱因斯坦在学术事业巅峰期不下象棋,是因为他喜欢到了...https://www.gcores.com/articles/106524
1.魔力宝贝复兴预约方法一览高级玩法全方位介绍1、官网地址:https://ml.giraffar.com 2、taptap地址:https://www.taptap.cn/app/408201 提示:游戏上线后,可以从该地址进入后体验玩法 二、预约方法: 1、点击上方的官网地址后,就会自动跳转后游戏官网页面 2、接着在首页面,点击其中的立即预约按钮(如下图所示) ...http://www.hzxhig.com/zxjc/24762.html
2.ChiikawaPocket手游怎么预约手游预约方法ChiikawaPocket是同名Chiikawa【吉伊卡哇】的衍生手游,设定在和动漫中相同的游戏世界内,玩家们可以扮演小可爱们的角色,在游戏内进行讨伐、除草、制作美食料理的玩法,同时还可以收集货币来购买同款服饰,目前游戏已经开始预约了,为了让大家快速预约游戏,小编整理了《ChiikawaPocket》手游预约方法,一起来看看吧。 https://shouyou.3dmgame.com/gl/533453.html
3.pdta游戏攻略,punipeta游戏攻略pdta游戏攻略,punipeta游戏攻略 一、前言 Pda(全称“Paper, Dice, ad he Uexpeced Twis”),是一款策略角色扮演游戏,以其独特的游戏机制和深度的角色扮演体验而备受玩家喜爱。本文旨在为玩家提供一份详尽的Pda游戏攻略,帮助玩家更好地理解游戏机制,掌握游戏技巧,以及充分发挥个人策略,以取得更好的游戏体验。https://m.duoduowan.com/newsxz02/75251.html
4.壹号娱乐官方版下载壹号娱乐《火炬之光》(I/II)系列由前暴雪娱乐北方总裁,暗黑破坏神之父MaxSchaefer创建的世界顶级游戏工作室RunicGames制作,被誉为世界最出色的ARPG游戏之一,游戏中独特且极致的随机地图隐藏区域、随机精英怪、随机装备等精髓玩法都是正统暗黑精神的诠释。五位玩家不但没有抱怨,反而在拿到剧本后做了大量功课,现场效果远...http://www.hechungui.cn/
5.善待动物组织PETA推出VR游戏《WhenTheyCameForUs》善待动物组织(PETA)与科技机构Demodern合作开发了一款名为《When They Came For Us》的新VR游戏,旨在通过让人们站在动物的角度来提高人们对动物权益的认识。 这款沉浸式角色扮演游戏专为Quest 3和Quest 2设计,玩家将身处一艘外星飞船,并说服强大的外星人释放自己。对话完全语音控制,并由基于ChatGPT-4的人工智能生成...https://www.87870.com/informationDetail?officialArticleId=50276
6.游戏观察(精选十篇)2.语言提示法———既帮助幼儿排除障碍, 当幼儿在游戏中出现问题、遇到问题而无法顺利进行时, 教师一两句简单的建设性提示帮助幼儿理清思绪, 从而促进游戏的顺利开展, 小班幼儿在区域活动中持久性较差, 有时会因为活动中遇到的简单问题便放弃活动, 或是对原有材料的玩法在幼儿认知范围内已玩尽时。 https://www.360wenmi.com/f/cnkeyfojrn3x.html
7.美军“海狮士兵”学会玩电子游戏海狮在接受互动训练。 图片来源 美国海军 编译 董小源 利用电子游戏提升军人的作战技能早已不是新闻。现在,美军的“动物士兵”也开始进行类似的尝试。美国“防务简报”网站近日刊发消息称,美国海军“海洋哺乳动物计划”项目组开展了一项独特的实验,让海狮用专门设计的触摸屏玩游戏。 https://t.m.youth.cn/transfer/toutiao/url/news.youth.cn/gj/202305/t20230517_14523667.htm
8.?best365·官网(中文版)登录入口/网页版2. 首存红利best365官方网站登录入口APP下载【龙年龘龘】支持:64/128bit系统类型:best365官方网站登录入口下载(2024全站)最新版本IOS/安卓官方入口V57(安全平台)官方入口PETAPETA2D版(无限旅馆联机)游戏是一款十分刺激的冒险解谜逃脱游戏,在无限旅馆的迷宫般布局中找到出路,避免陷入死胡同。http://blog.lynxcc.top/yji/tomyv.html
9.千万玩家共同创造的世界:「上帝游戏」拯救世界(2)游戏的目的并不是真的在于失败,失败是比成功更好的老师。试错、在脑中进行逆向工程,这都是孩子们与游戏互动的方式。如果你给人们提供了这个构建城市的模型,那么他们就会从中抽象出城市设计的原理。蒙特梭利教会了我发现的快乐,它告诉你可以通过玩积木来了解很复杂的理论,如毕达哥拉斯定理。《模拟城市》就脱胎于蒙特...https://www.gameres.com/842725.html
10.问鼎电子娱乐平台下载4. 「TOP」 问鼎电子娱乐平台下载官网-APP下载支持:winall/win7/win10/win11系统类型:问鼎电子娱乐平台下载下载(2024全站)最新版本IOS/安卓官方入口V4.6.76(安全平台)登录入口PETAPETA2D版(无限旅馆联机)游戏是一款十分刺激的冒险解谜逃脱游戏,在无限旅馆的迷宫般布局中找到出路,避免陷入死胡同。每个房间都可能隐...http://blog.sqrybj88.com/261.html
11.Dictionary.comMeanings&DefinitionsofEnglishWordsThe world’s leading online dictionary: English definitions, synonyms, word origins, example sentences, word games, and more. A trusted authority for 25+ years!https://dictionary.com/
12.政治正确vs游戏(下)游戏厂商的抉择《战地5》设计师Alan Kertz话倒是没说的这么圆滑,他在Reddit论坛上表示: “我当初要求《战地》系列加入女性角色时,就料到事情会发展成今天这个样子。我有个女儿,我不希望她在玩游戏时问我‘为什么主角和我长得不一样?’,也不希望自己回答她‘因为你是女的’。我知道我在做正确的事情,未来会证明我的选择是对...https://www.yystv.cn/n/982980
13.憋屈的打工人,在游戏中奴役电子宠物针对这一游戏设置,Steam上的游戏推介页面也毫不避讳,表示玩家“为了生存只能不择手段”,并温馨提示“帕鲁并不受劳动法规的约束”。 就连曾批判《精灵宝可梦》《动物森友会》的动物保护组织PETA都表示,《幻兽帕鲁》把火箭队都衬托得像群好人。 当然,游戏再残酷,也比不上现实。在《幻兽帕鲁》走红后,最高有百万玩家...https://www.nfcmag.com/article/9305.html
14.科学解密提升五人竞技胜率的趣味手游推荐官网咨询 科学解密提升五人竞技胜率的趣味手游推荐sw 2024-11-19 在当今游戏行业中,五人竞技类手游愈发受到玩家的青睐。这类游戏不仅考验着玩家的操作水平,更需要团队协作和战术思考。而为了提升胜率,很多玩家开始探索一些科学的解密方法和策略。以下是一些趣味性与竞技性兼具的手游推荐,可以帮助玩家在竞技赛中获得更高...https://m.youtubizhi.com/guanwang/48125.shtml