We are working on a project that comprises of several windows services, data access layer component and a web site for user interface. The project also comprises of a web server (which will also run as a service and host the website).
Now the goal is to integrate all the components and services together such that the components are able to interact with each other and have a single instance of (some) components (like the DAL as it is used by all the services).
The technology that we are using is .NET 3.5 (c#).
Any suggestions for a suitable architecture for the project which would be easy to incorporate and suffice all the requirements.
Take a look at this post I gave yesterday. In such a layered architecture you could reuse the businesslogic and DAL dlls for your web app as well as for your web service.
The only difference is what you plug on top of that architecture. The advantage: Your business logic (since it resides in a separate layer) will be exactly the same in the case of your web service and web app.
Where to put restrictions on entities when separating Business layer from Data Layer