Why should you use ExcelMVC and develop .NET applications for Excel using the MVC/MVVM pattern?
The model-view-controller (MVC) architectural pattern is highly accepted among clean code developers. The model-view-viewmodel (MVVM) pattern is a widely used implementation of MVC for event-driven development platforms such as Windows Presentation Foundation (WPF) and Silverlight (both on .NET). MVC and MVVM let you separate the user input, the representation of application logic and the feedback to the user from each other. OK, this helps you in the separation of concerns in your software development, allows for loose coupling between components of your software and is considered a good thing in general. Historically, applications written for Excel were restricted to Excel. With ExcelMVC, you can exploit the full power of .NET framework and present your application to Excel users the same way you would present it on a WPF or a Silverlight or a Windows Forms user interface. Develop your model once and reuse it in any view.
Consider Excel just as one out of many views to your application now. Don't change your coding practice when binding your model to Excel or some other view.
The user interface of Microsoft Office is familiar to so many professionals in the world. Take advantage of the tools and features of Office, no matter if it is the integration with e-mail management in Outlook or the plotting features of Excel. Let your users accomplish the task in the same environment they spend most of their time anyways. Allow people to customize the GUI of your application. Why shouldn't engineers do some auxiliary calculation right in the same spreadsheet of your engineering app? Why shouldn't financial analysts perform their custom post processing of data right in the financial app you provide them? Whatever professionals want to do to add their personal flavor to your application, let them do it. They will love the flexibility that comes with it. You as a developer will love the flexibility of .NET framework and build a rock solid core of your application. No one will mess with that core.
Visual Basic for Applications (VBA) lets you write applications in Excel, OK. But: if you want to have a modern editor with something like IntelliSense, a decent debugger, a great class library with lots of cool stuff, data bases, web services and parallel task execution, you want to get rid of VBA soon. ExcelMVC lets you write applications that have no VBA at all, because Excel is nothing but the view.
With ExcelMVC, there will be no VBA code in your business model. As a consequence, you can write your unit tests as you would do it for any other application.