2010年3月23日
#
今早看到了谷歌正式退出中国内地的消息,心想这一天终于来了,谷歌已经酝酿了好久。
心情和大家一样,很复杂,有留念有伤痛也有一丝悲哀。
但我也有一些理性的思考,我也是从事互联网业务的,在互联网永远要争第一,第一和第二在商业的利益差距是巨大的,就象阿里巴巴和慧聪,就象google和yahoo,yahoo几乎都要被收购了。在国内搜索市场,百度占百分之六十多,谷歌只有百分之三十多,其实这个差距是巨大的,是不可逾越的,我是做电子商务产品的,在我的客户(中小企业)几乎百分百只要做百度的优化和推广,客户很少会去关注谷歌。
谷歌永远只会号称退出中国内地市场,但永远不会关闭简体中文的搜索,这就是它目前的策略,因为要拉近30多点的差距,依靠普通的手段是不能达到的,一定需要非常手段,目前的行为就是非常手段,注意不是关闭,只是号称退出,并且退出是有前题的是因为中国政府会过滤信息,那么背后的给大家产生极大的影响就是未来谷歌的搜索结果是不过滤的是非常公正的,这样几乎所有有“头脑”的人都会去谷歌上去找所谓的公平的公证的信息,这样对百度是极度不公平的。
我一定相信谷歌未来的搜索访问会比现在更大,百度在短暂的广告收益会提升,但谷歌会一直告诉中国人旁边还有一个更“公正”的搜索引擎。
接下来,我们会看到两年内谷歌的访问得到提升,然后通过国内的广告代理商来代理其广告业务,未来的两到三年再回中国内地,这就是谷歌退出中国内地的阴谋!
2007年10月11日
#
关于MonoRail的抄袭微软也给出了自己的理由:
Clone:: I wouldn't call the ASP.NET MVC framework a clone of MonoRail, because then we'd have to call MonoRail a clone of Rails, and so on and so forth. The MVC framework borrows ideas from frameworks like Rails, Django is looks to integrate with Windsor and Brail and NUnit, etc... Its a good thing, and everyone is cooperating.
但这样一来,确实给出很多困惑,想当初Asp.Net一出,服务器控件大为流行,也确实提高了开发效率,降低了Web开发的门槛。但Ajax流行后,客户端控件和操作得到回归,不过毕竟两者可以共存。现在MVC一出,服务器端控件将要彻底退出(想不出两者结合的方式),ASP.NET界面端的处理方式将产生本质上的变化。
不要告诉我说,根据不同的场景,你可以选择WebForm Or MVC.
MVC来了,微软的Rails来了,你准备好了吗?
2007年8月2日
#
Linq to SQL 的更新非常简单只需要调用Datacontext的SubmitChanges就可以。
目前同一个Datacontext实例中很多动作都非常顺利。但在分层应用,对象的更新是在不同的Datacontext实例中,这时就会变得复杂得多。
现在遇一问题查了很长时间,不知道是不是Linq to SQL的一个BUG。
//Page是PageC的一个子对象
DataClasses1DataContext cxt = new DataClasses1DataContext("server=.;database=xxx");
PageC c= cxt.GetTable<PageC>().FirstOrDefault(p => p.PageCName == "test1");
c.PageCTitle = "test1";
c.Page.PageTitle = "test2";
cxt1.SubmitChanges();
这样Page表和PageC表都更新成功了。
但是如果:
DataClasses1DataContext cxt = new DataClasses1DataContext("server=.;database=xxx");
PageC c= cxt.GetTable<PageC>().FirstOrDefault(p => p.PageCName == "test1");
c.PageCTitle = "test1";
c.Page.PageTitle = "test2";
DataClasses1DataContext cxt1 = new DataClasses1DataContext("server=.;database=xxx");
cxt1.GetTable<PageC>().Attach(c,true);
cxt1.SubmitChanges();
更新就会发生错误。
在不同的Datacontext实例,如果需要更新必须用Attach方法把对象实例Attach到数据环境中。但更新就会发生错误。
错误的原因是:在第一段代码中cxt.GetChangeSet()中 ModifiedEntities(修改的实体)是两个,但在第二段代码中 cxt2.GetChangeSet()中,ModifiedEntities(修改的实体)和AddedEntities(增加的实体)各有一个,也就是说第二段代码中是把Page子对象的更新是放到添加的实体中。而原本这个记录就存在,这时就会发生主键冲突的错误。
是Linq to sql 的一个Bug?
2007年7月31日
#