Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

'continuous build' output available for (Ctrl)F5?
jamesmanning
#1 Posted : Tuesday, May 8, 2012 3:13:21 PM(UTC)
Rank: Member

Groups: Registered
Joined: 5/7/2012(UTC)
Posts: 17
Location: Raleigh, NC

Was thanked: 1 time(s) in 1 post(s)
One of the features listed for redgate's .NET Demon is the 'continuous compilation' (admittedly, what Eclipse has had for ages for the Java stack), specifically that when you want to run your code, it's already been compiled.

It seems like NCrunch doesn't currently support that, instead doing builds (I'm guessing) in some shadow area, but the 'normal' build path is still the same, and would take the same amount of time to build.

Assuming the above is correct, is it possible (or on the roadmap) to have NCrunch's continuous compilation available in a similar fashion?

The de facto workaround for build speed of targeting assembly references instead and then dealing with remembering to rebuild when public interfaces change is not very fun. :)
Remco
#2 Posted : Tuesday, May 8, 2012 9:43:44 PM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,161

Thanks: 964 times
Was thanked: 1296 time(s) in 1202 post(s)
Hi, thanks for posting!

The main vision of NCrunch has always been to try and get out of the way of the IDE and the normal build system. This is done for a number of reasons:

Interference with other user/IDE processes - Having a continuous test runner constantly locking files and manipulating the contents of build output directories while you are running your application or performing other development tasks can be extremely obstructive and tends to create a habit where you need to disable the continuous test runner whenever you're not actively watching it work. This reduces the value of the passive feedback NCrunch provides (i.e. you need to go looking for it, not just have it there in front of you).

Manipulation of build/test environment - NCrunch assumes full control over the build and test environment, performing activities such as instrumentation (which will actually change the binary form and behaviour of output assemblies). This means that the output from the NCrunch build process can be physically different from the normal Visual Studio build process, causing confusion in certain scenarios.

Difficulty of a clean implementation - There are certain operations that happen when code is saved in the IDE (such as code completion in VB.NET). Saving to disk on every key stroke can create certain usability issues that may be problematic (or impossible) to completely solve.

Less control of the build environment - Much of NCrunch's build performance comes from its ability to separate and isolate individual projects so that they may be built independently. This often leads to the duplication of projects inside NCrunch's workspace (for example, one project may be still running tests when NCrunch needs to rebuild it). Building projects inside the original solution path would force NCrunch to perform many of these operations synchronously, thus reducing the speed and efficiency of the engine.



There are in-betweens here. For example, it may be possible to implement a feature when tests are run on every save (instead of every keystroke), which would encourage you to save your code to disk regularly. Though long term, I have no plans to introduce closer integration between NCrunch's workspace and the original solution path.


Thanks!

Remco
Users browsing this topic
Guest
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

YAF | YAF © 2003-2011, Yet Another Forum.NET
This page was generated in 0.027 seconds.
Trial NCrunch
Take NCrunch for a spin
Do your fingers a favour and supercharge your testing workflow
Free Download