另一种Atlas Scripts Intellisense的方法以及对比与分析

简介:
 多谢网友 Beginor 提供的信息: [url]http://www.flanders.co.nz/Blog/2006/05/21/IntellisenseForAtlasXmlScript.aspx[/url]

   上面的这个链接也提供了一种可以在VS里为Atlas Xml Script增加Intellisense的方法,它不仅是另一个work around,还有另外值得一提的地方,所以我也推荐文章的作者是转载了一个法国人提供的作法。法文我是看不懂了,不过根据代码和图片使用方法也了解了十 之八九。具体步骤如下:

1、 点击这里 直接从国外下载或者 点击这里 从我的Blog下载所需的Schema。

2、将压缩包内的atlas.xsd复制到“%VS8_DIR%\Xml\Schemas”目录中。(比如在我的机器上就是:“D:\Program Files\Microsoft Visual Studio 8\Xml\Schemas”目录)。

3、将Atlas Xml Script内容写在另外的xml文件中,为了方便区分,可以使用atlas作为文件扩展名,例如“DynamicLoad.atlas”。

4、在atlas文件中添加 < page   xmlns =[url]http://schemas.microsoft.com/xml-script/2005[/url]  />作为根节点,注意namespace一定要写正确,VS是根据这个来加载Schema的。于是,就可以使用Intellisense了。如图:


5、在使用该Atlas Xml Script的页面中加上如下一行:
< link  type ="text/xml-script"  href ="DynamicLoad.atlas"   />

6、在页面里添加如下的Javascript方法:
Sys.Application.load.add(
    
function (){
        
var  linkElements  =  document.getElementsByTagName('link');
     
        
for  ( var  i  =   0 ; i  <  linkElements.length; i ++ ){
            linkElement 
=  linkElements[i]; 
            
if  (linkElement.type =  'text / xml - script'  &&  linkElement.href){
                
var  request  =   new  Sys.Net.WebRequest();
                request.set_url(linkElement.href);
                request.completed.add(
                    
function (e){
                        Sys.MarkupParser.processDocumentScripts(
                            Sys.Application.getMarkupContext(),
                            e.get_xml().childNodes,
                            
null
                        );
                    }
                );
                request.invoke(); 
            }
        }
    }
);

  可以看出,这种做法是在页面加载结束后使用Sys.Net.WebRequest类请求页面中通过<link />标识的xml文件,然后调用Sys.MarkupParse.processDocumentScripts方法解析每一个xml文件的内容, 以得到和写在页面中的Atlas Scripts相同的效果。

  我将上述方法和我的方法进行对比:

  从 安装 方面考虑:显然上述的方法比我的方法简单不少,不用修改注册表,不用对VS进行设置等等。还好,这个是一劳永逸的做法。

  从 易用性 方面考虑:两种方法可以说各有千秋。使用我的办法编辑时需要将tag在<script />与<atlasscript />之间修改,使用上述办法需要为使用Atlas Scripts的每个控件和每个页面都提供一个分离的Xml文件。

  从 性能 方面考虑:我认为两者相差不多。使用上述的方法似乎会有一次多余的请求,但是如果做好Cache工作,这点性能上的损失可以忽略不计。

  从 兼容性 方 面考虑:我认为上述的方法不可取。我们不应该为了一个Intellisense功能而将Atlas Scripts的使用方式进行改变。如果使用了上述方法,那么从别的开发人员那里得到的页面很可能就会无法使用。另外,写在页面中的Atlas Scripts可以通过Server控件进行输出,这是上述方法无法做到的。因此,如果希望对于已有的Server端控件使用Atlas Script操作,就只能使用写在页面中的方法了——因为我们能够通过<%= this.xxx.ClientID %>输出服务器端控件在页面中的ID。

  从 Intellisense 方面考虑:我目前的 Schema还缺少部分Tag,而它的Schema比较完整,对我来说是一份很好的参考。只是我比较奇怪的是,它的Schema有不少问题,例如所有对象 的“方法”也在提示中出现,这些多余的项会干扰选择。另外,它对于使用Xml Element表示的事件(比如hyperLink的click),缺少setProperty等Action的提示。还有就是……个人比较喜欢html 中的Event( )图标。:)


  其实,如果上面的方法仅仅是另一种Intellisense的做法,那么我觉得可能就没有提及的必要。但是上面的做法有其自己的意义:它提供了一种使用Atlas Scripts的新方法,这会不会对我们有所启发呢?


本文转自 jeffz 51CTO博客,原文链接:http://blog.51cto.com/jeffz/60949,如需转载请自行联系原作者

相关文章
|
2天前
|
数据采集 人工智能 安全
|
12天前
|
云安全 监控 安全
|
3天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1033 151
|
3天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1726 9
|
9天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
675 152
|
11天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
634 12
|
5天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
396 4