摘要:
这次实现了JS端的DES加密与解密,并且C#端也能正确解析DES的密文(反之也实现了)使用的代码如下,非常方便:输出内容:385bdba36c0e65dee2ab7fc31fbf7ec43566195c29bf18e4722421397cbbf17a665843bd245226bf8947b59d1609837662b149fb025175d9f76dd9710b165c12c0763ca6d0dd549d8b2b9a2fb6f9a3ffaea19281d92eb84972ad3394198bd5ccb0bfb3be071ff32b 要研究mysql,最好的资源莫过于源码了,所以本人打算通过调 阅读全文
摘要:
AOP在js中的实现,先看看用法吧: var A2D = $.noConflict();//不要误会,此乃我自己写的A2D框架,非jQuery function fn1(name, age) { console.log("name: " + name); console.log("age: " + age); } function b1() { console.log("b1"); console.log("b1, parameters - 0: " ... 阅读全文
摘要:
Node.js是基于javascript的、event驱动的单进程服务器(也能实现cluster模式,只要一个fork()语句,类似于C语言的进程创建)。所以大胆估计:Node.js会把很多大网站吞并,java, .net都会甘拜下风。为什么呢?前端html5, css, javascript(coffeescript也是基于js的),backbone, jquery,requirejs, seajs,都是js,并且已经出现了package的实际标准大网站、高标准网站都是要求写很多js的,如自己的js框架、js组件、js的动态配置以及生成UI等,因此这种类型的网站、系统,js的地位极其高后端这 阅读全文
摘要:
这是个加了点淡入淡出效果的顶部tooltip控件,会自动消失用法: info alert hide css.tooltip_info{ background:green; font-size:20px; border-radius: 10px;}.tooltip_alert{ background:yellow; font-size:20px; border-radius: 10px;}jquery.tooltip插件js代码(function ($) { var me... 阅读全文
摘要:
做了个限制文本框最大输入长度的jquery插件,效果图(共2个文本框,限制最多10个字符):功能:当超出设置的最大字符长度后,会截断字符串、更改当前元素的css(会在1秒后还原css)、支持长度超出后的异常回调使用方式: jquery.restrictFieldLength.js:( function ($) { $.fn.restrictFieldLength = function (settings) { var opts = $.extend({}, $.fn.restrictFieldLength.defa... 阅读全文
摘要:
写了个微型JS框架主要实现了:showDialog、noConflict、定位元素、event绑定功能使用端的代码: Test2 A2D.js代码(function (wd, doc) { function noConflict() { wd.$ = _$; wd.A2D = A2D; return A2D; } function saySomeWord() { showDialog("My name is Aaron"); } function showDialo... 阅读全文
摘要:
利用Noesis.Javascript开源组件可以做到在.net中执行js脚本,同时js脚本也能调用C#函数。这个组件的获得方式:在NuGet中输入搜索"Noesis"就能找到。我们来做个搜索功能:用户能够在textbox中输入js脚本来筛选list记录,界面如下:然后,click filter button后的UI:看,筛选出来了,代码如下(js能调C#写的UserInfo类的各个属性)public class UserInfo { public string FirstName { get; set; } public string LastName { ... 阅读全文
摘要:
当socket接收到数据后,会根据buffer的大小一点一点的接收数据,比如:对方发来了1M的数据量过来,但是,本地的buffer只有1024字节,那就代表socket需要重复很多次才能真正收完这逻辑上的一整个消息。对方发来了5条2个字符的消息,本地的buffer(大小1024字节)会将这5条消息全部收入囊下...那么,如何处理呢?下面我以最简单的一种文本消息来demo根据上面所描述的情况,最重要的关键落在了下面3个因素的处理上消息的结尾标记接收消息时判断结尾标记当本次buffer中没有结尾标记时怎么处理我把写好的核心算法贴出来: StringBuilder sb = new S... 阅读全文
摘要:
在这篇文章中,EventBus实现 - 发布订阅 - XML加载所适用的范围只是本机的事件传播,要是牵涉到多台服务器之间的事件传播就不行了,解决办法有用msmq解决的,Node.js解决的,也有用redis的发布订阅解决的,这次用C# socket来实现,能实现立刻推送事件到所有订阅了相关event的server上。这次的子系统适用的场景如下:主要分2个部分:各个server使用的Event Bus Broker以及Event Bus Server。Broker与Server之间的通信协议就3个:ME、Subscribe、Publish。分别代表:我的名字是、我要订阅的事件是、我触发事件。Ev 阅读全文
摘要:
这次介绍的这个框架只适用于中小项目,并且各个读写数据库结构是一致的情况,还要并且是写入数据库只有1台情况。我们来看看这个子系统适用的场景:我们来看这个子系统的配置文件: Server=.;Database=d1;User Id=sa;Password=111111; //唯一的主数据库(写入DB) Server=.;Database=d2;User Id=sa;Password=111111; //这些是普通的对等的读数据库,只是做了些普通索引优化 Server=.;Database=d3;User Id=sa;Password=111111; //同... 阅读全文
摘要:
大家对这段代码肯定很熟悉吧:public List SearchUsers(string userName) { string cacheKey=string.Format("SearchUsers_{0}", userName); List users = cache.Find(cacheKey) as List; if (users == null) { users = repository.GetUsersByUserName(userName); ... 阅读全文
摘要:
放心,这次不是说设计模式中的代理模式,说的是C#的RealProxy的用法,主要用于:通过给class贴标签,让class做更多的工作,比如判断是否存在缓存,有则直接返回缓存object,没有则保存为缓存,等待下次请求是可以更快的获取数据(当然这只是其中一种常用用途,MVC的Action就是采用这种方式)下面是序列图:.Net Object Generation interceptor属于.NET自身行为,不需要额外写代码。Code Consumer指想调用RealObject来进行调用的对象,比如控制台程序,或者WEB程序。ProxyAttribute里定义了具体代理类是哪个,这个代理类是自 阅读全文
摘要:
对象池服务可以减少从头创建每个对象的系统开销。在激活对象时,它从池中提取。在停用对象时,它放回池中,等待下一个请求。我们来看下主线程中,如何与对象池打交道:static void Main(string[] args) { InstancePoolResolver.Register(); while (true) { Thread.Sleep(2000); Console.Clear(); for (int i = 0; i ... 阅读全文
摘要:
所谓半同步半异步是指,在某个方法调用中,有些代码行是同步执行方式,有些代码行是异步执行方式,下面我们来举个例子,还是以经典的PlaceOrder来说,哈哈。PlaceOrder的主要逻辑:public bool PlaceOrder(OrderInfo order){ //验证Order合法性 //OrderInfo增加到仓储 //生成order的pdf //通知客户,email方式}我们假设做出如下决定:public bool PlaceOrder(OrderInfo order)... 阅读全文
摘要:
受到CQRS的影响,写了个EventBus,能实现发布订阅模式执行event,在DDD模型中,可以使用如下代码触发事件:EventBus bus = EventBus.Instance();bus.Publish(new OrderAddedEvent());解决方案结构图如下,很简单易懂:xml事件配置代码sample如下(1个event可以定义多个订阅者,如下): ConsoleApplication2.code.Events.OrderAddedEvent ConsoleApplication2.code.EventHandlers.OrderAddedEve... 阅读全文
摘要:
先上一些多线程需要使用的函数定义:DWORD WINAPI ProcessClientRequests(LPVOID lpParam) //新线程将会执行的函数定义{ return 0;}HANDLE handler=CreateThread(NULL, 0, ProcessClientRequests, &clientsocket, 0, NULL); //这里比较简单,&clientsocket是个指针,是从主线程传入新线程的参数WaitForMultipleObjects(MAXCLIENTS, threads, TRUE, INFINITE); //用来阻塞主线程,直. 阅读全文
摘要:
前段时间写了个C# Socket初探,这次再写个C语言的Socket博文,运行效果如下:实现步骤:1. Server端#include //用于printf等函数的调用#include //Socket的函数调用 #pragma comment (lib, "ws2_32") //C语言引用其他类库时,除了.h文件外,还要加入对应的lib文件(这个不同于C#)int main(){ WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); SOC... 阅读全文
摘要:
Win32类型的全屏代码:1. 去掉menuATOM MyRegisterClass(HINSTANCE hInstance){ WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hIn... 阅读全文
摘要:
最近学习MFC,写了个用键盘上下左右移动的坦克界面,效果图:先用VC++新建一个最简单的MFC项目,基于Dialog的1. 添加坦克图片资源:略2. 添加3个变量:x, y, m_bitmapint x;int y;CBitmap m_bitmap;3. 在初始化方法中加载bitmap以及设置好初始的坐标位置:BOOL Ctest3Dlg::OnInitDialog(){ //略(系统生成的代码略) this->m_bitmap.LoadBitmapW(IDB_BITMAP2); //BMP文件的资源文件ID BITMAP bmpInfo; this->m... 阅读全文
摘要:
写了个简易版的ftp(服务器和客户端),运行效果如下图:click download下载中的UI:原理:模仿正规ftp方式,分成2个socket连接:文本命令socket、数据信道socket。牵涉到的知识点:线程通过invoke 委托的方式调用主界面的控件程序结束时的子线程遍历终止多线程之间的阻塞、同步socket传输命令的异步方式操作实现了如下功能:列举服务器主目录中的所有文件下载文件到客户端(支持大文件)实现起来比较容易,代码在这里下载。 阅读全文