Thursday, March 20, 2008
Posted on Thursday, March 20, 2008 8:45:22 AM (Mountain Daylight Time, UTC-06:00)  Comments [2] | 
Categories: .NET | ArcGIS Server

Official Line: "The .NET ADF is a hybrid platform - mix of server side and client side development environment."

Built on ASP.NET Ajax, but still supports the ASP.NET Callback model for backward compatibility.

As a quick aside - Art Haddad was running a Mac...

Core object model is relatively the same as at 9.2

Core controls are now scriptable - they work with the MS Ajax client side libraries. The javascript is now "public" and documented. This is great - in the past we had used some of the client side javascript (not supported) and found that it changed across service packs - doh!)

Common Data Source API - standard access across the spectrum of data sources. The common data source API will expose different functionalities based on the type. You can get down the the ArcObjects if need be *I'm assuming this is the same model as at 9.2 but they were moving through stuff very quickly)

This ADF has a Visual Studio design experience that provides an option to do things without getting your fingers in javascript. That said, the javascript is public, so just like the Ajax Control Toolkit, you can just jump in and use it like the "Javascript API" (which brings up the fact there are two javascript APIs - one based on Dojo and one based on MS Ajax - choice is good).

Task Framework is now extensible in the Application Manager via web controls (dlls). This will allow you can publish new tasks, and users can then include the tasks in a published application. Nice feature if your environment is involved in the author-publish-consume workflow.

They are releasing tasks into the code gallery, will allow a faster release cycle.

More "comprehensive" class library documentation, discussions of Ajax patterns, migration from 9.2 to 9.3. Lots of work on the Resource Center to help people get rolling quickly.

Can create user controls for the task frameworks (ascx) - much simpler than creating full blown web controls in dlls.

Performance

Blending at 9.2 used a single tiling scheme. At 9.3 each resource has it's own tiling scheme, and the "blending has been massively improved"

Use of HTTPHandlers used instead of Pages so the page lifecycle is avoided, so it's faster.

Javascript is public, documented, JSON based, and object oriented.

Better activity indicator so you know that something is going on. 

Demo of 9.2 vs 9.3 performance. Definitely much faster. Eliminated lots of callbacks, httphandlers improve performance because the control tree is not re-created and destroyed.

Webcontrols

MapControl - scriptable directly. This is provided by implementing IScriptControl, and just works. The overview map had been improved a lot. The logic has been streamlined, so it's much simpler. You can enable the "intelligent" mode. At 9.2 there were 12 callbacks to get the overview. At 9.3 it's 4 and then it's just client side.

The resource manager can be managed in javascript, and has lots of configuration - i.e. layer alises, fields to show, map tips etc.

Results Viewer - bi-directional high light. The task can have different results behavior (fields, maptips etc)

Additional web controls, additional AjaxExtenders - DockExtender, HoverExpandExtender (pin window type of thing)

Supports .NET 3.5, but not required.

By final, there will be javascript intellisense for Visual Studio 2008 (you likely need to get a Visual Studio service pack as well as the ADF)

Better templates, but if you use these, be sure to send feedback to the team during the beta to get your features in the list.

To use the "Client side geometry model" - Just set the graphics layer RenderOnClient property to true. Sweet.

Automated migration for the Manager applications (author-publish-consume  three-click workflow)

There is a utility to help convert the template apps to 9.3

To do it manually - add reference to the System.Web.Extensions.dll, upgrade assembly version reference. Script manager is not required. If you want it to work with the Ajax partial postback model, you need to add a script manager.

Can use an update panel with non-Ajax controls and use triggers between the .NET ADF controls which are already Ajaxified.

Do not put the .NET ADF Controls in an update panel. This will kill your performance.

 

Questions:

Client geometry sent in JSON... GeoJSON, same JSON as REST API? It's ADF JSON - basically serialized versions of the server side .NET classes. Standard .NET design pattern

Have you worked with the controls in a javascript UI layout framework like Dojo, ExtJS, or YUI? They have done some testing with YUI components, and it's fine. All the client side code is namespaced, so there should be few issues.

Compressed / minified Javascript? By final

Thoughts:

Sounds like we can work directly with the MS Ajax Javascript API, which I personally like. The hybrid approach is very compelling for many apps which need some form of server state, but still require a very responsive interface.  Use of the ADF vs the REST/Javascript API may come down to a question of licensing.

Thursday, March 20, 2008 10:39:51 AM (Mountain Daylight Time, UTC-06:00)
"By final, there will be javascript intellisense for Visual Studio 2008"
You can get this already. You just need to reference the embedded javascripts using a reference tag.

"Compressed / minified Javascript? By final"
Most are already compressed in the 9.3beta (but more will come). Just run you app in release mode, or set the ScriptManager's ScriptMode property to 'Release' to get the compressed versions.
Morten
Friday, March 21, 2008 5:45:56 AM (Mountain Daylight Time, UTC-06:00)
Another clarification on your notes above:

"Task Framework is now extensible in the Application Manager via web controls (dlls)."

The ADF Task Framework has always been extendable, even at 9.2. At 9.3, we are making it easier to create and work with tasks. You do not have to be a web control developer to build tasks, you can now build tasks using User Controls.
Comments are closed.