从寻找资源的习惯上谈如何获得好的代码及控件(使用Koders查找)
2010-12-10 23:28
381 查看
严格来讲,本文不是一个技术贴,但是却和我们的技术探索息息相关,每个人的寻找资源的习惯不同,因此获得的资源类型及数量也不同。至于如何获取相应的资源,各种习惯和方法,个人有个人的选择,本无可厚非,这里仅仅是从我本人的习惯方法,来谈论下获取资源的思路及途径,抛砖引玉,共同受益。
作为技术人员来说,我们一般常用的查找资源途径,基本上是通过Google、Bing、Baidu的查询,有时候也会跟着去Codeproject、博客园、CSDN等其他地方去寻找所要的资源,这些途径基本上能满足大多数的期望值,但是有时候针对性不够强,需要经过多次的筛选,才能寻到需要的代码或者控件等。
其实作为代码的查找,有一个地方http://www.koders.com/ ,这个是很不错的寻找代码地方,它里面有大量的开源代码,顺藤摸瓜,追本溯源,我们就可以找到优秀开源组件的地址,或下载,或借鉴,善莫大焉。
例如,有一天,我突然有一个想法,想做一个POP3相关的程序,因此在Google上搜索了一下POP3 C#,发现很多基本的介绍、概念的陈述,翻了多页也未获得我期望的东西,因此期望有更好的面向开发的代码搜索,因此想到了http://www.koders.com/。
如我查找了PoP、C#语言的内容,得到下面的搜索结果,其中很多可以参考人家的一些代码思路,有些可以直接下载过来用的。
很快可以找到一个如下所示的代码片段
当看中一些比较相似的结果后,我们就可以看其完整的项目地址,从中找到开源组件资源的下载地址即可。
这样我们在上图红色框框中就可以项目的完整地址,然后到具体的首页去下载所需要的资源即可,绝大多数的项目源码是可以下载的。
上面这个组件就是非常有名的LumiSoft.Net开源组件,这样你再在Google、百度、Bing上进行搜索,就知道该组件的具体用法和更详细的资源了。非常棒吧,这样你就可以利用前人弄好的轮子(而且是性能非常不错的轮子),直接装配使用即可,不需要再去做笨龊的重复发明了。
采用了该组件的POP部分组件,测试下用POP方式获取邮件,代码变得非常方便和简单明了,代码如下所示:
List<string> gotEmailIds = new List<string>();
List<Mime> result = new List<Mime>();
using (POP3_Client pop3 = new POP3_Client())
{
pop3.Connect("pop.163.com", 110);
pop3.Authenticate("wuhuacong", "******", false);
POP3_ClientMessageCollection infos = pop3.Messages;
int i = 0;
foreach (POP3_ClientMessage info in infos)
{
//每封Email会有一个在Pop3服务器范围内唯一的Id,检查这个Id是否存在就可以知道以前有没有接收过这封邮件
if (gotEmailIds.Contains(info.UID))
continue;
//获取这封邮件的内容
byte[] bytes = info.MessageToByte();
//记录这封邮件的Id
gotEmailIds.Add(info.UID);
//解析从Pop3服务器发送过来的邮件信息
LumiSoft.Net.Mail.Mail_Message msg = LumiSoft.Net.Mail.Mail_Message.ParseFromByte(bytes);
Console.WriteLine(msg.BodyText);
if (msg.Date.AddDays(5) < DateTime.Now)
{
Console.ReadLine();
break;
}
}
}
性能非常不错,而且获取到的邮件内容不会出现乱码,比直接在Google上找到的代码例子好很多,那些或多或少只是一个试验品,和这样的优秀组件的质量差别还是相当大的。
本人以上应用纯粹只是一个日常例子,但是很多情况下,我们如果能够增加这样的步骤去寻找一些东西,获得的收益是无穷的,
上天不能给你的东西,Google可以帮到你,Google帮不到你的地方,可以试试koders。
作为技术人员来说,我们一般常用的查找资源途径,基本上是通过Google、Bing、Baidu的查询,有时候也会跟着去Codeproject、博客园、CSDN等其他地方去寻找所要的资源,这些途径基本上能满足大多数的期望值,但是有时候针对性不够强,需要经过多次的筛选,才能寻到需要的代码或者控件等。
其实作为代码的查找,有一个地方http://www.koders.com/ ,这个是很不错的寻找代码地方,它里面有大量的开源代码,顺藤摸瓜,追本溯源,我们就可以找到优秀开源组件的地址,或下载,或借鉴,善莫大焉。
例如,有一天,我突然有一个想法,想做一个POP3相关的程序,因此在Google上搜索了一下POP3 C#,发现很多基本的介绍、概念的陈述,翻了多页也未获得我期望的东西,因此期望有更好的面向开发的代码搜索,因此想到了http://www.koders.com/。
如我查找了PoP、C#语言的内容,得到下面的搜索结果,其中很多可以参考人家的一些代码思路,有些可以直接下载过来用的。
很快可以找到一个如下所示的代码片段
当看中一些比较相似的结果后,我们就可以看其完整的项目地址,从中找到开源组件资源的下载地址即可。
这样我们在上图红色框框中就可以项目的完整地址,然后到具体的首页去下载所需要的资源即可,绝大多数的项目源码是可以下载的。
上面这个组件就是非常有名的LumiSoft.Net开源组件,这样你再在Google、百度、Bing上进行搜索,就知道该组件的具体用法和更详细的资源了。非常棒吧,这样你就可以利用前人弄好的轮子(而且是性能非常不错的轮子),直接装配使用即可,不需要再去做笨龊的重复发明了。
采用了该组件的POP部分组件,测试下用POP方式获取邮件,代码变得非常方便和简单明了,代码如下所示:
List<string> gotEmailIds = new List<string>();
List<Mime> result = new List<Mime>();
using (POP3_Client pop3 = new POP3_Client())
{
pop3.Connect("pop.163.com", 110);
pop3.Authenticate("wuhuacong", "******", false);
POP3_ClientMessageCollection infos = pop3.Messages;
int i = 0;
foreach (POP3_ClientMessage info in infos)
{
//每封Email会有一个在Pop3服务器范围内唯一的Id,检查这个Id是否存在就可以知道以前有没有接收过这封邮件
if (gotEmailIds.Contains(info.UID))
continue;
//获取这封邮件的内容
byte[] bytes = info.MessageToByte();
//记录这封邮件的Id
gotEmailIds.Add(info.UID);
//解析从Pop3服务器发送过来的邮件信息
LumiSoft.Net.Mail.Mail_Message msg = LumiSoft.Net.Mail.Mail_Message.ParseFromByte(bytes);
Console.WriteLine(msg.BodyText);
if (msg.Date.AddDays(5) < DateTime.Now)
{
Console.ReadLine();
break;
}
}
}
性能非常不错,而且获取到的邮件内容不会出现乱码,比直接在Google上找到的代码例子好很多,那些或多或少只是一个试验品,和这样的优秀组件的质量差别还是相当大的。
本人以上应用纯粹只是一个日常例子,但是很多情况下,我们如果能够增加这样的步骤去寻找一些东西,获得的收益是无穷的,
上天不能给你的东西,Google可以帮到你,Google帮不到你的地方,可以试试koders。
相关文章推荐
- 从寻找资源的习惯上谈如何获得好的代码及控件(使用Koders查找)
- 从寻找资源的习惯上谈如何获得好的代码及控件(使用Koders查找)
- 如何使用FindControl查找内容页上的某个控件?
- C#如何在项目的代码中使用图片文件资源
- (一)关于SWT程序的基本架构,如何使用控件以及使用Image,Font,Color等图形资源内容
- 在C#开发中如何使用Client Object Model客户端代码获得SharePoint 网站、列表的权限情况
- Spark Streaming性能优化系列-如何获得和持续使用足够的集群计算资源?
- QuickCSharp框架开发(20)------授权部分的代码以及如何使用授权 添加用户、角色与分配资源部分的代码暂且省略
- 使用代码动态添加、删除view,通过tag寻找控件
- WPF中如何使用代码操作数据模板生成的控件
- 使用AutoLayout布局适配时,如何提前获得AutoLayout完成适配后的子控件的真实frame
- Xcode 开发 控件如何和代码配合使用
- 如何使用MyEclipse的快捷键查找文件和类等资源
- 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了
- 如何使用FindControl查找内容页上的某个控件?
- 使用AutoLayout布局适配时,如何提前获得AutoLayout完成适配后的子控件的真实frame
- android中使用java代码设置控件获得焦点
- 使用AutoLayout布局适配时,如何提前获得AutoLayout完成适配后的子控件的真实frame
- 如何使用代码获得一个function module的Where Used List
- C# 程序中如何向(DEV)ComboBoxEdit控件中添加下拉列表的值不使用数据绑定,就是使用代码添加