摘要: Microsoft向公众发布了Visual Studio 2010 with .NET 4.0, Release Candidate版本。详细信息请参见:http://msdn.microsoft.com/en-gb/vstudio/dd582936.aspx。 阅读全文
posted @ 2010-02-11 09:50 dax.net 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 所谓动态调用,最主要的是允许用户能够在系统中设置Web Service的服务地址,比如用户可以在AX中动态设置销售网站的Web Service地址,以便与第三方系统通信。本文介绍的方法其本质是使用COM创建SOAP request,然后以HTTP POST的方式,往指定的服务地址发送请求,进而实现Web Service的动态调用。请参考下面的例子:以上例子展示了通过Web Service向AspD... 阅读全文
posted @ 2010-02-05 10:35 dax.net 阅读(855) 评论(0) 推荐(0) 编辑
摘要: 最近在研究Dynamics AX与AspDotNetStorefront的集成问题。AspDotNetStorefront提供一种领域事件模型,允许开发人员对事件进行定制或捕获,进而执行一些客户化操作。它所支持的EventHandler是一系列的ASP.NET页面,也就是CalloutURL中需要指定一个ASP.NET页面作为Event Handler。在第一次开发的时候,我一直得到“... 阅读全文
posted @ 2010-02-04 09:18 dax.net 阅读(467) 评论(0) 推荐(0) 编辑
摘要: X++代码中有个分号特别有意思,看起来像是把变量的声明段和代码部分分开了,便于编译器解析。我们会发现,有时候不加这个分号,代码编译也不会有错,而有时候又不得不加。有人说,如果代码部分开始的第一个词语是一个关键字,则可以不加。这种说法没错,但没解释原因。总之,目的只有一个,就是为了编译器能够顺利解析哪些部分是声明,哪些部分是代码。请看下面的代码:上面的代码是没法编译通过的,原因就是声明和代码体部分少... 阅读全文
posted @ 2010-02-02 08:21 dax.net 阅读(894) 评论(0) 推荐(1) 编辑
摘要: 在.NET中如需在非UI线程中改变UI控件属性时,CLR会抛出异常,提示无法在非UI线程中更新界面上的控件(Cross-thread operation not valid)。一般情况下有两种解决办法。第一种就是设置Control的静态属性CheckForIllegalCrossThreadCalls为False,如下:另一种办法,就是使用委托,根据控件的InvokeRequired属性判断当前控... 阅读全文
posted @ 2010-01-30 19:20 dax.net 阅读(1538) 评论(1) 推荐(2) 编辑
摘要: 开发中有时候需要根据给定的数据表记录以及该表的字段名,获取字段的值。其实方法很简单,只需要在common数据记录上直接使用圆括号进行引用即可。请参见下面的代码:使用这种方式可以很轻松地跟踪数据表记录的变更历史。 阅读全文
posted @ 2010-01-29 15:59 dax.net 阅读(1067) 评论(0) 推荐(1) 编辑
摘要: 在对AOT\Tables下的数据表做BP检查的时候,如果出现“Code to handle the InventDimId field must be added to the Multisite Activation Wizard.” 这样的BP错误,则到InventSiteActivateDimFieldsCheck类中,找到updateableFields或者nonU... 阅读全文
posted @ 2010-01-26 14:53 dax.net 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 发生了什么?这是件非常有趣的事情。我们现在可以在X++中编译并执行C#脚本。请看下面的X++代码:执行完上面这段job程序,Dynamics AX就会编译#SourceScript宏中定义好的C#脚本,然后执行脚本程序,并弹出了一个infolog,上面显示了计算结果:30。如下:这是如何实现的?如果你直接将上面的job导入到AOT里去执行,那么在编译阶段就会出错,原因是你的Dynamics AX根... 阅读全文
posted @ 2010-01-20 08:37 dax.net 阅读(981) 评论(3) 推荐(1) 编辑
摘要: 在Dynamics AX 6中,有引入一种称为Attribute的新特性。请看:【注:以上代码来自http://blogs.msdn.com/mfp/archive/2009/04/02/ax6-sneak-preview-x-unit-test-improvements.aspx】其实到目前为止,我手头没有拿到Dynamics AX 6的版本,这种新特性也是从上面的博客中看到。但我想,对于只专注... 阅读全文
posted @ 2010-01-17 19:23 dax.net 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 这里有篇文章介绍了Dynamics AX 6在MorphX上的又一个新特性:axmodel。axmodel其实是一个layer下的另一种应用程序组织形式,在6.0以前,客户自定义的开发都是在一个特定的layer下进行的,这样会产生一些问题,比如我从两个ISV购买了两套产品,如果是直接使用AOD文件,我没办法将两个产品同时应用在bus层,而只能逐个导入XPO。那么今后如果某个ISV的产品有了升级,我... 阅读全文
posted @ 2010-01-15 14:35 dax.net 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 今天在Dynamics AX相关的MSDN博客上看到了Dynamics AX 6.0的新的X++编辑器。这下做X++开发的朋友有希望了。Dynamics AX team采用了Visual Studio的编辑器实现框架,提供了字体设置、修改跟踪、行号、增强的语法着色等令人心动的功能,请看:增强的编辑器: 阅读全文
posted @ 2010-01-15 13:47 dax.net 阅读(724) 评论(1) 推荐(0) 编辑
摘要: 在CSDN上,很多朋友会问,C#中如何读取XML文件?如何读取最快?我的回答是,使用XmlTextReader读取的速度是最快的。但也不乏一些效率稍低但也非常有效的读取方式,比如序列化方式。这里详细介绍一下步骤吧。使用Visual Studio的CreateSchema工具,或者XMLSpy等第三方的工具,打开需要读取的XML文件,并创建XSD(推荐使用Visual Studio自带的工具) 比如... 阅读全文
posted @ 2010-01-13 08:09 dax.net 阅读(969) 评论(1) 推荐(1) 编辑
摘要: dynamic类型是.NET 4.0引入的一个新的概念,它的目的是增强与python等动态语言的互操作性。由于动态的原因,使得dynamic类型的变量只有在运行时才能被确定具体类型,而编译器也会绕过对这种类型的语法检查。其实这样做是危险的。下面的代码演示了在C#中如何使用dynamic类型:这段代码是可以编译通过的,尽管Person类中并没有定义Age这个公有属性,因为c的类型是在运行时动态绑定的... 阅读全文
posted @ 2010-01-08 21:31 dax.net 阅读(7150) 评论(0) 推荐(1) 编辑
摘要: 在不少情况下,客户要求在Dynamics AX中实现全文搜索的功能,比如在零售行业,客户信息量庞大,为了提高搜索效率,不得不采用全文搜索。要实现全文搜索,就需要在数据表上创建全文索引,之后才能用CONTAINS和CONTAINSTABLE这样的SQL语句进行查询。然而,一旦数据表创建了全文索引以后,在Dynamics AX中就无法进行数据表同步,同步时出现如下错误信息:简单地说,数据表创建全文索引... 阅读全文
posted @ 2010-01-06 08:16 dax.net 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 很多情况下,我们会需要通过TableId和RecId来直接获得数据表记录。比如在Dynamics AX中实现全文检索的时候,一种合理的设计就是让全文检索返回RecId,然后再根据不同的TableId构建数据表实例,最终根据返回的RecId获得数据表记录,从而将结果显示给用户。相关代码如下: 阅读全文
posted @ 2010-01-04 12:33 dax.net 阅读(685) 评论(0) 推荐(0) 编辑
摘要: 昨天收到了从首都师范大学给我寄来的CCSE2009论文集《计算机工程与应用》特刊,我的一篇文章《基于XML的松耦合UI架构的设计与实现》被刊登在这本论文集中。这篇文章通过引入RIA的思想,简要介绍了一种松耦合的用户界面实现方式,即使用XML作为用户界面的描述语言,使用基于WCF的通信方式,实现用户界面的服务端激活和服务端事件处理,从而使分布式应用程序具有良好的界面扩展能力和多用户界面支持。从整体架... 阅读全文
posted @ 2009-12-22 09:02 dax.net 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 诺基亚手机采用的几乎都是Symbian OS操作系统。而.NET Framework则是Windows平台的专利,因此.NET程序只能运行在使用Windows Mobile系统的手机上。那么Symbian OS是否就没法运行.NET程序了呢?答案是否定的。RedFiveLabs一直致力于在Symbian OS上实现.NET Runtime,在装有RedFiveLabs .NET Framework... 阅读全文
posted @ 2009-11-29 16:15 dax.net 阅读(737) 评论(0) 推荐(1) 编辑
摘要: 这是我一年半以前用Visual Studio 2005开发的一款文件批处理系统。当时希望能够对一系列的图片文件进行批量处理,于是处于锻炼自己软件设计能力的目的,花了一个月的时间着手开发了这个软件。当然,作为单机版的文件批处理软件,在实用性方面并不具备太多亮点,但它更多的却是在软件扩展性和定制化方面的功能。仍然还是那句话,它是我“练手”的一个作品。今天在整理机器的时候发现了这... 阅读全文
posted @ 2009-11-22 14:42 dax.net 阅读(843) 评论(0) 推荐(1) 编辑
摘要: Visual Studio 2008自带的Crystal Reports Basic版本,事实上它的ActiveX组件版本是10.5的,关键的组件有两个:craxddrt.dll和crviewer.dll。本文简要介绍如何在C#项目中使用Crystal Reports Basic的ActiveX组件,以及如何发布带有该组件的项目。基本思路是使用craxddrt.dll中的ApplicationCl... 阅读全文
posted @ 2009-11-17 16:22 dax.net 阅读(2025) 评论(0) 推荐(0) 编辑
摘要: 在WCF开发中可能会遇到这样的问题,即在连接服务器的时候,程序抛出SOAP SecurityNegotiationException的异常。内容大致如下:我估计这个问题跟计算机处于某个域/Active Directory环境有关,当计算机连接到域时,并不会出现这样的问题,但如果计算机脱离了域,虽然能够使用域账号成功登录到计算机,但在启动WCF客户端时则会出现本文所说的异常。开发人员可以尝试将客户端... 阅读全文
posted @ 2009-11-13 20:46 dax.net 阅读(722) 评论(0) 推荐(0) 编辑