C#项目开发总体设计分层?

请问开发项目时将一个项目分成Model,DAL等各个层是为什么,我看视频上面是使用类库,使用文件夹来分类与之相比用什么劣势

分层的目的是为了替换某一层而不用修改代码的其余部分,使得代码的垂直架构更灵活。
但是这么做也有代价,就是使得代码的水平架构不灵活了,因为你一旦要给层修改接口,意味着所有实现这个接口的代码都要修改一遍。

看项目规模及需求的稳定性。如果只是做个简单的小工具,分层意义不大,反而导致过度设计,会浪费时间。
另外分层是一种设计思想,文件夹也可以视作分层管理,只是大家更习惯于用dll库方式。与文件夹相比,dll库更容易单独调试和替换,更适合团队协作。