D盘

workspace
posts - 165, comments - 53, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

关于注册表的操作,常见的是创建、修改、删除。
一、创建
创建分为两种,一种是创建子项(Subkey)
注:如果你对注册表的命名不是很清楚,可以看看注册表命名标准手册
(http://www.sometips.com/tips/registryhack/29.htm)
我们创建一个文件,内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Test4Adam]
然后执行了一个名字为“Test4Adam”的子项。
另一种是创建一个项目名称
那这种文件格式就是典型的文件格式,和你从注册表中导出的文件格式一致,内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Test4Adam]
"Test1"="Adam"
"Test2"=hex:61
"Test3"=dword:00000064
Test1的类型是“String value”
Test2的类型是“Binary value”
Test3的类型是“DWORD value”
注意:如果你的注册表中不存在Test4Adam这个子项,那么该脚本会为你创建该子项。
二、修改
修改相对来说比较简单,只要把你需要修改的项目导出,然后用记事本进行修改,然后导入即可,在此我就不再赘述。
三、删除
我们首先来说说删除一个项目名称,我们创建一个如下的文件:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Test4Adam]
"Test1"=-
执行该脚本,HKEY_LOCAL_MACHINE\SOFTWARE\Test4Adam下的"Test1"就被删除了;
我们再看看删除一个子项,我们创建一个如下的脚本:
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Test4Adam]
执行该脚本,HKEY_LOCAL_MACHINE\SOFTWARE\Test4Adam就已经被删除了。相信看到这里,.reg文件你基本已经掌握了。

posted @ 2008-12-11 09:14 巴西木 阅读(149) | 评论 (0)编辑 收藏

看到很多文章,似乎RIA就可以改变一切并且主宰未来。
冷静地看,RIA应该是对现有WEB操作的一种有力补充,标题中列出的任何一种技术也许都不会消失,但会有主流出现,还是相信那句:“Good enough!够用就好”

下面的文章来自转载:

目    录

1. RIA的概念

2. 什么推动软件技术革命?

3. RIA的历史和现状

4. RIA的技术实现

4.1 Adobe公司Flex 、AIR. 2

4.2 Microsoft公司Silverght、WPF/E. 3

4.3 Java阵营Applet、JavaFX和Java Web Start. 3

4.4 Ajax. 3

5. RIA技术所带来的挑战

6. 参考资料

 


RIA分析

1. RIA的概念

RIA(Rich Internet Application,富互联网应用系统)。这里的Rich是与传统的Html页面相比。Rich主要体现在丰富的客户操作相应。RIA必须要具有一下几个特点:

■        利用网络,具有服务器和客户端(浏览器其实也是客户端的一种)

■        丰富的客户操作响应

■        漂亮的界面

■        0成本部署

■        局部刷现界面

还有一些观点认为断网的情况下还可以继续使用程序,也使用应用程序,也应该是RIA的特性之一。我觉得那就没有必要使用RIA了。直接使用C/S结构多好。比如360安全卫士,每次启动都更新自己的库。也是一种很好的C/S结构。没有必要使用RIA技术了。

2. 什么推动软件技术革命?

纵观计算机软件发展历史,硬件+网络+用户需求+开发成本4种关键因素推动软件技术革命。RIA技术所需的硬件和网络已经成熟。客户对RIA的需求已经被GoogleMap、雅虎、微软等验证。只要开发成本不是非常巨大,开发公司会通过技术革新适应客户需求的发展。所以,RIA必然要取代传统Web页面,RIA大潮即将来临。

3. RIA的历史和现状

Macromedia 在2002率先提出RIA的概念。Macromedia在2005年已经被Adobe收购。

目前,RIA的技术实现主要有4种:

■        Adobe公司Flex、AIR

■        Microsoft公司Silverght、WPF/E

■        Java阵营Applet、JavaFX和Java Web Start

■        Ajax

Google的系列产品使用了Ajax技术。比如Gmail,GMap等等。Flex的应用有YahooMap和一堆不太知名的小网站。Silverght和JavaFX的应用好像不太多。

4. RIA的技术实现

4.1 Adobe公司Flex 、AIR

目前Flex已经发展到2了。

Adobe公司RIA有关的主要技术名词有:

Flex:通过非Flash的方式(Linux或window可执行文件)根据.mxml文件定义的commponent(组件,可以理解为界面的输入框等)组织结构,生成对应的.swf文件。主要包含两个技术MXML和ActionScript 3。Mxml用于界面描述。是纯xml文件。ActionScript是对ECMAScript改进后的产物,进行流程控制和逻辑判断的脚本,由FlashPlayer 9的核心AVM2虚拟机解析执行。Mxml相当于传统web中的html。ActionScript相当于JavaScript。区别是Mxml和ActionScript都是强类型的语言,语法要求更加严格。

Flex与Flash的关系:Flex技术的.mxml文件编译成swf文件后,交给flash player或者shockwave player解释执行。Flash与Flex就相当于J2SE和J2EE。Flex针对RIA对Flash进行了封装。Flex直接调用Flash的api,使用Flash完全可以做到Flex的效果。之所以只用Flex,主要是为了适应软件开发者的习惯,去掉一些对软件工程师没有意义的概念。因为Flash的传统应用领域是适量动画设计。

AIR:以前叫Apollo。通过这个平台各种网络应用程序可以离线操作。并具有访问本地资源的权限。类似与JAVA START。个人认为这个东西不会有前途。因为Flex的主要优势是Flash插件在浏览器中普遍存在。AIR反而抹杀了这个优势。

Flex Builder 2:基于Eclispe技术的用于Flex2开发的IDE,支持界面控件拖拽和代码助手这两个非常重要的功能。

Flex的主要优点:

1.已经有绝大部分的浏览器安装了播放Flash的插件shockwave player。这是Flex能够决定其在RIA领域霸主地位的的优势。

2.任何浏览器对Flash的执行效果都是一样的。也就是说Flex是跨浏览器,跨操作系统的。

3.下载速度和执行效率都还可以(对比Applet和flex2以前的版本)

4.界面更漂亮。

5.对开发人员更友好代码量更少,调试更方便(比Ajax)。Mxml非常容易学习。Flex Builder也是很好的开发利器。

6.Flex的Component(组件)库与JavaSwing对界面组件的设计非常相似。Java程序员学习起来比较容易。

4.2 Microsoft公司Silverght、WPF/E

Silverght貌似WPF/E的一个子集。

与Flex比较相似,也有一套基于xml的界面描述语言。叫xaml。使用javascript作为脚本。

Silverght的最大优势是他是微软的。也许在微软推出下一款操作系统后,Silverght的优势会逐步展现出来。

4.3 Java阵营Applet、JavaFX和Java Web Start

Applet和JavaWebStart是约十年前的东西了。但与今天的RIA缺惊人的相似。难道这是技术的轮回?

Applet的失败的主要原因jre插件没有在浏览器中普及。并且先当时的硬件和网络环境并不成熟,不能支持Applet的流畅的下载和运行。并且对开发人员不够友好。在界面方面需要编写代码,没有象mxml一样方便的编写方式。更没有FlexBuilder2这样可拖拽的IDE(也许后来出现了)。东西是个好东西,但生不逢时,又能怪谁那。

JavaFX是新出来的东东,没有仔细研究过。但由于Flash在浏览器中的优势,估计JavaFX没戏。

4.4 Ajax

Ajax是Html、Css、JavaScript几项技术的结合体。是个混血儿。有人说Ajax是一种过度技术。我并不同意这种说法。Ajax还是有其优势的。最大的优势是绝对的0成本部署,Flex还需要安装IE插件。

但由于Ajax所使用的技术并不是为RIA所设计的,所以Ajax有许多先天行的缺点。比如,调试麻烦。在界面显示方面html还是更加简捷方便。

在未来的几年中Ajax应该会在各种RIA技术的夹缝中生存并且与之完美的配合。也许,未来的Ajax和其他RIA技术的关系会象现在C和Java关系一样。

5. RIA技术所带来的挑战

RIA所带来的最大挑战是对设计人员的。因为可用的界面组件更丰富了,如何设计出用户看起来非常舒适、使用起来非常方便的界面,是摆在设计人员面前的首要问题。其次,对中国开发者来说中文资料的匮乏也可能会阻碍Flex在中国的发展。

6. 参考资料

http://soft.zdnet.com.cn/software_zone/2007/1026/580854.shtml                                 RIA说文解字

http://www.wujianrong.com/archives/2007/10/ajaxflashsilverlightjavafx.html、

http://www.tenlin.com/tag.php?tag=ria&mode=&mode=1

http://www.wallop.com

http://www.familk.com

http://lwz7512.javaeye.com/blog/51634

http://www.oracle.com/global/cn/oramag/oracle/04-jul/o44dev_trends.html              富互联网应用系统(RIA)一览

http://blog.csdn.net/hljlgj/archive/2006/11/15/1385603.aspx                     提高客户体验的RIA开发技术  

http://www.infoq.com/cn/news/2007/07/dhh-debates-ria-future                                                      争论又起,RIA的未来在哪里?

http://wangcheng.javaeye.com/blog/81160                      Flex 与 javascript 交互

http://www.awflasher.com/blog/tag/ria

http://sd.csdn.net/subject/ria.htm                  谁将引领RIA的发展方向

http://soa.csdn.net/subject/RIA.htm                 谁将引领RIA的发展方向

http://hi.baidu.com/minyuanyang

http://hi.baidu.com/minyuanyang/blog/item/faf6c61b4578e3d4ac6e7512.html                  Flex 如何能够转变 Web 上的用户体验

http://examples.adobe.com/flex2/inproduct/sdk/dashboard/dashboard.html*

http://www.doof.com/

……

posted @ 2008-12-08 14:36 巴西木 阅读(2240) | 评论 (1)编辑 收藏

介绍  Sun刚刚发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语言开发富互联网应用程序(RIA)。JavaFX Script 编程语言(以下称为JavaFX)是Sun微系统公司开发的一种declarative, statically typed(声明性的、静态类型)脚本语言。JavaFX技术有着良好的前景,包括可以直接调用Java API的能力。因为 JavaFX Script是静态类型,它同样具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元,这些特性使得使用Java技术创建和管理大型程序变为可能。
  JavaFX开发应用中的问题答疑
  JavaFX脚本是一种声明式、静态类型编程语言。它具有一等函数(first-class functions)、声明式的语法、列表推导(list-comprehensions)及基于依赖关系的增量式求值(incremental dependency-based evaluation)等特征。JavaFX脚本为多种多样的操作提供了声明式、无中间程序逻辑的语法,这些操作包括创建2D动画、设置属性或者声明在模式和视图对象之间的绑定依赖关系。
  JavaFX教程
  在JavaFX中,类的成员函数和操作本身被模式化作为在目标类中的类,而形参和返回值被表示为属性。代表目标对象的属性名是“this”。代表返回值的属性名为“return”。代表形参的属性具有和形参相同的属性名。而目标对象则指使用成员函数和操作的对象。 从上例中可以发现,你也可以从Class对象中获取相同的、被反射的操作。 被反射的操作能够像函数那样通过将目标对象作为第一个参数、其它参数作为后面的参数的方式被调用:
  AJAX,Flash,Silverlight,JavaFX到底选谁
  事实上,像Adobe's Flex, Microsoft's Silverlight, 以及Sun 最近发布的JavaFX这样的计算技术,使得向量图形实质上优于AJAX提供的Dojo或者Yahoo图形实验室(YUI)这种构架.无论相信与否,在网络应用程序开发中,在基于网络的向量图形的应用方面存在巨大的商机,而这绝不仅仅是看起来比较诱人这么简单。需要注意到,无论是JavaFX, 还是Sliverlight现在都没有分享到被Adobe Flash Player占领的任何市场份额。

JavaFX 1.0 Final 正式发布

  2008年12月05日 Sun微系统公司今天正式发布了基于Java语言的平台JavaFX 1。0,这个平台建立在其广泛应用的Java编程语言的基础上,旨在建立大量可在电脑和手机上运行的网络程序。 Java一直以来就是编程语言,但是随着JavaFX的发布,Sun公司开始允许将编程内容创新这一任务转移到以设计艺术为重点而非编程科学为重点的设计人员身上。
  “我们的目标群体是叫做创造者的人群”,Sun公司Java平台组的高级副主任 OctavianTanase对 InternetNews.com说,“随着1.0版的发布,我们将目标锁定在网页开发人员,这群可能拓展Java界面体验的人。到2011年,主要的目标是大量使用诸如Adobe系统等设计工具的设计人员”。
  当然,通向这个以设计为导向的工具还需要一些时间。Sun公司最后打算提供自己的程序给设计人员来建立RIAS,但是直到如今,这些设计人员还得使用程序员所使用的Netbeans或Eclipse集成开发环境(IDE)。新工具将在来年夏天面市。

posted @ 2008-12-08 12:00 巴西木 阅读(119) | 评论 (0)编辑 收藏

今天第一次关注了EXT,感觉就是:“叹为观止”!

体验一下吧:http://www.ajaxjs.com/examples/

官网:http://extjs.com/
中文站:http://www.ajaxjs.com

看了上面的,一发不可收拾了,又看到了这个基于EXT和google地图代码库的项目:
http://www.gwt-ext.com/demo/

然后又了解了一下后起之秀FLEX
http://www.airia.cn/
这里有些例子:http://blog.minidx.com/


技术啊,发展太快了!


看了看FLEX,越来越觉得FLEX象以前的APPLET,看到下面这个说法,觉得有些道理:

现在, 开源社区和厂商提供了无数的RIA产品. 让我们眼花缭乱.

同时, 衡量RIA产品的优劣也有无数的标准...

到底, 我们应该如何去决定应该选择哪一款RIA产品呢? 到底是使用Ajax,还是Flex,或者是Applet?

Javalobby之前有一篇文章 <<Rich Internet Applications and AJAX - Selecting the best product >> 向我们解析了这个问题..

作者Marc Domenig 提供了一个决策树,让你更好作出相关决策:

image

当用户界面要求简单的时候, 那么你不要使用RIA. HTML足够了.
当主要考虑用户的分布广度的时候,那么使用Ajax,因为多数浏览器都支持.
当主要考虑企业,工业应用的时候, 那么使用Applet, 因为更标准, 更多UI库支持.
而主要考虑生动的动画, 漂亮的界面的时候, 那么Flex则是首选..

posted @ 2008-12-08 11:47 巴西木 阅读(105) | 评论 (0)编辑 收藏

Practical UML™: A Hands-On Introduction for Developers

By: Randy Miller

Abstract: This tutorial provides a quick introduction to the Unified Modeling Language™

The heart of object-oriented problem solving is the construction of a model. The model abstracts the essential details of the underlying problem from its usually complicated real world. Several modeling tools are wrapped under the heading of the UML™, which stands for Unified Modeling Language™. The purpose of this course is to present important highlights of the UML.

At the center of the UML are its nine kinds of modeling diagrams, which we describe here.

  • Use case diagrams
  • Class diagrams
  • Object diagrams
  • Sequence diagrams
  • Collaboration diagrams
  • Statechart diagrams
  • Activity diagrams
  • Component diagrams
  • Deployment diagrams

Some of the sections of this course contain links to pages with more detailed information. And every section has short questions. Use them to test your understanding of the section topic...........

................................................................

Divider line


中文版:

   面向对象的问题的处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出。许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处。

UML中有九种建模的图标,即:

l         用例图

l         类图

l         对象图

l         顺序图

l         协作图

l         状态图

l         活动图

l         组件图

l         配置图

本课程中的某些部分包含了这些图的细节信息的页面链接。而且每个部分都有一个小问题,测试一下你对这个部分的理解。

―――――――――――――――――――――――――――――――――――――――

为什么UML很重要?

为了回答这个问题,我们看看建筑行业。设计师设计出房子。施工人员使用这个设计来建造房子。建筑越复杂,设计师和施工人员之间的交流就越重要。蓝图就成为了这个行业中的设计师和施工人员的必修课。

写软件就好像建造建筑物一样。系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。现在它已经成为了软件行业的一部分了。UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。

UML被应用到面向对象的问题的解决上。想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。一个模型model就是根本问题的抽象。domain就是问题所处的真实世界。

模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。记住把一个对象想象成“活着的”。对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。对象的属性的值决定了它的状态state

Classes是对象的“蓝图”。一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。对象是类的实例instances

――――――――――――――――――――――――――――――――――――――

用例图

用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象。强调这个系统是什么而不是这个系统怎么工作。

用例图与情节紧紧相关的。情节scenario是指当某个人与系统进行互动时发生的情况。下面是一个医院门诊部的情节。

“一个病人打电话给门诊部预约一年一次的身体检查。接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录。”

用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和。角色actor是发动与这个工作有关的事件的人或者事情。角色简单的扮演着人或者对象的作用。下面的图是一个门诊部Make Appointment用例。角色是病人。角色与用例的联系是通讯联系communication association(或简称通讯communication


角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线。

一个用例图是角色,用例,和它们之间的联系的集合。我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分。注意一个单独的用例可以有多个角色。


    用例图在三个领域很有作用。

l         决定特征(需求)。当系统已经分析好并且设计成型时,新的用例产生新的需求

l         客户通讯。使用用例图很容易表示开发者与客户之间的联系。

l         产生测试用例。一个用例的情节可能产生这些情节的一批测试用例。

类图

类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统。类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响。

下面是一个顾客从零售商处预定商品的模型的类图。中心的类是Order。连接它的是购买货物的CustomerPaymentPayment有三种形式:CashCheck,或者Credit。订单包括OrderDetailsline item),每个这种类都连着Item

UML类的符号是一个被划分成三块的方框:类名,属性,和操作。抽象类的名字,像Payment是斜体的。类之间的关系是连接线。

类图有三种关系。

l         关联association-表示两种类的实例间的关系。如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联。在图中,关联用两个类之间的连线表示。

l         聚合aggregation-当一个类属于一个容器是的一种特殊关系。聚合用一个带菱形的连线,菱形指向具有整体性质的类。在我们的图里,OrderOrderDetails的容器。

l         泛化generalization-一个指向以其他类作为超类的继承连线。泛化关系用一个三角形指向超类。PaymentCashCheckCredit的超类。

一个关联有两个尾端。每个尾端可以有一个角色名role name来说明关联的作用。比如,一个OrderDetail实例是一个Order实例的项目。

关联上的方向性navigability箭头表示该关联传递或查询的方向。OrderDetail类可以查询他的Item,但不可以反过来查询。箭头方向同样可以告诉你哪个类拥有这个关联的实现;也就是,OrderDetail拥有Item。没有方向性的箭头的关联是双向。

关联尾端的数字表示该关联另一边的一个实例可以对应的数字端的实例的格数,通过这种方式表达关联的多样性multiplicity。多样性的数字可以是一个单独的数字或者是一个数字的范围。在例子中,每个Order只有一个Customer,但一个Customer可以有任意多个Order

下面这个表给出了最普遍的多样性示例。

多样性

意义

0..1

01个实例. n..m符号表示有nm个实例

0..* or *

没有实例格数的限制(包括没有).

1

只有一个实例

1..*

最少一个实例

每个类图包括类,关联和多样性表示。方向性和角色是为了使图示得更清楚时可选的项目。

包和对象图

为了简单地表示出复杂的类图,可以把类组合成packages。一个包是UML上有逻辑关系的元件的集合。下面这个图是是一个把类组合成包的一个商业模型。


包是用一个在上方带有小标签的矩形表示的。包名写在标签上或者在矩形里面。点化线箭头表示依赖
dependencies关系。如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B

对象图Object diagrams用来表示类的实例。他们在解释复杂关系的细小问题时(特别是递归关系时)很有用。

这个类图示一个大学的Department可以包括其他很多的Departments


   这个对象图示上面类图的实例。用了很多具体的例子。

 


   每个类图的矩形对应了一个单独的实例。在
UML中实例名带有下划线。只要意思清楚,类或实例名可以在对象图中被省略。

协作图

协作图也是互动的图表。他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色。在序列图中,对象的角色放在上面而消息则是连接线。


   对象角色矩形上标有类或对象名(或者都有)。类名前面有个冒号(:)。

协作图的每个消息都有一个序列号。顶层消息的数字是1。同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀12等等。

状态图

对象拥有行为和状态。对象的状态是由对象当前的行动和条件决定的。状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移。

我们的模型例图建立了一个银行的在线登录系统。登录过程包括输入合法的密码和个人账号,再提交给系统验证信息。

登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及 Rejecting。每个状态都有一套完整的转移transitions来决定状态的顺序。

状态是用圆角矩形来表示的。转移则是使用带箭头的连线表示。触发转移的事件或者条件写在箭头的旁边。我们的图上有两个自转移。一个是在Getting SSN,另一个则在上Getting PIN

初始状态(黑色圆圈)是开始动作的虚拟开始。结束状态也是动作的虚拟结束。

事件或条件触发动作时用(/动作)表示。当进入Validating状态时,对象并不等外部事件触发转移。取而代之,它产生一个动作。动作的结果决定了下一步的状态。

活动图

活动图activity diagram是一个很特别的流程图。活动图和状态图之间是有关系的。状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程。活动图告诉了我们活动之间的依赖关系。

对我们的例子来说,我们使用如下的过程。

“通过ATM来取钱。”

这个活动有三个类Customer, ATM Bank。整个过程从黑色圆圈开始到黑白的同心圆结束。活动用圆角矩形表示。


活动图可以被分解成许多对象泳道
swimlanes ,可以决定哪些对象负责那些活动。每个活动都有一个单独的转移transition连接这其他的活动。

转移可能分支branch成两个以上的互斥的转移。保护表达式(在[]中)表示转移是从一个分支中引出的。分支以及分支结束时的合并merge在图中用菱形表示。

转移也可以分解fork成两个以上的并行活动。分解以及分解结束时的线程结合join在图中用粗黑线表示

组件与配置图

组件component是代码模块。组件图是是类图的物理实现。

配置图Deployment diagrams则是显示软件及硬件的配置。

下面的配置图说明了与房地产事务有关的软件及硬件组件的关系。



   物理上的硬件使用节点
nodes表示。每个组件属于一个节点。组件用左上角带有两个小矩形的矩形表示。

 

转自:http://hi.baidu.com/iameyama/blog/item/717b16c3cb251850b319a80c.html

posted @ 2008-12-02 16:59 巴西木 阅读(149) | 评论 (0)编辑 收藏

仅列出标题
共33页: First 6 7 8 9 10 11 12 13 14 Last