Как правильно реализовать большое приложение на c#?
Я хочу написать большую программу, а точнее её основу на c# и возможно ещё на чём нибудь. Под большой программой я имею ввиду программы типа Photoshop, Illustrator, Krita, (возможно Unity) и других. Сам вопрос в том, каким графическим интерфейсом пользоваться и не лучше ли написать свой, во что его выводить, как выводить 3D графику, которая не зависит от движка рендера, как объединять всё это. А самое главное, чтобы это всё работало на windows, mac и linux с возможностью переносить на другие платформы и архитектуры.
В техникуме обожали студентов которые после второй пары алгоритмизации приходили к лаборанту с флешкой "скиньте мне C++ Builer буду свою GTA писать", и потом почему-то пропадали.
Согласно вики PS пилится вот уже 37 лет, 25.9.1 означает что было более 20 глобальных изменений ядра. PS один из основных продуктов Adobe, соответственно из 25 988 сотрудников компании к нему причастны как минимум тысяч 5-7, из них как минимум 1000 топовых лидов.
Поэтому как сказал VoidVolker нужна очень большая и не менее крутая команда команд разработки, чтобы потянуть такого гиганта.
В одиночку начинающему, в качестве стартового курсача, вполне реально осилить классической MS Paint с фронтом на том же модном Unity, а потом с опытом думать куда двигаться.
Организовать большую команду, состоящую из множества более маленьких команд, которые специализируются на своей части. Сам проект разбивается на множество более мелких проектов, а эти проекты на еще более мелкие модули. Для каждой задачи или группы проектов - своя команда. Разработка приложений такого объема занимают сотни тысяч и миллионы человеко-часов. Примерно так:
Составляется краткое ТЗ
Максимально подробно описывается проект в виде более детального ТЗ
Нанимаете опытного IT менеджера
Менеджер собирает команду для разработки частного ТЗ полностью со всеми деталями проекта
На основе ЧТЗ формируются требования к командам для реализации проекта
Подготавливается план разработки проекта
Нанимается команда или команды сопровождения и поддержки - системные администраторы, менеджеры, аналитики, консультанты, бухгалтеры, юристы и прочие
Организовывается рабочее пространство для команд разработки
Нанимаются и организовываются команды разработки в соответствии с планом
Ну и далее начинается основная работа - поэтапная реализация проекта