Ajax.NET Professional with new Converters

Michael Schwarz on Friday, June 2, 2006

I put the new version online, download the latest DLL at http://www.ajaxpro.info/ [1]. There are a lot of performance changes done, and the lib is now working perfect with the script.aculo.us effects. A not yet finished updated version of the Starter Kit is online, see http://munich.schwarz-interactive.de/ [2]. See the changes here:


- Fixed AjaxServerCache attribute use, didn't cached it for each method. - Fixed HTTP 100 Continue problem when running with Win2003 Server (RFC 2616).


- Added BitmapConverter. - IJavaScript objects new ctor added. Example: AjaxPro.JavaScriptObject o = new AjaxPro.JavaScriptObject(); o.Add("firstName", new AjaxPro.JavaScriptString("Michael")); o.Add("age", new AjaxPro.JavaScriptNumber(29)); o.Add("isMarried", new AjaxPro.JavaScriptBoolean(true)); o.Add("x", new AjaxPro.JavaScriptNumber(2.3456)); o.Add("y", new AjaxPro.JavaScriptArray(new AjaxPro.IJavaScriptObject[] { new AjaxPro.JavaScriptBoolean(true), new AjaxPro.JavaScriptNumber(2.33) })); return o; - Fixed missing IJavaScriptObject serializer, added generic support for internal stuff. - AjaxPro.timeoutPeriod is now set to 10 seconds by default. - Removed MS.Position, MS.Keys, MS.setText, MS.setHtml, MS.cancelEvent, MS.getEvent, MS.getTarget,... to ms.ashx, enable with ajaxNet/ajaxSettings/oldStyle/includeMsPrototype. - Completly removed $(...), Class.create: - Completly removed Function.isFunction (return typeof f == "function"). - Completly removed MS.Debug (will be added in a special debug version). - Completly removed AjaxPro.getInstance and AjaxPro.getType. - Completly removed StringBuilder (use arrays instead or ms.ashx) - Completly rewritten de-/serializable methods, now everything is a converter. New added converters: DecimalConverter EnumConverter ExceptionConverter GuidConverter PrimitiveConverter StringConverter The remove tag in ajaxNet/ajaxSettings/jsonConverters is working, now. Also there a big changes in the common de-/serializable methods to improve performance. - Removed old Hashtables and replaced by Dictionary<,> if .NET 2.0. - New AjaxNoTypeUsageAttribute wich you can add to custom classes. This will prevent the engine to add the __type JavaScript property, so it is a one-way communication for this type only. - Changed IJavaScriptConverter interface, added protected variable m_AllowInheritance to allow searching for the same type in inherited classes. This is false by default, used in IListConverter with true. Added two new methods TrySerializeValue and TryDeserializeValue to do some more test insetad of only comparing the Type. New property ConverterName which will be written to converter.ashx JavaScript file. - Added ajaxNet/ajaxSettings/oldStyle/allowNumberBooleanAsString tag to allow posting JavaScript number and boolean as string. If not configured JavaScript numbers are converter to System.Int64 and boolean to System.Boolean. - prototype.ashx and core.ashx can be combined to "prototype-core.ashx", which will save one http request. - Added ajaxNet/ajaxSettings/oldStyle/sessionStateDefaultNone tag to set default HttpSessionStateRequirement to None instead of new default ReadWrite. This is necessary to don't forget to set it and to keep-alive the session state on the web server. - Added support for Enum that are not using Integer. - Added new prototype function like MS.Position.setPosition, MS.Keys.getCode, MS.cancelEvent, MS.getEvent, MS.getTarget, MS.setText, MS.setHtml. Will be replaced by prototype.js!! - Fixed bug when using AjaxNamespace: now it will search first all AjaxNamespaces defined for methods, if nothing found use the MethodInfo.Name. - Some code changes to improve performance.