Q:

What was the design pattern of VB (before .NET)

In recent years all we have heard over and over about MVC, MVP and MVVM.
By developing an application in VB.NET we are implicitly using the MVP pattern (with windows forms).
However, along at least two decades, millions of developers used versions of VB from VB1 to VB6 not having a minimal clue about MVC, MVP, MVVP (they don't even heard about that).
It was just drag and drop buttons, text boxes and so forth to a form et voilá! The application ran.
I have two questions:
1) what was the design pattern used by versions of VB prior to .NET?
2) Knowing that MVP is used with windows forms, MVVM with WPF and MVC with ASP.NET, can we change the pairs "pattern => use case".  
In other words, instead of: 
MVP  => Windows Forms
MVVM => WPF
MVC  => ASP.NET

Can we have the following scenarios: 
MVP  => WPF
MVVM => ASP.NET
MVC  => Windows Forms

Or any one of the 9 possible pairs (beyond the 3 already known)?
If not, why?
Thank you

A:

Early VB supported some object oriented concepts but not all.  Lack of inheritance, polymorphism, operator overloading, etc. hinders the use of OOP patterns on that platform.  Plus, in the 90s MVVM wasn't as hip as it is today.
VB had a really nice GUI and event model which made it easy to create a "Windows Form" type applications.  Other platforms, not so much.
The core of this revolved around events.  One could call it Event Driven Programming.  Drag a button onto a form, add a few event handlers like Click() and DoubleClick().  Put some code in those event handlers and call it a day.
One could write code without events, but the lack of true OOP support usually meant creating Subroutines or Modules where this code would live.  This also lent itself just a lot of files with code and a monolithic application in the end.

A:

I'm going to put this plain and simple for you. 
Most VB6 devs are very much akin to most VB.Net Winforms devs, which in turn are akin to most C# WPF devs. They pile figurative shit loads of duplicate code into the code behind. 
The smart ones, whether a VB6, VB.Net, or a C# dev, will use some form of Model-View-Controller architecture. MVVM, MVC, and MVP are all just different variations of the same basic pattern. Its a pattern that's been around since the 70's and nothing about VB6 prevents you from using it. It's a royal PITA, but I've used the MVP pattern with Access VBA. 

I suppose to answer your question concisely:
VB6 best lends itself to the MVP pattern. 

