Comments 5
кодогенерация, конечно, эффективно, но с partial очень раздражает работать, да и атрибуты для приватных полей... такое себе
Вот бы упростить до
[ViewModel]
public interface IMomentSpeakerViewModel : IDisposable
{
string OutText {get;}
string InputText {get; set;}
void Say();
}
и полностью кодогенерился бы public class MomentSpeakerViewModelBinder_Generated, как дополнительная прослойка между вью и вьюмоделью
Прекрасно вас понимаю на счет partial классов, но со временем привыкаешь к ним. Главное тут соблюдать то что partial используется только для генерации дополнительного кода, а не для дробления логики работы класса на несколько файлов.
Возможно я не упомянул в статье, но при использование атрибута [View] и [ViewModel] срабатывает дополнительный анализатор кода, который указывает на то что класс должен быть partial, если это не так, и предлагает это исправить.

Ваша идея с использованием интерфейса выглядит интересно, но в настоящий момент не вижу возможности ее реализовать с текущими ограничениями генераторов и отстованием Unity от новых версий .Net и C#, где есть перехватчики и partial свойства.
Возможно ваше решение могло бы заработать при использование реактивных полей. В будущих версиях рассматривается возможность интеграция с R3.
Мы учитываем любые предложения по упрощению и улучшению работы с фреймворком. Подробней о том какие задачи сейчас за планированы и находятся на рассмотрение вы можете ознакомиться тут:
Roadmap: https://vpd-inc.gitbook.io/aspid.mvvm/aspid.mvvm-ru/documentation/roadmap
Текущие задачи по проекту: https://github.com/users/VPDPersonal/projects/2/views/1
Выглядит очень интересно! Хотелось бы увидеть интеграцию с новым UI ToolKit, ибо туда MVVM прям просится
Рад, что вас заинтересовало! Интеграция с UI ToolKit планируется в следующих версиях. Но перед тем как провести интеграцию есть несколько задач, которые необходимо выполнить для упрощения работы с Unity UI. Более подробно про текущие задачи можно посмотреть на странице проекта: https://github.com/users/VPDPersonal/projects/2/views/1
Aspid.MVVM — производительный MVVM фреймворк для Unity