Как лучше всего создать новый проект .NET?

Так что я недавно отвечаю за проекты в своей компании (нас пока всего двое парней, но мы растем), и я хочу правильно строить свои проекты.

Все мои проекты уже находятся в репозитории SVN, у меня настроено программное обеспечение для отслеживания ошибок, но то, что я ищу, - это лучший способ разместить новый проект с тестами, SVN и сервером сборки. Я хочу настроить все наши новые проекты для CI, но я не совсем уверен, как все сделать так, чтобы все было как можно более гладко.

Я знаю, что мне нужно:

  • Сервер сборки
  • Все материалы для сборки / тестирования в репозитории SVN (включая схему БД)
  • Макет проекта, способствующий CI

Как вы, ребята, настраиваете свои проекты? Я хочу использовать MSBuild для своего сервера сборки, поскольку все уже настроено таким образом благодаря VS, но я также ищу советы о том, как следует размещать файлы, как проекты должны быть размещены в решении и т. д. В нынешнем виде в моем решении около 5 проектов, один из которых - проект тестирования, который содержит все тесты для остальных моих проектов. Это предпочтительный метод?

Как насчет макета внутри вашего репозитория? Где вы храните материалы, связанные с БД? Технические характеристики и документы?

Используете ли вы какое-либо конкретное программное обеспечение для CI или просто следуете мантре «Непрерывная интеграция больше похожа на состояние ума»?

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
0
498
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

Круиз-контроль - отличный продукт для непрерывной интеграции. Другой вариант, который немного «проще» настроить, - это TeamCity от Jet Brains.

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

Alex Fort 08.01.2009 17:38

Это довольно просто, если у вас есть правильное представление! Попробуй это (это то, что я использовал, чтобы намочить ноги) msmvps.com/blogs/omar/archive/2008/10/06/…

cgreeno 08.01.2009 17:43

Вы, ребята, были правы, я просто ошибся. Мне сейчас очень приятно работать :)

Alex Fort 09.01.2009 17:16

TeamCity - очень хороший продукт CI, и он бесплатен для определенного количества проектов.

Алекс,

Я предлагаю вам начать здесь: http://msdn.microsoft.com/en-us/library/ms998208.aspx

Это касается собственных рекомендаций Microsoft по структуре проектов. Судя по всему, вы действительно должны придерживаться единой архитектуры решения.

Что касается конкретной платформы CI, очевидно, что доступно несколько вариантов. Отчасти это зависит не только от функциональности, но и от вкуса. Поиск в сети должен дать вам большинство ответов, которые вам нужны, о плюсах и минусах!

Ник.

Я думаю, что руководство Microsoft действительно стоит прочитать, хотя вы должны знать, что оно немного устарело. проголосовали за.

Sergio Acosta 27.02.2009 21:32

Я поддержу голосование за круиз-контроль как CI и отмечу, что CruiseControl.NET очень хорошо и легко интегрируется с MSBuild.

Древовидный хирург - http://www.codeplex.com/treesurgeon

"Tree Surgeon - это генератор дерева разработки .NET. Просто дайте ему имя вашего проекта, и он настроит для вас дерево разработки за секунды. Более того, ваше новое дерево имеет годы накопленного опыта в области проектирования сборки, построенного правильно. в."

Поэтому я меняю свою структуру по мере обучения, но сейчас:

(SVN REPO)
/trunk
  MyProject  <-- solution & .build file (i use nant or msbuild)
    conf <-- IIS Settings etc go here
    docs <-- that documentation i never do
    lib <-- 3rd Party libraries eg ApplicationBlock,ASPNet MVC
    src
      Web
      Data
      Business
    test
      Web.Test
      Data.Test
      Business.Test  
    tools
      nant
      nunit
      moq
  Project2
    conf
    lib
    src
    test
    tools
/branches
/tags

Надеюсь, вы увидите мою структуру выше

Дженкинс - отличный продукт. Имеют очень плагины и активное сообщество.

Полностью совместим с .NET. Поддержите рабов машин.

Другие вопросы по теме