RSS

跨界开发:从.NET到iOS(第2讲)

 

Posted by on 2011 年 04 月 01 日 in 跨界开发-iOS

3 Comments

跨界开发:从.NET到iOS(第1讲)

 

Posted by on 2011 年 03 月 31 日 in 跨界开发-iOS

Leave a comment

跨界开发连载1

第1篇 准备

第1章 引言

在本章中,首先我们将介绍作为.NET开发人员,在进入iPhone/iPad开发领域当中所遇到的主要障碍。同时,我们也要对于将要进入的全新领域有一个简单的感性认识,从而克服这种恐惧感,如果你已经信心满满,并且已经对于Mac OS X以及iPhone/iPad平台以及相关的开发环境有所接触,那么可以直接跳转到下一章进行更加系统的学习。

1.1 面前的六座大山

开发者往往对于开发语言以及开发环境有着宗教般的狂热,尤其对于已经入门但尚未运用精熟的初学者,更是如此。作为一名专业的开发人员,我们已经习惯了在论坛、博客上看到各种关于开发语言以及开发环境的辩论赛,比如论证.NET与Java孰优孰劣,C以及C++谁的生命力更强等等。往往这种论证会持续一段时间后不了了之,而后再过一段时间,新的类似的辩论赛又会重复上演。

这与宗教信仰一般,我们很难通过简单的辩论,就可以让另外一方改变自己的观点。所以这种争论除了浪费时间之外,对于开发者来说,没有任何益处。

其实不仅开发者,最终用户也会经常争论Windows XP以及Mac OS X谁更符合用户习惯、Linux与Windows哪个操作系统更加安全之类的问题。这种问题真的有解吗?我个人认为很多答案都需要限定相关的条件才可以给出答案。并且很多答案只有形而上学的意义,并不是完全普适的真理。

而本书的“越界开发”,面向那些已经沉浸于.NET开发两年以上的开发人员,帮助他们跨越以下六个大的障碍:

1.操作系统:作为国内的开发人员来说,尤其是.NET开发人员,Windows基本上就是其开发的全部,我们的日常工作以及编程都是在Windows上进行。开发后的应用程序要么部署到Windows Server上,要么部署到Windows Mobile,或者以Windows上的其它应用作为宿主,比如Microsoft Office或者Silverlight等。而Mac,由于其价格以及其它相关的因素,对于我们非常遥远,从而显得异常神秘。而在本书中,由于面向iPhone上进行开发,所以我们则必须与Mac OS X为伴。这是我们需要跨越的第一道障碍。

2.开发环境:Visual Studio是我本人用过的最好的IDE,尤其是刚刚发布的Visual Studio 2010,吸收了历史上所有相关IDE的长处,终于成为集大成者。而在本书中,我们则必须了解并且使用一个神秘的IDE套件:XCode、Interface Builder以及Instruments等。在这其中,很多原有的开发习惯都需要进行调整以及适应,可能刚开始的一周你会非常的不适应。

3.开发语言: 作为C#开发人员,可能你已经知道所谓的“#”,其实是代表着四个加号,即C#相当于C++++。所以C#与C以及C++是属于近亲关系,但在基因上有着很多改良。而Objective-C,单从字面上来说,与C也属于同一家族,但当你亲自阅读一段Objective-C源代码的时候,你会发现理想与事实的差距。因为事实上Objective-C是一门你很少听说过的Smalltalk 80的进化。

4.框架类库:作为C#开发人员,我们相比于C/C++开发人员来说,已经幸福了很多。因为.NET Framework已经为我们提供了丰富的Class Library,比如处理XML、HTTP请求等,只需要调用相关的类库中的API就可以非常简单的完成。在iPhone当中,我们同样也有一个类库,即Cocoa Touch(开发Mac OS X上的应用,我们需要使用的类库是Cocoa,在iPhone/iPad上则使用Cocoa Touch。两者的关系类似于.NET Framework与.NET Compact Framework)。快速掌握框架类库提供的功能也是我们必须跨越的一道障碍。

5.部署平台:相信本书的部分读者都有着Windows Mobile的开发经验。本书的部署平台虽然也是手机操作系统,但它与Windows Mobile有着很多的不同。最大的不同的就是其单任务处理机制,可能会在初期让你发狂。而对于那些原来没有接触过Windows Mobile开发的读者来说,iPhone开发与你原有的部署平台也有着很大的不同。

6. 市场推广:在笔者的日常工作中,会与很多.NET开发人员进行交流。大部分开发人员往往都会关注于开发过程,而对于开发完成后,已经成为“商业”的软件会如何在市场上推广,他们往往并不关心。而对于iPhone/iPad开发者来说,必须要自己承担所开发出来的成果的推广工作,所以这也将成为其重要的障碍。

写到这儿,可能有部分读者在心中已经打了退堂鼓。既然有这么多困难,我们为什么还要学习iPhone/iPad开发呢?

iPhone作为一款新发布的手机,于2007年1月9日,由苹果公司面向全球进行发布(见图1.1),在很短的时间内,就已经风靡全球,成为很多时尚潮人所必备的数码精品。而随之2010年4月3日,iPad的发布,更加推动了这个趋势。众多的开发商开始着力于面向iPhone/iPad平台的开发。与此同时,众多的iPhone/iPad平台上的造富神话也吸着众多的开发人员。

根据苹果公司在2010年1月5日公布的数据,其苹果应用商店(App Store)上的软件已经被下载超过30亿次。需要了解的是,App Store此时才运营仅仅一年半,在2009年9月份开始,其下载量已经超过了20亿次,那么相当于自2009年9月份,平均每天有1010万个程序被用户下载,在每秒钟则高达300个应用被下载。

创造符合用户习惯的软件,供更多的用户使用,是我们软件开发者的梦想。而iPhone/iPad平台则可以帮助我们实现这个梦想。

image

图 1.1 Steve Jobs在iPhone全球发布会上

 

Posted by on 2010 年 12 月 10 日 in 跨界开发-iOS

Leave a comment

Tags:

序:欲练神功,何必自宫

本文是《跨界开发:面向C#开发者的iOS开发手册》的序言,从本周开始,本书的内容将会在博客当中进行连载,每周在一节左右,欢迎大家提出意见以及建议。该书将根据大家的意见以及建议进行持续性修改。

很久很久以前,江湖上曾经有一本武功秘籍,称之为《葵花宝典》。由于此书上所记载的绝世武功,引得无数英雄趋之若鹜,一时间闹得江湖间血雨腥风。而最终历经千辛万苦,两位有代表性的人物分别获得了此书。一位是江湖上名不见经传的林平之,一位是名传天下的华山派掌门岳不群。他们在得到此书后,迫不及待得翻开了第一页,猛然发现一道让他们后悔一辈子的选择题摆在面前。在经历过内心复杂的心理斗争后,两人终于禁不住神功的诱惑,而拔刀自宫。但最终他们的下场却让我们怜之痛兮,真乃是赔了夫人又折兵呀。
而很久很久之后,Steve Jobs也同样在江湖上发出了英雄贴,名为iPhone/iPad的兵器在市场上所向披靡。截止到目前,其已经占领北美智能机市场65%的份额,同时,大量的iPhone/iPad开发人员一夜暴富的神话也让很多从事其它开发语言开发的朋友而闻之心动。

那么,作为从事.NET开发的程序员是否需要完全放弃其原有的开发经验,而开始学习全新的开发语言、使用全新的开发工具、熟悉全新的操作系统、研读全新的框架类库、了解全新的部署平台、掌握全新的发布模式呢?如果真的如此困难,那么会使很多江湖上.NET的前辈或者入门一年有余的新手而踯躇不前,毕竟挥刀自宫的毅力不是每一位都具有的。而我的回答就是:当然不是,就像功夫一样,如果我们积累了足够的内功,那么所有的门派则只是适应武术套路而已。

本书适合的读者

本书面向已经学习以及使用.NET一年以上的开发人员,曾经从事过以下领域的应用程序开发:ASP.NET、Windows Mobile、Silverlight或者Windows Form/WPF。对于C#语法已经熟悉,甚至对于一些底层机制已经精通的人员。

如果你已经了解.NET的相关功能,并且希望从事iPhone/iPad开发, 有毅力来承担其中的一些艰辛,那么本书将会试图带领走过其中的一些歧途。

本书也同样可以作为其它开发语言使用者,进入iPhone/iPad开发的入门书籍。虽然本书会重点介绍.NET开发与iPhone/iPad开发的异同,但通过纵览本书,其它语言的朋友也可以一览相关开发的机制,从而快速掌握iPhone/iPad开发的关键,并且在同时,也了解到.NET与之的异同。

本书不适合的读者

如果你符合以上条件,但希望能够继续使用C#等语言,在Windows上使用Visual Studio来开发iPhone/iPad等应用,那么很不幸,本书并不适合于你。目前iPhone/iPad上的开发必须使用Objective-C来编写,而使用Objective-C,你需要使用全新的IDE,即XCode。而要使用XCode,你需要使用Mac OS X操作系统,所以这是一个全新的挑战。

本书的示例应用

为了方便大家能够更快得学习本书中所介绍的iPhone开发知识,本书将会在随书光盘中提供相应的示例应用源代码。但为了让读者将更多的精力放在对于开发中基本原理上,所以本书不会提供数量众多的源代码。而是主要围绕以下三个示例应用进行,并且随着章节的深入,为最始的示例增添新的功能。通过这个过程,了解iPhone开发的方方面面:

  1. Hello World:在第1篇中,将主要围绕这个最简单的Hello World应用进行。通过这个示例,读者可以熟悉编程环境:Xcode、Interface  Builder等的具体使用方式,理解iPhone/iPad中各种项目类型,同时也基本了解如何使用Instruments进行性能调优的方法。
  2. RSS Reader:在第3篇开始,将会围绕RSS Reader这一目前常用的示例应用程序介绍Objective C语言的相关知识,并且了解如何使用Cocoa Touch类库进行文件处理、网络访问、数据库处理等基本操作。
  3. Hello Game:在第4篇中,将会介绍Core Graphics以及Open GL ES图像处理子系统。

本书基本框架

本书在构成框架上,共分为五篇,介绍了iPhone/iPad开发的方方面面。

在第一篇准备中,我们会向各位介绍iPhone/iPad的面向最终用户的特性,以及面向开发人员需要关注的地方。并且会从头开始,介绍如何构建开发环境。

Objective-C对于很多.NET开发人员是一门非常陌生的语言,甚至在此之前都闻所未闻。那么在第二篇当中,我们会介绍此语言的方方面面。并且通过与C#语言的对比,让大家对其有更深入的认识。在本篇当中,也会涉及到IDE的使用技巧等。

第三篇则会真正揭开iPhone/iPad开发的内幕,通过一个完整实例的介绍,让我们熟悉iPhone/iPad所使用的框架类库Cocoa Touch的方方面面,在实战中了解Cocoa Touch带给我们的便利性。当然,我们也会介绍互联网上优秀的开源类库以及应用,供大家参考。

第四篇则面向游戏开发人员所设计。大家知道,在iPhone/iPad上开发游戏应用,需要了解一个OpenGL的精简系统,即OpenGL ES。OpenGL ES虽然便捷,但对于长期从事ASP.NET/WinForm开发的人员来说,将会是一个比较痛苦的过程,本书也将通过一些实例,让大家尽快度过此过程。

在开发完所有应用后,即可以提交到App Store,供广大用户下载使用。如果开发的是商业应用,那么我们需要设计相应的收费策略,并且通过市场上的各种方式进行推广。在第五篇当中,我们将会介绍相关的市场推广策略。

 

Posted by on 2010 年 11 月 16 日 in 跨界开发-iOS

4 Comments

Tags:

移动互联网要来了,Are you ready?

两天前,去听了CSDN组织的2010中国移动开发者大会。会场内外的所有气氛都让我回想起了1999年,在那时候,无论是餐厅,咖啡馆,甚至是坐着公车拿着刚上市的手机,大声喧哗的都是互联网相关的话题。大家脸上的那个兴奋劲呀,似乎金山就摆在面前,如果你不伸手,简直比傻子的IQ低。

而今,这种气氛越来越浓烈,我这段时间也经常钻咖啡馆,无论是热闹的还是幽静的。只要旁边桌子上有年轻人在,基本上都在讨论App Store、Mobile Device相关的话题,似乎那个“金山”时代真的回归了。在2010年中国移动开发者大会上,李开复也像列宁同志一样,向年轻人宣告移动互联网浪潮将在三年内爆发(难道现在还不叫爆发吗?)。我想起了那句话:此地人傻钱多,速来。

10年前那次风暴真的是中国互联网浪潮的起始点,现如今的腾讯、百度、新浪都是在那一波风暴中开始创业的。而如今,这些企业都是如日中天,甚至有些有了中小型企业的拦路虎,挡路石。可是在初创阶段,他们也曾经多次羡慕嫉妒恨过其它大企业,拷贝雅虎,拷贝ICQ,拷贝谷歌等等,把所有的一切都拷贝回中国。只不过时代不同了,现在“爷是上等人了,你们得换个称呼了”,所以才有了“狗日的”XX,那些来自于挣扎在创业边缘的人员的呼喊。

所以10年前的那次风暴就是一个风暴,虽数活下来的活得非常不错,锦衣玉食,但仔细想想,在风暴过后的寒冬中死去的何止千万?那些无数曾经在咖啡馆坐在我邻桌的,充满伟大志向的年轻人们,你们现在还好吗?那些在媒体上创造了无数关于“领先国际平均水平五十年的创新”、“中国的微软”、“中国的比尔盖茨” 话题的人们,你们在新的风暴前,还有雄心壮志吗?

新的风暴又要来了,我们需要做些什么?另外,我们需要做好防冬的准备吗?

移动互联网要来了, Am I ready???

 

Posted by on 2010 年 10 月 23 日 in 未分类

1 Comment

Tags:

怀念Ray Ozzie君

我在大学里面学的是物理教育专业,但竟然也会有计算机课专门教授Lotus 1-2-3。那时候的课程很闷,教授们只是按照教材中的相关章节,一个功能一个功能的介绍,所以学了一个学期,我都没有搞明白Lotus 1-2-3是干什么的,操作系统?编程语言?后来用到Excel才知道,噢,原来如此。

如今,大学毕业很多年了,这段历史突然重新映上我的心头,只是因为Ray Ozzie已经下台鞠躬,挥挥衣袖,不带走一片云彩。

我加入微软比Ray Ozzie君稍早那么一点点。终于实现了小时候的梦想,在这家伟大的公司里面工作,虽然离比尔盖茨很多层次,但一想到这是我偶像的公司,就激动不已,甚至每天上班都感觉很有朝气,真正的“您的潜力,我们的动力”。再后来,盖茨在公司内部完成了禅让。虽然公司内部没有任何言论,但能够感觉到,每个同事都在心里面咯噔了一下。虽然过后微笑还是继续,激情还在燃烧,但明显的感觉,有些失落。

盖茨选择了Ray Ozzie,成为了首席架构师,在新闻媒体中,一直被渲染为“盖茨接班人”。关于Ray Ozzie君的资料,我还是从新闻报道中看到。Ray Ozzie,满头白发,风度翩翩,从外表上非常让人敬重的一位绅士,甚至感觉从盖茨还魅力十足。第一次在公司总部听他演讲,总感觉他提不起精神来,也没有任何技巧,非常紧张,那时候恨不得跳上台去,帮他讲。于是乎,对此君充满了失望。好象在第二年,又在一个场合,听到Ray Ozzie君的演讲,突然发现他有如神助,非常自信,非常有魅力的完成了演讲。后来在网上看了一些他的访谈,他的邮件。突然我发现,在我心目中,他开始慢慢走上盖茨走后空缺的偶像宝座。

今天早上,不知道为什么提前醒了过来,看到了邮件,知道了他要走的消息。他的走,让我想起了Windows Vista的负责人,Jim Allchin,他也是微软高层中充满人格魅力的一位。但因为Windows Vista的失利,他已经走人,去办乐队去了。也不知道他的乐队办得如何了。从照片上来看,他很满意现在的生活。有兴趣的可以去看看他的个人网站:http://www.jimallchin.com/ (如果你是开发人员,肯定非常好奇他网站的架构)。

Ray Ozzie的走我并不是特别吃惊,因为从三月份开始,他就非常少出席公司重要会议了。很多Business的整合也缺少了他的声音,所以那时候我就在新浪微博上提出自己的质疑。而如今,当预言成真,我只有感觉更加失落。

Ozzie,走好。

 

Posted by on 2010 年 10 月 19 日 in 未分类

8 Comments

Tags: ,

博客堂要移民了

为了给大家提供更好的服务,也为了域名安全以及其它事项,博客堂准备移民到美国Godaddy服务商,包括域名以及空间。

在未来一周的域名注册商更新期间,访问博客堂将会出现一些不正常现象,这可能是在迁移期间的正常现象,请大家谅解。

另外,提请所有的博主注意,我们将会以WXR(WordPress eXtend RSS)文件格式为大家提供数据备份服务,包括大家所有的历史数据:随笔、标签、文章中图片等。如果大家愿意跟随我们一起移民,不需要任何动作。如果不希望移民,而想转去其它博客提供商,并且希望索取备份文件,烦请与我邮件联系,非常感谢。

谢谢大家的关爱。

 

Posted by on 2010 年 10 月 12 日 in 未分类

6 Comments

在微软创新日北京站ASP.NET MVC部分的Video

这段时间正在全国各地跑,在微软创新日上讲ASP.NET MVC相关的内容,以下Video是在北京场录制的视频内容。如果大家感兴趣,可以直接观看.课程内容非常简单,适合于ASP.NET MVC初学者或者ASP/JSP/PHP开发人员。

Special thanks to Sandro Nigris. :)

ASP.NET MVC课程第一部分

ASP.NET MVC课程第二部分

本视频上所使用的Demo非常简单,就不再放Demo Code了,Slides可以从下面下载:

 

Posted by on 2009 年 09 月 24 日 in 未分类

1 Comment

观止之读后感

新闻报导总是喜欢一些比较吸引眼球的话题,所以最近N年以来,我看到了太多的报道来渲染事实。报道IT人物时会将其打造成“中国的比尔 盖茨”,而介绍IT公司时则会同等思路的介绍“中国的微软或者IBM”。很好很强大!可惜就像我在八几年看到的一篇关于前苏联要建造人造月亮的文章一样,从小学开始让我激动了二十余年。但我现在大学毕业了,天上还是只有一轮明月。

我们从来不否认梦想的魅力。正如央视的某广告语:心有多大,舞台就有多大。但如果光做梦,不干活,那就成了白日梦了。即使你每天可以睡十二个小时,估计这个梦想也永远无法实现。那么“起来挑战微软”的那个人也就只是梦想家,而非实干家了(看到现在方兴东已经开始使用IT评论家的Title了,不再做其博客网的实际工作了)。

很多人可能看过了N多关于微软/比尔盖茨的传记,从企业文化等角度对于微软进行了方方面面的介绍,包括狗食文化(Dog food)、三权分立等等。不可否认的是,这些文章或多或少的对于一些历史事实有一些主观美化的臆测,毕竟里面的大部分人物是现实中的人物。某些决策失误该忽略就忽略,所以从这些书籍里面,我们看到的微软的成功是必然的。

而《观止-微软创建NT和未来的夺命狂奔》则尽可能得再现了微软的一段真实历史。这本书没有从微软的企业文化角度着手,也没有从行业历史着眼。只是介绍NT产品组以及卡特勒个人在创建Windows NT的历史,某种程度上,甚至有些平铺直叙。但在这些平铺直叙当中,你仍然会感觉到很多“刀光剑影”。如果当年没有卡特勒,如果当年卡特勒拒绝加入微软,如果微软与IBM继续OS/2,如果NT开发到一半被取消,如果NT开发再延期三年,那么,一切都不可想像。

在看此书的过程当中,我使用公司内部的Exchange Server查找了这些历史人物,发现大部分人现在还在微软,比如主人公卡特勒现在是微软资深技术院士(SR. Technical Fellow),而Jim Allchin在完成了Windows Vista之后离开了微软等等。我很敬佩作者这种不为尊者讳的写作态度,让我们可以更加真切的去读这段历史。从中感觉到微软的成功是建立在无数的偶然过程,而这些偶然的背后也有着一些必然,比如盖茨的宽松以及宽容等。

读此书我仅用了一周时间,在临睡着阅读一小时。阅读时我也遇到了一些困难,从小到大,我无数次拿起了《红楼梦》想看一遍,但都是受束于其错综复杂的人物关系而从来没有完成过。同样,《观止》这本书的人物也受多,每当引入一个新人物的时候,都会把其祖宗三代介绍一遍,也让我烦恼不已。

不过,我仍然强烈推荐大家去读一下这本书,如果你还有“起来,挑战微软”的梦想的话…

 

Posted by on 2009 年 08 月 27 日 in 未分类

2 Comments

Joycode.MVC 0.5已经发布了

博客堂源代码自从去年开始就一直紧跟ASP.NET MVC的进度,开发了很长时间,一直都不好意思拿出来给大家显白显白。主要原因是Bug太多,实在是拿不出手。但在开发过程当中,实在是需要听取大家的反馈意见,所以现在把相关的工作做了一下整理,先把0.5的第一个CTP发布出来,以听到相关的建议。目前博客堂还运行的是0.4版本,所以像BING的搜索在博客堂上还没有出现,取而代之的是Google的BlogBar功能(不过Google的BlogBar对页面加载还会有一定的阻碍的)。

如果您希望下载源代码,请确保您的开发环境与我一样(其它环境主要是我个人没有进行过测试,希望各位有测试结果可以通知一下)。

1. IDE: Visual Studio 2008 SP1;

2. .NET Framework Version: 3.5 SP1;

3. ASP.NET MVC: 1.0;

4. OS: Windows 7 RC/Windows Vista/Windows Server; (ASP.NET MVC在IIS6下运行还需要特殊配置);

5. SQL Server 2008: 2005应该也可以,但我没有做过测试。

点击此处查看或者下载源代码;点击此处下载安装文件(不含源文件)

目前版本尚有很多Bug,不推荐普通用户下载。非常感谢。

 

Posted by on 2009 年 06 月 25 日 in 未分类

5 Comments