代码分离是一个很好的编程习惯,可以让显示和逻辑分开,使得程序的结构更为明了。其中微软的Code Behind技术也是其中的一个代表,广泛地用于.Net Framework的程序设计中,包括asp.net,winform,silverlight等等。
而基于Visual Stuido的Flex开发插件Amethyst也实现了类似于.Net Framework的Code Behind技术:http://www.sapphiresteel.com/ActionScript-Code-Behind-in
前几个月,我翻译了一下Amethyst发布首个测试版的消息,Adobe Flex Development in Visual Studio。现在Amethyst已经更新到了Beta4版本。
相信其中的Code Behind特性会让很多.Net开发者喜欢上Flex开发。
< .Net,ActionScript >
也许您会说这样写就可以啦.
webBrowser.DocumentText = xmlDoc.OuterXml;
其实这样是错的,这样不会显示XML的结构。
本来以为可以设置webBrowser.DocumentType=”text/xml”;
无奈,WebBrowser.DocumentType是只读类型的。
查了一下资料,原来是要用System.Xml.XslCompiledTransform去格式化一下
Ok, lets’ do it.
Example Code:
string xml=xmlDoc.OuterXml;//xmlDoc是XmlDocument类型
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("xml-pretty-print.xsl");
TextReader tr = new StringReader(xml);
XPathDocument xpath = new XPathDocument(tr);
TextWriter tw = new StringWriter();
XmlWriter xwriter = XmlWriter.Create(tw);
xslt.Transform(xpath, xwriter);
xmlBrowser.DocumentText = tw.ToString();//xmlBrowser是一个WebBrowser控件
参考了一下文章:
http://www.cnblogs.com/skyfei/archive/2008/04/18/1160302.html
http://www.cnblogs.com/cstded/archive/2008/01/16/1041368.html (非常详细,推荐)
http://www.biglist.com/lists/xsl-list/archives/200003/msg00769.html
其中第二篇博文提到的defualtss.xsl俺木有获取到。就用了第三篇文章的xml-pretty-print.xsl内容是一样的:)
下载:xml-pretty-print

< .Net,C#,XML >
Developer Express .NET一直是俺非常喜欢的.Net开发第三方控件,皮肤也非常漂亮,最新的Developer Express .NET 2008.3.2又加入几个新皮肤,但是俺觉得不咋好看啊。。。呵呵。。。还是以前的那几个皮肤PP点。
今天用.Net做了个简单的配置文件生成工具。在不是很麻烦的情况下,用Developer Express .NET美化一下吧。这玩意儿类真多,而且关系还有点小复杂。。。最新的安装文件就已经有200M+
窗体类都继承了DevExpress.XtraEditors.XtraForm
不过生成的结果都成这样了(Vista下效果还行,如果用经典主题的话,估计够呛)
窗体和标题的边框木有美化,嗯,是的,只差一步了。
在Program.cs里的Main()方法里写上这么一句吧
DevExpress.Skins.SkinManager.EnableFormSkins();
OK,问题解决了。

< .Net >
刚刚下了个WebORB For .Net装上,启动IIS,发现打不开,500错误。呵呵。
去WebORB看了一下,原来在IIS 7下还有要注意的。
http://www.themidnightcoders.com/products/weborb-for-net/developer-den/technical-articles/installing-weborb-on-vista-iis-7-install.html
Change the current directory to “%systemroot%\system32\inetsrv
Run the following command:
appcmd migrate config “Default Web Site/weborb30″
OK,I got it~
< .Net >
今天在Forbes.com上看到《Ensemble Introduces Tofino, A Visual Studio Plug-In for Flex Applications》
翻译一下吧。
Flex是一个用于开发和维护Web程序(支持大部分的浏览器,桌面和操作系统)的免费开源框架。目前,大部分的Flex开发者都使用基于Eclipse(TM)的Adobe(R) Flex(R) Builder(TM),用来开发、调试、部署RIA程序。为了让开发者使用Visual Studio,Ensemble Tofino提供了一个.Net的解决方案,让在.Net开发环境中开发Flex成为了可能。
“我们相信Ensemble Tofino将会帮助.Net开发者,因为使用相同的开发界面而不需要手动地调用Flex编译器,从而非常容易地将Flex的优点和.Net服务器语言联合起来。”,Ensemble 的主要技术部门负责人Ray Blaak说。
Tofino提供了一个强劲的智能化编码和调试功能,同时可以通过Visual Studio相当创建项目。同时可以在Visual Studio中运行Flex程序,支持调试断点和堆栈信息显示,并且将会在Visual Studio的错误信息列表中显示错误信息。Tofino将会通过开源的Flex框架的形式向用户发放。
“我们知道许多的Visual Studio开发者希望使用Flex去开发同类最佳的程序,同时也希望使用他们已经非常熟悉的工具”,Adobe 的产品经理Greg DeMichillie说,”我们非常荣幸地介绍Ensemble Tofino,因为它使得Visual Studio开发者充分地使用Flex去开发企业级应用程序”.
目前Ensemble Tofino还是第一个Beta版本,同时后续的开发版本将持续得提高开发体验。更多的信息和下载在:http://www.ensemble.com
关于Ensemble
Ensemble (www.ensemble.com)是一个Adobe的开发伙伴,专注于需求分析,体系结构,执行,部署所有的Adobe技术。特别是在Adobe(R) LiveCycle(R), Adobe(R) Flex(R), Adobe(R) AIR(TM)和Adobe(R) Acrobat(R)的集成方案.在政府,金融服务,媒体,公共出版和制造业部署Adobe技术拥有非常丰富的经验。基于Vancouver,British Columbia,我们满足世界上任何地方人们的需要。
Tofino(82.59MB)下载:
http://www.ensemble.com/downloadables/products/Tofino/EnsembleTofino.msi
Attention:只支持Visual Studio 2008 /Windows Vista/XP
< .Net,Flex,Visual Studio >
public String GetCpuInfo()
{
//得到cpu信息
string CPUInfo = "";
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
CPUInfo = mo.Properties["ProcessorId"].Value.ToString();
}
return CPUInfo;
}
public string GetHDInfo()
{
//获取硬盘信息
string HDInfo = "";
ManagementClass mc = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
HDInfo = (string)mo.Properties["Model"].Value;
}
return HDInfo;
}
public static void GetMacAddress()
{
//获取网卡硬件地址
string MacAddress = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
MacAddress = mo["MacAddress"].ToString();
mo.Dispose();
}
return MacAddress;
}
< .Net,C# >
Comments