<p>Is it "acceptable" to have an <strong>ASP.Net 2.0</strong> application without the BLL (Business Logic Layer) as the following?</p>

<ol>
<li>SQL Server Data Storage &amp; Stored Procedures</li>
<li>Data Link Layer (Strongly Typed Table Adapters) connecting to Stored Procs</li>
<li>Presentation Layer ASPX Pages with Code behind and ObjectDataSource for connection straight to the DLL</li>
</ol>

<p>Is a BLL always preferable, even if business logic is entirely validatable in the presentation's code behind?  What are the potential drawbacks for not using a BLL?</p>

[{'answer_id': 4327, 'author': 'Nick Berardi', 'author_id': 17, 'author_profile': 'https://Stackoverflow.com/users/17', 'pm_score': 1, 'selected': False, 'text': '<p>Like everything else it is environmental and depends on the use of the system.  The question you need to ask your self is:</p>\n\n<ol>\n<li>Will this be actively developed</li>\n<li>Is this going to be used over the course of many years and expanded on</li>\n<li>Is the expansion of the application unknown and thus infinite</li>\n</ol>\n\n<p>Really it comes down to laziness.  How much time to do you want to spend reworking the system from the UI?  Because having no business layer means duplication of rules in your UI across possibility many many pages.</p>\n\n<p>Then again if this is a proof of concept or short demo or class project.  Take the easy way out.</p>\n'}, {'answer_id': 4331, 'author': 'lomaxx', 'author_id': 493, 'author_profile': 'https://Stackoverflow.com/users/493', 'pm_score': 2, 'selected': False, 'text': "<p>It's acceptable as long as you understand the consequences. The main reason you'd have a BLL is to re-use that logic elsewhere throughout your application.</p>\n\n<p>If you have all that validation logic in the presentation code, you're really making it difficult to re-use elsewhere within your application.</p>\n"}, {'answer_id': 4334, 'author': 'Haacked', 'author_id': 598, 'author_profile': 'https://Stackoverflow.com/users/598', 'pm_score': 1, 'selected': False, 'text': "<p>Acceptable? Depends who you ask and what your requirements are. Is this app an internal one-off used by you and a few other people? Maybe this is good enough. If it's meant to be a production ready enterprise application that will grow and be maintained over the years, then you probably want to invest more effort up-front to build a maintainable app.</p>\n\n<p>Separation of Concerns is a key design technique for building maintainable apps. By mixing presentation, business, and data access logic all together, you can end up with a very fragile difficult to change application architecture.</p>\n"}, {'answer_id': 36673, 'author': 'Jon Limjap', 'author_id': 372, 'author_profile': 'https://Stackoverflow.com/users/372', 'pm_score': 1, 'selected': False, 'text': "<p>It depends. If your business logic is in your click events and page loads, it is NOT acceptable.</p>\n\n<p>It appears that your business logic is somewhere within the DAL (e.g., stored procedures and such), just as long as you are consistent, it's fine. As long as you are very, very sure that your clients will <em>always</em> be using SQL Server then this approach is not a problem.</p>\n\n<p>I know a colleague who has <em>all</em> his business logic in stored procedures that his views are mostly thin clients to database backends: he has been immensely successful with the product that he sells. But that's only because he's very consistent with it.</p>\n"}, {'answer_id': 1611969, 'author': 'pokrate', 'author_id': 140939, 'author_profile': 'https://Stackoverflow.com/users/140939', 'pm_score': 0, 'selected': False, 'text': '<p>If the application is a general one, then the business logic layer can be used in complete other applications too. Like, I normally use my CMS related BLL classes in other applications.</p>\n'}]
['https://Stackoverflow.com/questions/4320', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1525924/']