>As to "virtual n-tier" I think we all do it. That single-tier app I alluded to in an earlier post has business service classes, a quasi-data services class (handles queries and mass post operations but not basic I/U/D -- I have bound controls).
John,
If your app has separate responsibilities then it
IS n-tier. N-tier is a design model not a presription of which tools to use or not use. N-tier simply means separating the responsibilities into their appropriate objects.
The acid test of your design is to examine what it would take to change the data source to SQL Server. Would you need to rewrite the UI or only alter the business objects? How about changes in business rules, can they be implemented without hitting the database or the UI? If you can isolate the modifications required for implementing these types of changes then you do have an n-tier design model.
My point is that n-tier does not require C/S or COM or any other particular technology, it is an approach to building apps. Because responsibilities are clearly defined and well separated it is relatively easy to swap out one object for another without needing to make serious changes to the others.