Я бы сосредоточился на C# и .NET, используя только моно-платформенные кросс-платформенные библиотеки.
Таким образом, ваш код сможет работать на подавляющем большинстве платформ.
Я начну с предположения, что и .NET и Java имеют большие и эквивалентные вспомогательные инфраструктуры, API и т.д. Вы обладаете обширными знаниями в области .Net и для реализации на Java вам необходимо изучить Java-эквиваленты некоторого подмножества из них.
Я высоко ценю изучение чего-то нового, поэтому не вижу фундаментальной проблемы в переходе на Java. Но, если "след" того, что вам нужно изучить, очень обширен, то это может встать на пути ваших реальных целей - а именно, построить что-то.
Так что я думаю, что один большой вопрос - это размер вашего "следа" обучения CMS. Я думаю, что CMS очень много знает о логике и структурах данных и, возможно, использует только небольшой набор Java API - сетевой и файловый io, или базы данных? Любой пользовательский интерфейс может быть платформонейтральным Javascript/ AJAX, возможно?
Основной альтернативой, похоже, является Mono. Я не могу разговаривать с практиками работы под Mono, думаю, что это вполне нормально. Меня больше беспокоит, хватит ли вам спектра платформ. iSeries, например, это поддерживается? Для вас это имеет значение?
Мое личное предчувствие в том, что эмуляции, как правило, неудовлетворительны, всегда есть какая-нибудь выгода. Так что я бы выбрал Яву. Но тогда я парень с Явой...
Я не уверен, что вы использовали C # или Java для этого конкретного проекта. Я не так разбираюсь в дизайне CMS, как мог бы быть, но я знаю C # довольно хорошо, и мне трудно посмотреть, какие преимущества C # предлагают на Python в этом проблемном домене, особенно учитывающие прочные рамки, такие как Django и Pylons в качестве начала точка. (Мои знания о Java есть ... слабый.) Какие конкретные элементы дизайна сделают C # / Java лучшего выбора?