从业7年, 参与过几款市场反应不太好的游戏开发, 主要领域为服务端, 酷爱.net语言
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
一 安装MongoDB 官网按需下载, 安装, 一步到位. 二 VS创建新项目 创建一个.netcore console项目, 然后nuget安装驱动MongoDB.Driver 三 建立连接 在Program.
背景是有一个游戏服务器一直以来都是写SQL的, 后来改过一段时间的redis, 用的是别的员工写的类orm方式将实体类型映射成各种key-value对进行写入, 但是仍有一个缺点就是需要在增\删\改的时候显式调用API, 更糟糕的是要注明删\改的字段名, 不然就会整个实体重写入.
原先做服务器程序, 都是部署在xx云上, 也没理解云是个啥, 不就是个服务器(虚拟机)租赁商吗? 好吧, 其实这个是IaaS, 而接下来要学习的ServiceFabric(以下简称SF)是PaaS. 首先SF和Orleans类似, 都是基于actor模型, 然后编程方式也很像, 大概就是定义公开接口, 然后后端服务实现接口, 前端调用接口这样.
项目中需要用到一些数值表格, 方便起见都是用excel来的. 而如果excel正打开中, 直接使用npoi制作的工具来导出数据的话, 在这一行将会异常: workbook = new XSSFWorkbook(filepath); 其实只是读取的话, 并不需要获得它完整的使用权限, 那么用file.
拥抱.net core的过程中, 将公司的一套java项目改成了.net core 2.0版的. 里面的tcp服务被我用msdn的SocketAsyncEventArgs方式重写了, 然而在测试的过程中发现, 偶尔会出现重启无法再次绑定监听的情况.
生活中有这样的场景: 我有一件事情需要别人帮忙去办, 但是别人也很忙呀, 所以我只能把任务记载他的任务清单上, 等他一个个扫下来扫到我的并且完成之后再来告诉我. 这其实是一个多线程的问题. 我是线程A, 他是线程B, 这里我是生产者, 他是消费者.
最近将公司的项目用.netcore重写, 服务的http外部接口部分收发消息是DES加解密的, 那么在asp.net core mvc的action处理之前需要加入解密这个步骤. 我第一想到的是用filter的方法来做, 找到了ActionFilter, 重写了OnActionExecuting方法, 确实成功在action执行前拦截了下来, 但是request却是只读的.
我使用的是Pomole.EntityFrameworkCore.MySql 需要将旧项目中的excels表转成实体,其中有一列是json格式的int[] 当遇到第一张表的时候,我使用了这样的方法来读取 public string InternalData { get; set; } ...
其实这篇的内容官方文档都有, 但是既然打算记录一下学习笔记, 也就先从安装开始了. 一 下载源代码 进入github下载最新release的源码压缩包. windows选择zip, 下载完成之后右键解压缩.
许久没用C#写程序。听说进来发生大事,.NetCore2.0发布了,于是便学习了下,本站也应运而生。 大多数的地方按照官方的文档起步走就可以了,这里谈谈遇到的几个坑。 首先,本站是基于ASP.NetCore2.0和EntityFrameWorkCore.Sqlite的,前端使用了layui,搭建于CentOS7上。
首先来聊下高级战争吧Advance Wars,由任天堂旗下的Intelligent Systems开发的战棋游戏。初作诞生于GBA上,后来继续跟进了高战2黑洞崛,而后在下一代掌机DS上也出了三代续作高战DS,以及后来不太一样的毁灭日。
故事是这样的。 前几天在网上逛,看到了一个漂亮的坦克模型。 我觉得这个坦克可以做一个游戏,那需要一些服务器代码。 因为是实时对战的,听说TCP有很多不适,选择了UDP。 得知有一种算法可以解决UDP丢包乱序的问题,就封装成了C#,雄赳赳气昂昂准备大搞一番。
开发的时候,经常被策划频繁变动的方案而苦恼。这时候就想要加入点动态语言来辅助一下。 在考虑用动态语言之前也曾想过使用动态加载dll的方式,实现基础接口来调用。在卸载的时候遇到了问题,虽可以通过应用程序域来绕过,但这又加入了应用程序域之间的交互。
Redis是一个高速缓存K-V数据库,而NetMQ是ZeroMQ的C#实现版本,两者是完全不同的东西。 最近做游戏服务器的时候想到,如果选择一个组件来做服务器间通信的话,ZeroMQ绝对是一个不错的选择,而我们的服务器是用C#的开发的,就这样,找到了NetMQ。
第一次看到TinyIoCContainer是在用NancyFx的时候,在Bootstrapper那里看到了她的影子。 那些叫Tiny的东西都挺有意思,IoC容器是我第一次遇到,于是找了些文章看了看,自己写了点代码实践下,这件事就算这么过了,然后今天想起来,在做下笔记。
本来是用asp.net webpages做的博客网站,数据库用了一个陌生的本地数据库,只是觉得用起来很爽快,用新鲜的东西有一种刺激。后来数据库挂了,估计是存某个字段的时候出了问题,可是新鲜的东西,也不知道用什么工具可以查,只好怪自己太年轻。
昨天临下班的时候,在我的阿里云上面试装了PostgreSQL,可后来想想,似乎没什么必要使用他。主要是Navicat使用起来加自增key的时候,没有像MySQL那么方便啦。 因为公司用的已经是MySQL了,就一条道走到底好了。
mono可以让.net程序运行在linux平台上。于是.net程序员有了mono之后就转身跨平台了。但开放环境往往还是在windows下,于是有了这样的需求,是否可以用windows下的源码来实机调试linux下的程序呢? 如今Xamarin已经被广泛地使用在移动平台的应用开发上,当然也能够支持实机调试。
读书的时候,我似乎有系统地学习过asp.net,但是基本已经还掉了...工作之后有做过一个内部用的网站,但也没有正式使用,的确只能算是个课程设计型的东西,不能做产品。后来工作需求是做Win8下的APP,也就是从那时候开始 ,C#.Net的兄弟姐妹们又被我从灰尘堆中翻了出来。
首先第一步是设置ubuntu server 12.04版更新源,推荐中科大的比较快:deb http://debian.ustc.edu.cn/ubuntu/ precise main multiverse restricted universedeb http://debian.
先谈谈模板在我脑子里的典型吧 template const T& GetMax(const T& t1, const T& t2) { return t1>t2?t1:t2; } 如上面的代码,这是一个模板函数(template function)。
起因是我在尝试Win8的时候做的一个小程序,我将它上传到了网上。于是有一个学生来找我学习,但我的C#造诣仅仅只是一本《C#与.NET4高级程序设计》,然后有一天他们的老师布置给他们一个关于C#模板的作业的时候,我对一直以来的机械式函数使用产生了疑惑。
STL中的顺序容器有: vector //支持快速随机访问 list //支持快速插入删除 deque //双端队列 顺序容器适配器: stack //LIFO queue //FIFO priority_queue //有优先级管理的队列 我不是很明白adapter适配器的意思。
学C#的时候用C#的事件很舒服,像我这样低级的使用者,一个+=就省去了许多麻烦。 于是我想着C++中是怎么做呢? 不如山寨一下。 第一步,首先是委托 这个好像是C++中的函数指针,那么就这样 typedef void (*CREventFunc)(void* sender, void* param); 模仿C#的事件,第一个参数是事件发生者的指针,第二个是事件参数。
如果这也能算一个游戏的话... 不错至少还能拓展. 结构惨不忍睹, 估计这么随性一下之后不会再动这份代码了, 在此记录一下. 截图 平台是vs2012 奉上源代码 Win8 store app: http://pan.
本来只是工作时的一个TP, 后来试着试着就加了点功能, 最后就干脆改成了现在的音乐箱. 支持换背景, 存储播放列表, 导出mp3中的缩略图等功能... 因为技术不高所以起名叫阿呆音乐箱了. Win8提交app费用太高.
学习C#.net有两三个星期了, 怎奈书本略厚, 工作略繁杂, 于是各种跳章, 好不容易跳到了WPF的章节. 看了第27章, 就突然产生了一个想法. 总觉得WPF是在跟网页制作较劲, 网页的HTML标签一行一行加载下来, 如果有一行button加载完了, 下面可以写一个js标签, 显示地执行一段函数.
作为一个在学校学习C++, 出了校门想要找一份C++程序员的工作结果被公司要求搞C#工程的苦逼. 我终于走上了一条倚靠微软的不归路... 不过我对学东西是不排斥的. 所以买了本C#与.NET4高级程序设计开始入门.
在笔记(一)中记了点Binding的Path相关, 因为Binding的带参构造器就只有Path的参数. 所以Path是很重要的, 有了Path, 即使在没有指定Source的时候, Binding也会随着UI元素树一层一层往外找DataContext对象, 判断是否具有相应的Path, 有就拿来用.
上次学了点点Binding的皮毛, 然后就做别的事去了, 等回头再来看WPF的时候, 哈忘记了~ 于是写个例子补一下, 在继续学习Binding. 1, 首先准备好一个类 public class Hero { public Hero(int id, string name, string skill, bool hasM) { this.
一、binding的一般步骤1,准备数据源 数据源需要实现INotifyPropertyChanged接口 例如: class Person : INotifyPropertyChanged { public event PropertyChangedEventHandle...
一,使用DoubleAnimation创建动画 //1,创建剧本 Storyboard storyboard = new Storyboard(); //2,创建动画 DoubleAnimation doubleAnimation = new DoubleAnimation( ...