April 2007 - Posts
摘要: 5.1节的微软大礼(SilverLight1.1Alpha,IronPython2.0Alpha,Microsoft ASP.NET Futures May 2007 ,DLR,Jasper )
阅读全文
昨天发了个帖子Silverlight for linux 和 DLR(Dynamic Language Runtime)。早上看有了新帖子 silverlight1.0beta 和 silverlight1.1 alpha发布了.,还有思归的SilverLight新版,托管代码支持,IronRuby。下载了sdk后看了一下,从CTP进入Beta,也象Altas 到asp.net AJAX一样,改变非常之大,当然功能也增加了非常多。
客户端的JavaScript绑定到asp.net AJAX ,还好我之前一直就是asp.net AJAX,客户端框架使用的是asp.net AJAX模型。1.0版本的功能不多,不过API还是增加了挺多的,具体看New API for the Silverlight 1.0 Beta。1.1的版本增加了CLR的支持,增加了一个新的 DLR类库,支持的语言非常多了,包括C#、VB、IronPython, javaxcript等。非常值得期待。不过CLR是.Net 3.5的一个子集,就意味着要安装Orcas作为开发工具,Vistual studio 2005无能为力了,逼我安装Orcas阿,又要下载将近6G的大家伙,看来又要去加内存条了。
关于DLR和IronPython的更多信息可参看5.1节的微软大礼(SilverLight1.1Alpha,IronPython2.0Alpha,Microsoft ASP.NET Futures May 2007 ,DLR,Jasper )
摘要: Head First Design patterns笔记-Observer Patterns (从TFS的Project alerts功能看观察者模式) . Team foundation server中提供了一个非常适用的功能就是project alerts.在team explorer中打开一个项目,右键菜单中有一个project alerts菜单项,点击会弹出一个对话框,你可以选择自己要接受的project alert的类别(发送project alert的一些规则)和自己的email地址,当当前项目发生的变化或者发生的事件满足上述你订阅的规则时,系统就会给你发送邮件通知你TFS中你所关心的项目发生了怎样的变化。想着跟踪项目中的变化,这应该是最方便的途径了,订阅了以后TFS会自动通知你相关的信息,你在也不会自己逐个文件查看是否发生了改变了。如果不在需要跟踪项目的信息,只要推订project alerts就可以了。
阅读全文
摘要: 很多场景会用到树形结构,比如人事组织、新闻频道、各种层级分类、文件目录等等。简单的为节点设置父节点就可以构造出来,通过为其选择父节点从而对其进行移动。如果可以拖动移动岂不是很直观吗,于是编了一个例子(可以拖动节点和通过上下键对同级节点进行排序)。Web上的实现方式有ms的htc,有用table签的有用ul的,我倾向于选择ul因为它简单直接。下面是抓图:
阅读全文
摘要: silverlight 1.0已经可以下载了.
但是我更关注的是 silverlight 1.1 下面是silverlight 1.1 的特性,真的很振奋!
阅读全文
摘要: [点击这里] 看演示源代码
<html><head><title>夏天以南</title><script language="JavaScript">function Format(){ writing = true;  ...
阅读全文
摘要: 猪正要去超市准备购物.....这是上一篇MM:~~猪猪你那个设计我交给老师看了,麻烦你给我在解释下吧猪:不是把那我怎么办。MM:晚上演猪的世界~~一起去看猪:好说好说,你想知道什么呢(心肝)?MM:仔细说说StyleEnumBase我看不懂
using System;using System.Collections.Generic;using System.Text...
阅读全文
摘要: Mono之父Miguel de Icaza 参会微软Mix 07大会。在他的blog有这篇短文:
这里面提到两件事情Silverlight for linux 和 DLR(Dynamic Language Runtime ),这是两项激动人心的技术。Miguel de Icaza作为Mono的主持者,还有现在Novell同微软的关系,我们完全可以相信Silverlight for linux 是完全可行的。微软秘密进行的另一个计划:提供一个新的软件层,方便动态语言能够更容易、更紧密地和它的.Net Framework结合在一起,这就是上面提到DLR(Dynamic Language Runtime )。计划的详细信息应该就在这几天的Mix 07大会上公布。
阅读全文
摘要: 本文大部分内容基于Ph.D David K. McAllister的博士论文《A GENERALIZED SURFACE APPEARANCE REPRESENTATION FOR COMPUTER GRAPHICS》以及《GPU Gems1》里他的文章。如果有兴趣推荐大家研究博士论文原文,其中关于用相机对材质进行采样的一段非常有趣。我重构他的代码生成了一个简单的命令行工具可以从他的SVB格式中抽取出基本的纹理。他的代码用VC8编译有不少问题,我修复了大部分,主要是在库的链接以及C++的语法上,完全修复用VC6编译一次看看。马上又要考试了,再不看书要挂科了
阅读全文
摘要: 当CodeSmith不在的时候,用存储过程生成存储过程,嘿嘿~~
阅读全文
偶然翻出了一封陈年老信。
简单说说背景吧:当时在我的大忽悠下,公司决定把因我而成立的互联网部门再独立出来成立新公司,但是他们没做过互联网,于是在互联网项目的盈利模式上喋喋不休,在股权分配上争争吵吵,使得产品的开发落不到实处,进度缓慢。所以有了这封信,目的地是软件部主管,算是说服工作。当然,最终那一步未能垮出去,而我也就离职南下杭州,项目自然也就不了了之,我离开后,半年内就消失了,想想当初花整一年时间做的各种工作,组队、开发、参展、申请ICP、策划运营方针……唏嘘不已,不过也没啥,失败嘛,偶的代号就是纯失败,扫把星,想失败的找我,经验丰富,我神手一抬,绝对带领你一败涂地。不过那算是我离创业,思想和行动都最近的一次,虽然实际上仍很远。
下面一段是谢文对盛大收购新浪的一段评论:
《首先是盛大和新浪是完全的互补,他们在业务上完全互补,也就是说盛大没有在比如资讯、无线、广告、某种互联网的通用技术研发,没有投入过任何的精力、资金、资源,而这些与我们业内混了这么多年的人看及应该是互联网的基石,不管做什么事情都应该有非常好的论坛,非常好的邮箱,现在无线是生机勃勃的领域你总要介入,那么陈天桥选择了不走自己慢慢建的路,而采取了把自己最好的资产控制住,用这种方式介入顺理成章。》
其实这也是我做金网的基本思想,在互联网上,金网首先需要一个基石,那就是网站本身,我经常说的就是先建立互联网平台,然后再基于这个平台研发和推应用,比如我说的商务应用客户端,算是其中的一种应用。或者说基于这个互联网平台衍生各种应用软件。这样的软件是整体都架设在互联网上的,是完全基于互联网的软件。而不是想目前很多所谓的软件,只是说提供一个接口和互联网相通,而不是完全架设在互联网上。
对于软件,我的看法是,未来(应该很快了,2、3年内),除了安全性和保密性要求非常高的地方,比如政府或其他之类的。如果研发的软件不是依赖并整合进某个互联网平台,那么这样的独立软件会消失。比如你也说过商务应用到处都有现成的成品,但是哪家成功了?我认为有个很大的原因,就是没有一个这方面的互联网平台给予支持。网上有什么类似游戏大厅的商务应用平台,地址?腾讯有QQ这个特殊的互联网平台,所以当他一整合进游戏应用,就把毫无互联网平台支持的联众干掉了。所以不出身于互联网平台的软件,我认为将来几乎没出路,或者说路窄。当然我只是站在互联网的角度看待软件,疯言疯语。呵呵
陈天桥有钱去买成熟的互联网平台,我没钱,所以只能动手做,比较好的情况呢是金网这个领域现在还没人进,坏的情况就是一切都要从零开始。不过机会不是没有,去年已经在试验下一代互联网,2年后应该普及,而2年后移动的3G也肯定成熟,还有光纤数字化,而我看好的智能客户端等,不管是微软的或者SUN的,还有 FLASH RIA等也会铺开。真正的革命在2007年,我认为。所以,实际上对于金网而言,这两年都可以说是准备阶段。至于我说的代理,在不影响金网发展大局情况下,成败都无所谓,甚至可以马上否决。但是不管怎么说,需要的是一句:管他妈的,就这么做!在大方向确定的情况下,一边做一边看路,而不是纠缠在如何盈利的讨论上,毫无意义,盈利不是讨论出来的,事实也证明,现在互联网上的各种成功也不是最初计划中的事。计划是辅,适应变化才是王道!对吧。尤其在互联网这个行业,瞬息万变。
刚刚两年多一点,回过头来一看,貌似预测的比较准,现在2007年,各路RIA在崛起。其实不然,我当时所指的革命是语义网,然而还是过于乐观了,就现在,语义网仍属于未来。
昨天看了CSDN和孟岩的对话,谈及Vista,孟岩的观点是如果vista按照微软最初的计划在2004年中发布,很可能现在整个互联网都不一样了。正是因为vista延后到了06年底,所以vista这个产品的战略意义大大降低了,因为vista的延期,w3c标准开始主导web,浏览器大战开始了,linux也开始成熟并强攻服务器市场。……
虽然我从来没想过这样的假设,但是我对vista的厚望是将web从浏览器中拉到桌面上来,也就是说vista本来的意义应该在此,所以我才在两年前那么看好智能客户端,看好RIA,并把时间点定在2007,正是因为vista的发布,这点上从听孟岩的说法,我和他应该是英雄所见略同,哦不,我是大忽悠。
孟岩还有一个观点:“IE6的问题不是因为垄断,是微软本来就没打算继续玩浏览器了。”这句话很震了一下我,为什么我没想到呢?其实我只要多想一下下就能想到的。微软解散了IE6团队,寄望通过vista,通过直接建立在Web上的操作系统来控制web,完全抹掉浏览器这三个字。但是我还是没有去想这一下下,和很多人一样认为IE6的龌龊是微软垄断的结果,懒惰的结果。唉,估计当时沉在Web标准中玩战术,没能跳出来从战略的角度去分析、看待和审视IE6这件事。
可惜vista没能在2004年中期推出,于是w3c开始发力了,2004年中期Web标准在中国轰轰烈烈起步,2004年底浏览器大战开始,2005年ajax冲击了整个web,微软失去了对web的控制权和主动权,疲于奔命,迎合Firefox配合W3C的强攻,仓促重新组织IE7的队伍。面对红红火火的Ajax,推出Atlas。智能客户端消失了,代替的是06年的WPF风声并进而到07年的silverlight。live也部署上了。有点乱有点乱,微软。我想微软多半很郁闷:“TMD,要是老子2004年中期把vista发了,把智能客户端上了,把浏览器灭了,还有个狗屁W3C,Firefox,ajax,统统死去,全部听老子的话!MD,一招失误搞得我现在到处疲于奔命。”呵呵,有点恐怖,好像差点在微软的一念之间,世界又变了。
但是这是不可能滴!孟岩的假设很有味道可以细品,但是是绝对不可能的。就是vista准备好了也不可能,因为vista不属于2004。那时的硬件环境和网络环境都撑不起vista和智能客户端,或者说撑不起微软想通过无缝整合web的操作系统来统治web的伟大构思。不要说那时了,就是3年后的今天2007年,也撑不起来。我的结论和孟岩不一样,我认为微软的失误不在于没有早发布vista,而是对vista的期望和对web的展望最初的时候过于乐观和理想,想拔苗助长。其实我很佩服微软,他一直在四面楚歌中,一直在四面迎战!
无序的互联网要跨向有序的互联网,万维网要跨向语义网,这个过程目前看来任重道远,所以rss可以存在,flex以及adobe的“智能客户端”Apollo也可以存在,silverlight可以存在,但是浏览器不会消亡,很长时间,我估计会坚挺到语义网中期。浏览器不消亡就意味着千变万化,web的本质还是在html上,在现在的xhtml1.X,未来的html5或xhtml2,这是地基是根本。所以我还是继续玩我的Web标准,以不变应万变,也给该领域中迷茫的兄弟姐妹们打打气,(用周星星的语气读:)让我们继续努力去做这个有前途的职业吧。哇哈哈。但是我还是很憧憬没有浏览器的互联网。
有时候回看历史是很有意思的一件事,好像有很多可能性,然而实际上它还是按部就班的向前发展,想在历史上拔苗助长,非一般的难。不光历史是循序渐进的,所有事情都应该是循序渐进的,不可能一步到位,这是我在应用标准的过程中很有体会的,一个人的思想到了不等于团队的思想到了,微软的思路到了不等于世界的思路到了,再说YY是可以天马行空跳跃的,但是把YY变成行动不行,得一点一点的去试。怎么样从1走到10?必须走过2、3、4、5、6、7、8、9!可以去思考如何更快的走过,但是别跳!所以心平气和,一步一步,脚印踩踏实罗,千万别玩轻功,没有捷径。不信你回头看,真的走过捷径吗?是捷径还是机遇还是厚积薄发?其实严格说YY也是,思想也是需要一点一点打通和渗透的。进步取决于上一次的进度。
前天孟岩到杭州,有幸一起吃饭交换了一下在微格式、数据开放、外部应用以及语义网等方面的意见。让我印象最最最最为深刻的是在我上车(的士)离开前他对我头上辫子的洗刷,我靠,好!仇恨积上了,有机会要到北京去洗刷回来!
在ASP.NET 2.0中,一个ASP.NET页面的生命周期主要为:
- 客户端请求页面
- 预初始化(OnPreInit)
- 初始化(OnInit)
- 完成初始化(OnInitComplete)
- 载入ViewState(LoadViewState)
- 处理回送数据(IPostBackDataHandler)
- Page_OnPreLoad—》Page_OnLoad
- 回发更改通知(RaisePostDataChangedEvent)
- 处理回发事件(RaisePostBackEvent)
- Page_OnLoadComplete
- 预呈现(OnPreRender)
- 完成预呈现(OnPreRenderComplete)
- 保存ControlState(SaveControlState)
- 保存ViewState(SaveViewState)
- 呈现(Render)
- Page_UnLoad。
OnPreInit:在初始化页面OnInit事件前触发。在这个阶段里,可以进行定义站点主题(Theme)或加载站点个性化所需要的数据信息等操作。
OnInitComplete:完成初始化页面OnInit事件后触发。
OnPreLoad:在加载页面OnLoad事件前触发。
OnLoadComplete:完成页面加载OnLoad事件后触发。
OnPreRenderComplete:在完成预呈现OnPreRender事件后触发。这是完成页面呈现的最后一道关卡,在此之后,页面将无法再进行任何呈现上的改动。
SaveControlState:保存控件状态ControlState。ControlState是ASP.NET2.0控件新增的一个属性,类似ViewState作用,但它们区别在于ControlState用于保存更加重要的控件状态信息,以保证在禁用ViewState的情况下还可以对控件状态进行读写操作。
增加对页面Header的控制:
System.Web.UI.Page类新增加了Header属性,用于对HTML页面头区域里数据的操作。通过对Header属性的跟踪,可以发现,Header属性保存着一个实现IPageHeader接口的对象(该对象有LinkedStyleSheets、Metadata、StyleSheet和Title四个属性),实际上正是通过这个对象实现对HTML页面头区域里数据的操作的。
例如:
<script runat="server">
void Page_Load(object sender, System.EventArgs e)
{
this.Header.Metadata.Add("author", "brooks");
}
</script>
其运行结果为:
<html>
<head> <title>Untitled Page</title>
<meta name="author" content="brooks" />
</head>
定义表单中的默认按钮:
在ASP.NET1.0中,我就为了设置表单中的默认按钮而一筹莫展。幸好ASP.NET2.0把这个功能补上了,现在可以非常方便的设置表单中的默认按钮了。
<%@ page language="C#" %>
<script runat="server">
void Button1_Click(object sender, System.EventArgs e)
{
this.LB_Message.Text = "You clicked button1";
}
</script>
<html>
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form runat="server" defaultbutton="Button1">
<asp:textbox id="Textbox1" runat="server"></asp:textbox>
<asp:button id="Button1" runat="server" text="Button" onclick="Button1_Click" />
<asp:label id="LB_Message" runat="server"></asp:label>
</form>
</body>
</html>
设置焦点:
现在假设为TextBox1控件设置焦点,在ASP.NET 2.0中可以这样实现:
this.Textbox1.Focus(); 或 this.SetFocus(this.Textbox1); 即可为TextBox1控件设置焦点。
如果打算也为表单设置个默认焦点控件,让光标默认停留在TextBox1上:
<form runat="server" defaultfocus="TextBox1">
跨页面数据发送:
如果你需要多个页面发送数据到同一个表单程序进行处理,或者数据在多个页面之间传输处理的话,你就可以使用ASP.NET 2.0这个新特性。例如,我打算把Default.aspx页里TextBox1里的文本数据发送到Default2.aspx页面进行处理:
Default.aspx页:
<%@ Page Language="C#" %>
<script runat="server">
void Button2_Click(object sender, EventArgs e)
{
Label1.Text = "Hi," + TextBox1.Text + ". This is Default.aspx";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox>
<asp:Button ID="Button1" Runat="server" Text="PostToAnotherPage" PostBackUrl="~/Default2.aspx" />
<asp:Button ID="Button2" Runat="server" Text="PostToSelf" OnClick="Button2_Click" />
<br />
<asp:Label ID="Label1" Runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
Default2.aspx页:
<%@ Page Language="C#" %>
<script runat="server">
void Page_Load(object sender, System.EventArgs e)
{
TextBox textBox1 = (TextBox)PreviousPage.FindControl("TextBox1");
this.Label1.Text = "Hi," + textBox1.Text + ". This is Default2.aspx!";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:label id="Label1" runat="server"></asp:label>
</form>
</body>
</html>
摘要: 第一次在博客园开博,所以一定要置顶。 今天终于又写了一死循环程序。陷入了操作符重载这个陷阱。 代码如下:
public class Line : ICloneable { private Point2D&...
阅读全文
摘要: 好长时间没有更新博客了,差点忘了这里还有我一个帐号, 呵呵 这个控件还是春节时在家无聊时写的,后来就长眠在我的机器里了,今天无意中才发现,写的比较烂,有些功能还没有实现,所以请园子里的高手帮我改改。代码下载
Code highlighting produced by Actipro CodeHighlighte...
阅读全文
More Posts
Next page »