Создание среды разработки и производства C # Winform - PullRequest
3 голосов
/ 27 августа 2009

Мне интересно, как лучше создать среду разработки и производства для моего проекта C # winforms. К сожалению, нет среды разработки. Скорее, я должен указывать путь публикации каждый раз, когда я хочу создать сборку Production или Development. Кроме того, поскольку каждая сборка prod или dev использует различную строку подключения, я должен затем войти в код и изменить это.

РЕДАКТИРОВАТЬ Еще одна вещь, которую я хотел бы добавить, это то, что «тестеры», так сказать, будут запускать программу из локального .exe-файла, который будет проверять исходные файлы и обнаруживать обновление должно быть сделано. Единственная причина, по которой я упоминаю это, заключается в том, что тестеры не будут запускать код в режиме «DEBUG».

Есть идеи?

Заранее спасибо!

Ответы [ 4 ]

4 голосов
/ 27 августа 2009

UPDATE

Уф, 2009 год, конечно, был давно;) Я собираюсь оставить исходный ответ для потомков, но, как сказал Эрик Дж. В обновленной версии своего поста в 2012 году Slowcheetah - гораздо более гибкий подход к этой проблеме, поскольку он позволяет вам создавать несколько конфигурационных файлов для каждой конфигурации.

Оригинальный ответ

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

Я не знаю, используете ли вы режим компиляции Debug и Release в менеджере конфигурации, но возможно использовать его с директивой прекомпилятора:

public class ConnectionStringProvider
{
  public static string GetConnectionString()
  {
    #if (DEBUG)
      return DevConnectionString;
    #else
      return ProdConnectionString;
    #endif
  }
}

Если вы используете панель настроек VS2005 (в настройках проекта), вы можете установить там 2 строки подключения и использовать их вместо постоянного значения. Если вы используете какой-либо из .Net DataSource, вы всегда можете использовать строку подключения DEV для создания вашего объекта.

Кроме того, поставщик строки подключения может использовать шаблон Singleton, но я не уверен, что будет реальная выгода.

3 голосов
/ 27 августа 2009

Я не уверен, что вы подразумеваете под

Жаль, что есть нет среды разработки.

Однако я бы отметил, что вы можете справиться с такими вещами, как

Также, поскольку каждая сборка prod или dev использует другая строка подключения, я должен затем войдите в код и измените это а также.

с флагами условной компиляции. Например, вы могли бы что-то вроде:

#if DEBUG
connString = "ABC";
#else
connString = "DEF";
#endif

DEBUG может не подходить для вашей среды. Вы можете определить свои собственные флаги, такие как PROD или DEV, и указать, следует ли определять их для определенного типа сборки, или из командной строки, если сборка происходит за пределами IDE.

UPDATE

С момента публикации этого ответа, SlowCheetah стал доступен. Он позволяет преобразовывать XML для вашего app.config / web.config (и для любого другого XML-файла, такого как файлы конфигурации NLog) для каждой конфигурации сборки. Итак, если вы говорите конфигурацию сборки QA, вы можете иметь преобразование XML для QA, которое устанавливает, например, соответствующая строка подключения для среды QA.

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

1 голос
/ 28 августа 2009

А как насчет использования Virtual PC для создания отдельной среды? Теперь это лучшая практика.

1 голос
/ 28 августа 2009

Вы можете прочитать строку подключения из файла конфигурации.

Затем вы будете использовать один и тот же файл программы в PROD и DEV, просто другой файл конфигурации.

...