[Info-vax] User Interface Design, Implementation

Arne Vajhøj arne at vajhoej.dk
Thu Jun 6 21:07:46 EDT 2019


On 6/6/2019 12:00 PM, Stephen Hoffman wrote:
> On 2019-06-06 14:11:28 +0000, Arne Vajhj said:
>> MVC is a pattern used by some GUI frameworks.
>>
>> Non-GUI applications does not use MVC.
>>
>> GUI applications using a non-MVC framework does not use MVC.
> 
> Are you positing that an MVC-style app design requires graphics?
> 
> Because it really doesn't.

Theoretical not.

But I am not aware of any common MVC framework that is not.

> ...We have a view.  A display of some sort.  Often a character cell 
> device using ANSI controls.  Or a command-line interface.

Having a display is not sufficient to being a View.

> And... we have a model.  A database or three.  Either locally, or some 
> other data accessed remotely.

The database is not the model - unless you have put all your business
logic in stored procedures.

> And... we can have a controller.  A blob of code that among other tasks, 
> mediates the chatter between the view and the model.

That is not MVC. MVC is a triangle.

It could be MVVM or MVP.

:-)

> That seems... much like what more than a few longstanding and 
> timesharing-style OpenVMS server apps do.

Not sure that I would agree on that.

> What's the difference between an ANSI control sequence or command-line 
> interface, and a network interface that passes along a different sort of 
> data either for a remote user or for a remote server, whether for use by 
> a dedicated client app either in a browser, or a standalone app on 
> another computer?  Or by another server?  In terms of what has to happen 
> in the app code, not all that much.  Sure, different APIs.  But there 
> are different APIs for different GUI interfaces, too.

In some ways you can consider it a remote view.

But it is typical not called MVC.

> And as I've mentioned, some of the refactoring that works well when 
> updating and upgrading OpenVMS apps is retrofitting something akin to 
> MVC, and particularly splitting off the code related to what MVC calls 
> the View.

Which I don't get.

This is all in application code not in the OS.

> Does everybody consider a network connection a view in an MVC pattern? 
> Of course not.  But it's really quite similar, interfacing what amounts 
> to a controller with a different display client.  And it's an approach 
> that works well with updating the piles of bespoke code that exists at 
> many OpenVMS sites.  Implementation details and languages and 
> requirements can and do vary.  A pile of BASIC or C++ or C or Fortran 
> can still be designed to segment the various areas, akin to what MVC and 
> such posit.

To me what you are describing sounds more like a split of the server
side in 3 layers:
* service layer
* business logic layer
* data access layer

(maybe - you did not really go into the BLL DAL split, but that is
sort of standard)

> Your approach and your opinion around MVC is one you're fully entitled 
> to, of course.  I just think you're really missing out on an approach 
> that works well for refactoring existing OpenVMS code.

I may not disagree so much with the actual approach.

But I disagree with terminology used to describe it.

Arne




More information about the Info-vax mailing list