Mono是一个由Novell公司(先前是Ximian)主持的项目。该项目的目标是创建一系列符合ECMA标准(Ecma-334 和 Ecma-335)的.NET工具,包括C#编译器和共通语言运行平台。与微软的.NET Framework不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X和Solaris。
Mono现由Novell持有双重许可,这和Qt和Mozilla应用程序包的情况相似。Mono的C#编译器及其相关工具发布于GNU General Public License(GPL)之下,其运行时库发布于GNU Lesser General Public License(LGPL)之下,其类库发布于MIT License之下。这些均是开源协议因此Mono是一个开源软件。如果你打算向Mono贡献你的源码,则你须签署一个版权分派给Novell以允许它将这些代码在其它协议下再申请许可,从而允许Novell保留其双重许可的能力来持有Mono的商业协议。[1]
微软开发了一个称为共享源码公共语言基础(Shared Source Common Language Infrastructure,Shared Source CLI)的可用于FreeBSD,Windows和Mac OS X的.NET实现版本。微软的共享源码协议并不是开源软件协议,且可能对于社区来说也是不足够的(它明文禁止了对软件的商业用途)。我们还可以见到另外一个.NET实现版本,Portable.NET项目,该项目与Mono项目有着很多相同的目标。
Mono虚拟机包含一个实时编译引擎,该引擎可用于如下处理器:x86,SPARC,PowerPC,ARM,S390(32位模式和64位模式),x86-64,IA64和64位模式的SPARC。该虚拟机可以将代码实时编译或者预先编译到原生代码。对于那些没有列出来的系统,则使用的是代码解释器。 (更多…)
WPtouch 支持 iPod, iPhone, iPad, Android, 黑莓, Palm OS 等常用的触摸设备浏览器. 而且强大如一个网站管理工具, 免费版就可以进行一些常规的页面修改, 如选择是否显示文章 Tags, 分类, 作者信息, view more 链接, 菜单管理, 搜索, 分享按钮等常规的功能.
这个月开始重启ios客户端的研发,之前做过一个图书软件,这次要做一个学术在线的客户端。
这次用到了如下一些框架:
FMDB:一款轻量级的访问sqllite类库,非常强大 ,FMDB将SQLite API进行了很友好的封装,使用上非常方便,对于那些使用纯Sqlite API来进行数据库操作的app,可以考虑将其迁移到基于FMDB上,这对于以后数据库相关功能的开发维护,可以提高不少效率。
ASIHTTPRequest:一款访问网络的类库,支持断点续传。 ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于基本的HTTP请求,和基于REST的服务之间的交互。
cocoa-aes:一款进行进行aes加密解密的类库,我自己做了封装,支持aes的128对称加密算法。
简介
出生于哥本哈根,安德斯·海尔斯伯格曾在丹麦技术大学学习工程,但没有毕业,大学时期他曾替 Nascom microcomputer撰写程式,他曾为Nascom-2电脑撰写蓝标签(Blue Label) Pascal compiler,到了DOS时代他又重新改写这套compiler。当时他在丹麦拥有个叫Poly Data的公司,他编写了Compass Pascal编译器核心,后来叫Poly Pascal。1986年他首次认识了Philippe Kahn。
在Borland公司
安德斯·海尔斯伯格把Compass Pascal编译器核心授权给了美国Borland公司,并作为雇员加入Borland公司,并且是后来所有Turbo Pascal版本与Delphi前3个版本的架构师。Philippe Kahn为第一个版本的Turbo Pascal添加了用户界面与编辑器。
加入微软公司
1996年Hejlsberg加入微软公司。据说,比尔·盖茨亲自参与了这次挖角行动,年薪三百万美金,并许诺安德斯·海尔斯伯格在微软将得到技术上的足够自由和资源支持[1]。据说该事件也是微软公司和Borland公司后续官司的导火索。
在微软公司
进入微软公司后,首先主持了Visual J++的开发工作,后来由于在Java开发工具授权问题上和Sun公司的纠纷,微软停止了Visual J++的后续开发。
这之后,作为.Net概念的发起人之一,安德斯·海尔斯伯格被任命为微软.Net的首席架构师,主持.Net的开发工作。
人物生平
安德斯·海尔斯伯格(Anders Hejlsberg)曾在丹麦科技大学学习工程学。他第一次登上软件界历史舞台是在80年代早期,因为他为MS-DOS和CP/M设计了一个Pascal编译器。当时,还是一个小公司的Borland很快雇用了他,并买下了他的编译器,改称Turbo Pascal。在Borland,Hejlsberg继续开发Turbo Pascal,并最终带领他的小组设计了Turbo Pascal的替代品、开发工具史上的奇迹:Delphi。
1996年,Anders Hejlsberg在Delphi 3发布前离开Borland去了微软(Microsoft)。
在此之前,微软曾多次企图挖走Anders,但都没有成功。据信Anders去微软(主要)不是钱的问题,虽然微软的开价也相当有吸引力: 130万美元年薪外加股票期权和分红,总计超过300万美元。更主要的原因是Anders和Delphi开发组的其他成员在修改编译器的问题上发生了争执;还有,据Borland内部人讲,Anders认为自己不再是“不可缺少的人”。
Anders在Delphi 3中几乎没有做什么工作,Chuck Jazdzewski扮演了一个更重要的角色。(Anders Ohlsson) Anders在Borland时把所有精力都放在了Pascal产品上,也需要新的挑战,这时Bill Gates的亲自邀请,许诺给与挑战的机会,Anders加入了微软就势在必行。
微软用丰厚的薪水、股票认购权和巨额的加盟奖金雇请了 Hejlsberg 之后,Borland 曾提出通过不正当手段吸收新成员的控告。Borland 还曾声称 — 提供了很少的细节来支持指控 — Hejlsberg 正在开发“Delphi for Java”。这场诉讼虽然最终以 Borland 的胜利而收场;但Anders 已经在为微软工作了。 1996年Anders来到微软后,直接主抓Visual J++的研发工作,并在1999年被授予“distinguished engineer”(卓越工程师),在微软仅有16人获得这样的荣誉。
后来微软希望通过开发最新的软件开发语言来赢得软件开发者的拥戴,在微软公司把视窗操作系统和软件向网络迁移的新市场战略中,C#语言是最重要的环节。微软动用了最好的资源。Anders担任了C#语言的首席设计师,同时也是微软.NET战略构架的重要参与决策者。考虑一下Anders的经历,就不会奇怪微软将此重任交给他了。毕竟C#也不是他对软件开发方式重大变革的首次。现在经过几年时间的埋头苦干,C#已成为微软反击Java语言的最有力武器。
业绩与成就
鉴于他为软件开发做出的巨大贡献,Anders在《Dr.Dobb's》杂志的2001年西部会议上被授予“Prestigious Excellence in Programming Award”,《Dr.Dobb's》杂志的主编Jonathan Erickson说:“这一荣誉,我们每年只颁给那些在软件开发领域做出非凡贡献的人员,Anders开发的C#和他整个职业生涯中为软件开发所做出的巨大贡献有目共睹,他无愧于这一荣誉!”
社会评价
比尔盖茨也高度评价说:“我们为Anders获得这一荣誉感到无比自豪,Anders在C#创建中所做的努力将会改变现在的软件开发方式,并将在以后的十年继续产生影响。”
“程序员是最好的职业”,Anders说:“每两年,CPU的速度要加倍,内存容量是原来的四倍,但是我们的大脑还是原来的大小,很显然,将需要更多的程序员来补充这些。”
北京时间7月25日消息,据国外媒体allthingsd报道。近日,跨平台移动开发软件服务提供商Xamarin获得投资1200万美元,投资商分别是Charles River Ventures,Ignition Partners和Floodgate。
Xamarin公司是由两位联合创始人Nat Friedman 和Miguel de Icaza于去年共同创办,发展至今,已拥有7500多位付费用户,其中包括音乐服务商Rdio。Xamarin的技术帮助开发人员通过一套常见的编程工具来编写Android,iOS和Windows Phone软件。
Rdio工程副总裁Todd Beeman在声明中表示,“我们拥有了Xamarin就等于拥有了一切,节省了大量工程时间,通过跨平台特性打造华丽、高性能的本地应用。”
Xamarin创始人Friedman称,此次资金将用于改善公司服务并建立销售和营销工作。
Friedman在一份声明中表示,“我们的使命是提供快捷、简单、具有趣味性的服务来创建强大的移动应用。在第一年中,我们取得了优异的成绩。每月有1.2万个新开发者和上百万美元的收入。这笔资金将帮助我们履行使命,使更多开发人员参与进来。”
原文链接:allthingsd
Hadoop一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。
Hadoop是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。
Hadoop主要包括如下子项目
Hadoop Common: 在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common
HDFS: Hadoop 分布式文件系统 (Distributed File System) - HDFS (Hadoop Distributed File System)
MapReduce:并行计算框架,0.20前使用 org.apache.hadoop.mapred 旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API
HBase: 类似Google BigTable的分布式NoSQL列数据库。(HBase 和 Avro 已经于2010年5月成为顶级 Apache 项目)
Hive:数据仓库工具,由Facebook贡献。
Zookeeper:分布式锁设施,提供类似Google Chubby的功能,由Facebook贡献。
Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。
要掌握hadoop,首先必须深入研究google的3篇论文:map-reduce、gfs和bigtable。
每个人开始学习面向对象的时候,基本上都感觉自己很能理解什么是“继承”,可是我相信没有多少个人是真正地理解了“继承的本质”。
继承,就是面向对象中的类与类直接的关系,继承的类叫做子类或者派生类,而被继承的泪叫做父类、基类或者超类。通过继承,子类可以拥有父类的属性、方法,同时子类也可以添加新的属性或者方法,还可以修改父类的方法和属性等。
在《你必须知道的.NET》中,作者列举了下面几个关于继承的要点:
1、继承是可以传递的,子类是对父类的扩展,必须继承父类方法,同时可以添加新方法;
2、子类可以调用父类的方法、属性和字段,但是父类不能够调用子类的方法、属性和字段;
3、虚方法如何实现覆写操作,使得父类指针可以指向子类对象成员;
4、子类不仅继承了父类公共成员,也继承了私有成员,只是在子类中不被访问;
5、new在虚方法继承中起阻断作用。
上面这五条几乎可以说是继承的本质,深刻理解了这些,基本可以说对继承掌握了,不过还有一个比较重要的地方需要注意,请看:
#region 深入理解继承机制、多态、封装
public abstract class Animal
{
public abstract void ShowType();
public void Eat()
{
Console.WriteLine("All Animals need eating!");
}
}
public class Bird : Animal
{
private string type = "Bird";
public override void ShowType()
{
Console.WriteLine("Type is {0}", type);
}
private string color;
public string Color
{
get { return this.color; }
set { this.color = value; }
}
}
public class Chicken : Bird
{
private string type = "Chicken";
public override void ShowType()
{
Console.WriteLine("Type is {0}", type);
}
public void ShowColor()
{
Console.WriteLine("Color is {0}", Color);
}
}
#endregion
上面是定义了一个抽象父类和两个子类,下面是调用方法:
#region 深入理解OO思想
//Bird bird 创建的是一个Bird类型的引用,而new Bird()完成的是创建Bird对象,分配内存空间和初始化操作
Bird bird = new Bird();
Chicken chicken = new Chicken();
Bird bird2 = new Chicken();//请注意上面这里的区别
bird.ShowType();
chicken.ShowType();
bird2.ShowType();
#endregion
如果你能够了解为什么上面得到的结果,你就深刻理解了什么是继承了
公告栏
欢迎大家来到我的博客,我是dodoro,希望我的博客能给你带来帮助。
最新文章
- 部署NextJS到Azure WebApp Deployment Error报错: cannot find module ../server/require-hook
2025 年 2 月 28 日 - 小提琴演奏主要基本功
2024 年 9 月 28 日 - [转]React官网力荐Next.js:为何它取代了Create-React-App?
2024 年 9 月 9 日 - [转]React团队回应用Vite替换Create React App的建议
2024 年 7 月 25 日 - [转]Create React App 入门及 webpack 配置
2024 年 7 月 9 日 - MiniProfiler工具介绍
2024 年 6 月 26 日 - 数据访问策略: Dapper和Entity Framework混合应用
2024 年 6 月 25 日 - Entity Framework Core:一对多关系
2024 年 6 月 23 日 - Entity Framework Core:一对多关系
2024 年 6 月 21 日 - Entity Framework Core:一对一关系
2024 年 6 月 20 日 - 写在第八个父亲节:反思自我少发火
2024 年 6 月 16 日 - 结合使用 ASP.NET Core SignalR 和 Blazor
2024 年 6 月 12 日 - Blazor server VS Blazor WebAssembly
2024 年 6 月 12 日 - git提交或克隆报错fatal: unable to access ‘https://github.com/tata20191003/autowrite.git/‘: Failed to connec
2024 年 6 月 10 日 - EF Add-Migration总结
2024 年 6 月 8 日 - MediatR Official Document
2024 年 6 月 5 日 - [转]MediatR知多少
2024 年 6 月 5 日 - 关于MSBuild和NSwag的深入学习
2024 年 6 月 4 日 - 命令行执行NSwag
2024 年 6 月 4 日 - NSwag.MSBuild使用
2024 年 6 月 4 日