Updated: Oct 23, 2019
This is quite a "beginner" question, so normally I would not include it in this blog, but it keeps popping out in so many different contexts, forums and discussion arenas (and also by people who have otherwise been recording using a PC for a while), so it's worth a shot. At least I can point people to this post instead of writing a lengthy answer.
Let's cut to the chase: is it a good idea to use ASIO4All for real-time playing and recording music?
The answer is no.
Should you get yourself a proper audio interface?
The answer is yes.
Don't get me wrong: ASIO4All is both a great idea and a brilliantly executed application, with many uses. By all means, hats off and full respect to its authors... I would be very proud to have written it myself. It's a great tool.
And as for any tool, you need to understand what it's designed for. If you use a hammer to make a soup, you won't have great results (okay, the analogy is shakey, but you get the idea).
ASIO4All is perfect if all you need is playback from the DAW, but you don't have an audio interface connected. I have occasionally used it that way myself, to play some mix in the DAW when I had my laptop with me but, for some reason, none of my audio interfaces around.
It is just not going to work well if you try to record (or play in real time) with your PC.
Simple: the brilliant idea of the ASIO4All is that it translates between the native Windows Audio driver architecture ("WDM") , and ASIO, which is a different driver architecture.
ASIO4All presents itself as an ASIO device, but then delegates the the actual job to Windows Audio.
In programming jargon, we say that ASIO4All "wraps" around WDM, allowing a program (like your DAW) to see a device as ASIO-speaking while in reality the actual job is made through a Windows Audio device (say, your motherboard sound card) .
Unfortunately the very reason for which ASIO was invented is that Windows Audio is somewhat limited (in terms of possible sample word lengths and sample rate), and too slow.
It introduces too much latency (for good reasons, btw, since it offers services that are useful for normal PC use.. just not for music production).
In fairness, recent versions of the Windows Audio subsystem allow for just as much efficiency as ASIO, but unfortunately many DAWs still support only ASIO (if you're interested, the keyword to look for is "WASAPI exclusive mode").
Further, since ASIO4All has to do a little more work (the "translation" between ASIO and WDM), it will take even a little more time than "just" WDM, which means that ASIO4All will be even slower, adding more latency to the proceedings than if we were using only the (already slow) WDM alone.
Now, latency is not a big problem for playback.
If your mix starts playing half a second after you push the "play" button, it's no big deal, and you most likely won't even notice: you push it once, and then leave it be.
But latency is a big problem when you're playing an instrument - or you are overdubbing while listening to an existing guide recording.
If you're playing say keyboard, feeding the DAW thru your PC's line-in, and it takes half a second from when you push the keyboard button to when the sounds is actually produce in your headphones... it's gonna drive you crazy.
Recording with ASIO4All may work for a single-track, continuous recording (like a spoken word recording with a microphone) because, similar to playback, the recording will start some milliseconds later, but once started it will continue at a steady pace... if the PC can process the incoming audio data fast enough thru the ASIO4All-WDM funnel. You will be just wasting resources - needing a faster PC than if you were using ASIO; but it will work.
Already when you overdub over a guide base, it's likely to give you issues - it will strain your PC more (since the PC has both to play back the base and process the data to record) and it may give you sync issues depending on how precisely Windows Audio reports the latency so that the DAW can compensate.
And if you record into an mix project, things will start to go south very fast, as the DAW may bake thousands of ASIO requests per second and each of them is gonna be translated to and from a much slower playback/recording system than the DAW expects. At the very least, you will have to give up when the number of tracks is much smaller than if you were using a real ASIO device.
Finally, for actual instrument playing, it will be hopeless, as even top shelf computers will simply have too much to do to process every note you play in time when going thu ASIO4All, the Windows AUDIO system and back.
Consider also that A/D conversion is usually inferior in integrated sound cards than even the least expensive audio interfaces, and there's really no reason to use the PC line-in (and ASIO4All) for recording.
So, if trying to record without an audio interface, and you find yourself facing rage-inducing latency, what do you do?
Simple: you stop using your built-in sound card (or the graphics card) and get yourself a proper audio interface.
With a few exceptions, even very basic audio interfaces will come with ASIO drivers and be far faster than the ASIO4All + WDM combo. A/D conversion quality will likely be as well far superior, and proper connectors (XLR or even TS jacks) will keep a much better signal than flimsy 3.5 mm jacks.
I always advocate that gear is not really the point in audio, but this is really an exception. If you find yourself recording with ASIO4All, got get an interface, and you'll save yourself a lot of frustration!