For every transaction signing, a DApp can make use of wallets such as MetaMask, or can handle the private keys itself. Handling the private keys can be a more user-friendly and optimal solution at first, but the user won't always trust the DApp when it comes to handling private keys.
In this recipe, you will understand the key points of implementing application-specific wallets and using third-party solutions.