Почему делает C#, сгенерированный разработчиками код (как Form1.designer.cs) играет опустошение с Подрывной деятельностью?

Я опоздал, но я хочу рассказать библиотеке, с которой я закончил.

RxPermission - лучшая библиотека с реактивным кодом, что делает код разрешений неожиданным только 1 строкой.

RxPermissions rxPermissions = new RxPermissions(this);
rxPermissions
.request(Manifest.permission.CAMERA,
         Manifest.permission.READ_PHONE_STATE)
.subscribe(granted -> {
    if (granted) {
       // All requested permissions are granted
    } else {
       // At least one permission is denied
    }
});

добавить в свой build.gradle

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
    implementation 'com.github.tbruyelle:rxpermissions:0.10.1'
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
}

17
задан Shalom Craimer 28 January 2009 в 06:33
поделиться

4 ответа

Я не знаком с C# или Разработчиком Windows Form, но рассмотрением приблизительно designer.cs файлы, я мог найти онлайн, что у них нет особенно сложной структуры.

, Какие части его перестраиваются? Я предполагаю, что это - главным образом порядок свойств в InitializeComponent() метод, это смешано?

, Если это так, Вы смогли писать простой сценарий, который переупорядочивает те строки в алфавитном порядке, скажите (особенно, если Вы никогда не редактируете эти файлы вручную так или иначе), и использование, что как сценарий рычага перед фиксацией в Подверсии.

Гм, право... царапает это. Большое красное поле у основания того раздела говорит, что Вы, как предполагается, не изменяете транзакции в сценариях рычага. Но Вы смогли находить другой способ запустить тот скрипт где-нибудь между designer.cs изменяемый файл и это фиксировавший.

Редактирование:

На самом деле, учитывая комментарий scraimer к этому:

Общий взлом, но в худшем случае, незадолго до слияния, я мог отсортировать ОБА файла и сделать слияние просто линию за линией дело...

Разве Вы не можете позволить Подверсии установить внешнюю программу слияния? Я использовал KDiff3, который может выполнять команду препроцессора прежде, чем сделать diffs или слияния , таким образом, Вы могли автоматизировать тот процесс.

2
ответ дан 30 November 2019 в 14:06
поделиться

Вот некоторые вещи попробовать:

  • Делают вещи более модульными. Используйте компоненты как Пользовательские элементы управления и т.д. для разделения форм на несколько, меньшие физические файлы.
  • шаблоны разработки уровня представления Использования как MVP для перемещения кода из представлений и в стандарт ПОСТЕПЕННО классы.
  • Последние версии SVN позволяют, Вы для взятия твердых блокировок - используете это для предотвращения сложных сценариев слияния.

Hope, которая помогает.

10
ответ дан 30 November 2019 в 14:06
поделиться

Я вполне уверен нет никакой серебряной пули для этой проблемы, поскольку разработчик топает на всем протяжении designer.cs.

Все, что я могу предложить, должно минимизировать использование разработчика. Лично я только сцепляюсь с событиями в коде и только использую разработчика только для инициализации и расположения. Как таковой не слишком трудно понять различия в changeset ("о, кто-то добавил кнопку", "о, кто-то изменился, как это смотрит немного").

3
ответ дан 30 November 2019 в 14:06
поделиться

Единственным путем я знаю об истинно избежать этой проблемы, когда использование системы управления источника стилей слияния, такой как подверсия должно вручить коду формы и не использовать разработчика. Очевидно, это не было бы хорошо, потому что рука, кодирующая эти формы, может требовать времени.

причина, это происходит, состоит в том, потому что свойства элементов управления сериализируются разработчиком в порядке, они отбрасываются на форме. Вырезание и вставление может произвести этот порядок, а также перемещение управления так, чтобы это имело нового родителя (такого как углубление управления к панели, когда это было ранее непосредственно на форме).

я имел эту проблему на крупном проекте и имел к imploy довольно ужасный подход - разность designer.cs файлы против целевого пересмотра регистрации, и вручную объедините их использующий инструмент слияния. Это не идеально, но это - единственный способ, которым я последовательно вижу эту работу с svn или другим инструментом управления источником стилей слияния.

другая опция состояла бы в том, чтобы использовать подход блокировки с управлением исходным кодом, как другие указали, но это идет с неприятными побочными эффектами также.

0
ответ дан 30 November 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: