自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(157)
  • 资源 (17)
  • 收藏
  • 关注

原创 DevOps-5:Jenkins配置Java-Maven项目模板Job

介绍在Jenkins里创建Java的Maven项目构建配置和模板配置

2022-11-01 10:47:49 69

原创 DevOps-4:Jenkins配置.Net项目模板Job

介绍了如果有很多项目时,如何创建模板Job,避免重复的配置工作。

2022-10-28 16:39:32 212

原创 DevOps-3:Jenkins使用的Groovy语言介绍

介绍Jenkins里的Groovy脚本语言使用

2022-10-25 20:11:46 623

原创 DevOps-2:持续集成工具Jenkins构建.Net项目

部署好Jenkins后,如何创建一个.Net项目的构建和发布过程。

2022-10-24 15:02:25 1200

原创 DevOps-1:持续集成工具Jenkins的安装

CI工具Jenkins部署说明

2022-10-21 12:08:24 374

原创 短信验证码登录需求的坑点整理

短信验证码需求的问题点描述

2022-09-30 19:05:29 497

原创 SpringBoot的Cacheable缓存问题一则

SpringBoot的缓存无作用问题排除与解决

2022-08-26 21:12:12 192

原创 SpringBoot项目配置明文密码泄露问题处理

在项目开发过程中,需要配置数据库连接密码、Redis密码、网盘上传的AK/SK等敏感信息,都需要保存在配置文件里,或者配置中心。这些信息如果泄露,还是会造成一定的困扰,这里介绍2种处理方案:1、使用系统环境变量储存密码比如K8S的环境变量、Windows的环境变量、Centos的环境变量等等,然后在程序里使用 System.getenv()方法读取。这种方式的好处:只有运维人员知道,连开发都不知道生产的密码。密码变更也简单,运维直接操作就好了。缺点就是部署时,容易遗漏,不过可以通过统一的环境镜

2022-01-20 17:17:50 1857 2

原创 SpringBoot项目日志输出为JSON格式,方便Elastic采集

这段时间,使用K8S部署项目,同时使用Elastic采集日志并提供给开发检索,使用过程中,经常出现换行日志无法完整采集和展示的问题。比如抛出的Exception会有换行,被ES采集后,变成多条日志,极其不方便检索和排错。经运维提示,并参考 https://groups.google.com/g/fluent-bit/c/XoOibAxGGeI改用json输出项目日志,本地调试依然使用旧日志格式。注:本文基于:spring-boot-starter:2.4.11 或 spring-boot-star

2022-01-19 14:56:44 798

原创 生产问题一则:ThreadLocal使用不当导致的内存泄露

先简单介绍一下 ThreadLocal,它是一个线程级的数据存储对象,生命周期是从一个线程的创建到该线程销毁。ThreadLocal里的数据,只能被所持有的线程读取,所以是线程安全的(前提是该数据不是多线程共享的)。ThreadLocal的get、set、remove等方法,其实是对Thread.threadLocals字段的封装,而Thread.threadLocals的类型是ThreadLocalMap,它维护了一个key/value键值对,ThreadLocalMap.set方法简略代码如下:/

2021-07-28 15:31:29 353

原创 生产问题一则:MySQL隔离级别引发的数据读取失败问题

先简介MySQL的4种隔离级别和解决的3种问题:隔离级别脏读不可重复读幻读读未提交 read-uncommitted是是是读已提交 read-committed否是是可重复读 repeatable-read否否是串行化 serializable否否否脏读:事务A新增或更新数据,还未提交,事务B就能读取到,然后事务A回滚了,导致事务B读取的是脏数据。不可重复读:事务A读取一行数据,事务B更新该数据,事务A再次读取同一行数据,两次读取

2021-06-30 13:03:45 163

原创 SpringCloudGateway限流后,默认返回429的改造:改302跳转或增加响应body

上篇介绍了使用SpringCloudGateway如何在内存中进行限流操作。但是,SpringCloudGateway默认是返回HttpStatus.TOO_MANY_REQUESTS 429状态,可是我们并不希望用户看到这个不友好的提示,而是希望用户看到我们的自定义界面,更好看,或者去一个游戏界面让用户玩玩游戏吧。有一个解决方案,一般在api网关的前面还会部署一个nginx服务,用于网关的负载均衡,那么可以在nginx收到429响应时,转向特定页面进行展示。但是如果我们希望根据不同的服务,转向不同的

2021-03-25 15:06:10 2654

原创 SpringCloudGateway内存中基于令牌桶进行限流

研究了一下网上的很多文章,基本都是使用 RedisRateLimiter,即根据Redis来进行限流操作。这样有个好处,就是网关的集群可以使用同一套数据进行限流;当然也有缺点,网关本来就是所有流量的集中出入口,如果每个请求都要往返一次Redis,无疑加重了网关的负担,性能有下降。本文介绍了如何直接在内存中进行限流,内存限流的缺点,当然就是对集群不友好了,比如有3个网关实例在运行,每个网关按每秒1个令牌,令牌桶容量为10,那么实际上就是每秒3个令牌,最大容量是10~30波动,不过基于令牌桶算法的控制,我

2021-03-24 11:52:36 657

原创 生产慢查询记录:MySQL IN 子查询导致的慢查询

嗯,先说结论:MySQL的 in subquery 会导致全表扫描,并不会走索引,即使是用主键id in (子查询)也一样,比如:SELECT id FROM Activity WHERE Id IN (SELECT 1 WHERE 1=1)SELECT id FROM Activity WHERE Id IN (SELECT 1 WHERE 1=0)参考官方对 IN(子查询) 的说明,里面说:先执行外层查询,再匹配子查询生成的数据MySQL evaluates queries “from out

2021-02-05 16:08:56 452

原创 Spring Cache缓存使用问题整理

接上篇,解读了Spring框架的缓存实现原理后,本文记录一些使用过程中的怎么办问题。前言:在没有引入其它类库,也没有自定义配置的情况下,一些默认的缓存实现:CacheManager: org.springframework.cache.concurrent.ConcurrentMapCacheManagerCacheResolver: org.springframework.cache.interceptor.SimpleCacheResolverKeyGenerator: org.spring

2021-01-23 17:06:15 598 2

原创 Spring框架的Cache缓存实现源码解读与原理解析

项目需要,对Spring的Cache缓存实现做了一次分析,写一篇小结在此。本文基于 spring-context 5.2.12.RELEASE的源码:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.12.RELEASE</version> &lt

2021-01-14 08:00:52 834 1

原创 Spring项目统一cacheManager出错:No CacheResolver specified, and no unique bean of type CacheManager found

起因,一些基础数据的接口访问量居高不下,在高峰期很容易出现服务性能问题,并经常需要扩容。最早的解决方案,是让各调用方,自己添加缓存,避免频繁访问基础服务接口。该方案存在的问题,就是数据经常不一致,基础数据变了,但是调用方不知道,如果用MQ去通知,技术方案又复杂了。第二期的解决方案,是在基础数据提供方添加缓存,因为这些数据是否变化,只有提供者知道并可以及时过期处理。该方案效果还是比较明显的,但是监控数据上的TPS依旧存在,大量的HTTP请求也依然存在性能浪费的问题。而且各个服务的缓存方案各不一致,比如

2021-01-09 14:35:06 2952

原创 生产慢查询记录:MySQL统计问题导致的慢查询一则

先说结论,变更频繁的大表,应该定期使用 ANALYZE TABLE 命令分析优化表统计信息。正文:收到一起bug反馈,生产环境突然查询变慢,查询消费数据需要近20秒才能有响应,开发兄弟在测试环境使用同样的代码版本,并把生产数据导入测试环境,均无法重现。VPN访问生产环境的swagger接口验证,也是秒级响应,无法重现。第一反应,看有没有慢查询,发现没有注:这一步,获取信息有误,开发给了错误的连接信息,导致判断没有慢查询。幸好线上问题是可以复现的,先把生产的一台服务器下线,然后把请求打到下线的服

2020-12-22 18:28:39 248

原创 Java单元测试:使用PowerMockito库对方法进行进一步mock

单元测试第七篇,在第六篇中,介绍了mockito对public方法的mock,但是mockito不支持私有方法、静态方法等,因此,本文介绍PowerMockito库,它在mokito上进行增强,可以mock 静态方法、私有方法、final方法、enum、构造函数等等。注:要使用PowerMockito,必须使用org.junit.Test,且class和method都必须是public参考:https://github.com/powermock/powermock/issues/1030。相关代码

2020-12-17 15:55:46 816

原创 Java单元测试:使用mockito库进行方法级mock,完成单元测试

单元测试第六篇,演示在单元测试时,如何拦截某些方法的访问,让它们返回我们想要的值,而不是执行该方法本身,以便其它代码的测试和验证。相关代码已经放在Github上:源代码注:前面5篇,是介绍在单元测试中避免访问外部中间件,但有时,我们想进行测试的代码,调用了一些我们并不想测试的函数方法,此时,就可以用mockito框架来mock掉这些不想测试的方法。下面简述开发过程:1、首先,还是正常建立项目,并完成一些常规的业务逻辑开发;2、项目添加mockito库的引用,打开pom.xml,添加:<!-

2020-12-17 15:43:53 2107

原创 Java单元测试:使用spring-boot-test库完成MVC控制器的单元测试

单元测试第五篇,演示在单元测试时,如何模拟浏览器访问Controller里的方法,进行测试和验证。相关代码已经放在Github上:源代码下面简述开发过程:1、首先,还是正常建立项目,并有常规的MongoDB操作的业务逻辑;2、项目添加spring-boot-starter-test库的引用,打开pom.xml,添加:<dependency> <groupId>org.springframework.boot</groupId> <artif

2020-12-08 13:54:59 243

原创 Java单元测试:使用de.flapdoodle.embed.mongo库完成MongoDB的操作mock

单元测试第四篇,演示在单元测试时,如何对MongoDB操作进行mock,便于本地或CI/CD环境的质量测试、覆盖率测试。相关代码已经放在Github上:源代码注:该库在首次运行时,会真的去下载并搭建一个Mongo运行环境,因此:1、运行时,需要外网网络,并且质量不能太差,一个包上百兆呢(只会下载一次)2、每次运行,都需要清理旧数据,否则可能对你的测试代码造成干扰。下面简述开发过程:1、首先,还是正常建立项目,并有常规的MongoDB操作的业务逻辑;2、项目添加mock库的引用,打开pom.xm

2020-12-07 20:15:25 1381

原创 Java单元测试:使用embedded-redis库完成Redis的操作mock

单元测试第三篇,演示在单元测试时,在没有安装Redis服务时,如果对Redis操作进行mock。相关代码已经放在Github上:源代码注:有些资料说,embedded-redis存在一些问题,我在具体使用中,因为只使用了基本的key value操作,暂时未发现。下面简述开发过程:1、首先,还是正常建立项目,并有常规的REDIS操作的业务逻辑;2、项目添加mock库的引用,打开pom.xml,添加:<dependency> <groupId>it.ozimov&lt

2020-12-02 11:59:00 3563 1

原创 Java单元测试:使用RabbitMQ mock库完成消息生产和消费的mock模拟

单元测试第二篇,演示在单元测试时,RabbitMQ生产者和消费者的mock。相关代码已经放在Github上:源代码要注意的是,因为不是真实的消息队列中间件,只是进程内mock,因此,生产的消息无法被其它服务(进程)消费,消费者也无法收到真实的MQ消息。下面简述开发过程:1、首先,还是正常建立项目,并有常规的生产消息或消费消息的业务逻辑;2、项目添加mock库的引用,打开pom.xml,添加:<dependency> <groupId>com.github.fri

2020-11-28 22:25:27 1680 3

原创 Java单元测试:使用内存数据库h2完成JPA的mock模拟

为了让兄弟们快速介入单元测试的基本使用,整理了一系列不同场景的,基于SpringBoot的单元测试Demo,并梳理一下相关使用过程和注意事项。首先是数据库,本文基于JPA进行说明,开发使用MySql,单元测试使用H2数据库。这样,单元测试可以在Jenkins构建环境或其它管道模式下运行,便于业务的正确性测试和覆盖率检测。相关代码已经放在Github上:源代码下面简述开发过程:1、项目已经正常建立,并有常规的仓储层操作业务逻辑;2、项目添加h2数据库的引用,打开pom.xml,添加:<de

2020-11-20 16:54:26 1709 5

原创 日志记录:注解方式记录方法日志

前面分别讲了5篇,包括:Feign、JPA、MVC、Redis、RabbitMQ。对业务项目无侵入,在框架层面实现全局日志记录的解决方案。一些通用的日志需要已经差不多了。但是实际业务中,还是经常需要按实际需要,记录一些日志的.本文就介绍,如何在方法上加一个注解,就完成了对方法的输入输出及耗时,进行记录日志。具体的Demo演示代码,已经上传到:Github代码具体实现,是通过 spring-boot-starter-aop 切面实现的。1、定义一个只能用于方法的注解:import java.l

2020-11-06 15:51:50 1071

原创 全局记录RabbitMQ的消费者消息日志

还是为了方便不同环境的问题排查,需要记录 消费者收到的所有消息,最好也能记录一下每个消息的处理时长,哈哈。注:本文的完整代码,已经上传到:Github代码通过分析springframework.amqp代码,发现RabbitListener注解的消费者,是通过 SimpleMessageListenerContainer 类在处理监听:org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer而 SimpleMe

2020-11-05 11:41:08 2520 2

原创 全局记录SpringBoot Redis的请求和响应日志

同前文,有时需要跟踪Redis的命令、参数,以及Redis的返回数据情况,如何开启Redis的全局日志呢?首先当然是在网上找了一些资料,发现要么是通过Redis第三方工具监控Redis通信,要么是通过代理RedisTemplate,拦截RedisTemplate类的方法,而RedisTemplate类集成了9个opsForXxx方法,还有expire或delete方法又是独立的,而且相关命令基本都长得跟Redis不太一样,不熟悉的话,需要看一下源码,才知道是哪个Redis命令。调研了一下Redis操作

2020-10-24 22:07:31 1990

原创 全局记录SpringBoot MVC的请求和响应日志

目录1、使用logbook组件输出日志2、自定义Filter输出日志在线上出现问题需要排查,需要开启整个服务的请求与响应日志,下面简介一下如何开启MVC日志:注1:本文基于 spring-boot-starter-parent 2.3.4.RELEASE注2:由于站点一般访问量都比较大,影响性能,生产不建议开启,仅在需要问题排查时,通过actuator接口开启,排查完毕要及时关闭。1、使用logbook组件输出日志演示代码参考点这里1.1、添加logbook引用:<!-- https:

2020-10-21 10:42:31 1295

原创 全局记录JPA的SQL、参数和执行时长日志

目录1、只开启请求的SQL和具体参数:2、希望记录完整的SQL和执行时长:3、记录返回的结果集或更新行数日志同样为了问题排查,需要开启数据库的访问日志,了解请求的SQL及具体参数,最好还记录一下时长,以便排查慢查询,最好还能有返回结果情况,下面简介一下如何开启JPA的日志:注:本文基于spring-boot-starter-parent 2.3.4.RELEASE1、只开启请求的SQL和具体参数:如果有sql和参数就够了,那么在application.yml里添加如下配置就好了:loggin

2020-10-14 20:44:38 1954 2

原创 全局记录Feign的请求和响应日志

这里写目录标题1、项目里定义FeignClient接口:2、单个FeignClient接口开启日志:3、所有FeignClient接口 开启日志4、使用Aspect切面输出日志项目里使用了Feign进行远程调用,有时为了问题排查,需要开启请求和响应日志,下面简介一下如何开启Feign日志:1、项目里定义FeignClient接口:package com.example.demo.feign;import org.springframework.cloud.openfeign.FeignClient

2020-10-13 12:14:03 5754 8

原创 线上故障小记:低效的组合算法导致的崩溃

快12点了,准备吃饭了,突然收到告警:Process [user2-activity] CPU Time > 50%某个站点CPU占用超50%了。注:因为是服务混部,所以对机器上的单个服务,CPU不应该超过50%。排查步骤:1、看了一下监控大屏,该服务的所有节点,CPU都偏高,不正常。2、检查对应的数据库慢查询,一切正常。3、网关上,下线某台节点,然后对该站点的进程,导出一个内存Dump文件;4、用WinDebug打开分析,发现有4个线程执行时间较长,卡在 ProcessCalTicke

2020-09-04 12:05:25 100

原创 MySQL写入emoji表情,并读取emoji表情的操作。

先放结论,读写emoji表情都正常的操作方式是:1、数据库的表定义,必须是 utf8mb4;2、SpringBoot配置文件里的连接串必须加 characterEncoding=utf83、配置文件里同时要添加初始化SQL语句: initSQL: “SET NAMES utf8mb4”保证以上3步,就可以正确写入,也能正确读取出emoji表情字符。-------------------------------------------------我是分隔符----------------------

2020-07-30 20:06:39 909 2

原创 JPA-JpaRepository方法命名语法小记

梳理了一遍JPA的方法命名语法,记录一下,以便后续备查。注:本文不介绍JPL语法,版本为spring-data-jpa-2.3.0.RELEASE。假设实体类名为 aaa,且定义如下:import lombok.Data;import javax.persistence.Entity;import javax.persistence.Id;@Entity@Datapublic class aaa { @Id private long id; private long

2020-05-21 20:27:34 2137

原创 快捷键冲突情况小记

有相当长一段时间,在使用IDEA调试的时候,发现F8按钮不好使,但是F7和F9又OK,还以为是键盘坏了,今天突然想起以前修复过快捷键冲突的问题,就查了一下安装过的软件,果然,F8被有道词典给注册了,关闭有道的快捷键就好了,写一个文章记录那些有冲突的软件吧。建议如下这些软件,关闭所有快捷键,谁也不知道哪天就冲突了呢……1、有道词典设置=》取词划词=》开关热键 默认是F8,删除它;影响IDEA的F8调试 和 Chrome开发者工具的F8调试其它:设置=》常规Ctrl+Alt+X 打开有道词典Ct

2020-05-13 11:12:45 348

原创 SpringBoot加62进制,自增序列,实现短网址服务

看了一个短网址项目,需要提前批量生成大量短网址,并转为二维码,然后打印出来,线下运营去客户那边贴码,同时在后台绑定跳转地址。这个项目的实现是生成随机的6位字符串,再判断数据库不存在时,才插入数据库,伪代码就是:string code;do{ code = Random.Get(6);// 6位随机串短码}while(DB.Exist(code));DB.Add(code);r...

2020-03-27 23:55:20 766

原创 仿Java实现的,DotNet版本的Feign类库

简介Feign是Java里的一个声明式的http api请求库,可以通过注解(类似.Net的特性)来快速并优雅的封装对http的调用,并且方便理解和后续的维护,已经广泛的在Spring Cloud的解决方案中应用。基于这些优点,我也为.Net封装了一个类似的类库:Beinet.Feign,下面简单介绍一下使用方法。注1:该库基于Framework4.0开发(可以支持WinXP系统),并依...

2020-03-21 13:02:02 672 2

原创 简介LinFu.DynamicProxy动态代理,及Attribute的构造过程

这里写自定义目录标题这2天,基于项目可维护性的考虑,要实现一套类似于Java Feign的类库,可以快速并且优雅的声明和调用API,当然,Feign都是接口声明,不考虑做接口实现,因此采用LinFu.DynamicProxy作为动态代理,来拦截所有Feign接口方法的调用。LinFu.DynamicProxy介绍,可以参考这里,至于为啥不用Castle DynamicProxy,因为Castl...

2020-03-18 22:38:10 211

原创 MySQL隐式转换,导致的误操作更新数据一则

早上过来,有数据需要刷库,简单整理更新语句如下:UPDATE tb SET content='xxx' WHERE tcode=1因为该表的 tcode 定义如下,并且是唯一索引:`Code` varchar(128) NOT NULL COMMENT '短码'没有想太多,直接安排刷库了,一看刷库结果,影响行数4097行,头一晕,赶紧用查询语句看一下:SELECT tcode F......

2020-03-10 09:56:25 213

原创 .Net常见线程安全问题整理

最近线上又出现了几次线程安全问题 导致的服务异常,线程安全问题都是隐藏的炸弹,有可能几个月都不出问题,也有可能连续几天爆炸好几次,问题出现的结果完全是无法确定的,包括但不限于如下结果:应用异常,且无法自恢复,必须重启站点或服务;陷入死循环,导致CPU占用100%,从而整台服务器崩溃;错误数据入库,导致一系列的排查、数据修复的困难,甚至可能无法修复数据;因此,很有必要做几次全局的筛查...

2019-09-29 17:11:40 851

redis应用场景简介

去年我写的培训用教材,redis应用场景简介,简单列举了一些Redis的使用场景。 发现下载积分居然无法调整……

2019-05-06

C#的Demo项目:RabbitMQ封装和使用

如题,C#的Demo项目:RabbitMQ封装和使用, 引用了RabbitMQ.Client 版本:3.6.9 RabbitMQ .NET客户端操作类库, 并简单展示了3种Exchange的使用

2018-05-23

android build-tools_r24.0.1-linux

安卓build tools,省得下载了,哈哈

2016-11-01

android build-tools_r24.0.1-windows

android build tools r24.0.1 windows,直接这里下载吧

2016-11-01

2014年驾照科目一考试大图版

自动抓取驾校一点通的考试题目后,生成的.net运行程序,可以自动测试,自动保存历史记录等, 这里只有程序,如果需要源代码,要自己去git上下载 注:程序里已经抓取好了全部的考试题目 和 大图 源码里有2个form,一个是考试的form,一个是抓取考题的form(如果题目变了,需要重新抓取) 代码下载地址是git: https://github.com/youbl/Beinet.cn.DrivingTest

2014-03-07

2014年驾照科目一考试

自动抓取驾校一点通的考试题目后,生成的.net运行程序,可以自动测试,自动保存历史记录等, 这里只有程序,如果需要源代码,要自己去git上下载: https://github.com/youbl/Beinet.cn.DrivingTest

2014-03-06

带进程路径的任务管理器

WinXP或Win2003自带的任务管理器看不到进程路径,查找起来很麻烦,这个是可以替换系统任务管理器的版本,下载后,覆盖到System32\dllcache目录下 注意:有时覆盖后,又变回旧版本了,需要在安全模式下覆盖

2012-02-14

基于C#.net开发的hosts静态域名解析文件修改工具

汗啊汗,刚刚发布,就发现有不足的地方,又修改了几个地方,大家还是去俺的博客下载吧(有做广告的嫌疑,嘿嘿) http://beinet.cn/Blog/BlogShow.aspx?id=ef26b5d8-9bad-4b9a-9e8b-77910e6a6cca 基于工作需要,业余开发了这么一个工具,用于修改hosts文件,并可以创建多种版本的快捷方式,比如:测试项目1用的hosts、测试项目2用的hosts,以便实时切换, 同时也提供了快捷的修改注册表以让hosts快速生效的功能,大概就这么多了,下面是下载地址,如果需要源代码,请向我留言或来信索取吧, 我也很希望得到你们的功能增强版,呵呵。

2010-11-25

ASP.Net做的简易版文件管理器,就一个aspx文件

由于工作中的程序日志,是通过IIS自带的目录浏览功能来查看,不能进行一些处理,比如文件太多,页面显示太慢,想移动一些文件到旧的目录,或一些其它的文件管理操作,就做了一个简单的资源管理器,为了简单,代码和html全在一个文件里,什么压缩解压的功能也没加 注:把文件放到网站目录下即可运行,注意进入时要加一个QueryString来填写进入密码,初始密码为:beinet.cn 请自行修改代码里的密码配置 运行方式:FileManager.aspx?p=beinet.cn 比如你的网站是:http://www.beinet.cn/,你把这个文件放在根目录下,那么进入这个文件方式就是: http://www.beinet.cn/FileManager.aspx?p=beinet.cn 如果你发现有什么bug,请给我留言 或者你增加了什么新功能,希望给我发一个版本,一起进步,呵呵 2010.11.17更新日志: 1、版面修改; 2、增加目录或文件改名功能(使用js的prompt弹出窗口,所以IE8下可能会有提示) 3、增加目录批量删除 和 目录批量移动功能 4、增加目录大小获取功能 最后说明:以后如有更新,直接发布在 http://beinet.cn 谁让csdn不能更新呢

2010-11-17

修正:支持Chrome、FireFox的梅花雨日历控件3.0修正版

今天刚刚又修正了2个问题,但是因为这里不让编辑上传的文件,大家还是去我的博客下载吧: http://beinet.cn/Blog/BlogShow.aspx?id=c1c31322-f824-41a7-bc03-6b5ca98e4906 因为公司需要支持多版本的浏览器,再把我07年修正的那个版本拿来修改了一下, 在IE6,IE7,IE8,chrome谷歌浏览器6.0.472.55,FireFox火狐3.6.8下测试通过 需要说明的是,测试时间不多,所以可能测试不够详细,欢迎大家指出bug,并在我的博客发表回复:http://beinet.cn 注意:刚刚测出一个bug,请用记事本打开:

2010-09-14

小巧的Asp.net分页控件源代码

个人项目中常用的分页控件,跟大家分享,有什么问题大家一起研究探讨 效果大致是这样的: |< < 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > >|

2009-12-15

C#版的算24点的算法

C#版的算24点的算法 06年写的,上传上来分享吧。

2009-09-04

支持AJAX的TreeView树例子,使用省市县三级xml作演示

看到网上很多想用ajax的树的例子,很奇怪,明明TreeView自带AJAX功能,取非要自己去写一大堆代码, 工作量增加了,而性能又没有提高多少 正好自己这次用到了,就做了一个例子,供大家一起研究参考 注:顺便下载了一个省市县的3级xml文件,作为ajax树联动展示的例子 这个例子还实现了选中父结点时,选中全部子结点; 取消一个子结点,同时取消全部级别的父结点。

2009-07-06

C#版本和javascript版本的DES加密函数(注:可以交互加解密)

因项目需要,要用js加密后,提交给C#解密,在网上找了半天,无数个版本,却不能互相使用 就随便下载了一个JS版本的,把它改写成C#版本的 这样JS加密后,C#也能解密 反之C#加密后,JS也能解密 共享给大家吧。 注:是VS.Net2008版本,里面包含js的加解密函数和C#的加解密函数

2009-06-24

C#版的贪食蛇程序(使用VS.Net2005重新封装)

用C#编写的一个贪食蛇程序, 以前上传过一个cs文件版的,但是很多朋友都不知道怎么放入到Vs.Net2005中去,而且注释相对也比较少,看的不是很明白,所以我重新写了一下注释,并重新写了部分源代码 大家看看吧,有问题可以mail俺,youbl#126.com 注意修改#为@

2008-09-04

不要下载这个了,又做了一个新的

不要下载这个了,又做了一个新的改进,在Chrome和FireFox下测试通过的 下载地址: http://download.csdn.net/source/2694314

2007-11-14

C#版的贪食蛇程序

用C#编写的一个贪食蛇程序,附上全部源代码,和一家一起研究,希望大家喜欢

2007-11-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除