Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The correct architecture for a given problem depends entirely on the problem. Your question is too general to offer a real answer, other than to say I keep the architecture as simple as I can to account for all known and expected requirements, but no simpler.</p> <p>EDIT:</p> <p>For "typical" business solutions, here are some of the factors that I consider:</p> <ul> <li><p>UI</p> <ul> <li>Can it be web-based? What are the user interaction requirements?</li> <li>If a classic web interface is not sufficient, can I use a more interactive technology such as Sliverlight?</li> <li>If it has to be thick-client (yes, there are still scenarios that justify that), how serious are the deployment challenges? Small user base, large user base? Do I need to include automatic updating? Does it need to be enforced?</li> </ul></li> <li><p>Business Layer</p> <ul> <li>Do I have performance/scalability considerations that require a physically separate business layer? (My business layers are always logically separate, and easy to physically separate if need be. I sometimes use <a href="http://www.lhotka.net/cslanet/" rel="nofollow noreferrer">CSLA</a> to allow for that decision at deployment time when targeting Windows, but that's a heavy framework and not always appropriate).</li> <li>How simple or complex are my business rules? Are they likely to evolve considerably over time? Is it worth incorporating a rules engine such as <a href="http://jboss.org/drools/" rel="nofollow noreferrer">Drools</a>?</li> <li>Are there asynchronous processing requirements? Do I need a work queue system?</li> <li>Are there external systems to interface with? What types of interfaces to they present? Web service, COM+, XML over HTTP, proprietary, DB, batch files, ...?</li> </ul></li> <li><p>Data Persistence</p> <ul> <li>What ORM choices are available to me given any pre-existing platform choices/constraints?</li> <li>Will I benefit from extensive use of stored procedures? Will there be a DBA to maintain stored procedures and modify them over time? If no DBA, I only use stored procedures where really necessary for performance. If there is a DBA, more extensive use of stored procedures gives the DBA flexibility to manage the physical architecture independent of the application (but as with all added complexity, that comes with a cost).</li> </ul></li> <li><p>Cross-Cutting</p> <ul> <li>What are the security requirements? Is there an existing mechanism (Active Directory/LDAP/...) to be integrated with? Do I need to support role-based security?</li> <li>What are the operational monitoring requirements? "Report this bug" functionality? Simple logging?</li> </ul></li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload