Given a single .net codebase for a piece of software (let's use C# for argument's sake), and I want to break this software down into different editions based on functionality (like a basic edition and an advanced edition), what is the best way to go about this?
Would I have to factor this into my software architecture?