Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeArchived Discus...Archived Discus...Developing Under Previous Versions of .NETDeveloping Under Previous Versions of .NETASP.Net 2.0ASP.Net 2.0Hot tip to speed up WAP module dev processHot tip to speed up WAP module dev process
Previous
 
Next
New Post
5/25/2007 8:40 AM
 

There has been lot said recently about the pros and cons of WAP vs inner site module developement prcoess.

I think there is more or less of a consensus to regard WAP as better for granularity and source control, while missing the essential feature of Edit and Continue.

While having the module compile to its own assembly and the module's code contained in its single directory seem sensible advantages, having to rebuild any single modification thus to support a subsequent DNN restart can be quite frustrating and time consuming.

An alternative solution has been proposed to include some kind of DNN stub in order to support E&C, but it still requires some manipulation and has the disadvantage that the stub app does not reproduce all of the DNN environement state.

Well, I must first say I'm afraid I don't have an ultimate solution to that issue, nor have I seen any around without its load of limitations.

Still I think I have something interesting to propose, which many will find interesting.

I found out that you can set up some kind of an hybrid solution from an initial WAP module, that enables partial Edit and Continue: Here's the process and corresponding results:

  • In VS.Net, setup/open a regular WAP module project
  • In your Portal module base ascx files, replace the "CodeBehind" directive attribute by a "CodeFile" attribute
  • In the property tab of the correspondiong code behind files, set the Compile mode from "Compile" to "None"
  • Rebuild your project

Now you can Edit and continue the codebehind files such as in the in site module developement process.
What happens is that when peforming the operations quoted above, you brought your portal module base control to some kind of nicely ambiguous state:

  • In Visual Studio, the control belongs to your project just as before, it sees the rest of the components and controls that the project has, you have regular intellisense, no change
  • In IIS, they do not belong to the module's assembly anymore, but to the running DNN app instead, with corresponding dynamic compilation and Edit and continue activated.

This can be a huge time saver when you debug your controls, and you can easily revert to regular compiled codebehind mode whenever you're ready for packaging, though you don't have to.

Of course you're still left with rebuilding business layer classes and the inner user controls, but I think that's still a step forward and also:

  • you may be able to temporarily bring some controllers into the codebehind as inner classes/methods if you prepare for heavy debugging, thus need Edit and Continue
  • I have recently released a keep alive module (free with source code) which automatically pings thus restarts the app, at recycle time: this will instantly restart DNN on every module build, so that may be a few seconds saved each time during debug session. See the corresponding anouncement thread.

 Finally, I think we've got something interesting with that hybrid solution, and I'd be interested to learn if some of you find ways to extend the scope of the code that you can easily swap between inner assembly wap compilation and dynamic DNN compilation.

Maybe we could find a way to add some inner app_code directory to the module that integrates at runtime into the main app (BuildManager tweaking?), so that one can easily move a class file and subsequent dependant classes to that new folder, set their compile mode to false for a debug session, and bring them back into the assembly at packaging time. 

Cheers


Jesse
CTO - Aricie
 
New Post
5/28/2007 5:58 PM
 

Hi, Sorry to bring that post on top, but I'm quite surprised that no one has an opinion about that.

Do the WAP people already know about such a trick? Do you think it brings something there?

Any ideas on how to register a dynamic compilation sub folder underneath the wap project  to be targeted by the host dnn?

Michael told me offline that he finds the idea interesting, yet he uses the WST model mainly, so he's not so much concerned in the first place.

Any comments more than welcome.


Jesse
CTO - Aricie
 
New Post
5/29/2007 5:10 AM
 

Jesse, I have not had time to read your post in too much detail, but just for the record, I use Vladan's BlankModule project and WAP - so I only have the projects I am working on in my solution and it's a lot quicker than it used to be. If you have not yet checked this out then definitely have a look at it.

 


Entrepreneur

PokerDIY Tournament Manager - PokerDIY Tournament Manager<
PokerDIY Game Finder - Mobile Apps powered by DNN
PokerDIY - Connecting Poker Players

 
New Post
5/30/2007 7:51 PM
 

Hy Rodney,

I did mean Vladan' BlankModule project or similar environement config.

I have not downloaded the most recent version, but so far as I can see, no easy way to provide Edit and Continue capabilities were discussed yet, so I would think that the issue is interesting.

If you find some time to get deeper into it, I'd be happy to know if my suggestions can slightly speed up your dev processes.

Thanks for the feedback anyway.

 


Jesse
CTO - Aricie
 
Previous
 
Next
HomeHomeArchived Discus...Archived Discus...Developing Under Previous Versions of .NETDeveloping Under Previous Versions of .NETASP.Net 2.0ASP.Net 2.0Hot tip to speed up WAP module dev processHot tip to speed up WAP module dev process


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out