Relationship between monolithic architecture and n-tier
I am confused about the relationship between monolithic and n-tier architecture (I have only analyzed 1, 2, 3 levels and tiers). Since n-tier architecture divides the application into logical layers (usually Presentation Layer, Business Logic Layer, Data Access layer) and physical tiers, based on how many tiers are involved, can we talk about 1-tier, 2-tier or 3-tier monoliths? Example: Is a desktop application that runs only locally a 1-tier since the 3 logical layers (UI, Business Logic and Data Access Layer) run on a single machine? For example MS Excel? The difference between a 2-tier and 3-tier monolith would have as its only difference the fact that in the 2-tier the Business Logic and Database layer are executed on the same machine, while in the 3-tier the database is executed on a separate machine? When we talk about monolithic web application nowadays, do we usually refer to a 3-tier or 2-tier monolith? Also when we talk about logical separation, ok that means that there are different components that take care of each of the respective 3 aspects (3 layers), but does this coincide with a separation at file level (for example controllers defined in a folder, views under another etc...)? If the code has HTML, CSS, JavaScript, and server-side logic (like C#) all mixed together in the same file or component, can we still talk about a proper logical separation into layers? I thank anyone who will try to clarify my doubts.
I am confused about the relationship between monolithic and n-tier architecture (I have only analyzed 1, 2, 3 levels and tiers).
Since n-tier architecture divides the application into logical layers (usually Presentation Layer, Business Logic Layer, Data Access layer) and physical tiers, based on how many tiers are involved, can we talk about 1-tier, 2-tier or 3-tier monoliths?
Example:
Is a desktop application that runs only locally a 1-tier since the 3 logical layers (UI, Business Logic and Data Access Layer) run on a single machine? For example MS Excel? The difference between a 2-tier and 3-tier monolith would have as its only difference the fact that in the 2-tier the Business Logic and Database layer are executed on the same machine, while in the 3-tier the database is executed on a separate machine?
When we talk about monolithic web application nowadays, do we usually refer to a 3-tier or 2-tier monolith?
Also when we talk about logical separation, ok that means that there are different components that take care of each of the respective 3 aspects (3 layers), but does this coincide with a separation at file level (for example controllers defined in a folder, views under another etc...)?
If the code has HTML, CSS, JavaScript, and server-side logic (like C#) all mixed together in the same file or component, can we still talk about a proper logical separation into layers?
I thank anyone who will try to clarify my doubts.