摘要:作者:jamie cool
microsoft corporation
3/4/02
翻译:李嘉 北京.东方瑞道 2004-6-1
译者小记:智能升级、自动更新,这是我们以前开发windows应用程序时经常碰到而且必须注意的问题。在.net应用程序更新组件没有出现之前这个问题曾经令人非常头疼(除非你就不打算进行升级:))。谁又不希望自己开发的应用程序象windows xp自身或microsoft money那样具备自动更新的功能呢?使用.ne......
摘要:软件的涅磐
作者:黄柳青
1999年,计算机科学家布鲁克斯(frederick phillips brooks,jr.)以近70岁的“高龄”获得了图灵奖——这位数十年来蜚声世界的软硬件专家、教育家曾在其《没有银弹》(1986)一文中提出了一个迄今为止尚未被打破的著名论断:“没有一种单纯的技术或管理上的进步,能够独立地承诺在10年内大幅度地提高软件的生产率、可靠性和简洁性”。布鲁克斯用形象的譬喻来论述软件工程中存在的“陷阱”——“在所有恐怖民间传说的妖怪......
创建可编辑的xml文档(之三)执行拖放操作执行托放操作
mousedown-----用户选择得内容 【相关文章:
亲手制作操作系统(1)】
定义了treeview 显示得内容以后,现在你应该准备处理如何四处移动元素了,大多数得开发人员在处理拖放操作时得通用观念都是很相似得,无论使用visual c++ visual basic 或者任何一种.net 语言,所以我一直用下面的四个方法处理这个操作: 【扩展阅读:
整数幂的求解】
dragover ---用户拖动选中得项目经过另一个项目 【扩展信息:
亲手制作操作系统(2)】
dragenter---用户开始拖动选中得项目
dragdrop---用户在某个地方放下选择得项目
执行这些方法适当得给用户针对可以与不可以处理的得操作分别给予视觉反馈,同时告诉用户他们是怎样被执行的,并且不用管给定的上下文的细节操作,所以就有三个直接的问题需要被考虑:
1. 你如何使treeview 控件中的一个节点与底层xml文档中的节点进行匹配
2. 为了物理节点能够跟随图形进行转换,用户如何操作xml文档
3. 你如何有效地执行大的xml文档。如果这样的转变要不得不加强时,你不想把没有必要的东西绑定到用户界面
清单1
a treenode´s position maps to an xml node using an xpath query. private sub xmltreeview_mousedown(byval sender as object, byval e as _ system.windows.forms.mouseeventargs) handles mybase.mousedown ´ first check whether we´ve clicked on a node in the tree view; if not, ´ just return dim pt as new point(e.x, e.y) drag_node = me.getnodeat(pt) if drag_node is nothing then return ´ highlight the node and build an xpath query so that we can remove it later xpath_remove_query = buildxpathquery(drag_node) me.selectednode = drag_node ´ decide whether we´re going to perform an intra-folder rearrangement (right ´ mouse button) or a genuine drag-and-drop (left mouse button); ´ we do this in the mousedown rather than dragenter method, since by the time ´ dragenter fires, the mouse may well have been dragged to a different node if e.button = system.windows.forms.mousebuttons.right then right_mouse_drag = true else right_mouse_drag = false end if end sub private function buildxpathquery(byval node as system.windows.forms.treenode) as string dim query as string = "" do query = "*[" & xpath_filter & "][" & (node.index + 1) & "]/" & query node = node.parent loop while not (node is nothing) return query.substring(0, query.length - 1) end function
显示了mousedown 句柄 与它调用的帮助方法buildxpathquery,首先代码检查一个被选中的节点,接着通过使用事先定义好的筛选, 存储treenode (drag_node) 与使它关联到xml文档根节点的xpath 查询(xpath_remove_query)。 例如下面的查询确定了树的根节点的第二个孩子有五个孩子文件夹,一个文件夹可以用查询"attribute::id." 唯一确定
*[attribute::id][2]/*[attribute::id][5] 当用户拖动一个节点到另外一个位置时,代码列表1提供了移动treenode 与treenode相关联的xmlnode的足够信息。...
下一页 摘要:transaction isolation(事务隔离)
n isolation是acid原则中的i,意思就是将访问同一数据库的不同用户隔离开。你可以通过指定隔离级别来在性能和安全性之间获得平衡。共有四种隔离级别:
l the read uncommitted:不做任何的隔离并且有最高的性能;
l the read committed:能够解决读脏数据(dirty read)的问题;这种隔离级别是很多数据库缺省的隔离级,如:oralce和sql ser......