如此电子商务?!

先看看某金融杂专上刊登的一篇采访工行电子银行部的文章,被采访者说了如下一段话:“现在中国工商银行电子银行的交易额大约占全行交易额的 20%,也就是产电子银行分流了 20% 的业务量,大概相当于 1000 个网站,按照每个网点每年 50 万年的营运费用计算,相当于每年节约了 5 亿元的营运费,如果再把人力成本计算在内,效果更加明显(指减言增效),从这个角度来说,电子银行不仅分流了柜台的压力,还大大降低了银行运营成本。此外电子银行还能创造很多直接经济效益。电子银行代理外汇买卖、代理基金销售等,都能创造直接经济效益。”

一切听上去都那么美好,看来做电子银行(网上银行)真是为银行省了一大笔钱呢,而且从我的感觉来说,做电子银行在节省成本的同时,还能提高客户满意度(不用再去排队呀),提升银行服务形象等等。

可是这么一件大好事,楞让他们的一个做法把形象给毁了:他们竟然向网上银行的使用者收取每年 12 元的数字证书年费! 数字证书是你提供给用户安全访问你们系统的一个认证手段,凭什么收取这个年费?退一万步来说,即使这个收费理由很充分,做为一个大银行,和客户去计较这 12 元的年费,实在是大跌身份。工行甚至在前一段时间给网上银行做广告促销,开出的优惠条件是免年费,交易有奖… ,本不该收的钱,还恬着脸说优惠,可气!

今年早些时候就有人讨论银行的借记卡(储蓄卡)年费问题,银行说按国外的银行惯例应该收取,虽然后来有专家严厉批驳了这种说法,但仍有些银行开始收取此项费用了。有网友讽刺得好:在收费问题上,永远要参照国际惯例,在服务问题上,永远要有中国特色(继续差呗)。

其实这样捡芝麻,丢西瓜的事还真不少,前两天有人让我帮着看一个手机银行的方案,其中有很大一部分章节就是在阴谋如何向用户收取费用,如包月 10 元,再和移动运营商瓜分用户那每条 0.1 元的利润,看完后又好气又好笑,不把手机银行看做是一个拓宽客户渠道,提供优质服务的手段,竟然要当做“利润增长点”,让我们一起为这些沦落到争取蝇头小利的银行们脸红吧!

最近正学车,驾校自称是北京第一家实现网上约车的驾校,但后来才知道,要网上约车,得先交 100 元,算是使用费 …… 那好吧,我只好一遍一遍地打你们的约车的电话了,我麻烦你也别闲者,学员省点钱的同时,你就再雇几个人接电话吧,还要冒者难约车(不方便)而带来的潜在新学员流失的风险,看谁的成本更高。

还没完呢,自从有了短消息并且有人用它发了财之后,传媒也盯上了,也想积小钱成巨款,在这个上面赚点外快,有些形式虽然挺招人讨厌,但也无可厚非(象 CCTV 5 猜比赛结果中奖的),也有的很是缺心眼(象猜俄罗斯的人质劫持事件中死了多少人的那个)。除了电视台,广播电台自从和短消息联姻后,明显的人气旺了不少,听众很方便地就可以参与节目,互动性更强了,广播更受欢迎了,广告收入更多了,但电台就是这么贪得无厌,打起听众的主意,象北京交通台,你每天向他发短消息报告路况,嘿,不但每条收你 2 毛钱,还回头再送你几个广告短消息,可耻呀!

一直在说电子商务体现了直接美,节省了中间的流通费用,可这些短视的人就是看不到这些省下的钱,反过来竟向消费者收取“电子商务”使用费。

唉,还真是应了这句话:“我本将心向明月,无奈明月照沟渠”。

ASP.NET开发经验(5) — 制作功能完善的安装程序

每年到这个时候,周围做技术开发的人都会懈怠下来,听电台上说,这叫“岁未综合症”,但对于部分做与财务或运营相关来人说,年底可能是最忙的一段时间了,象我们这里,每年的12月31日午夜要进行年终决算,计算大家帐户里的利息,所有做运营维护的人员在饱餐了一次丰盛的美食后,就开始了通宵忙碌,当然也有运气不好的开发人员会被拉去做技术支持。

既然偷点空闲了,就写点 ASP.NET 应用安装程序的东西吧。

象 ASP、ASP.NET 等诸多基于 Web 的应用程序的安装与部署一直是个麻烦事情,一般都是手工复制、手工修改相关配置文件(主要是数据库配置),和 Windows 上 Installer 或 Linux 上的 RPM 相比,这种方式显然一点技术含量都没有

对于胖客户端应用,从很早开始就一直都有较为完善的安装程序制作工具了,如 InstallShield、InstallAnywhere、Wise Installer、SWIFT Installer 等等,其中一部分已经实现了跨平台,可以运行在 Windows、Linxu、Java 等平台上。

从 Visual Studio 6.0 开始,Microsoft 提供了单独的 Setup Tools ,可以用来制作简易的安装程序,后来,这个工具被集成到 VS.NET 2002/2003 中,并且功能做了一些增强,可以制作自定义的对话框等。其优点是能很好的和 VS.NET 的项目进行集成,这样在整个解决方案(Solution)在 Build 的时候,就可以生成安装包,这样便于实现每日构建(Daily Build),同时其缺点仍然存在,不能对安装过程进行更多地控制,提供的对话框功能和类型有限,很少看到有人利用这些对话框实现对系统的一些较为复杂的配置,如绝大多数应用程序中都会涉及的数据库创建、初始数据的生成等工作。

有很多不错的安装工具中,在安装的过程中就可以对实现对系统进行一些配置,但安装结束后,如果配置发生改变,例如数据库迁移等,又变成一件令人头疼的事情,如果对系统了解较多,知道配置数据的存放位置,就可以手动修改,如果不了解怎么办?难道要先卸载,再重新安装来完成新配置?

在很多不错的胖客户应用中,配置界面是和安装界面独立的,这样便于在安装系统后,灵活地调整其配置,那么就把它拿到 ASP.NET 的安装程序中吧。

1) 建立解决方案 Solution

2) 建立 Web 应用 

3) 新增一个 WinForms 应用 AppConfig,增加一个 WinForm ,完成初始化系统环境,修改系统配置的功能(如生成数据库、生成初始数据、修改 Web.Config 中的数据库连接参数,Machine.Config 或自定义配置文件)等功能,生成 AppConfig.exe 

4) 新增一安装项目 Setup,除了将 Web 应用的的“主输出”和“内容输出”加入到项目中,还要将 AppConfig 的“主输出”加入到此项目中

5) 在 Setup 项目中的“自定义操作中”的“安装”节,增加一自定义操作,使其运行来自于 AppConfig 的“主输出” AppConfig.exe

这样 ASP.NET 的安装程序在运行的最后阶段,会运行 AppConfig 的 WinForm 程序,来完成相关的配置,如数据库等。如果以后配置发生改变,可以直接运行 AppConfig.exe 来更改配置。

值得一提的是,由于 AppConfig 是 WinForms 应用,相对于 Installer 的对话框而言,有很大的发挥余地,例如我经常在项目中加入 SQL Server 管理对象 Interop.SQLDMO.dll 的引用,这样可以在输入/选择 SQL Server 的列表框中实现自动列出可用的 SQL Server 名称列表,看起来很专业的样子,用户很喜欢,后果很不错。

Smart Document开发

介绍智能文档

Office XP当中引入了一个新的概念,即智能标签,如果大家经常使用Word的话,可以发现,从Word XP开始,如果你输入一个日期或者人名的话,会发现下面多了一些红色的虚线,而当你在上面点击时,会自动出现一个下拉菜单,这就是Smart Tag,也就是智能标签。在Office 2003当中,智能标签得到了增强。另外,在Office 2003当中,对于XML的支持得到了极高的增强,例如,我们可以为一个文档增加XML架构,从而对其进行更好的数据管理。在此基础上,我们提出了一个智能文档的概念,让我们的WordExcel在友好界面的基础上,增加了一些聪明特性,直接在文档当中与后台的业务处理系统打交道。

 智能文档的优点

在很多时候,我们需要使用Word或者Excel作为宿主程序,比如我们的业务使用人员更加熟悉Word或者Excel,或者我们的业务类型主要以Word或者Excel文档作为载体,此时,我们可以让WordExcel变得更加聪明,能够直接与业务系统打交道,而不是另外编写一套应用,让它具备排版、打印、数据表计算等的功能。

Word/Excel 2003以前的版本当中,我们所做的业务逻辑必须是在文档当中,比如在文档当中添加各种控件,从而影响该文档最终展现在用户面前的样式,不适合进行排版,影响了最终的用户体验,而在智能文档当中,我们引入了一个“任务窗格”,所有的智能操作均在此处完成,从而将业务逻辑与文档版式互不影响,只是在业务层建立起联系。

这种联系通过XML Schema,即给文档增加一个XML架构,根据鼠标所在不同的XML Element,使任务窗格产生相应的操作及显示,而且这种改变是联动的。

在安全性方面,依托于.NET内建的安全性策略,智能文档也得到了很大的增强,所有的智能文档在执行操作前,均会通过.NET策略进行设置,从而杜绝了安全隐患。

在部署和更新方面,智能文档是基于文档来进行部署的,在内网中部署,我们可以把智能文档的架构及处理程序放置在一个网络共享位置、Web Server或者其它内网成员均可以访问的地方。如果是外网,我们可以制作成MSI安装包,让客户直接下载安装。

应用场景

任何一种技术,都不可能成为万能的。在智能文档推出后,也不能想当然的,把自己手头上的所有项目,不分需求的使用智能文档来搭建。如果您的项目符合以下特点,可以考虑使用智能文档,或者智能文档来搭建某一部分需求:

  1. 该应用的使用人员计算机操作水平不是特别高,但对于Word以及Excel文件操作经验特别丰富;
  2. 该应用是以Word/Excel文档为中心的,大部分的应用视图均可以以Word/Excel作为展示;
  3. 该应用对于一些Word/Excel本身的特性非常依赖,比如排版、打印、复杂的Excel的公式计算等。

举例来说,我们的OA工作流非常适合于使用智能文档来进行搭建,办公系统本身处理的文档大部分都是WordExcel文档,而且其操作人员对于其它系统都有一种本性上的抵触情绪。再者,这种应用一般对文档格式要求特别高,比如,甚至会增加一些模拟的公章,或者手写签名,这些在WordExcel当中很好实现,但自己编程非常困难。

再者,进销存管理以及HR(人事)系统也可以部分采用智能文档来搭建,本年度的架构师峰会上,我们演示了用友U9平台上的一个医药进销存管理系统,其中就使用了智能文档来处理订单。

2004-12-28日下午15:00,开心将在http://www.microsoft.com/china/msdn的网络讲座中讲解Smart Document开发体验点击此处可以下载本次讲座的示例代码。

Hotmail & 数字证书

今天登录 Hotmail 发现,附件防病毒扫描服务的 McAfee 被 趋势(Trend Micro )替换掉了,看来如今这时代,不思进取,再好的位置都会被取代。

另外,一直觉得 Hotmail 缺少一个重要的功能:S/MIME ,即没有数字证书支持,这样就不能发送加密或数字签名的邮件了,记得前段时间看到 Sina 的邮箱好象还支持这个功能呢。当然了,现在针对个人用户提供数字证书颁发的厂商也比较缺乏,MSN 或 Google 搞这样一个服务,估计挺受欢迎,最好是免费的 😛 。

前一段时间,MVP Private 站点与 Verisign 合作,为 MVPs 免费颁发数字证书(可以选择数字证书的功能,如代码签名或电子邮件证书),可惜现在已经过期无法申请了,遗憾。

怎样做才能让VS.NET IDE支持新的扩展名

在我们的网络应用里,我们需要生成新的Project Items模板,而且拥有新的扩展名(譬如”.joy”)。但我们希望由此产生的新文件(譬如”a.joy”) 跟通常生成的”a.aspx”文件的行为一样,即,有设计视图,可以往上面拖控件,HTML视图支持Intellisense,等等。

我们参照了Chris Sells网站Michael Weinhardt的文章,经过少许改动后,能够在VS.NET IDE里成功生成新的文件(a.joy)以及相应的code behind文件(a.joy.vb)。然后参照下面2个连接里的提示,

http://weblogs.asp.net/ralfw/archive/2004/11/05/252865.aspx

http://dotnetjunkies.com/WebLog/darrell.norton/archive/2004/04/21/11837.aspx (这个连接中的最后一个答复者遇到了跟我们一样的问题)

我们对注册表里下列的几个Key添加了对应的条目,

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Editors
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Editors
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Languages

理论上讲,在编辑a.joy时,我们应该得到HTML编辑器,但我们得到的却是XML编辑器。

我们估计是注册表里的问题,所以我们试着改动注册表,几乎找遍了所有跟”.aspx”有关的条目,都为”.joy”添加了相应的条目,但我们得到的却总是XML编辑器。

感觉这不应该是个很难的问题,因为改动扩展名是很正常的事,譬如微软中国网站用的是“.mspx”。实际上,要运行的话,只要改动IIS里的应用影射,以及在machine.config或web.config里添加相应的httpHandler即可。

估计是我们的方法不对,这里高人甚多,特别是这里微软VS.NET产品组的朋友,如果能指点一下的话,不胜感激之致

NHibernate

前几天在回答一个问题时,我是凭直感回答的,因为没试过。正好最近对O/R Mapper感兴趣,所以决定试一下NHibernate,发现其Quick Start Guide 有几个地方不是很清楚,现在把试验的步骤记录如下。(因为试验的这台机器没有VS.NET,所以用了csc.exe来直接编译)

注,其中log4net的配置是从原提问者inelm处学来的

CLR is everywhere

.NET在全世界的影响程序越来越高,InfoWorld所作的一个统计,编程时优先选择的API框架,Microsoft .NET占53%,而J2EE目前占47%(这是一个多选题)。仔细想一下,.NET概念提出来不超过四年,真正有实际产品也就是两年多一些,而现在就稳居业界第一的地位。

相信博客堂的朋友们都了解SQL Server的一些优越特性,其中最重要的一点就是SQL Server 2005对.NET Framework 2.0的良好支持,譬如使用C#来编写存储过程之类的。可是有没有人曾经想过有一天Oracle以及IBM也会支持这些特性???

OK,至少我没有想到,我相信大部分开发人员看到这儿,可能也不会相信是真的,那么,就来看看他们网站上的新闻吧:

IBM: A look at the new functions in DB2 Universal Database (消息来源:IBM DeveloperWorks)

与Visual Studio.NET的集成

使用CLR来创建存储过程

Oracle: Oracle Introduces Oracle(R) Database 10g Release 2 (消息来源:MSN Money)

似乎DBA们也应该开始学习一下.NET了…

BTW: 昨天在济南酒店中吃午饭时,偶遇原来傲姿时代公司的老同事,目前就职于Oracle,偶有所感,以此为记…

 

贴子以现状提供且没有任何担保也没有授予任何权利

年关将近,大家小心

年关将近的时候,不法分子都抱着大干一把回家过年的心态,所以治安案件发生的频率就比较高,公安机关也往往都在这些时候提醒大家多加注意。

现在这种趋势已经延伸到互联网上了。

先是看到有人利用 假冒中国银行网站骗取用户名密码,地址伪装得还挺好:www.bank-off-china (真正的域名是 www.bank-of-china.com),现在已被查封,前一段就曾有人利用中国银行的全国统一客服号 95566 来做了一个假冒网站,www.955666.com,目前已不能访问。

今天又看到,有人还在假冒中国工商银行的网站(http://www.icbc.com.cn),这哥们够绝,地址改成 http://www.1cbc.com.cn ,而且竟然在首页就要求输入用户和密码,而且各个密码都不放过,各位如果运气好,现在还能访问到这个网站,无独有偶,之前有人就是用 www.iabc.com.cn 来假冒。

这不由让我想起了以前整理的一些与邮件诈骗有关的案例,摘录如下:

2003 年,一些在中国工商银行网上银行注册的客户,收到了一封来自网上银行系统管理员的电子邮件,宣称由于网络银行系统升级,要求客户重新填写用户名和密码。这一举动被工行工作人员发现后,经证实是不法分子冒用网站公开信箱,企图窃取客户的资料。

2004 年初,美国花旗银行的部分客户收到一封诈骗邮件,该邮件要求他们去一个假冒的网站验证银行帐号是否被篡改。同样在去年8月份也发生类似事件,在那次事件中,一个网络骗子威胁如果客户不透露他们的个人信息的话,就关闭他们在花旗银行的结算帐户。其他最近出现的欺骗邮件包括:一封自称来自“花旗银行安全部门”的邮件,宣称银行服务器要升级,要求客户提供他们的帐户资料;另一封是自称来自“帐户管理部门”的邮件,要求客户提供信用卡信息以便“保留银行资历”。

2004 5月份,英国国家高科技犯罪中心(NHTCU)逮捕了12名利用Phishing(网站仿冒)作案的疑犯。这12名疑犯受雇于俄罗斯犯罪集团,在英开设了用于周转盗取资金的账户。并向没有防范的用户发送一些貌似来自银行的电子邮件,声称收件者的账户需要更新,目的在于钓取(fishing)客户的账户资料或信用卡号码。通常,邮件会提供一个看似官方网站的链接,客户一旦点击此链接,便会被提示输入其账户信息,这些信息最终落入诈骗者手中,从而让用户蒙受损失.

澳大利亚四大银行之一的澳大利亚和新西兰银行集团(ANZ)也曾遭遇到“重量级”的Phishing对手攻击。ANZ、联邦银行、Westpac 以及国家澳大利亚银行一直以来都是这些Phishing诈骗的主要目标。

Gartner估计,过去一年中,有1/5的美国人成为Phishing的攻击目标。Phishing诈骗正使飞速发展的网上银行业陷入困境。 而据MI2G的数据,仿冒的电子邮件涉及到包括西班牙、新加坡、澳大利亚、加拿大、香港甚至瑞士的全球35家银行。但其首要的攻击目标是北美和英国。去年,有100多宗独立的Phishing诈骗案发生在这两个地区,被仿冒的皆是大名鼎鼎的银行,像Fleet 银行,ABN AMROAmerican Express、美国银行、HSBCBarclays银行,甚至包括英国中央银行 —— 英格兰银行。

Gartner最近的一项调查表明,有5700万美国消费者肯定收到或很可能收到过此类仿冒的电子邮件。Gartner称,在去年遭遇此类诈骗的400万消费者中,14%的人则发现了假冒的花旗银行网站。

看来,Phishing(网站仿冒)技术已经成为国内外网上银行面临的最大安全威胁之一,而且这种威胁又是被动的,从表面上看,很难有好的办法解决,但以下一些关于主动行动的建议则能从很大程度上降低用户受损范围/额度,而且对银行来说,能起到相当好的免责作用。

1、 在网上银行等对外客户提供服务的系统中合理而谨慎地使用电子邮件,绝不利用电子邮件作为完成交易或其它相关功能的通道或手段,在选择电子邮件实现通知功能时,也须谨慎考虑是否易被非法利用,并且一定要对其中的敏感信息进行必要的屏蔽(如帐号的后几位用 * 代替等)。

参考:招商银行的个人银行业务中,只有“手机短信通知”一种方式,没有使用电子邮件作为通知手段。而手机作为终端明显比电子邮件更为安全。

2、 如果在系统中一定要使用电子邮件,则考虑使用数字证书来加密和签名邮件,以防止被截取利用或假冒,同时要加强对于邮件服务器本身进行保护,避免非法中继(转发)邮件或被暴力攻击。

3、 加强最终用户教育,主动防范邮件诈骗。

在网上银行等对外服务系统中,须在首页或登录页等重要位置向客户明确提示安全使用注意事项,常见的邮件诈骗防范等。

参考:花旗银行在网站上的安全公告 花旗提醒消费者防范电子邮件诈骗

亲爱的客户,本行提醒您,曾有不法集团假冒花旗银行的名义,在美国, 英国及亚洲等地散发电子邮件,以变更支存账户或要求客户再次确认账户数据等为由,要求客户回复并输入个人账户数据与密码。花旗银行提醒客户,花旗银行的系统安全无虞,且银行绝不会寄发电子邮件要求客户揭露账户信息或任何密码,请客户千万不要响应此类邮件,并马上删除。?

详情参见:http://www.citibank.com.tw/events/about/052104/

大师印象 — Ivar Jacobson

怪事年年有,唯独今年多, UML 的三个创始人,有两个都在近一两个月先后造访中国。James Rumbaugh 先是在 IBM 中国 2004 开发者大会上出现,Ivar Jacobson 最近又来到了中国。

还是单位有面子,能请到 Ivar Jacobson 专门来给我们讲面向对象/UML 的发展。

总觉得与他们层次太高,与他们没有什么共同交流的地方,觉得有所以在 DW Live 上,很知趣的躲得远远的,没有凑热闹,没有去要签名,窃以为还是不签名的书好,有用的时候就看,没用的时候想扔就扔,签了名的书很多的时候就是鸡肋。

Ivar Jacobson 可能还要赶场子,只讲了一个多小时,除去一半翻译的时间,也就讲了半个多小时吧。主要内容是如何利用迭代式开发(Rational Unified Process, Rational 统一软件开发过程的关键思想)和 Software Reuse 来缩短工作,降低成本,提高质量和开发人员生产力,这些内容以前多多少少还是了解一些,并没有什么新意。

接下来,Ivar 讲了他认为的四个趋势,也是他的主要研究方向:

1) Use Case 和 AOP (Aspect Oriented Programming)

2) 3) 如何使软件工具和过程更 Active(积极),更具有人性化,更体现以人为中心的思路(准确描述不记得了,大概是这个么意思)

4) Excutable UML:就是让 UML 成为能执行的语言,关于这个话题,大家估计有想法了,据说另一位创始人就不看好这一点(大师内部矛盾 :P),倒不管 UML 能否执行,如果能执行,我觉得有点 BPEL4WS 的味道了。

本来想在结束的时候问一个问题: Rational 的过程、方法论这么牛,Rational 的软件咋那么难以使用,甚至 Bug 很多呢? 可能是觉得此问题不太适合此种场合,且时间紧张,终究没有提问。

后来 Ivar 好象去了新浪科技,参加了嘉宾聊天,详细内容在这里:Jacobson:中国软件外包要仰赖于流程和方法 (1)  (2)

Rumbaugh的新书

James Rumbaugh,Grady Booch,Ivar Jacobson人称“Three Amigos”,基于他们各自的方法,博采众家之长,兼收并蓄,融会贯通,共同制定了统一建模语言(UML)

N年前,当我开始我的新的职业生涯时,三位的大作

Object-Oriented Analysis and Design with Applications (2nd Edition)
by Grady Booch
Publisher: Addison-Wesley Professional; 2 edition (September 30, 1993)
ISBN: 0805353402

Object-Oriented Modeling and Design
by James R Rumbaugh, Michael R. Blaha, William Lorensen, Frederick Eddy, William Premerlani
Publisher: Prentice Hall; 1st edition (October 1, 1990)
ISBN: 0136298419

Object-Oriented Software Engineering: A Use Case Driven Approach
by Ivar Jacobson
Publisher: Addison-Wesley Pub Co; 1st edition (June 30, 1992)
ISBN: 0201544350

对我的影响多多。如今,时隔14年后,Rumbaugh终于更新他的经典名作了,

Object-Oriented Modeling and Design with UML (2nd Edition)
by James R Rumbaugh, Michael R Blaha, William Premerlani, Frederick Eddy, William Lorensen
Publisher: Prentice Hall; 2 edition (November 15, 2004)
ISBN: 0130159204

Grady Booch大概不会步其后尘,因为他的宏大的《软件架构手册(Handbook of Software Architecture)》一书好像也才刚开了一个头