The latest release of our DNN Agent platform contains exciting features for the DNN community
Together with a new agent engine attached the global application life cycle, we hooked into the ASP.Net runtime to bring you (again?) Edit & Continue.
Context
It has been no secret that a productivity killer in the development of DNN application is the endless cycle of application restarts that every DNN developer has to bear, at least in the final parts of a development cycle.
This was probably quite detrimental to the DNN ecosystem, in its very competitive market, although it also pushed smart players to invest into client side logic, IOC and TDD, with the corresponding positive impact.
Server side development is however here to stay, as the primary bindings of our community, and as much as it is important that DNN embraces the best of modern client technologies with a service oriented refactoring, it is more than ever crucial to have robust development routines on the server side.
With ASP.Net 2.0 and dynamic compilation, there were past efforts to bring Edit & Continue scenarios to server side DNN development, but overall we can say they were quite unsatisfactory and there was no real questioning of the general receding to traditional "build and restart" routines, when Microsoft hardened the recycling conditions.
That made even localization difficult, when any attempt to visualize the result of a resource file edit, will condemn the following editing to yet another restart cycle.
The decision to pre-compile core user controls in the next versions bears witness to that global trend.
Breaking the cycle
Convinced that there is no fatality to the situation, we decided to renew a past effort to move out of it. It was not an easy journey, since understandably Microsoft protects the related components from tampering, but we managed it, so here is Edit & Continue server side, back and better than ever.
Embedded in a couple of rules of the new Application Engine you can:
- Switch off critical monitoring on targeted localization folders, leaving caching dependencies intact if any.
- Switch off critical monitoring on App_Code folders
- Switch on automatic recompilation for your App_Code subfolders, just as with code behind files
- Extend dynamic debugging to compiled libraries, with traditional IOC, or:
- A manual subscription-based instance-surrogating system
- Automatic type forwarding based on namespace exploration
- Contextual signaling bringing arbitrary code sections into the dynamic compilation zone
Together with the many dynamic hooks provided by existing Portal Keeper agents, they should make for a fresh tool set to speed up server side development in most situations
Other Nuggets
On related issues, notable additions include a page adapter to extend keep alive capabilities with additional pre-loading, in order to speed up first page visits, and a logging rule for critical restarts to document difficult-to-analyze recycling situations.
Finally, user experience was also improved with many small defects fixed, better accessibility, and even if we're fully aware that old school update panels are on the way out, with loads of client side coding ahead, you'll be amazed to see how much we could still get out of it.
Now we're looking forward to sharing complementary experiences with the DNN community, and we hope that our tools will reach those that can benefit from it.
A Global platform
Here are some of the features available out of the box, fully customizable:
- Secure your instance with monitoring and access firewall rules, smart errors handler, a Recaptcha adapter, critical events monitoring..
- Fix issues and clean UI with response filters, rendering adapters and a streaming proxy.
- Optimize performances with caching, compression, content delivery, pre-loading, throttling strategies, and development with dedicated recycle-free environments.
- Enhance user experience with messaging firewall rules, profiling and display adapters.
- Simplify administration and automate complex tasks with dedicated processing bots, rules and adapters.
- Collect information, alert with harvesting bots, logging rules and performance monitors.
- Publish applications, services and data with wrapping handlers, and API services.
- Extend to other systems with web bots and services.
- Offer your users additional services with user agents, like monitoring, trading, or social bots.
For a detailed presentation, check out the DNN Hang Out of august with Joe and Will, and let me know if you need help with testing default rules and agents.
To get started with the Web Api services, you can download the Postman requests demonstrating the default services.
Interested in the project ? We are looking for partners !