In response to the PM you sent me:
TrinityCore, ArcEmu and other emulators only provide the source code. You cannot take some text and make it do something.
To get it into a usable state, you have to compile this text (code) into machine code, and then link it together to create an executable file with additional libraries.
A repack is just someone who has already compiled and linked it together for you, so you can run it without having to do these first few steps.
The advantage to a repack is you don't need the software nor time that is required to compile. The disadvantage is you can't access the source code of the compiled binary, so you cannot update it or modify it.
Compiling is only taking source code and turning it into an executable. No good source code exists for higher patches, so no good compiles can be made, if that makes sense.
3.3.5a has almost everything working, so everyone chooses to stick to this source code (TrinityCore).
Either works. If you can find a repack that is using TrinityCore and is 3.3.5a you know it will be good, but I wouldn't run a public server on it. You can compile your own, but it is more work. This is the official guide on how to compile TrinityCore with Windows:
How-to_Win - TrinityCore - KPsN Collaboration Platform
Running a server is not recommended for those who are not experienced with computing because it is an incredibly complicated piece of software engineering.
The emulator itself is just a program which runs the server. It does not contain the game data.
You need to extract the DBC's, which are the clients (WoW.exe) game data. The server uses this to understand what the client is thinking and trying to do.
You need to extract maps, vmaps and mmaps. These are used to get map exploration data, collision, line of sight data, movement pathfinding data, and so on. Mmaps is not required but is used for good pathfinding.
Hamachi is only used if you cannot port forward, it acts like a big LAN network.
Apache is software that can be used to host websites on.
MySQL is a database software. You need to install a database that supports TrinityCore onto it, and then tell the emulator the details on how to connect. This is all the server data, such as creatures and items.