My team is working on creating our first Silverlight 4 Application. First of all to give a bit of detail on the actual project. It will be Silverlight 4 that is designed to run Out-oF-Browser and we will be using WFC for data services with our own implementation of Dataobjects. (NO entity framework, LINQ-to-SQL, etc). We have a few consultants in that are recommending a solution structure that contains more than 11 individual projects. To us there just doesn't seem to be a reason for it, can anyone see any justification as to why something like the following might be needed?
- Project.Client - Assets, Styles, Views
- Project.Common - Converters, Helpers
- Project.Data - Unknown purpose (Client project)
- Project.Infrastructure - Commands, Constants, Interfaces, Logging
- Project.MajorFunctionA - "Business Logic for major function A of the application"
- Project.MajorFunctionB - "Business Logic for major function A of the application"
- Project.MajorFunctionC - "Business Logic for major function A of the application"
- Project.Models - Abstracted access to WCF Services
- Project.UIControls - Custom controls for the UI
- Project.UnitTests - "Potentially all unit tests"
- Project.ViewModels - View models for the UI
- Project.Web - Host project for the silverlight app - no code
- Project.Web.Infrastructure - Data Objects and WCF Services
Now, our major confusion comes with why we wouldn't just namespace things out to keep them separate, as well as things like "Project.MajorFunctionA" which is just a small component of the application, why should it have its own project. (Keep in mind that the Views and ViewModels for that specific function would NOT live in that project but the other Client/ViewModel projects.
We are just looking for some validation, as I don't see any reason for this.