RSS 2.0 Feed
二进制生活
摘要:不算文章,随便动动笔,记下这两天试验的一些结果 BizTalk 在Visual Studio 里那个Add Sql Adapter Meta Data 功能很不好用,不如直接在BizTalk 建一个SQL Receive Location 然后直接Send 到File,再从Xml File 生成Schema。 如果需要Disassemble 消息,MSDN上 有个不错的WalkThrough。几个关键点如下: Envelope Schema 和 Document Schema Share same namespace。 要为Envelope Schema 设置Body XPath。 <Any> Node in Envelope Schema 需要设置属性 namespace ##any and Process Context = Lax Envelope Schema 在Visual Studio里 Validate Instance 是必然会失败的。 ......[阅读全文]

posted @ | Feedback (0) | Filed Under [ 二进制生活 ]

摘要:When: Feb 27, 2008 Where: Los Angeles What: Windows Server SQL Server Visual Studio 三大产品的发布会. 今天去逛了一圈,铺几张照片。   就在Lakers 球场边上,我们差不多8点多就到了 注册,很多人 里面人更多 赶着看9点的Keynote,随便对付一下早餐   KeyNote 会场,理论上是不能照相的。。 NBC's Tom Brokaw, 演讲云山雾罩,莫测高深。谈论的都是类似温室效应援助非洲之类极为高深di问题,俺开车太累,后来稍微眯了一会。 然后被某人的大嗓门吵醒了。 大Boss,再放一张 演讲效果不错,中间穿插的3个产品的Demo颇有意思,看的入迷就没有拍了。...[阅读全文]

posted @ | Feedback (5) | Filed Under [ 虎说八道 二进制生活 ]

摘要:很早就想给 Messenger 写个 Bot玩玩,有一段时间还分析过messenger的协议,不过Messenger这东东每次更新必然升级协议,搞得到后来都没力气跟他玩了。 Live Messenger 算是有了个Add-In SDK, 不过这个Add-in本来不是用来作Bot用的,功能很弱而且限制颇多: Messenger 只能 Load 一个Add-In Dll (这点其实可以绕过去,写一个Add-In ,再自己公开了一个Interface,然后每次Init的时候到一个固定的Folder去动态加载所有实现了这个Interface的Dll) Add-In 能做的事情非常有限,它只能响应Receive Message Event去 Reply message。 Add-In 只能Reply Message 给 Message 的Sender,不能发给第3方。 Add-In 只能回复1条Message 给Message 的 Sender (Kao,这个是最致命的,很多东东基本上没的玩了)不过看在至少能Reply Message的份上,凑合着用用把: 首先要Enable Messager 的 Addin功能,缺省情况下,这个Feature是disable的。 改一下注册表,加个DWORD key in HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger\AddInFeatureEnabled set the value to 1, Restart your messenger, Login and open option window: Add-In tab 就出现了: (有时候你会发现改了注册表Add-In Tab还是没有出来, 如果确定你的Registry没有改错,重装一下Live Messenger应该可以解决问题,还不行的话,请回忆你前半生的所作所为以检查RPWT) 当然,在这里只是Load,要激活Add-In,你还要Turn On它:   Add-In的开发很容易,简单的引用Messenger Program Folder里的MessengerClient.dll,再创建一个Class实现IMessengerAddIn。IMessengerAddIn 接口实现也很简单,在Initialize里注册一下你的ReplyMessage事件处理函数就行了。 Online SDK里有Sample Code,基本只要照抄。唯一要注意一点的就是编译出的Dll file name 要和你的 实现 IMessengerAddIn 的Class的FullName相同,比如说你的Class叫MyCompany.Testing.MyMessagerAddIn, dll 名字就得叫做MyCompany.Testing.MyMessagerAddIn.dll。   对了,给你的Add-In Dll 加上Strong Name 并且Add to GAC, 否则Add-In dll 会Run 在Internet Permission Set,不能读写本地文件,不能访问Database,不能... 基本上除了可以Reply个"Hello World",你的AddIn啥也干不了。   调试也挺痛苦,我刚开始是用VS.Net 直接 Attach msnmsgr.exe 这个进程,然后在Messenger里 Load Addin Dll, 如果你在Compile Add-in dll之后刷新了GAC里Dll 版本的话,Initalize method......[阅读全文]

posted @ | Feedback (8) | Filed Under [ 二进制生活 ]

摘要:    说起来也有快2年没正经写过程序了,最近公司准备往SOA转,也就有机会玩弄一下 Biztalk 2006. 前一段参加了几次Training,有公司内部的,也有外面找的Consultant. 折腾了半天,多少算是有了点谱。     这两天算是正式开始写第一个程序了,上手很简单,拿来别人写好的Schema,先准备做个Message Mapping,Receive/Send 先都是用的FILE Adapter,反正是怎么简单先怎么来。  有了Schema,其实Mapping很简单,整个一体力活,大多数情况基本上就是鼠标从左边往右边一拖,然后回去从左边往右边一拖,然后回去从左边往右边一拖,然后回去从左边往右边一拖……(顺便发泄一下对functoids的不满:那玩意看起来在Toolbox里满满的一屏,居然没有类似VB Year()/Month() 之类的DatePart Function,这么常用的功能,还得自己写Code 实现,实在令人比较的失望。) (体力活--这些线都是我拉的.....)     好,在经过一段时间的体力活之后,把Schema 和 Mapping 都Depoly到Biztalk Server,建好Receiving 和Sending Port,Create 好一个Incoming  Message 的instance file,把它拖到Receiving Port 对应的Folder——恩,命运的齿轮开始转动,文件不见了。(再次发泄一下对biztalk 2006 Schema Editor 的不满:连直接Edit Code 都不让我做,右边就傻傻的放个IE Window显示XML file,所有改动都得在Property Window 完成,真累....)      跑到Sending Port对应的Folder,望眼欲穿也没等到Mapping之后出来的File,很显然,命运的齿轮卡住了。到HAT (这又是一个令人不满的东西,它除了定义了几个预定义的Query和几个Global parameter,和Sql Query Analysis 或者Sql 2005的Management Studio 基本就没区别,再刻薄点说,Management Studio 的Query Result的显示还比HAT好看的多。)里看看,发现Message 有一条Error Info: “Finding document specification by message type http://soa.xxxx.com/xxxx/xxxx/xxxx#yyyy  failed. Verify that the schema is deployed properly.”     显然,提供给Biztalk的Message有些问题,它似乎和我们的Schema不那么match。但是Message是用Schema 文件的,从理论上说不应该有问题。     然后就是Google;Search KB;Biztalk newsgroup.. 当然,你已经看到了偶的标题,所以你也就知道原因是我开始拿到的Schema里envelope 这个属性被设置成了True,envelope是 Biztalk 的扩展属性,它可以支持Biztalk 接受的一个Message里饱含多个document,在pipeline 就可以 disassembly 成多个message instance, 就像是我们把多份文档放到一个信封里打包送给Biztlak 一样。 但是我现在的这个测试里显然暂时还用不到它。    可惜你看到的这篇文章晚了点,否则你早就可以跑到MSN告诉我,“小心信封!小心信封!”, 对吧? ...[阅读全文]

posted @ | Feedback (10) | Filed Under [ 二进制生活 ]

摘要:       昨天在我们的一个程序发现了一个Bug, 程序是给Accounting用的一个Report,但是Accounting的人发现无论如何这个Report抓不出数据,跟进去查了一下,发现查数据的Sql是类似这样的:    Select * from table_1 where sonumber not in (select sonumber from table_2 union all select sonumber from table_3 ) 数据在Table_1里是存在的,table_2/3 里也不包含对应的SOnumber,但是Query的结果就是没有数据。再查了一下,发现原因在于Table_2中有些SoNumber的值是Null,而 where [field] not in (null) 这个判断,在Sql 里总是会返回false的 (偶这里的SET ANSI_NULLS 是ON,不过好像偶没见谁用过OFF) 改了一下in里的Select,处理掉NULL值以后Bug Fix -------------------------------  潜水N久,俺又回来了。 最近会玩弄一些Biztalk 和 SAP R3互联方面的东西,今天这个算一小泡泡。...[阅读全文]

posted @ | Feedback (11) | Filed Under [ 二进制生活 ]

摘要:文章在这儿。 10个AddIn是这些: TestDriven.NETGhostDocPasterCodeKeepPInvoke.NETVSWindowManager PowerToyWSContractFirstVSMouseBindingsCopySourceAsHTMLCache Visualizer 偶用过的NDoc和NUnit都没被作者看上,替代的是TestDriven.Net 和GhostDoc,俺都没用过..... VSWindowManager PowerToy以前倒是玩了玩,可惜感觉功能都不匝地,当天就UnInstall了..... PInvoke.Net 大家都知道,不过用的机会实在不大,真要用PInvoke,到www.pinvoke.net 看看也不麻烦.........[阅读全文]

posted @ | Feedback (6) | Filed Under [ 虎说八道 二进制生活 ]

摘要:   一直对FileDiff 和 VSS里版本比较的算法很好奇,这东西看来简单,仔细想想好像还真有点无从下手的感觉。 前两天Google出一篇Paper;据说现在这些比较工具的使用的算法都是来自于这篇Paper。      很有趣的说。...[阅读全文]

posted @ | Feedback (3) | Filed Under [ 二进制生活 ]

摘要:比较古老了的说。 VB6的IDE不认识老鼠轮子,这让用惯了VS.Net/Word/IE的偶很不爽,还好,在Knowledge base 里找到了这个。 还是带源码的。 VB6 Form会有一个Menu Editor,你可以在那里面编辑Form上的菜单,但是如果你想要程序在运行时再动态生成菜单,也不是不可以,在这里描述了动态生成菜单的方法。 当然,会有一定的限制:不能生成主菜单;子菜单至少要有一项;最主要的,菜单Click的处理代码要先写好 。  ...[阅读全文]

posted @ | Feedback (13) | Filed Under [ 二进制生活 ]

摘要:    今天在Google上又看到了一个新鲜玩意——Hello。 Google Tools里对它的介绍是"Instant message your pictures to friends "。 下载了一个安装了一下,界面和Picasa 2 灰常相似,安装好以后,在Picasa 2 里看图片的时候也会多一个Hello的Button, 看来Google也深知集成di 重要 如何共享图片因为暂时没有找到人试验,还没有什么概念,不知道Hello是如何做的。如果有人有兴趣,可以装一个和我试验一把,Hello里我的UserName是cnzee。     Hello的另外一个功能是可以直接上传图片到Blog,安装好以后可以在Friends列表里看到一个BloggerBot的User,应该就是做这个的。不过大概只能上传到http://www.blogger.com 的Blog吧。  ...[阅读全文]

posted @ | Feedback (3) | Filed Under [ 虎说八道 二进制生活 ]

摘要:   有兄弟绑定了一个ArrayList到 System.Windows.Forms.DataGrid, 然后设置AllowSorting 为 True,但是发现显示出的DataGrid还是不能排序的说。    在MSDN上相关的帮助那里没有看到甚么有用的东东,它只是说如果绑定 DataView/DataViewManager ,你可以如何如何。对ArrayList或者对象数组没有就没话说了。上Google查也没有找到什么有意义的东西,最后实在没有办法只有拿ILDASM 来偷窥了...    在里面找到一个名为AllowSortingChanged的私有方法,里面调用到了一个IBindingList的RemoveSort 方法: ......... IL_002a: castclass [System]System.ComponentModel.IBindingList IL_002f: callvirt instance void [System]System.ComponentModel.IBindingList::RemoveSort() IL_0034: ret } // end of method DataGrid::AllowSortingChanged 然后的事情就很简单了,看了看IBindingList的接口,SortProperty/SortDirection属性和ApplySort/RemoveSort 方法明显就是给DataGrid准备的,基本上就可以确定了: 只有实现了IbindingList的DataSource才可以在DataGrid里排序. -----------------偶一般不喜欢只写一件事情,No2 Coming ------------------------    MSDN 看到了一篇文章:On the Way to Mastering ASP.NET: Introducing Custom Entity Classes,    偶喜欢它对System.Data 缺陷的评论,它把使用DataSet的缺点展示的非常清楚,但是文章后半段对Entity Class的介绍(实现)就让人觉得有点简单--换句话说,它很好的提出了问题,但是没有很好的解决.....    不过文章还是不错di,而且里面还给了你一堆Link引导你去近一步深入某个问题。 "Never return a class from the System.Data or child namespace from the DAL" 是这篇文章里提出的一个Rule,我以为,用它来做文章的标题更合适的说   ...[阅读全文]

posted @ | Feedback (9) | Filed Under [ 虎说八道 二进制生活 ]

Full 二进制生活 Archive