I know that there are multiple topics on how to create a mailbox using c# and powershell. Most of them are about 5 years old and use Exchange 2010.
Now in 2016 using Exchange 2016, is powershell still the preferred way to create (or change oder delete, basic CRUD operations) a mailbox?
We are using an Exchange 2016 environment too and had the same question as you, when we moved from Exchange 2013 to 2016. After a research we decided to stick to Powershell as it seamed to be the best option.
However what we build (just to give you an idea) for Exchange 2013 is a taskserver which runs IIS. On that taskserver we build an own webservice, which trigger a Remote Exchange Powershell command (e.g. to create an mailbox). Via this way we are then open to use this webservice in various applications we use. And as the Webservice used native powershell commands it wasn´t a big deal to move from Exchange 2013 to 2016 as the same powershell commands are used here. If we ever plan to move to Exchange Online we only need to do some small adjustments to the webservice and everything will still work.