fanzehua最新分类"DotNet"博客文章 http://www.fanzehua.com/blog/category_1_1.html 最新博客文章 fanzehua 简单高效的短链接生成服务C#实现 fanzehua DotNet 项目中有一处需求,需要把长网址缩为短网址,把结果通过短信、微信等渠道推送给客户。刚开始直接使用网上现成的开放服务,然后在某个周末突然手痒想自己动手实现一个别具特色的长网址(文本)缩短服务。由于以前做过socket服务,对数据包的封装排列还有些印象,因此,短网址服务我第一反应是先设计数据的存储格式,我这里没有采用数据库,而是使用2个文件来实现:Url.db存储用户提交的长网址文本,Url.idx 存...... 2017/11/4 18:41:49 短 URL 系统是怎么设计的? fanzehua DotNet 作者:iammutex链接:https://www.zhihu.com/question/29270034/answer/46446911来源:知乎著作权归作者所有,转载请联系作者获得授权。看了一下 @Tang minyi 的回答,也非常不错,如果面试者这么回答,我也会很高兴的。 对于我用词比较激烈的问题,我面试时真实想法既是如此,也懒得润色了。--------------------------...... 2017/11/4 18:18:46 lucene 的评分机制 fanzehua DotNet lucene 的评分机制elasticsearch是基于lucene的,所以他的评分机制也是基于lucene的。评分就是我们搜索的短语和索引中每篇文档的相关度打分。如果没有干预评分算法的时候,每次查询,lucene会基于一个评分算法来计算所有文档和搜索语句的相关评分。使用lucene的评分机制基本能够把最符合用户需要的搜索放在最前面。当然有的时候,我们可能想要自定义评分算法,这个就和lucene的...... 2017/6/22 10:41:57 聊聊基于Lucene的搜索引擎核心技术实践 fanzehua DotNet 搜索服务,已经成为了互联网最常用的基本服务: 从谷歌、百度搜索关键字,到电商平台搜索商品,再到微信查看附近的人。我们几乎每时每刻都在用到它。所以,搜索引擎技术一直为大家关注。作者本人曾负责一些大型的分布式搜索系统,本文从个人项目出发,讲讲基于 Lucene 的核心搜索引擎技术实践。希望让大家对搜索系统有进一步了解和启发。之前,我曾分享过 Qunar 的机票搜索系统,一种基于航运业务的垂直搜索应用。...... 2017/6/15 10:58:44 Lucene学习总结之一:全文检索的基本原理 fanzehua DotNet 一、总论根据http://lucene.apache.org/java/docs/index.html定义:Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据和非结构化数据。结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据...... 2017/6/14 11:11:10 检测PC端和移动端的方法总结 fanzehua DotNet 正在苦逼的实习中,昨天公司让做一个页面,涉及到检测终端的问题,如果是手机设备,就跳转到指定的网页上,以前写响应式布局只要用@media screen来实现布局的差异化适应,但是现在不仅仅是布局,还要针对移动端做一些别的动作,所以看了点资料,做个总结方法一、还是用@media screen思路:css使用媒体查询,当屏幕小于760px时,使某个元素的样式发生改变,然后通过js检测到这个改变,就可以知...... 2016/6/2 17:15:45 在SQL Server中调用.NET程序集 fanzehua DotNet 使用到这东西完全是个巧合和无奈之举。不小心在数据库中插入了一些HttpUtility.UrlEncodeUnicode之后的数据。数据库里的一些字段成了%uxxxx%uxxxx这样的结构。搜索了半天T-SQL UrlDecode的函数,发现都不支持上面这种Unicode的。自己对T-SQL又不熟悉,时间也很紧迫。解铃还须系铃人,想到在T-SQL里调用HttpUtility.UrlDecode应该会...... 2016/4/18 10:13:32 C#.NET解析XML(使用属性控制 XML 序列化) fanzehua DotNet 今天需要解析一个XML,这个XML和一般情况用.NET的序列化出来的格式不太一样。我就又补习了一下。分享一下学习成果吧。示例代码下载:http://download.csdn.net/detail/bdstjk/4028340先给大家看看基础知识吧,后面再给大家贴一个复杂实例使用属性可以控制对象的 XML 序列化。默认情况下,XML 元素名称由类或成员名称确定。在名为Book的简单类中,字段ISB...... 2016/3/10 20:59:45 C# Winform 打印 fanzehua DotNet http://msdn.microsoft.com/zh-cn/library/aa394363.aspx1. 设置默认打印机using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace Printers...... 2015/9/29 11:11:03 解决firefox和IE9对icon font字体的跨域访问问题 fanzehua DotNet 何为跨域访问,为什么会有跨域限制?一切还得从浏览器的同源策略说起。同源策略:是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能会受到影响,可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。浏览器的同源策略:限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。同...... 2015/8/2 23:55:30 纯CSS3画出小黄人并实现动画效果 fanzehua DotNet 前言前两天我刚发布了一篇CSS3实现小黄人动画的博客,但是实现的CSS3动画是基于我在站酷网找到的一张小黄人的jpg格式图片,并自己用PS抠出需要实现动画的部分,最后才完成的动画效果。但是,其实我的初衷是想体验一下用图片做动画的赶脚,但是找不到素材,才无奈用了最笨的方法来满足自己的需求,本想勉强能看就行了。可是呢,还是抵不住自己内心的完美,于是乎,用了一个晚上用CSS3画出了小黄人再实现类似的动画...... 2015/7/19 16:23:03 asp.net 中长尾链接实现推送 -- comet fanzehua DotNet 一般需求推送服务时,都会去第三方拿推送组件,如”极光“,”百度“,”小米"什么的,自己用.net实现推送服务端需要面对很多问题,比如C10K,但是企业内部使用往往用不了10K的链接,有个1K,2K就足够,这个时候完全可以自己实现一个推送服务,这样手机应用就不用走外网了。使用.net实现推送服务有几个选择1.是使用WCF 基于TCP的回调-...... 2015/6/25 23:12:08 WPF打印票据 fanzehua DotNet WPF打印票据或者是打印普通纸张区别不大,只是说打印票据要把需要打的内容摆放好位置,搞定缩放比例,就可以放入票据直接打印了。那么关键点就是3个:1、使用WPF提供的什么类、什么方法来执行打印2、如何摆放位置3、如何搞定缩放比例1、使用WPF提供的什么类、什么方法来执行打印这个问题很容易解决,搜索下WPF打印或WPF Print,就能找到示例代码。那么我用的是PrintDialog的PrintVis...... 2015/6/24 15:39:12 第二十一章 打印 fanzehua DotNet 在Windows Forms中,打印相对不难,但是这里的关键词是“相对”。他只是在你掌握了Win32打印机API的使用经验时才显得容易。打印永远不会像在屏幕上显示文本和图形那么容易。了 解在Windows Forms中进行打印的部分困难是存在几个连锁类,这些类看上去都引用了其他类。例如,PrinterSettings类具有一个 PageSettings类型的属性,PageS...... 2015/6/21 23:09:46 第十一章 图像和位图 fanzehua DotNet 绘图(Draw)程序制作矢量图形,绘画(paint)程序制作光栅图形。照片(photo)程序是绘图程序的变化格式。矢量图形进行大小和方向的转换不会损失分辨率。光栅图形则通常依赖于设备。将矢量图形转换为光栅图像是容易的。反之则很困难。11.1 位图支持概述System.Drawing名称空间有两个类,即Image和Bitmap,Bitmap类以及Metafile类是从Image类派生的。Image类...... 2015/6/21 23:08:44 [转载]C# window Service实现调用有UI的应用程序(关于win xp以后的windo fanzehua DotNet 我开发的系统中有一接口程序(这里就称Task,是一个C#的Console Application)经常无故的死掉,导致第二天的数据不能正常解析,所以,我写了一个window service去监视Task,如果发现Task在进程列表中不存在或线程数少于两个(Task为多线程程序),就重新调起Task。  开始没接触过window service调用application的例子,在网上查了下,百度的实...... 2015/6/21 10:24:58 基于ASP.NET的Comet长连接技术解析 fanzehua DotNet Comet技术原理来自维基百科:Comet是一种用于web的技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流。简单的说是一种基于现有Http协议基础上的长轮询技术,之所有会产生这种技术的主要原因是Http协议是无状态的所以客户端和服务端之间没办法建立起一套长时间的连接。比如我们要做一个聊天室,在Web环境下我们通常不能从服务端推送消...... 2015/5/20 22:10:46 动态加载/卸载程序集 fanzehua DotNet 开篇说明 MES产品框架采用WCF通信,服务端Service的更新以及客制化方案都以dll的方式实现,并且对Service的更新要在服务Runing的情况下进行(即“热替换”)。 采用动态加载/卸载dll的方式实现。 本篇示例代码下载动态加载dll的两种方式  C#中实现动态加载dll有两种方式:Assembly和AppDomain。  1、 Assembly ...... 2015/4/26 21:08:49 检测到有潜在危险的 Request.Form 值 fanzehua DotNet 这种问题是因为你提交的Form中有HTML字符串,例如你在TextBox中输入了html标签,或者在页面中使用了HtmlEditor组件等,解决办法是禁用validateRequest。如果你是.net 4.0或更高版本,一定要看方法3。此方法在asp.net webForm和MVC中均适用方法1:在.aspx文件头中加入这句:<%@ Page validateRequest="false"...... 2015/4/20 18:51:29 IIS是如何处理ASP.NET请求的 fanzehua DotNet 前言这不是一篇描述asp.net生命周期的文章,仅仅是关于IIS操作的。在我们开始之前,先了解这些会有助于对全文的理解,同时欢迎反馈和建议。什么是Web Server?每当我们通过VS运行ASP.NET网站时,VS集成的ASP.NET引擎会响应各种请求,这个引擎的名字叫“WebDev.WebServer.exe”。当我们配置一个Web程序时,总会涉及到一个词“W...... 2015/4/6 17:43:19