I'm a homegrown programmer and have been coding most of my recent applications in C#. These applications are usually small tools that help me with my day to day tasks. I do tend to use good design patterns, but since my projects are usually on a very small scale, I just dump everything into one Visual Studio project (GUI, domain code, etc).
I've been wanting to develop a larger financial oriented application (equity/futures options analysis/modeling), but am not quite sure how to approach the actual architecture/organization. I've peeked into the code of a few open source finance apps and they're usually laid out into many sub-projects. ie: FinApp.Core, FinApp.GUI, FinApp.API, FinApp.DataStorage, FinApp.WebService, etc.
Where can I go to learn about how to best structure large applications?