Работа visual studio: Учебник. Начало работы с Visual Basic — Visual Studio
ГЛАВА 8 Работа с проектом базы данных среде Visual Studio .NET
Читайте также
12.3. Начало работы над проектом в среде Rational Rose
12.3. Начало работы над проектом в среде Rational Rose
Из всех рассмотренных видов канонических диаграмм в среде Rational Rose 98/98i не поддерживается только диаграмма деятельности. Общая последовательность работы над проектом аналогична последовательности рассмотрения канонических
Создание приложения в среде MS Visual C++ 5.0
Создание приложения в среде MS Visual C++ 5.0
Перед началом работы необходимо скопировать файлы glut.h, glut32.lib glut32.dll в каталоги…MSVCIncludeGl,…MSVCLib,…WindowsSystem соответственно. Также в этих каталогах надо проверить наличие файлов gl.h, glu.h, opengl32.lib, glu32.lib, opengl32.dll, glu32.dll, которые обычно входят в
Использование инструментов Visual Studio для создания базы данных
Использование инструментов Visual Studio для создания базы данных
Существует несколько способов создания баз данных в SQL Server. С помощью набора инструментов SQL Enterprise Manager базы данных можно создавать графически или программно (с помощью команд на языке SQL). Помимо него, существует
Возможности Visual Studio 2005
Возможности Visual Studio 2005
Как и следует ожидать, Visual Studio 2005 содержит все необходимые средства проектирования, средства доступа к базам данных, утилиты обзора проектов и объектов, а также интегрированную систему справки. Но, в отличие от средств разработки, которые были
Реализация интерфейсов в Visual Studio 2005
Реализация интерфейсов в Visual Studio 2005
Программирование на основе интерфейсов – это мощная техника программирования, но процесс реализации интерфейсов может предполагать ввод программного кода вручную в очень больших объемах. Поскольку интерфейсы представляют собой
Файлы конфигурации и Visual Studio 2005
Файлы конфигурации и Visual Studio 2005
Вы, конечно, можете всегда создавать XML-файлы конфигурации вручную с помощью своего любимого текстового редактора, но Visual Studio 2005 позволяет создать файл конфигурации в процессе построения программы-клиента. Для примера загрузите в Visual Studio
Файл AssemblyInfo.cs в Visual Studio 2005
Файл AssemblyInfo.cs в Visual Studio 2005
По умолчанию Visual Studio 2005 генерирует файл с именем AssemblyInfo.cs (рис. 12.9).
Рис. 12.9. Файл AssemblyInfo.csЭтот файл является удобным местом для хранения атрибутов, которые должны применяться на уровне компоновочного блока. В табл. 12.4 приводится список некоторых
Генерирование ресурсов в Visual Studio 2005
Генерирование ресурсов в Visual Studio 2005
С файлами *.resx и *.resources можно, конечно, работать вручную в командной строке, но Visual Studio 2005 предлагает средства автоматизации создания и встраивания ресурсов в проект. Для примера создайте новое приложение Windows Forms, назвав его MyResourcesWinApp.
Соединение с базой данных в Visual Studio 2005
Соединение с базой данных в Visual Studio 2005
Итак, база данных Cars создана, и вы можете установить соединение с этой базой данных из Visual Studio 2005. Это позволит просматривать и редактировать различные объекты базы данных в среде разработки Visual Studio 2005. Используя меню View, откройте окно
Создание Web-сервиса XML в Visual Studio 2005
Создание Web-сервиса XML в Visual Studio 2005
Создав Web-сервис XML вручную, давайте посмотрим, как это делается в Visual Studio 2005. Выбрав File?New?Web Site из меню, создайте новый C#-проект Web-сервиса XML с именем MagicEightBallWebService и сохраните этот проект на своем локальном диске (рис. 25.3).Замечание. Как и в
Взаимодействие с UDDI в Visual Studio 2005
Взаимодействие с UDDI в Visual Studio 2005
Вспомните о том, что диалоговое окно Add Web Reference позволяет не только получить список всех Web-сервисов XML, размещенных на вашей локальной машине (а также по известному URL), но и предъявить запрос к UDDI-серверу. Как правило, вы имеете на выбор
Глава 6 NET Compact Framework и разработка программ для Pocket PC в Microsoft Visual Studio.NET 2003
Глава 6 NET Compact Framework и разработка программ для Pocket PC в Microsoft Visual Studio.NET 2003
Не покривлю душой, если скажу, что мы переходим к одной из самых интересных частей книги. На самом деле, еще совсем недавно технология. NET вызывала у меня вполне законные опасения. Уж очень это все было
Что нового в Visual Studio .NET 2005
Что нового в Visual Studio .NET 2005
Если у вас уже был опыт программирования под Visual Studio .NET 2003, то вы заметите, что на панели инструментов появились новые элементы управления. Они будут рассматриваться в главе, посвященной элементам управления. При разработке дизайна приложения
10.6. РАБОТА НАД ПРОЕКТОМ В СРЕДЕ RATIONAL ROSE
10.6. РАБОТА НАД ПРОЕКТОМ В СРЕДЕ RATIONAL ROSE
Из всех рассмотренных видов канонических диаграмм в среде Rational Rose 98/98i не поддерживается только диаграмма деятельности.В ходе работы над диаграммами проекта имеется возможность удаления и добавления соответствующих графических
Глава 2 Работа в среде Windows Vista
Глава 2
Работа в среде Windows Vista
? Урок 2.1. Меню Пуск и Панель задач? Урок 2.2. Рабочий стол? Урок 2.3. Настройка интерфейса Windows Vista? Урок 2.4. Окна папок? Урок 2.5. Упорядочивание и поиск файлов? Урок 2.6. Операции с файлами и папками? Урок 2.7. Работа с изображениями в Windows? Урок 2.8. Работа со
Практическая работа 53. Запуск Access. Работа с объектами базы данных
Практическая работа 53. Запуск Access. Работа с объектами базы данных
Задание. Ознакомиться с окном программы Access. Запустить и рассмотреть учебную базу данных.
ВНИМАНИЕ
При выполнении задания помните, что все внесенные в базу данных изменения записываются немедленно и их
Работа с наборами данных в Visual Studio
Работа с наборами данных в Visual Studio
Опубликовано: Апрель 2016
Наборы данных представляют собой объекты, содержащие таблицы данных, в которых можно временно хранить данные для их использования в приложении. Если ваше приложение требует работы с данными, можно загрузить их в набор данных. Данные для работы приложения в этом случае будут храниться в локальной памяти. Можно работать с данными в наборе данных, даже если приложение отключается от базы данных. Набор данных хранит информацию об изменениях своих данных. Так что обновления можно отслеживать и отправлять обратно в базу данных, когда ваше приложение вновь подключится к ней.
В следующих разделах содержатся сведения о работе с наборами данных в Visual Studio:
Структура DataSet схожа со структурой реляционной базы данных; она предоставляет собой иерархическую объектную модель таблиц, строк, столбцов, ограничений и связей.
Наборы данных могут быть типизированными или нетипизированными. (Дополнительную информацию см. ниже в разделе «Типизированные и нетипизированные наборы данных».) Типизированные наборы данных получают свою схему (таблицу и структуру столбцов) из файлов XSD и проще программируются. В своих приложениях можно использовать как типизированные, так и нетипизированные наборы данных. Однако для поддержки типизированных наборов данных в Visual Studio предусмотрено больше инструментов, которые упрощают процесс программирования наборов данных и уменьшают вероятность возникновения ошибки.
Создать типизированный набор данных можно, запустив мастер мастер настройки источника данных, или путем добавления элемента DataSet с помощью команды «Добавить новый элемент» в меню «Проект». Дополнительные сведения см. в разделе Практическое руководство. Создание типизированного набора данных.
Создать нетипизированный набор данных можно, перетаскивая элементы объекта DataSet из панели элементов на Windows Forms Designer или Component Designer.
После создания набора данных его можно редактировать в Создание и изменение типизированных наборов данных.
Создавать типизированные и нетипизированные наборы данных и работать с ними можно с помощью следующих разделов .NET Framework пространства имен:
Наборы данных находятся в пространстве имен System.Data
Объекты набора данных доступны разработчику посредством стандартных программных конструкций, таких как свойства и коллекции. Примеры.
Заполнение набора данных
По умолчанию набор данных не содержит данных. Заполнение набора данных фактически означает загрузку данных в отдельные объектыDataTable, составляющие набор данных. Таблицы данных заполняются путем выполнения запросов адаптера таблиц или выполнением команд адаптера данных (например SqlDataAdapter). При заполнении набора данных возникают различные события, проверяются ограничения, и т. д. Дополнительные сведения о загрузке данных в набор данных содержатся в разделе Выборка данных в приложение.
Код для заполнения набора данных автоматически добавляется в обработчик событий загрузки формы при перетаскивании элементов из окно «Источники данных» на форму в приложении Windows. Для получения дополнительных сведений выполните следующий пример: Пошаговое руководство. Отображение данных на форме в приложении Windows.
Пример заполнения набора данных с помощью адаптера таблиц
C#
VB
Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet.Customers)
Заполнять наборы данных можно различными способами:
- Если вы создали набор данных с использованием средств проектирования, например с помощью мастера данных, вызовите метод Fill адаптера таблиц. (Адаптеры таблиц создаются при помощи используемого по умолчанию метода Fill, но у вас есть возможность изменить имя метода, поэтому фактическое имя может быть иным.) Для получения дополнительных сведений см. «Заполнение набора данных с использованием адаптеров таблиц», раздел в Практическое руководство. Заполнение данными набора данных.
- Вызовите метод Fill объекта DataAdapter. Дополнительные сведения см. в разделе Заполнение DataSet из адаптера данных DataAdapter.
- Вручную таблицы набора данных можно заполнить, создавая объекты DataRow и добавляя их в коллекцию таблицы DataRowCollection. (Это можно делать только во время выполнения программы; во время разработки задавать элементы коллекции DataRowCollection нельзя.) Дополнительные сведения см. в разделе Добавление данных в DataTable.
- Считывание XML-документа или потока в набор данных. Дополнительные сведения см. в описании метода ReadXml. Пример см. в разделе Пошаговое руководство. Считывание XML-данных в набор данных.
- Слияние (копирование) содержимое одного набора данных с другим. Данный сценарий полезен тогда, когда приложение получает наборы данных из различных источников (например из различных веб-служб XML), но при этом требуется объединить их в один набор данных. Дополнительные сведения см. в разделе Объединение содержимого DataSet.
- Слияние (копирование) содержимого одной таблицы DataTable с другой.
Сохранение данных из набора данных обратно в базу данных
При внесении изменений в записи набора данных эти изменения должны быть записаны в базу данных. Для записи изменений из набора данных в базу данных необходимо вызвать метод Update адаптера таблицы или адаптера данныхDataAdapter, который выполняет обмен данными между набором данных и соответствующей базой данных.
При использовании средств проектирования работы с данными в Visual Studio пересылайте данные обратно в базу данных с помощью метода Update объекта адаптера таблиц для сохраняемых таблиц данных. Примеры.
C#
VB
CustomersTableAdapter.Update(NorthwindDataSet.Customers)
Для более четкого управления процессом обновления вызовите один из методов DBDirect адаптера таблиц, с помощью которого можно передать отдельные значения для каждой строки данных. Дополнительные сведения см. в разделах Практическое руководство. Обновление данных с помощью адаптера таблицы и Пошаговое руководство. Сохранение данных с помощью методов DBDirect адаптера таблицы.
Класс DataRow, используемый для работы с отдельными записями, содержит свойство RowState, значение которого указывает, была ли изменена строка с момента первой загрузки таблицы из базы данных. Возможные значения — [, F:System.Data.DataRowState.Deleted и](assetId:///, F:System.Data.DataRowState.Deleted и?qualifyHint=False&autoUpgrade=True), Modified, Added, и Unchanged. Методы обновления Update адаптера таблиц и адаптера данных DataAdapter проверяют значение свойства RowState, чтобы определить, какие записи необходимо записать в базу данных и какие конкретно команды указанной базы данных (InsertCommand, UpdateCommand и DeleteCommand) должны вызываться.
Дополнительные сведения об обновлении данных см. в разделе Сохранение данных.
Навигация по записям в наборах данных
Так как наборы данных представляют собой полностью отсоединенные от базы данных контейнеры данных, то они (в отличие от наборов записей ADO) не поддерживают понятие текущей записи. Вместо этого доступны все записи в наборе DataSet в любой момент.
Так как не существует текущей записи, то не существует и специального свойства, которое бы указывало на текущую запись, а также методов и свойств для перемещения от одной записи к другой (см. замечание ниже). Можно осуществлять доступ к отдельным таблицам из набора данных как к объектам; каждая таблица представляет собой коллекцию строк. С ней можно работать как с любой другой коллекцией, т. е. обращаться к строкам с помощью индексов коллекции или операторов, определенных для коллекций в используемом языке программирования.
Например, можно получить четвертую строку таблицы Customers с помощью следующего кода:
C#
VB
TextBox1.Text = NorthwindDataSet.Customers(3).ContactName
LINQ to DataSet
LINQ to DataSet позволяет использовать запрос LINQ (Language-Integrated Query) для данных в объекте DataSet. Дополнительные сведения см. в разделе LINQ to DataSet.
Наборы данных и XML
Набор данных – это реляционное представление данных, которое в свою очередь может быть представлено в виде XML. Тесная связь между наборами данных и XML позволяет получить следующие преимущества:
- Структура набора данных – его таблицы, столбцы, отношения и ограничения – может быть определена в виде схемы XML. Наборы данных могут читать и записывать схемы, хранящие структурированную информацию, с помощью методовReadXmlSchema и WriteXmlSchema. Если нет доступной схемы, набор данных может попробовать получить такую (с помощью своего метода InferXmlSchema) из данных в XML-документе, имеющем реляционную структуру. Дополнительные сведения о схемах XML см. Построение XML-схем.
- Можно создать класс набора данных, включающий в себя информацию о схеме, для определения структуры данных. Такой класс называется типизированным набором данных. Сведения о создании типизированных наборов данных содержатся в разделе Практическое руководство. Создание типизированного набора данных.
- Можно прочесть документ или поток XML в набор данных с помощью метода ReadXml набора данных и записать набор данных в виде XML с помощью метода WriteXml. Так как XML – это стандартный формат обмена данными между приложениями, то это означает, что можно загрузить набор данных XML-форматированными данными, полученными от других приложений. Аналогичным образом набор данных может сохранить свои данные в виде XML-потока или документа для того, чтобы предоставить их другим приложениям для совместного использования, или просто для того, чтобы сохранить данные в стандартном формате.
- Можно создать XML-представление (объект XmlDataDocument) содержимого набора данных или таблиц данных, а затем просматривать и обрабатывать данные, используя как реляционные методы (набора данных), так и методы работы с XML. Оба представления автоматически синхронизируются при их изменении.
Сравнение типизированных и нетипизированных наборов данных
Типизированный набор данных извлекается из базового класса DataSet и затем использует сведения из Конструктора наборов данных, которые хранятся в XSD-файле, для создания нового строго типизированного класса набора данных. Сведения, указанные в схеме (таблицы, столбцы и т. д.), создаются и компилируются в этот новый класс набора данных как набор объектов и свойств первичного класса. Так как типизированные наборы данных наследуются от базового класса DataSet, типизированный класс обладает всеми функциональными возможностями класса DataSet и может использоваться с методами, принимающими экземпляр класса DataSet в качестве параметра.
Нетипизированный набор данных, в отличие от типизированного, не имеет соответствующей встроенной схемы. Как и типизированный набор данных, нетипизированный набор содержит такие структуры, как таблицы, столбцы и др., однако они доступны только как коллекции. (Однако после создания вручную таблиц и других элементов данных нетипизированного набора данных можно экспортировать структуру набора данных в качестве схемы с помощью метода WriteXmlSchema набора данных.)
Доступ к данным в типизированных и нетипизированных наборах данных
Класс для типизированного набора данных имеет объектную модель, в которой его свойства принимают действительные имена таблиц и столбцов. Например, при работе с типизированными наборами данных можно ссылаться на столбцы с помощью следующего кода:
C#
VB
‘ This accesses the CustomerID column in the first row of the Customers table.
Dim customerIDValue As String = NorthwindDataSet.Customers(0).CustomerID
В то же время при работе с нетипизированным набором данных эквивалентный код будет выглядеть так:
C#
VB
Dim customerIDValue As String =
CType(dataset1.Tables(«Customers»).Rows(0).Item(«CustomerID»), String)
Типизированный доступ не только отличается большей удобочитаемостью, но и полностью поддерживается технологией IntelliSense в Visual Studio Редакторе кода. Помимо того, что с таким кодом проще работать, синтаксис для типизированного набора данных позволяет проверять типы во время компиляции, что существенно уменьшает вероятность ошибок при присвоении значений элементам набора данных. Если изменить имя столбца в DataSet и затем скомпилировать приложение, будет получена ошибка построения. Двойным щелчком клавишей мыши по ошибке построения в Списке задач можно перейти непосредственно к строке(-ам) кода, ссылающейся на старое имя столбца. Кроме того, доступ к таблицам и столбцам в типизированном наборе данных во время выполнения происходит несколько быстрее, так как доступ определяется на этапе компиляции, а не с помощью коллекций во время выполнения.
Хотя типизированные наборы данных обладают рядом преимуществ, во многих случаях целесообразно применять нетипизированные наборы. Самый очевидный сценарий – когда для набора данных нет доступной схемы. Такое может произойти, например, если приложение взаимодействует с компонентом, который возвращает набор данных, но при этом его структура заранее не известна. Иногда приходится работать с данными, не имеющими статической предопределенной структуры; в этом случае работать с типизированным набором данных нецелесообразно, так как приходится заново создавать класс типизированного набора данных при каждом изменении структуры данных.
Довольно часто приходится создавать наборы данных динамически, не имея доступной схемы. В этом случае набор данных является просто удобной структурой, в которой можно хранить данные до тех пор, пока они не будут представлены в виде реляционной структуры. В то же время можно использовать такие дополнительные возможности набора данных, как сериализация данных для передачи их в другой процесс или для сохранения в виде XML-файла.
Зависимость от регистра в наборе данных
По умолчанию имена таблиц и столбцов в наборе данных не зависят от регистра. Это означает, что к таблице Customers в наборе данных можно также обратиться и по имени customers. Такой подход соответствует соглашениям о присвоении имен, принятым во многих СУБД, включая SQL Server, где имена элементов данных не должны отличаться друг от друга только регистром букв.
Примечание |
В отличие от наборов данных, XML-документы зависят от регистра, следовательно, имена элементов данных, определенные в схемах, также зависят от регистра. Например, протокол схемы позволяет определить одну таблицу как «Customers», а другую таблицу как «customers». Это может привести к конфликту имен, если для создания набора данных используется схема, содержащая элементы, различающиеся только регистром. |
Однако чувствительность к регистру может быть фактором, определяющим способ интерпретации данных в наборе. Например, при фильтрации данных в таблице набора данных критерий поиска может возвращать различные результаты в зависимости от того, учитывается при сравнении регистр или нет. Можно управлять чувствительностью к регистру при фильтрации, поиске и сортировке, устанавливая свойство CaseSensitive набора данных. По умолчанию все таблицы набора данных наследуют это свойство. (Можно переопределить это свойство для каждой отдельной таблицы, установив свойство CaseSensitive таблицы.)
Связанные таблицы и объекты DataRelation
Если в наборе данных имеется несколько таблиц, то данные, содержащиеся в них, могут быть взаимосвязаны. Набор данных не имеет встроенных сведений о таких отношениях, поэтому для работы с данными в связанных таблицах необходимо создать объекты DataRelation, которые описывают отношения между таблицами в наборе данных. Дополнительные сведения см. в разделе Практическое руководство. Получение доступа к записям в связанных объектах DataTable. Объекты DataRelation могут использоваться для программного извлечения дочерних записей для указанной родительской и наоборот. Дополнительные сведения см. в разделе Отношения в наборах данных. Если база данных содержит отношения между двумя и более таблицами, средства разработки автоматически создадут объекты DataRelation.
Пусть, например, данные о клиентах и заказах организованы так, как в базе данных Northwind. Таблица Customers может содержать записи следующего вида:
CustomerID CompanyName City
ALFKI Alfreds Futterkiste Berlin
ANTON Antonio Moreno Taquerias Mexico D.F.
AROUT Around the Horn London
Набор данных может также содержать другую таблицу, содержащую сведения о заказах. В таблице Orders столбец «Идентификатор заказчика» является внешним ключом. Если выбрать лишь несколько столбцов из таблицы Orders, можно получить следующее:
OrderId CustomerID OrderDate
10692 ALFKI 10/03/1997
10702 ALFKI 10/13/1997
10365 ANTON 11/27/1996
10507 ANTON 4/15/1997
Так как каждый клиент может сделать более одного заказа, то связь между клиентами и заказами будет иметь тип «один-ко-многим». Например, в приведенной выше таблице клиент ALFKI имеет два заказа.
Можно использовать объект DataRelation для получения связанных записей из дочерней или родительской таблицы. Например, при работе с записью, описывающей клиента ANTON, можно получить коллекцию записей, описывающих сделанные им заказы. Дополнительные сведения см. в разделе GetChildRows. Аналогичным образом, при работе с дочерней записью, описывающей заказ с кодом 10507, можно с помощью объекта отношения добраться до родительской записи клиента с кодом ANTON. Дополнительные сведения см. в разделе GetParentRow.
Ограничения
Как и в большинстве баз данных, наборы данных поддерживают ограничения в качестве способа обеспечения целостности данных. Ограничения представляют собой правила, применяемые при вставке, обновлении или удалении строк, содержащихся в таблице. Можно определить два типа ограничений:
- Уникальное ограничение: новые значения в столбце должны быть уникальными в пределах таблицы.
- Ограничение внешнего ключа, которое определяет правила обновления дочерних записей в связанной таблице при обновлении или удалении соответствующих записей в основной таблице. Например, ограничение внешнего ключа проверяет существование родительской записи перед разрешением на создание любых дочерних записей.
В наборе данных ограничения ассоциируются с отдельными таблицами (ограничения внешнего ключа) или столбцами (ограничение уникальности, гарантирующее уникальность значений в столбце). Ограничения реализуются как объекты типа UniqueConstraint или ForeignKeyConstraint. Затем они добавляются к коллекции Constraints объекта класса DataTable. Ограничение уникальности можно указать, установив свойство Unique объекта класса DataColumnв true.
Набор данных сам по себе поддерживает свойство EnforceConstraints булева типа, которое указывает, требуется ли выполнять ограничение. По умолчанию для свойства задано значение true. Однако бывают случаи, когда целесообразно временно отключить ограничения. Чаще всего это происходит при изменении записи таким образом, что на некоторое время возникает недопустимое состояние. После того как все изменения будут внесены (следовательно, состояние снова станет допустимым), ограничения можно опять включить.
В Visual Studio ограничения создаются неявно при определении набора данных. При добавлении к набору данных первичного ключа неявно создается ограничение уникальности для столбца первичного ключа. Можно указать уникальное ограничение для других столбцов, установив их свойство Unique в true.
Ограничения по внешнему ключу создаются созданием объекта DataRelation в наборе данных. Объект DataRelation позволяет разработчику не только получать сведения о связанных записях программным путем, но и определять правила ограничений по внешнему ключу.
Расширенные свойства наборов данных
Расширенные свойства предоставляют возможность сопоставления имен при возникновении конфликтов именования в процессе создания набора данных из XSD-файла. Если идентификатор в XSD-файле отличается от имени, созданного генератором набора данных, расширенное свойство добавляется к набору данных в пространстве имен msprop. В следующей таблице показаны возможные расширенные свойства, которые могут быть сгенерированы:
Объект. | Расширенное свойство |
DataSet | msprop:Generator_UserDSName |
msprop:Generator_DataSetName | |
DataTable | msprop:Generator_UserTableName |
msprop:Generator_TablePropName | |
msprop:Generator_TableVarName | |
msprop:Generator_TableClassName | |
msprop:Generator_RowClassName | |
msprop:Generator_RowEvHandlerName | |
msprop:Generator_RowEvArgName | |
DataColumn | msprop:Generator_UserColumnName |
msprop:Generator_ColumnPropNameInTable | |
msprop:Generator_ColumnPropNameInTable | |
msprop:Generator_ColumnPropNameInRow |
См. также
Подготовка приложения к получению данных
Общие сведения о приложениях для работы с данными в Visual Studio
Подключение к данным в Visual Studio
Выборка данных в приложение
Привязка элементов управления к данным в Visual Studio
Редактирование данных в приложении
Проверка данных
Сохранение данных
Visual Studio Code — больше, чем просто кодовый редактор
В сознании среднестатистического пользователя имя компании Microsoft неизменно ассоциируется с операционной системой Windows, при этом немало остальных выпущенных разработчиком программных продуктов либо остаются неизвестными рядовому юзеру, либо им не уделяется должного внимание. Но подобной близорукостью страдают не только потребители. Порой складывается впечатление, что и программисты ничего не знают или не хотят знать окромя лишь Visual Studio.
Да, продукт превосходный и он стал бы еще лучше, если бы разработчики портировали его на другие платформы, чего, увы, не предвидится.
Переносить эту громоздкую IDE на другие ОС в Microsoft и впрямь не собираются, а чтобы всё не выглядело столь печально, разработчиками компании был создан Visual Studio Code — очень даже неплохой редактор кода, использовать который можно не только на Windows, но и на Linux, и OS X. При этом он достаточно прост в освоении, наделен удобным интерфейсом и всеми необходимыми функциями для создания приложений, а ежели чего не хватает, то это всегда можно восполнить путем установки дополнительных расширений.
Основные возможности и преимущества программы
• Visual Studio Code поддерживает работу с TypeSсript, JavaSсript, Node.js и Mono.
• Имеются встроенные отладчик и командная строка.
• Поддержка практически всех языков программирования.
• Наличие встроенной библиотеки элементов кода.
• Автозавершение при вводе кода.
• Добавление в библиотеку собственных сниппетов.
• Подсветка синтаксиса.
• Одновременная работы с несколькими проектами.
• Поддержка многооконного и двухпанельного режимов.
• Расширение функционала с помощью плагинов.
• Интеграция с Visual Studio Team Services, GitHub и GIT.
• Наличие встроенных средств для тестирования, сборки, упаковки и развертывания приложений.
• Публикация созданных программных продуктов в Microsoft Azure (через посредство Visual Studio Team Services).
• Интегрированная система подсказок.
• Командная работа над проектами.
• Широкий набор настроек и кроссплатформенность.
Интерфейс и настройки Visual Studio Code
Будучи только установленной и запущенной, программа встречает нас приветственной вкладкой с предложением выполнить базовые настройки. По умолчанию вкладка открывается всякий раз при запуске программы, но эту опцию можно отключить.
В верхней части размещено стандартное текстовое меню, слева располагается панель быстрого доступа, включающая в себя Проводник, Поиск, Систему управления версиями, Отладчик и Менеджер расширений. Вся основная работа, то есть создание и редактирование кода ведется в правой большей части окна редактора, при этом использование независимых вкладок упрощает задачу, позволяя открывать в них отдельные файлы или даже целые проекты.
Последние добавляются в Visual Studio Code либо через главное меню «File», либо простым перетаскиванием каталога на окно редактора. В нижней части окна располагается область вывода, в которой имеются четыре вкладки, каждая из которых отвечает за вывод данных определенного типа, зависящего от проекта, над которым ведется работа. Особого внимания заслуживает вкладка «Terminal», позволяющая работать с консолью PowerShell, командной строкой CMD или Linux Bash прямо в окне редактора.
Visual Studio Code располагает множеством всевозможных настроек, в число которых входит изменение внешнего вида редактора и его поведения.
Размер и гарнитура шрифта, цветовая схема, размер новых окон, показ панелей инструментов, вывод подсказок и уведомлений — всё это и многое другое может быть настроено с учетом предпочтений пользователя.
Ну, и конечно, не стоит забывать и о возможности расширения функционала — плагины в Visual Studio Code можно устанавливать непосредственно из программы.
Итог
Visual Studio Code не является полноценной IDE, это удобный, простой и доступный кодовый редактор с расширенными возможностями. Вряд ли он глубоко заинтересует профессиональных программистов, зато более чем наверняка полезным для себя его найдут начинающие кодеры, а также разработчики веб-приложений. Не помешает ознакомиться с Visual Studio Code и тем, кто активно использует в своей работе другие кодовые редакторы, хотя бы ради сравнения. Оценив функционал приложения, приверженцы других инструментов разработки найдут для себя немало интересного и очень даже возможно, отдадут ему свое предпочтение.
Использование интеграции Git в Visual Studio Code
Введение
Редактор Visual Studio Code (VS Code) стал одним из самых популярных для веб-разработки. Его популярность обусловлена множеством встроенных возможностей, в том числе интеграции с системой контроля исходного кода, а именно с Git. Использование возможностей Git из VS Code позволяет сделать рабочие процессы более эффективными и надежными.
В этом учебном модуле мы изучим интеграцию контроля исходного кода в VS с помощью Git.
Предварительные требования
Для этого обучающего модуля вам потребуется следующее:
- Git, установленный на вашем компьютере. Более подробную информацию о том, как добиться этого, можно найти в учебном модуле Введение в Git.
- Последняя версия Visual Studio Code, установленная на вашем компьютере.
Шаг 1 — Знакомство с вкладкой Source Control
Прежде всего, чтобы воспользоваться преимуществами интеграции контроля исходного кода, следует инициализировать проект как репозиторий Git.
Откройте Visual Studio Code и запустите встроенный терминал. Вы можете открыть его, используя сочетание клавиш CTRL + `
в Linux, macOS или Windows.
Используя терминал, создайте каталог для нового проекта и перейдите в этот каталог:
- mkdir git_test
- cd git_test
Затем создайте репозиторий Git:
Также вы можете сделать это в Visual Studio Code, открыв вкладку Source Control (иконка выглядит как развилка дороги) в левой панели:
Затем нажмите кнопку Open Folder:
При нажатии кнопки откроется проводник файлов, где будет открыт текущий каталог. Выберите предпочитаемый каталог проекта и нажмите Open.
Затем нажмите Initialize Repository:
Если теперь вы посмотрите на свою файловую систему, вы увидите, что она содержит каталог .git
. Чтобы сделать это, используйте терминал для перехода в каталог проекта и вывода его содержимого:
Вы увидите созданный каталог .git
:
Output
Это означает, что репозиторий инициализирован, и теперь вам следует добавить в него файл index.html
.
После этого на панели Source Control вы увидите, что рядом с именем вашего нового файла отображается буква U. Обозначение U означает, что файл не отслеживается, то есть, что это новый или измененный файл, который еще не был добавлен в репозиторий:
Вы можете нажать значок плюс (+) рядом с файлом index.html
, чтобы включить отслеживание файла в репозитории.
После этого рядом с файлом появится буква A. A обозначает новый файл, который был добавлен в репозиторий.
Чтобы записать изменения, введите команду отправки в поле ввода в верхней части панели Source Control. Затем нажмите иконку отметки check для отправки файла в репозиторий.
После этого вы увидите, что несохраненных изменений нет.
Теперь добавьте немного содержания в файл index.html
.
Вы можете использовать ярлык Emmet для генерирования базовой структуры кода HTML5 в VS Code, нажав !
, а затем клавишу Tab
. Теперь добавьте что-нибудь в раздел <body>
, например, заголовок <h2>
, и сохраните файл.
На панели исходного кода вы увидите, что ваш файл изменился. Рядом с именем файла появится буква M, означающая, что файл изменен:
Для практики давайте запишем это изменение в репозиторий.
Теперь вы познакомились с работой через панель контроля исходного кода, и мы переходим к интерпретации показателей gutter.
Шаг 2 — Интерпретация показателей Gutter
На этом шаге мы рассмотрим концепцию Gutter («Желоб») в VS Code. Gutter — это небольшая область справа от номера строки.
Если ранее вы использовали сворачивание кода, то в области Gutter находятся иконки «Свернуть» и «Развернуть».
Для начала внесем небольшое изменение в файл index.html
, например, изменим содержание внутри тега <h2>
. После этого вы увидите, что измененная строка помечена в области Gutter синей вертикальной чертой. Синяя вертикальная черта означает, что соответствующая строка кода была изменена.
Теперь попробуйте удалить строку кода. Вы можете удалить одну из строк в разделе <body>
вашего файла index.html
. Обратите внимание, что в области Gutter появился красный треугольник. Красный треугольник означает строку или группу строк, которые были удалены.
Теперь добавьте новую строку в конец раздела <body>
и обратите внимание на зеленую полосу. Вертикальная зеленая полоса обозначает добавленную строку кода.
В этом примере описаны индикаторы области Gutter для случаев изменения, удаления и добавления строки:
Шаг 3 — Просмотр отличий файлов
VS Code также позволяет посмотреть отличия между разными версиями файла. Обычно для этого нужно загружать отдельный инструмент diff, так что встроенная функция повысит эффективность работы.
Чтобы посмотреть отличия, откройте панель контроля исходного кода и дважды нажмите на измененный файл. В этом случае следует дважды нажать на файл index.html
. Откроется типовое окно сравнения, где текущая версия файла отображается слева, а ранее сохраненная в репозитории версия — справа.
В этом примере мы видим, что в текущей версии добавлена строка:
Шаг 4 — Работа с ветвлением
Вы можете использовать нижнюю панель для создания и переключения ветвей кода. В нижней левой части редактора отображается иконка контроля исходного кода (которая выглядит как дорожная развилка), после которой обычно идет имя главной
ветви или ветви, над которой вы сейчас работаете.
Чтобы создать ветвление, нажмите на имя ветви. Откроется меню, где вы сможете создать новую ветвь:
Создайте новую ветвь с именем test
.
Теперь внесите изменение в файл index.html
, чтобы перейти в новую ветвь test
, например, добавьте текст this is the new test branch
.
Сохраните эти изменения ветви test
в репозитории. Затем нажмите на имя ветви в левом нижнем углу еще раз, чтобы переключиться обратно на главную ветвь master
.
После переключения обратно на ветвь master
вы увидите, что текст this is the new test branch
, сохраненный для ветви test
, отсутствует в главной ветви.
Шаг 5 — Работа с удаленными репозиториями
В этом учебном модуле мы не будем вдаваться в детали, но панель Source Control также предоставляет доступ для работы с удаленными репозиториями. Если вы уже работали с удаленными репозиториями, то вы увидите знакомые вам команды, такие как pull, sync, publish, stash и т. д.
Шаг 6 — Установка полезных расширений
В VS Code имеется не только множество встроенных функций для Git, но и несколько очень популярных расширений, добавляющих дополнительные функции.
Git Blame
Это расширение дает возможность просматривать информацию Git Blame в панели состояния для текущей выделенной строки.
Английское слово Blame имеет значение «винить», но не стоит беспокоиться — расширение Git Blame призвано сделать процесс разработки более практичным, а не обвинять кого-то в чем-то плохом. Идея «винить» кого-то за изменения кода относится не к буквальному возложению вины, а к идентификации человека, к которому следует обращаться с вопросами в отношении определенных частей кода.
Как вы видите на снимке экрана, это расширение выводит на нижней панели инструментов небольшое сообщение, указывающее, кто изменял текущую строку кода, и когда было сделано это изменение.
Git History
Хотя вы можете просматривать текущие изменения, сравнивать версии и управлять ветвлением с помощью встроенных функций VS Code, они не дают возможности просматривать историю Git. Расширение Git History решает эту проблему.
Как можно увидеть на снимке ниже, это расширение позволяет тщательно изучать историю файла, автора, ветви и т. д. Чтобы активировать показанное ниже окно Git History, нажмите на файл правой кнопкой мыши и выберите пункт Git: View File History:
Также вы сможете сравнивать ветви и записанные в репозиторий версии, создавать ветви из записанных версий и т. д.
Git Lens
GitLens дополняет возможности Git, встроенные в Visual Studio Code. Это расширение помогает визуализировать принадлежность кода через аннотации Git Blame и линзу кода, просматривать и изучать репозитории Git из среды VS Code, получать полезные аналитические данные с помощью мощных команд сравнения, а также выполнять многие другие задачи.
Расширение Git Lens — одно из самых мощных и популярных среди сообщества разработчиков расширений. В большинстве случаев его функции могут заменить каждое из вышеперечисленных двух расширений.
В правой части текущей строки, над которой вы работаете, отображается небольшое сообщение о том, кто внес изменение, когда это было сделано, а также сообщение о записи изменения в репозиторий. При наведении курсора на это сообщение выводится всплывающий блок с дополнительной информацией, включая само изменение кода, временную метку и т. д.
Также данное расширение предоставляет много функций, связанных с историей Git. Вы можете легко получить доступ к разнообразной информации, включая историю файлов, сравнение с предыдущими версиями, открытие определенных редакций и т. д. Чтобы открыть эти опции, вы можете нажать на текст на нижней панели состояния, где указан автор, изменивший строку кода, а также время ее изменения.
При этом откроется следующее окно:
Это расширение имеет очень много функций, и потребуется время, чтобы разобраться со всеми открываемыми им возможностями.
Заключение
В этом учебном модуле вы научились использовать интеграцию с системой контроля исходного кода в VS Code. VS Code предоставляет множество функций, для использования которых раньше нужно было загружать отдельный инструмент.
AWS Toolkit for Visual Studio
AWS Toolkit for Visual Studio в целях удобства включает в себя AWS SDK для .NET, поэтому вы можете начать создавать в Visual Studio приложения .NET для сервисов инфраструктуры AWS, включая Amazon S3, Amazon EC2, AWS Elastic Beanstalk и Amazon DynamoDB.
AWS Elastic Beanstalk
Используйте AWS Toolkit for Visual Studio для разработки, отладки и развертывания интернет-приложений .NET с помощью шаблонов интернет-приложений. Используйте Visual Studio для создания и локальной работы приложений перед их развертыванием в AWS Elastic Beanstalk. Подробнее »
AWS Lambda и Amazon API Gateway
Создавайте бессерверные приложения с минимальными требованиями к управлению и основанном на событиях масштабировании на языках программирования C# и Node.js с использованием AWS Lambda и Amazon API Gateway.
Amazon Elastic Container Service
Легко создавайте, регистрируйте и развертывайте приложения .NET Core Docker в Amazon Elastic Container Service, не покидая Visual Studio. Подробнее »
AWS Explorer
AWS Explorer расширяет возможности управления ресурсами AWS, включая объекты Amazon S3, таблицы Amazon DynamoDB и инстансы EC2.
CloudFormation Editor
Создавайте новые интернет-приложения из шаблонов .NET. Собирайте проекты в Visual Studio с помощью IntelliSense и выполняйте развертывание на AWS с AWS CloudFormation. Подробнее »
Шаблоны проектов
AWS Toolkit for Visual Studio включает шаблоны функций AWS Lambda, шаблоны AWS CloudFormation и шаблоны других приложений, иллюстрирующие использование сервисов AWS.
Планируете развернуть сервер Microsoft Windows Server или решение для него (например, Microsoft SQL или Microsoft SharePoint) на платформе AWS и хотите обсудить свой ИТ-проект с представителем отдела продаж AWS? Свяжитесь с нами.
Visual Studio Code. Настройка и применение. Часть 1 | by p1t1ch
Синхронное добавление модификаторов элементам списка через множественный курсор
Теперь сконцентрируемся на главной функции редактора кода — непосредственно написании кода. В VSCode присутствует ряд возможностей для упрощения этого процесса.
Emmet
Emmet встроен в VSCode, его можно увидеть в списке плагинов в категории Built-in Extensions. Если кто не пользовался им ранее, то это инструмент, позволяющий упростить написание разметки. Можно сказать, что это сниппеты для HTML, только с возможностью чейнинга. Например можно написать:
ul.list>.list__item*5{Item $}
Нажать Tab и получить:
<ul class=”list”>
<li class=”list__item”>Item 1</li>
<li class=”list__item”>Item 2</li>
<li class=”list__item”>Item 3</li>
<li class=”list__item”>Item 4</li>
<li class=”list__item”>Item 5</li>
</ul>
Если вы знаете как пишутся CSS-селекторы, то с написанием сокращений под Emmet у вас не возникнет проблем. В данном примере к специфике Emmet относится только знак “*”, повторяющий блок указанное число раз, “$”, вставляющий счётчик, и опускание “li”, т.к. Emmet понимает это из контекста.
Если говорить об общих рекомендациях по применению, то я не советую использовать Emmet для блоков кода сложнее этого, т.к. на практике, допустим, для таблицы проще и быстрее написать thead, развернуть получившийся блок, после чего отдельно прописать tbody. Нет смысла писать всю таблицу одной строкой, т.к. вы начинаете тратить время на продумывание того, как это написать на Emmet, что противоречит изначальному смыслу его применения.” и очень редко использую оператор соседства “+”, т.к. в этих случаях проще развернуть то, что есть, и, не заморачиваясь, написать следующую часть с нуля.
Emmet также можно использовать с CSS, но лично я им при написании стилей не пользуюсь, т.к. мне хватает автосаджеста. К тому же нужно запоминать сокращения в отличие от HTML, где построение сокращений естественно, т.к. выводится из CSS-селекторов. Хотя я знаю, что некоторые разработчики находят эту возможность полезной. Так что для протокола пример применения в CSS:
m0!
переводится в
margin: 0 !important;
P.S. Кстати, не используйте !important 💩
Множественный курсор
VSCode поддерживает всю ту магию с множественным курсором, которой когда-то покорил меня Sublime Text. Вообще говоря, множественные курсоры проставляются на Alt + Click, но я этим не пользуюсь. Приведу примеры более практичного применения этой возможности.
Если нужно внести идентичные правки в нескольких местах файла, то разумно выделить сразу все эти места и изменять их параллельно. Для этого выделяем первое вхождение и через Ctrl + D выделяем последующие.
Ctrl + D — выбор следующего вхождения.
Можно выделить и сразу все:
Ctrl + F2 — выбор всех вхождений.
Однако, если цель — заменить имя цельной сущности в js, то лучше отдать предпочтение переименованию на F2 — она умнее, чем обычная текстовая замена, и как раз предназначена для таких целей (подробнее о символьных манипуляциях в следующей главе). Также замену можно произвести через Ctrl + H (про текстовый поиск опять же поговорим в следующей главе), но когда применяешь Ctrl + D цель всё-таки несколько другая — расположить множественные курсоры, чтобы параллельно изменять код в нескольких местах.
Пример применения: есть JSON-файл с тысячей вхождений поля “order” с различными значениями. Мы сочли, что такое поле нам больше не нужно. Соответственно, выделяем “”order”:”, Ctrl + F2, курсор проставляется в 1000 строк, End — переходим в конец выделенных строк, Shift + Home — выделяем строку, Backspace — стираем выделенный текст, Backspace — убираем пустые строки. Без множественного курсора мы бы провозились с этими правками довольно долго, а теперь же, расправившись с этой задачей like a boss, можем спокойно пойти выпить чая 😎
Бывает, что у нас есть несколько идентичных строк, идущих подряд, и нам нужно в каждую из них дописать что-то ещё. Для этой цели подойдёт колоночное выделение:
Alt + Shift + (Drag mouse) — колоночное выделение.
С помощью колоночного выделения можно, например, перевести разбитые на отдельные строки 10 значений в единую строку — для этого выделяем начало всех нужных строк и прожимаем Backspace и “, “. Теперь значения идут одно за другим в одну строку через запятую.
Манипуляция строками
В отдельную группу выделю управление строками через Alt и стрелки. Здесь всего 2 комбинации, которые стоит запомнить.
Нажатие стрелок с зажатым Alt перемещает строку. Порой бывает удобно перенести выделенный участок, не переключаясь на мышь. По сути то же самое, что выделить блок мышью, и прожать Ctrl + X Ctrl + V, только быстрее, если привыкнуть. Если нужно перенести только одну строку, то выделять ничего не нужно, достаточно стоящего на строке курсора.
Alt + Arrow — перемещение строки.
Если повторить ту же комбинацию с зажатым Shift, строка вместо перемещения начнёт копироваться. Допустим, у вас есть некоторая строка и вам нужно размножить её до 20 вхождений, чтобы иметь базу, в которой вы будете потом вручную изменять отдельные фрагменты. Это можно сделать, выделив строку, нажав Ctrl + C, и ещё 19 раз прожав Enter и Ctrl + V. Создаёт видимость работы, конечно, но то же самое можно сделать, зажав Shift + Alt и стрелку вниз, и отпустив стрелку, когда строк станет достаточно. Вы можете возразить, что можно скопировать строку сразу с переносом, а Ctrl + V просто зажать. Ну вообще можно, да, и это уже похоже по трудозатратам на то, что мы делаем через Alt. Просто раньше я замечал за собой именно первый вариант, так что, полагаю, что он достаточно распространён.
Shift + Alt + Arrow — копирование строки.
Комментарии
Как и все уважающие себя редакторы, VSCode позволяет закомментировать выделенные строки через горячую клавишу:
Ctrl + / — вставка строчного комментария.
Тип комментариев подбирается на основании языка. Для js будет применён //
, для css /* */
, для html <!-- -->
, для hbs {{!-- --}}
и т.д. Для написания стилей я пользуюсь PostCSS, и здесь важно, что для при этом комментарии определяются верно. В Sublime Text я ставил ассоциацию .pcss файлов c SCSS, в результате чего подсветка синтаксиса была примерно корректная, но комментарий вставлялся, как в SASS одинарный, что для PostCSS вызывало ошибку, т.к. в CSS должны быть блочные комментарии.
Лично я придерживаюсь такого стиля написания комментариев в скриптах, что выделение участка кода, который временно отключён, идёт через //
, временные пометки в конце строк также идут через //
, но пояснения пишутся через блочные комментарии /* */
на отдельных строках. Так можно визуально отделить “work in progress” участки кода, которые потом можно будет удалить, от вшитых сопровождающих пояснений работы блока, да и смотрятся блочные комментарии более аккуратно. Для вставки блочного комментария в VSCode предназначен шорткат:
Shift + Alt + A — вставка блочного комментария.
Для этого сначала прожимаем комбинацию, курсор сразу оказывается внутри комментария и вписываем внутрь нужный комментарий. Также можно пойти от обратного и сначала прописать текст комментария, потом выделить написанный текст и прожать комбинацию. В отличие от строчных комментариев здесь нужно уже выделить полную область. Со строчными можно ничего не выделять, если речь идёт об одной строке, либо небрежно затронуть нужные строки для многострочного комментирования.
Visual Studio Code — Тестер
Visual Studio Code (далее vscode) является продвинутым текстовым редактором, возможности которого значительно превосходят возможности встроенного в Тестер редактора модулей. При разработке большого числа сложных тестов, улучшенная эргономика работы с кодом может стать важной составляющей всего процесса написания, анализа и запуска сценариев.
Механизм интеграции Тестера с vscode основан на способности Тестера выгружать сценарии в файлы их обратной загрузки в базу тестов. Специальный плагин и внешняя компонента позволяют общаться Тестеру с vscode для маршрутизации команд между двумя приложениями. Операции выгрузки и загрузки происходят как в ручном так и автоматическом режиме.
Для работы в интегрированном режиме, оба приложения (Тестер и vscode) должны быть запущены.
Подготовка Тестера
Внимание
Данный раздел справки для версии 1.3.5 не актуален и находится в процессе доработки
Для того, чтобы начать взаимодействовать с vscode, необходимо смонтировать приложение(я) Тестера в папки на диске:
Затем, необходимо создать запись для монтируемых приложений, например так:
Внимание! Флаг Маппинг должен быть включен, иначе Тестер не сможет общаться с vscode в автоматическом режиме.
Если вы монтируете более одного приложения, рекомендуется указывать для них общий начальный путь к папке на диске. Например, на картинке выше, приложение ERP2 и <Общее> имеют общий начальный путь c:\tests\. Такая структура (общий начальный путь) позволяет плагину vscode редактировать и осуществлять переходы к связанным сценариям сразу для всех смонтированных приложений с общей начальной папкой. В противном случае, переходы к связанным сценариям, например, при нажатии F12 на параметре метода Вызвать ( “Общее.Найти” )
, будут затруднены.
Итак, после задания монтируемых приложений, нужно выгрузить все сценарии согласно указанных директорий:
Откроется обработка выгрузки сценариев, где необходимо проделать следующее:
Внимание! Если у вас в списке (что на картинке выше) отсутствуют приложения, которые вы монтировали в репозиториях, тогда возможно, по каким-то причинам Тестеру не удалось создать узлы обмена сценариями. В этом случае, необходимо через меню Все функции, открыть план обмена Изменения, и создать в нем необходимый узел, пример на картинке ниже:
На этом этапе, подготовительная работа в Тестере завершена.
Подготовка Visual Studio Code
Необходимо скачать и установить vscode. Страница для скачивания: https://code.visualstudio.com/
Внимание! если вы скачали 32-битную версию или установили vscode в директорию, отличную от C:\Program Files\Microsoft VS Code, тогда укажите в Тестере, в форме настройки компьютера, путь к запускаемому файлу vscode, как показано на рисунках ниже
Работа в vscode
На данном этапе все настройки завершены, теперь можно редактировать и запускать сценарии из vscode.
На примере демо-базы это будет выглядеть так:
После этого, запустится vscode и предложит вам установить плагин, как показано на картинке ниже:
Нажмите на указанную кнопку и установите предлагаемый плагин:
После того, как расширение Tester 1C будет установлено (вместе с ним, будет установлено расширение xDrivenDevelopment.language-1c-bsl от специалистов команды xDrivenDevelopment, за что им отдельная благодарность), необходимо перезагрузить редактор:
На этом настройка завершена, можно начинать работу.
На момент написания статьи, плагин vscode поддерживает следующие операции:
- Интеллисенс всех функций тестера на двух языках (справка пока только на русском). Навигация к сценариям, заданным в методах
Вызвать ()
иПозвать ()
. - Считывание полей тестируемого приложения в процесса набора параметра функции с фильтрацией по типу. Примечание: тестируемое приложение при этом должно быть запущено
- Запуск теста, кнопка
F5
- Запуск выделенного фрагмента кода, комбинация
ctrl+alt+R
- Синтаксический контроль, комбинация
ctrl+F7
- Вывод диагностических сообщений в панель Output (см. метод
ВСтудию()/VStudio()
) - Вывод сообщений об ошибках в панель Problems
- Назначение основного сценария (кнопка
F1
/Set Main
) - Сниппеты. При наборе тест плагин выдаст все допустимые методы Тестера
Другие полезные комбинации клавиш:
ctrl + E
. Открывает окно нечеткого поиска сценария для его открытия в новой вкладке.
ctrl + shift + E
. Активация дерева файлов проекта.
alt + F12
. Открытие в сплывающем окне модуля процедуры, функции или сценария. Удобно использовать для беглого просмотра когда связанного сценария.
ctrl + shift + O
. Быстрый переход к процедуре/функции кода сценария.
ctrl + shift + F
, ctrl + shift + H
. Глобальный поиск и глобальная замена. Важной способностью этих функций является возможность указания начальной папки (поле чувствительно к регистру) поиска/замены.
Рекомендуется создавать тесты, переименовывать, удалять и переносить между папками в самой среде Тестера.
Полезные приемы работы
Среда vscode обладает обширным функционалом по работе с файлами и текстами модулей. Например: поиск и замена во всех файлах по регулярным выражениям, сравнение файлов, настройка команд и комбинаций клавиш, настройка шаблонов, закладок и многое другое. Стоит инвестировать некоторое время на изучение и настройку среды с целью получения выигрыша во времени от использования продвинутого редактора модулей.
KUKA.WorkVisual | KUKA AG
KUKA.WorkVisual: интуитивно понятный от настройки до диагностики
Конфигурация, программирование, запуск или диагностика: KUKA.WorkVisual предоставляет однородную среду автономной разработки, онлайн-диагностики и обслуживания на каждом этапе. Программно-нейтральные каталоги и проектные данные обеспечивают согласованность и беспроблемную интеграцию.
Инструменты с единым интерфейсом и системой меню
Программный код KUKA.WorkVisual уже проверяется на логику в фоновом режиме во время выполнения шагов программирования.Это означает, что ошибки пресекаются в зародыше, и проекты можно реализовывать более эффективно и последовательно. Взаимодействие становится видимым с помощью визуальных инструментов, что делает их более интуитивно понятными и более простыми в использовании.
Идеально сочетается со специальными процессами управления KR C4
Скоординировано с роботом, ПЛК, управлением движением и безопасностью, возможно конфигурирование ввода / вывода, отображение, настройка кинематических систем, отличных от KUKA, RoboTeams и SafeRobot 3.0 прямо в KUKA.WorkVisual.Потенциальные конфликты уже можно обнаружить и устранить в автономном режиме. Это значительно сокращает время запуска в сочетании с минимальными рисками.
Больше согласованности на протяжении всего жизненного цикла программного обеспечения
Инженерный пакет KUKA.WorkVisual можно использовать для конфигурирования ячеек, как универсальную среду программирования и как производственный модуль. Он охватывает все области жизненного цикла программы и обеспечивает идеальную согласованность между интерактивным и автономным миром с помощью WorkVisual Roundload.
Редакторы и компоненты инфраструктуры систематически получают доступ к центральным службам, таким как база данных проектов, каталоги и онлайн-службы, в модульной программной архитектуре KUKA.WorkVisual. Помимо основных инструментов — VisualProject, VisualConfig, VisualKRL и VisualAssistance — платформа предлагает слоты для дополнительных модулей — Multiprog и других.
Преимущества KUKA Work.Visual
- Единый, ориентированный на стандарты пользовательский интерфейс
- Единое хранилище данных проекта, предотвращение подверженного ошибкам многократного ввода одних и тех же данных
- Сетевое администрирование всех контроллеров KR C4
- Комплексные возможности диагностики
- Интегрированная унифицированная полевая шина I / O конфигурация, отображение и диагностика на контроллере робота и между Robot Control и SoftPLC
- Поддерживаемые полевые шины: PROFINET, PROFIBUS, EtherCAT, EtherNet / IP, DeviceNet и VARANBUS
- Перетаскивание конфигурации и параметрирование с помощью меню для RoboTeam, ProfiSafe, CIP / Safety и FSoE
- Редакторы для текстового программирования компонентов ячейки
- Обеспечивает удобное редактирование управляющих программ независимо от конкретных проектов и непосредственно в среде разработки
Учебное пособие по Microsoft Visual Studio Team Services (VSTS): облачная платформа ALM
Учебное пособие по облачной платформе ALM Microsoft Visual Studio Team Services (VSTS) для всей группы проекта:
В нашем предыдущем руководстве мы познакомились со списком инструментов непрерывной доставки.Здесь мы сосредоточимся на Microsoft VSTS.
Microsoft Visual Studio Team Services (VSTS) — это новое облачное предложение, которое помогает проектным группам заботиться обо всех аспектах процесса разработки программного обеспечения.
Ознакомьтесь => Серия комплексных тренингов DevOps
Visual Studio Team Services (VSTS) — это размещенная в Интернете служба от Microsoft.
Значение и важность VSTS
Лучшая часть VSTS заключается в том, что вам не нужно ничего устанавливать, вы можете выбрать лицензию с оплатой по мере использования или БЕСПЛАТНУЮ лицензию на 5 пользователей через веб-сайт Visual Studio.Щелкните здесь, чтобы перейти на веб-сайт Visual Studio.
Таким образом, Microsoft VSTS — это система управления жизненным циклом приложений (ALM), которая помогает всей проектной группе фиксировать требования, гибкое / традиционное планирование проекта, управление рабочими элементами, контроль версий, сборку, развертывание и ручное тестирование на единой платформе.
Проще говоря, Microsoft VSTS — это Team Foundation Server (TFS) в облаке.
VSTS тесно интегрирован с Visual Studio.NET IDE.
В моих предыдущих руководствах по Microsoft TFS мы видели, как использовать вышеупомянутые функции на локальных серверах. В этом руководстве мы увидим, как одни и те же функции могут быть использованы или расширены для выполнения развертываний в облаке и, в частности, в облаке Azure.
Создание учетной записи Microsoft VSTS
Для начала запустите URL-адрес и создайте бесплатную учетную запись, как показано ниже. После создания учетной записи вы можете начать с создания проектов.
Нажмите кнопку « Начать бесплатно » в столбце Visual Studio Team Services.
Введите необходимые данные учетной записи, которые вы будете использовать для выполнения операций, связанных с проектом.
Одним из важных аспектов является то, что, как показано на снимке экрана ниже, вам нужно будет указать уникальное имя, которое будет использоваться в качестве URL-адреса для входа в Microsoft VSTS. Вы также можете управлять артефактами кода с помощью частного репозитория Git или TFVC.
В этом руководстве мы будем использовать репозиторий TFVC для управления исходным кодом.
Приступите к созданию проектов VSTS с использованием репозитория TFVC и выберите процесс, с которым будет работать вся команда проекта для Пример Agile, Scrum и т. Д.
Щелкните Продолжить , чтобы создать проект.
В списке появится созданный проект. Вы также можете создать дополнительные проекты VSTS, щелкнув значок Новый проект .
Щелкните MyFirstProject , и это откроет для вас страницу проекта. Это очень похоже на TFS, который мы видели ранее в моих предыдущих руководствах. Однако пользовательский интерфейс немного отличается.
Щелкните в меню Панели мониторинга.
Так как VSTS задуман как платформа для совместной работы всей проектной группы и совместной работы с начальными действиями, которые необходимо выполнить, а именно: добавить всех членов команды для работы над проектом.
В разделе «Члены группы» щелкните правой кнопкой мыши Пригласить друга и добавьте все остальные учетные записи VSTS, созданные командой.
Найдите все учетные записи VSTS, созданные командой, и добавьте их в только что созданный проект. Сохраните изменения после внесения.
Все добавленные учетные записи отображаются и отображаются на панели управления.
Создание пользовательской истории и задачи
Как и в моих предыдущих руководствах, мы начнем с создания историй пользователей и связывания с ними Задач. Задачи обычно должны быть назначены разработчикам, чтобы они могли связать изменения кода.
Эти пользовательские истории и задачи необходимо будет добавить в цикл спринта с точки зрения планирования проекта.
В меню Work выберите Queries => New => User Story
Введите заголовок и обновите другие поля в истории пользователя. Сохраните пользовательскую историю после обновления всех полей.
Чтобы создать рабочий элемент Task и ссылку на User Story, выберите New => Task
Введите название новой задачи и сохраните ее.
Чтобы связать пользовательскую историю с задачей, щелкните «Связанные работы => Добавить ссылку на существующий элемент». Добавьте историю пользователя как родительскую.
Введите идентификатор рабочего элемента пользовательской истории или текст из заголовка и нажмите «ОК».
Ссылка, созданная для истории пользователя, отображается в разделе « Сопутствующие работы ».
Откройте проект в Visual Studio
Чтобы начать разработку пользовательской истории, вам понадобится Visual Studio.NET 2015/2017, установленная на вашем локальном компьютере. Исходный код необходимо будет передать в репозиторий TFVC.Щелкните Открыть в Visual Studio.
Нажмите Открыть ссылку
После открытия Visual Studio.Net перейдите к представлению Team Explorer и щелкните Управление подключениями => Подключиться к командному проекту
Щелкните «Серверы», чтобы добавить URL-адрес VSTS, который затем будет отображаться для созданных проектов.
Нажмите Добавить
Добавьте URL-адрес VSTS и нажмите ОК
Вам нужно будет войти в систему с учетной записью VSTS, которую вы создали ранее.
Нажмите Войти
Теперь вы можете подключиться к проекту VSTS, созданному ранее, и начать делиться исходным кодом с репозиторием TFVC.
Нажмите Connect
Теперь отображается проект, подключенный к VSTS-соединению.
Создайте новый проект веб-приложения ASP.Net и добавьте его в систему управления версиями.
Измените значение по умолчанию.aspx , чтобы изменения можно было связать с Задачей, созданной после добавления решения в систему управления версиями.
Добавить решение в систему контроля версий.
Выберите проект VSTS и нажмите OK, чтобы добавить решение в репозиторий TFVC.
Нажмите Хорошо
В Team Explorer перейдите в «Ожидающие изменения» и «Регистрация». В разделе «Связанные рабочие элементы» вы также можете добавить рабочий элемент по идентификатору или заголовку, чтобы связать изменения
(Примечание: Щелкните изображение ниже, чтобы увеличить его )
ASP.NET теперь находится в репозитории управления версиями TFVC.
Заключение
В этом руководстве мы узнали, как начать работу с Microsoft VSTS, которая представляет собой облачную платформу ALM для всей проектной группы, где не требуется абсолютно никакой инфраструктуры для управления всей платформой, чтобы хранить все связанные с вашим проектом артефакты, включая рабочие элементы, Исходный код, определение определений сборки и выпуска.
Это предназначалось только для ознакомления с платформой.
В моем предстоящем руководстве я расскажу, как можно реализовать DevOps (CI / CD) с помощью VSTS, используя Azure в качестве облачного портала для развертывания.
PREV Tutorial | СЛЕДУЮЩИЙ Учебник
Начало работы с Visual Studio 2019
Введение
В этой статье давайте посмотрим, как начать работу с Visual Studio 2019 RC. Microsoft только что выпустила релиз-кандидат Visual Studio 2019, и теперь он доступен для загрузки.Вы можете скачать VS 2019 RC здесь: https://visualstudio.microsoft.com/downloads/
К тому моменту, когда вы читаете эту статью, Microsoft, вероятно, только что выпустила производственную / общедоступную версию Visual Studio 2019. случае обе версии практически одинаковы.
Эта статья будет состоять из двух частей. В части 1 мы увидим, как загрузить и установить Visual Studio 2019 RC. В статье также показано, как начать работу с Visual Studio 2019 RC. Во второй части мы увидим различные шаблоны проектов и узнаем, что нового в Visual Studio 2019.
Visual Studio 2019 поставляется в трех редакциях:
- Community: Community Edition предназначена для студентов, участников открытого исходного кода и отдельных лиц.
- Professional: Профессиональная версия для небольших команд и индивидуальных разработчиков; лучше всего, если у вас есть подписка на Visual Studio Professional.
- Enterprise: выпуск Enterprise для любого размера команды и лучше всего, если у вас есть подписка Visual Studio Enterprise.
Если у вас нет подписки на Visual Studio, загрузите VS 2019 Community Edition.В моем случае я буду устанавливать версию Enterprise.
Если щелкнуть ссылку для загрузки, на экране подтверждения появится сообщение Спасибо за загрузку Visual Studio.
Установите VS 2019 версии
Подождите несколько секунд, чтобы начать установку VS 2019 на свой компьютер. Теперь вы увидите окончательный экран установки с рабочими нагрузками, отдельными компонентами, языковыми пакетами и местами установки.
На вкладке «Рабочие нагрузки» мы можем выбрать необходимые установочные компоненты VS 2019, если вы хотите работать с приложениями Windows, UWP, ASP.NET Node.JS и разработки мобильных приложений, то пока мы можем выбрать только это и начать установку.
Я выбрал следующие варианты:
- Разработка настольных компьютеров .NET
- Разработка Node.js
- Мобильная разработка с .NET
- Разработка расширений Visual Studio
- Кросс-платформенная разработка .NET Core
Языковой пакет
Для своей разработки я выбрал еще один дополнительный язык — корейский.Выбрав этот дополнительный язык, мы сможем увидеть VS 2019 на английском или корейском языках. Если вам нужно использовать какие-либо дополнительные языки, вы можете проверить их в списке доступных языков.
В нижней части установщика мы можем увидеть общее пространство, необходимое для установки выбранных нами рабочих нагрузок и языкового пакета.
Нажмите кнопку «Установить», и вы увидите окно установки и ее ход.
После завершения установки необходимо перезапустить, чтобы отразить новую установку VS 2019.
Подождите несколько минут, чтобы завершить установку VS 2019 на вашем компьютере.
Открытие Visual Studio 2019 RC
После завершения установки вы можете открыть Visual Studio 2019 RC для создания приложений .NET. Нажмите Windows Пуск и введите Visual Studio 2019, вы можете увидеть Visual Studio 2019 RC, нажмите на него.
Вы можете увидеть, что Visual Studio 2019 RC откроется, как показано на рисунке ниже. Слева вы увидите «Открытые недавние проекты».
Справа мы видим несколько новых функций, добавленных в VS 2019, в том числе
- Клонировать или проверять наш код
- Открыть проект или решение
- Открыть локальную папку
- Создать новый проект
- Продолжить без кода
Клонируйте или проверьте наш код
Этот параметр является новым в Visual Studio 2019. Эта вкладка используется для получения кода из онлайн-репозитория, такого как GitHub или Azure DevOps. Если у вас есть репозитории на GitHub или Azure DevOps, теперь можно клонировать или извлекать выгоду с помощью Visual Studio 2019.
Нажмите «Клонировать» или «Проверить наш код», чтобы добавить URL-адрес GitHub или Azure DevOps для подключения к вашим онлайн-репозиториям.
Здесь в целях тестирования я добавил проект репозитория для клонирования. Мы видим из репозитория GitHub, что проект загружается.
Мы видим, что наш проект был открыт из URL-адреса репозитория GitHub.
Открыть проект или решение
Чтобы открыть существующий проект или решение, мы можем щелкнуть эту вкладку справа и открыть наш проект или решение для работы над ним.
Открыть локальную папку
Это новая функция, добавленная в VS 2019. Если мы хотим редактировать какой-либо код или приложение .NET из папки, мы можем щелкнуть эту вкладку, чтобы открыть папку, или просмотреть, чтобы выбрать файл.
Продолжить без кода
Это новая функция, добавленная в VS 2019 IDE. Когда мы нажимаем «Продолжить без кода», мы видим, что создается пустое решение. Здесь мы можем добавлять наши собственные проекты и файлы.
Создайте новый проект
Нажав на «Создать новый проект», мы увидим новый экран со списком шаблонов проектов, доступных для работы с нашими.NET-приложений.
Мы можем выбрать шаблон проекта для работы, создать наш проект и начать работу над ним.
Заключение
В этой статье я рассказал, как загрузить и установить Visual Studio 2019 RC и как начать работу с шаблонами проектов VS 2019 RC. В следующей статье я расскажу о различных шаблонах проектов и новых функциях VS 2019.
Начало работы с GitHub с использованием Visual Studio 2019
Home / Начало работы с GitHub с помощью Visual Studio 2019
Редактировать на GitHub
Обзор
GitHub превратился из молодой системы управления версиями в мощное решение DevOps всего за несколько лет.Наряду с порталом, GitHub обеспечивает отличную интеграцию для таких приложений, как Visual Studio, чтобы обеспечить превосходный опыт, интегрированный в среды, в которых разработчики проводят свои дни. В этой лабораторной работе вы узнаете о поддержке GitHub в Visual Studio 2019.
Если вы хотите узнать больше об основах Git, посетите эту лабораторную работу.
Предварительные требования
Для выполнения этой лабораторной работы вам понадобится виртуальная машина Azure DevOps Server 2019, предоставленная Microsoft.Нажмите кнопку ниже, чтобы запустить виртуальную машину на портале Microsoft Hands-on-Labs.
Запустить виртуальную машину
Вы также можете скачать виртуальную машину отсюда.
Упражнение 1: Начало работы с GitHub с использованием Visual Studio 2019
Задача 1. Настройка проекта GitHub
Войдите как Sachin Raj (VSALM \ Sachin) . Все пароли пользователей: P2ssw0rd .
Установите Google Chrome с https: // google.com / chrome. GitHub не поддерживает Internet Explorer, поэтому до конца этой лабораторной работы используйте Chrome.
Разветвите проект по адресу https://github.com/Microsoft/PartsUnlimitedE2E в свою учетную запись.
Выберите вкладку Настройки .
Включите Проблемы , установив соответствующий флажок.
Выберите вкладку Проблемы .
Щелкните Новый выпуск .
Создайте новый выпуск под названием «Обновление до версии 2.0» и нажмите Отправить новый выпуск . Устранению этой проблемы и будет посвящена данная лабораторная работа.
Обратите внимание на идентификатор вновь созданной задачи.
Задача 2: Клонирование и настройка проекта GitHub в Visual Studio
Откройте Visual Studio .
Нажмите Продолжить без кода . Обратите внимание, что у вас также есть возможность начать процесс клонирования из диалогового окна приветствия.
В Team Explorer нажмите кнопку Управление подключениями .
В разделе GitHub щелкните Подключить . Завершите процесс, чтобы войти в свою учетную запись GitHub.
Щелкните Клонировать .
Выберите клонированный ранее проект и щелкните Клонировать .
После входа в систему Team Explorer загорается множеством ярлыков и функций, чтобы сделать вашу работу с GitHub максимально удобной. Многие кнопки являются ярлыками для страницы портала GitHub для этого проекта, например Pulse , Graphs и Wiki . Щелкните Настройки .
Вы можете настроить параметры на двух уровнях. Щелкните Global Settings , чтобы просмотреть их в первую очередь.
Представление Global Settings позволяет вам установить глобальные настройки по умолчанию, которые применяются ко всем проектам. В этом случае имя пользователя и адрес электронной почты уже настроены. Однако вы можете изменить их для своего экземпляра. Нажмите кнопку Назад .
Щелкните Настройки репозитория .
Эти настройки относятся к текущему проекту. Нажмите кнопку Home .
Задача 3. Изучение интеграции управления версиями GitHub
Чтобы начать работу с созданным ранее рабочим элементом, щелкните Ветви . Работа будет выполнена в отдельной ветке и объединена после проверки.
Щелкните правой кнопкой мыши главную ветвь и выберите Новая локальная ветвь из .
Задайте имя «dev» и щелкните Create Branch .
Новая ветка будет разрегистрирована после создания. Обратите внимание, что вы можете увидеть текущую ветвь и выполнить общие параметры, используя кнопку в нижней части окна.
Щелкните правой кнопкой мыши ветку dev и выберите Push Branch . Это отправит локально созданную ветку на сервер.
В обозревателе решений найдите «_layout» и откройте _Layout.cshtml из проекта PartsUnlimitedWebsite .
Добавьте «v2.0» к тексту тега h2 и Сохраните файл.
В Team Explorer перейти на Изменения .
Здесь будет показано изменение источника, сделанное ранее. Введите сообщение фиксации «Обновлено до версии 2.0» и выберите Зафиксировать все | Зафиксировать все и синхронизировать . Это зафиксирует ваше изменение и отправит его на сервер.
Задача 4: Изучение интеграции запросов на вытягивание GitHub
Несмотря на то, что ветвь dev была обновлена с необходимыми изменениями, ей все еще нужно вернуться к ведущему устройству .Это можно сделать с помощью запроса на извлечение . Нажмите кнопку Home .
Щелкните Pull Requests , чтобы запустить процесс pull request.
Щелкните Create New , чтобы создать новый запрос на вытягивание.
Установите ветку для слияния с master из вашего проекта. Обратите внимание, что по умолчанию будет использоваться проект Microsoft, который вы не хотите использовать.Установите комментарий на «Исправления №1». . Обратите внимание, что вам может потребоваться заменить № 1 идентификатором, созданным ранее, если он был другим. Пометив запрос на вытягивание идентификатором проблемы, вы можете автоматизировать закрытие проблемы позже, когда запрос будет объединен. Щелкните Создать запрос на вытягивание .
В раскрывающемся списке проекта выберите разветвленную версию в своей учетной записи GitHub.
Будет виден вновь созданный запрос на вытягивание.Дважды щелкните его, чтобы открыть.
Представление запроса на вытягивание включает всю информацию, необходимую для просмотра изменений и комментариев. Дважды щелкните _Layout.cshtml , чтобы открыть его в средстве просмотра различий.
Средство просмотра различий позволяет легко понять, какие изменения были внесены и где.
Вы также можете оставлять комментарии на уровне строки. Нажмите кнопку Добавить комментарий в измененной строке и добавьте комментарий.Щелкните Начать просмотр .
Ваш отзыв теперь отображается как часть запроса на вытягивание. Щелкните Продолжить просмотр .
Введите сводку обзора и выберите Отправить отзыв | Только комментарий .
В окне браузера GitHub выберите вкладку Pull requests .
Щелкните запрос на перенос, чтобы открыть его.
Вся информация, добавленная из Visual Studio, отображается в запросе на вытягивание. Другие также могут комментировать или просматривать изменения. Щелкните Разрешить беседу , чтобы разрешить комментарий, оставленный во время вашего обзора.
Щелкните Запрос на объединение .
Подтвердите слияние.
Вернитесь на вкладку Проблемы .Обратите внимание, что проблема, созданная ранее, была закрыта теперь, когда запрос на вытягивание был одобрен.
Как работает веб-публикация в Visual Studio — документация ASP.NET
Сайед Ибрагим Хашими
Возможности веб-публикации для проектов ASP.NET Core значительно изменились по сравнению с ASP.NET 4. В этом документе будет представлен обзор изменений и инструкции по настройке процесса публикации. Если не указано иное, инструкции в этой статье предназначены для публикации из Visual Studio.Обзор публикации веб-приложения в ASP.NET Core см. В разделе «Публикация и развертывание».
В ASP.NET при публикации веб-проекта Visual Studio MSBuild используется для управления всем процессом. Файл проекта (.csproj или .vbproj) используется для сбора файлов, которые необходимо опубликовать, а также для выполнения любых обновлений во время публикации (например, обновления web.config). Файл проекта содержит полный список файлов, а также их тип. Эта информация используется для определения файлов для публикации.Логика была реализована в файле MSBuild .targets. В процессе публикации MSBuild вызовет веб-развертывание (msdeploy.exe) для передачи файлов в окончательное расположение. Чтобы настроить процесс публикации, вам необходимо обновить профиль публикации или файл проекта с помощью настраиваемых элементов MSBuild.
В ASP.NET Core процесс публикации был упрощен, мы больше не храним ссылки на файлы, содержащиеся в проекте. Все файлы включены в проект по умолчанию (файлы можно исключить из проекта или из публикации, обновив проект .json ). Когда вы публикуете проект ASP.NET Core из Visual Studio, происходит следующее:
- Профиль публикации создается в
Properties \ PublishProfiles \ profilename.pubxml
. Профиль публикации — это файл MSBuild.- Сценарий PowerShell создается в
Properties \ PublishProfiles \ profilename.ps1
.dotnet publish
вызывается для сбора файлов для публикации во временной папке.- Сценарий PowerShell называется передачей свойств из профиля публикации и места, где
dotnet publish
разместил файлы для публикации.
Чтобы создать профиль публикации в Visual Studio, щелкните проект правой кнопкой мыши в обозревателе решений и выберите «Опубликовать».
На следующем изображении показана визуализация этого процесса.
На изображении выше каждый черный кружок ● обозначает точку расширения, мы рассмотрим каждую точку расширения позже в этом документе.
При запуске операции публикации диалоговое окно публикации закрывается, а затем вызывается MSBuild для запуска процесса. Visual Studio вызывает MSBuild, чтобы сделать это, чтобы вы могли иметь паритет с публикацией при использовании Visual Studio или командной строки.Уровень MSBuild довольно тонкий, по большей части он просто вызывает dotnet publish
. Давайте подробнее рассмотрим dotnet publish
.
Команда dotnet publish
проверит project.json и папку проекта, чтобы определить файлы, которые необходимо опубликовать. Он поместит файлы, необходимые для запуска приложения, в единую папку, готовую для передачи в конечный пункт назначения.
После завершения dotnet publish
вызывается сценарий PowerShell для профиля публикации.Теперь, когда мы кратко обсудили, как публикация работает на высоком уровне, давайте взглянем на структуру сценария PowerShell, созданного для публикации.
Когда вы создаете профиль публикации в Visual Studio для проекта ASP.NET Core, создается сценарий PowerShell, имеющий следующую структуру.
[привязка командлета (SupportsShouldProcess = $ true)] param ($ publishProperties = @ {}, $ packOutput, $ pubProfilePath, $ nugetUrl) $ publishModuleVersion = '1.0.2-beta2' # функции для начальной загрузки процесса, когда Visual Studio не установлена # были удалены для упрощения этого документа пытаться{ if (! (Enable-PublishModule)) { Включить-PackageDownloader Включить-NuGetModule -name 'publish-module' -version $ publishModuleVersion -nugetUrl $ nugetUrl } «Звонок в Publish-AspNet» | Write-Verbose # вызвать Publish-AspNet для выполнения операции публикации Publish-AspNet -publishProperties $ publishProperties -packOutput $ packOutput -pubProfilePath $ pubProfilePath } ловить{ "Произошла ошибка во время публикации.n {0} "-f $ _. Exception.Message | Ошибка записи }
В приведенном выше фрагменте некоторые функции были удалены для удобства чтения. Эти функции используются для начальной загрузки сценария в случае, если он выполняется с компьютера, на котором не установлена Visual Studio. Скрипт содержит следующие важные элементы:
- Параметры скрипта
- Модуль публикации версии
- Звонок для публикации — AspNet
Параметры сценария определяют контракт между Visual Studio и сценарием PowerShell.Вы не должны изменять заявленные параметры, потому что Visual Studio зависит от них. Вы можете добавить дополнительные параметры, но они должны быть добавлены в конце.
Версия модуля публикации, обозначенная как $ publishModuleVersion
, определяет версию модуля публикации в Интернете, которая будет использоваться. Допустимые номера версий можно найти в опубликованных версиях пакета NuGet publish-module на сайте nuget.org. После создания профиля публикации определение сценария блокируется для конкретной версии пакета публикации-модуля.Если вам нужно обновить версию сценария, вы можете удалить файл .ps1, а затем снова опубликовать его в Visual Studio, чтобы создать новый сценарий.
Вызов Publish-AspNet перемещает файлы с вашего локального компьютера в конечный пункт назначения. Publish-AspNet будут переданы все свойства, определенные в файле .pubxml, даже настраиваемые свойства. Для публикации веб-развертывания будет вызван msdeploy.exe для публикации файлов в место назначения. Publish-AspNet передаются те же параметры, что и исходный скрипт.Вы можете получить дополнительную информацию о параметрах для Publish-AspNet, используя Get-Help Publish-AspNet. Если вы получаете сообщение об ошибке, что модуль публикации не загружен, вы можете загрузить его с помощью
Модуль импорта «$ {env: ProgramFiles (x86)} \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Web Tools \ Publish \ Scripts \ 1.0.1 \ publish-module.psm1»
с компьютера, на котором установлена Visual Studio. Теперь перейдем к обсуждению того, как настроить процесс публикации.
Как настроить публикацию
В предыдущем разделе мы видели визуализацию процесса публикации.Изображение отображается снова, чтобы упростить отслеживание.
На изображении выше показаны три основные точки расширения. Скорее всего, вы будете использовать №3.
- Настроить вызов
dotnet publish
Большинству разработчиков не нужно настраивать эту точку расширения. Visual Studio запускает процесс публикации, вызывая целевой объект MSBuild. Эта цель позаботится об инициализации среды и вызове dotnet publish
для размещения файлов.Если вам нужно настроить этот вызов так, чтобы это не было разрешено диалоговым окном публикации, вы можете использовать элементы MSBuild либо в файле проекта (файл .xproj), либо в профиле публикации (файл .pubxml). Мы не будем вдаваться в подробности того, как это сделать, так как это сложный сценарий, который немногим нужно будет расширять.
Как указывалось ранее, dotnet publish
— это служебная программа командной строки, которую можно использовать для публикации приложения ASP.NET Core. Это кроссплатформенная утилита командной строки (то есть вы можете использовать ее в Windows, Mac или Linux) и не требует Visual Studio.Если вы работаете в команде, в которой некоторые разработчики не используют Visual Studio, вам может потребоваться создание и публикация сценариев. Когда выполняется dotnet publish
, его можно настроить для выполнения пользовательских команд до или после выполнения. Команды будут перечислены в project.json в разделе скриптов.
Поддерживаемые сценарии для публикации: предварительная публикация и постпубликация. В шаблоне веб-приложения ASP.NET Core по умолчанию используется этап предварительной публикации. Соответствующий фрагмент из проекта .json показан ниже.
"scripts": { "предварительная публикация": ["npm install", "bower install", "gulp clean", "gulp min"] }
Здесь объявлено несколько вызовов, разделенных запятыми.
При использовании Visual Studio этапы предварительной и последующей публикации выполняются как часть вызова dotnet publish
. Сценарий постпубликации из project.json выполняется перед публикацией файлов в удаленном месте назначения, потому что это происходит сразу после завершения dotnet publish
.На следующем этапе мы рассмотрим настройку сценария PowerShell для управления тем, что происходит с файлами после того, как они достигнут целевого места назначения.
- Настроить профиль публикации PowerShell Script
После создания профиля публикации в Visual Studio создается сценарий PowerShell Properties \ PublishProfiles \ ProfileName.ps1
. Скрипт делает следующее:
- Запускает
dotnet publish
, который упакует веб-проект во временную папку, чтобы подготовить его к следующему этапу публикации.- Сценарий PowerShell профиля вызывается напрямую. Свойства публикации и путь к временной папке передаются в качестве параметров. Обратите внимание, что временная папка будет удаляться при каждой публикации.
Как упоминалось ранее, наиболее важной строкой в сценарии публикации по умолчанию является вызов Publish-AspNet
. Звонок в Publish-AspNet:
- Принимает содержимое папки в $ packOutput, которая содержит результаты
dotnet publish
, и публикует его в месте назначения.- Свойства публикации передаются в параметре сценария
$ publishProperties
.$ publishProperties
— это хэш-таблица PowerShell, которая содержит все свойства, объявленные в файле .pubxml профиля. Он также включает значения для замены текста файла или файлов для исключения. Для получения дополнительной информации о значениях для$ publishProperties
используйте командуGet-Help publish-aspnet –Examples
.
Чтобы настроить этот процесс, вы можете напрямую отредактировать сценарий PowerShell.Чтобы выполнить действие перед началом публикации, добавьте действие перед вызовом Publish-AspNet
. Чтобы действие выполнялось после публикации, добавьте соответствующие вызовы после Publish-AspNet. Когда вызывается Publish-AspNet, содержимое каталога $ packOutput публикуется в месте назначения. Например, если вам нужно добавить файл в процесс публикации, просто скопируйте его в правильное место в $ packOutput
до вызова Publish-AspNet
. В приведенном ниже фрагменте показано, как это сделать.
# копируем файлы из репозитория изображений в папку wwwroot \ external-images $ externalImagesSourcePath = 'C: \ ресурсы \ внешние изображения' $ externalImagesDestPath = (Путь соединения "$ packOutput \ wwwroot" 'внешние изображения') if (-not (Test-Path $ externalImagesDestPath)) { -Item -Path $ externalImagesDestPath -ItemType Directory } Get-ChildItem $ externalImagesSourcePath -File | Копировать элемент -Destination $ externalImagesDestPath «Звонок в Publish-AspNet» | Write-Verbose # вызвать Publish-AspNet для выполнения операции публикации Publish-AspNet -publishProperties $ publishProperties -packOutput $ packOutput -pubProfilePath $ pubProfilePath
В этом фрагменте внешние изображения копируются из c: \ resources \ external-images в $ packOutput \ wwwroot \ external-images
.Перед началом операции копирования сценарий проверяет, существует ли папка назначения. Поскольку операция копирования выполняется до вызова Publish-AspNet
, новые файлы будут включены в опубликованный контент. Чтобы выполнить действия после того, как файлы достигли места назначения, вы можете разместить эти команды после вызова Publish-AspNet
.
Вы можете настроить или даже полностью заменить предоставленный сценарий Publish-AspNet. Как упоминалось ранее, вам нужно будет сохранить объявление параметра, но все остальное зависит от вас.
Установите рабочий каталог в коде Visual Studio (или, что еще лучше, исключите требование к рабочему каталогу)
В прошлой статье я показал то, что казалось ошибкой в отладчике кода Visual Studio и CLI .NET Core (интерфейс командной строки). Проблема связана с тем, что Visual Studio Code и Visual Studio 2019 используют разные значения по умолчанию для «рабочего каталога» при отладке.
«Рабочий каталог» по умолчанию:
- Отладчик Visual Studio 2019 использует исполняемый каталог
- Отладчик Visual Studio Code использует каталог проекта
В результате приложение, которое полагается на «текущий рабочий каталог» для поиска файлов, будет терпеть неудачу по странным причинам.И это как раз то, что показала последняя статья.
В Visual Studio Code вы можете изменить рабочий каталог отладчика / средства выполнения в файле «launch.json».
Код для этой статьи доступен на GitHub: jeremybytes -standing-interfaces-core30. Мы специально используем завершенную папку / 04-DynamicLoading-Plugin. Чтобы сделать вещи более интересными, некоторые примеры кода используют ветвь «master», а некоторые — ветвь «UsingWorkingDirectory». Эти ветви будут отмечены при отображении кода.
Установка рабочего каталога в Visual Studio Code
Конкретное приложение, которое мы запускаем, — это «PeopleViewer» — приложение WPF, которое использует динамически загружаемый модуль чтения данных SQL.
Вот файл по умолчанию «launch.json», созданный Visual Studio Code для проекта PeopleViewer (из файла launch.json в ветке «UsingWorkingDirectory»):
Здесь есть параметр «cwd», который означает «текущий рабочий каталог».
По умолчанию для этого используется «$ {workspaceFolder}», что в данном случае означает папку проекта для приложения PeopleViewer.
Мы также можем видеть, что параметр «программа» ссылается на папку вывода (рабочая область + bin / Debug / netcoreapp3.1 /). Это программа, которая будет выполняться при запуске или отладке из Visual Studio Code.
Боковое примечание: .NET Core создает библиотеки DLL для всего (включая настольное приложение, которое у нас есть). Эта dll может быть запущена из этого каталога в командной строке с помощью dotnet. \ PeopleViewer.dll. Кроме того, компилятор создает исполняемый файл («PeopleViewer.exe «), чтобы упростить его запуск как отдельное приложение.
Мы можем решить проблему, установив рабочий каталог таким же, как и выходная папка:
Теперь значение равно «$ {workspaceFolder} /bin/Debug/netcoreapp3.1». Это приведет к тому, что рабочий каталог будет таким же, как и наш исполняемый файл.
И если мы запустим приложение из Visual Studio Code (с отладкой или без), оно будет работать должным образом.
УСПЕХ!
Вроде. Это не устраняет всех проблем, которые мы видели.
Проблемы с .NET Core CLI
Это не меняет проблемы, которую мы видели в предыдущей статье при запуске приложения из .NET Core CLI.
Мы можем открыть командную строку в папке проекта и набрать «dotnet run»:
Приложение запускается
Но если мы нажмем кнопку, приложение завершится (с необработанным исключением).
Это показывает, что у нас такая же проблема с рабочим каталогом. Инструменты командной строки не используют команду «запуск.json «файл.
Лучшим решением является устранение зависимости от рабочего каталога.
Устранение требований к рабочему каталогу
Это приложение использует базу данных SQLite, которая находится в файле» People.db «в файловой системе . В процессе сборки приложения файл «People.db» копируется в папку вывода, так что «PeopleViewer.exe» и «People.db» находятся в одной папке.
Вот конфигурация для SQLite EFCore DBContext (из файла SQLReader.cs в ветке «UsingWorkingDirectory»):
Здесь используется параметр «Источник данных = People.db». Это сообщает драйверу SQLite, что мы используем файл с именем «Person.db». Проблема в том, что он ищет этот файл в рабочем каталоге.
Поскольку он ищет файл в рабочем каталоге, приложение отлично работает при запуске из папки приложения (либо из проводника, либо из командной строки). Он также работает в отладчике Visual Studio 2019, который использует папку приложения в качестве рабочего каталога.И это будет работать из кода Visual Studio, если мы установим значение «cwd», как показано выше.
Проблема
Я обнаружил, что проблема связана с Git. Когда я пошел посмотреть изменения в проекте, я заметил, что в папке проекта есть новый файл «People.db».
Это то, что привело меня к открытию. В этой папке не должно быть файла «People.db»; источник находится где-то еще (папка «AdditionalFiles»), и он явно копируется в выходную папку.
Так как он сюда попал?
Если SQLite не находит файл базы данных, он создает новый.
Поскольку этот новый файл пуст, в нем объясняется исключение, в котором говорится, что он не может найти таблицу «Люди» в базе данных.
Устранение проблемы
Что мы действительно хотим сделать, так это исправить соединение с базой данных, чтобы оно не зависело от рабочего каталога.
Считыватель данных CSV в этом же проекте не страдает от этой проблемы, даже если он также ищет файл (People.txt) в той же папке, что и исполняемый файл. Это связано с тем, что средство чтения данных CSV более четко определяет местоположение файла. Вот код конфигурации (из файла CSVReader.cs в главной ветке):
В качестве пути для поиска текстового файла используется путь «AppDomain.CurrentDomain.BaseDirectory». Это значение является той же папкой, что и исполняемый файл, поэтому он работает независимо от текущего рабочего каталога.
Чтобы исправить средство чтения данных SQL, мы можем добавить тот же путь (из файла SQLReader.cs в главной ветке):
Теперь у нас есть «Источник данных = {AppDomain.CurrentDomain.BaseDirectory} People.db «.
Это добавляет полный каталог к значению источника данных» People.db «, так что SQLite сможет найти этот файл более надежно.
Теперь, если мы все заново построим (убедившись, что (чтобы явно перестроить проект «PersonReader.SQL», чтобы выходной файл .dll попадал в нужную папку), приложение теперь отлично работает из интерфейса командной строки .NET Core.
«dotnet run» запускает приложение.
И если мы нажмем кнопку «Dynamic Reader» …
Оно работает!
Великолепие и разочарование
Одна вещь, которая мне очень нравится.NET Core — это набор параметров, которые нам нужно создать и запустить. Мы можем использовать Visual Studio 2019; мы можем использовать Visual Studio 2019 для Mac, мы можем использовать Visual Studio Code или мы можем использовать .NET Core CLI.
Моя цель при создании примеров в .NET Core состоит в том, чтобы они работали как можно более единообразно в этих различных средах разработки. Это конкретное приложение не будет работать с Visual Studio 2019 для Mac (поскольку оно полагается на WPF — решение только для Windows), но мой веб-сайт, который генерирует лабиринты, работает на macOS и Linux.
Обнаружение различий в рабочем каталоге между Visual Studio 2019, Visual Studio Code и .NET Core CLI было разочаровывающим. Я отвлекся, пытаясь понять, почему в одних местах это работает, а в других — нет. Я «случайно» наткнулся на подсказку, обнаружив неожиданный файл «Person.db». Без этого я полностью потерялся в деле. И это настоящее разочарование.
Но обнаружение этой проблемы также привело к более надежному решению. Теперь, когда я знаю, что SQLite полагается на текущий рабочий каталог, я могу убедиться, что мои строки подключения более конкретны.Это в целом лучше.
Я обязательно добавлю больше препятствий и решений, когда столкнусь с ними. Надеюсь, это поможет кому-то другому.
Удачного кодирования!
Самое простое из возможных: Git и Visual Studio
Мы всегда могли разместить исходный код нашего решения на основе Visual Studio в Git. Проблема заключалась в том, что, в отличие от Team Foundation Sever (TFS), Git страдал из-за отсутствия интеграции с Visual Studio IDE. Сегодня отсутствие интеграции осталось в прошлом! Недавно Microsoft сделала Git первоклассным специалистом в области TFS.Сегодня мы можем выбрать TFS или Git в качестве поставщика управления исходным кодом (SCC) в наших командных проектах. Чтобы все работало с Git, Visual Studio 2013 в рамках своей установки также устанавливает Git. Означает ли это, что вам нужно использовать TFS или Visual Studio Online, чтобы воспользоваться преимуществами Git в Visual Studio? Ответ — нет. В этой статье я покажу вам, как оживить Git в Visual Studio, используя только то, что Visual Studio предоставляет вам в комплекте.
Что делать, если у вас не установлен Git?
Если у вас не установлен Git, перейдите к.Просто следуйте инструкциям и примите значения по умолчанию. На рисунке 1 показана страница загрузки git-scm и окно командной строки. Если в командной строке вы вводите git и руководство по использованию, а список команд отображается эхом, все готово!
Рисунок 1. Страница загрузки git-scm windows и командная строка для проверки git install
Впервые в Git?
В оставшейся части статьи предполагается, что у вас есть хотя бы практические знания Git. Если нет, ничего страшного.Хорошая новость заключается в том, что с Visual Studio вам не нужно сразу понимать, как работает Git, хотя в какой-то момент вы захотите познакомиться с тем, как работает Git и его синтаксисом командной строки. Одним из лучших ресурсов для изучения Git является бесплатная электронная книга Скотта Чакона «Pro Git», показанная на рис. 2 .
Рисунок 2: Pro Git Скотта Чакона — это бесплатная электронная книга, доступная на сайте git-scm.com.
Контроль версий Git и Контроль версий TFS
Основное различие между Git и TFS Version Control (VC) заключается в их соответствующем типе.Если TFS является централизованным, распространяется Git. В распределенной системе VC каждый клиент имеет свой собственный локальный репозиторий, который синхронизируется с одним или несколькими удаленными репозиториями. Каждый локальный репозиторий, помимо прочего, имеет возможность ветвления, слияния и фиксации. В централизованной системе VC есть только один репозиторий, размещенный на сервере. Только с тем централизованным сервером, на котором происходят операции ветвления, слияния и фиксации. В централизованной модели разработчики должны иметь постоянное подключение к центральному репозиторию, чтобы пользоваться преимуществами VC.В распределенной модели разработчикам требуется подключение только тогда, когда им нужно синхронизировать свои изменения. Признавая ценность распределенного венчурного капитала и популярность Git, Microsoft встроила Git в TFS. Теперь, когда вы создаете TFS или Visual Studio Online Team Project, вы выбираете поставщика управления версиями: Git или TFS.
Поддержка Git в Visual Studio не является какой-то специальной версией Git. Скорее, это поддержка самого Git. Кроме того, есть поддержка распространенных удаленных хостеров Git, таких как GitHub и BitBucket.Если ваш проект находится в каталоге, в котором есть инициализированный репозиторий git, Git функционирует в Visual Studio, как вы сейчас увидите: «Загорится». Конечно, чтобы связать рабочие элементы с коммитами исходного кода, вам нужно использовать TFS или Visual Studio Online.
Начало работы: создание удаленного репозитория на GitHub
На рисунках 3 и 4 показан новый репозиторий GitHub.
Рисунок 3. Когда вы создаете репозиторий в GitHub, вы можете указать ряд параметров.Рисунок 4: Основная страница GitHub для репозитория
После создания репозитория GitHub следующим шагом будет клонирование репозитория в локальный репозиторий Git. Для этого вы будете использовать Visual Studio и, в частности, консоль диспетчера пакетов NuGet.
Поддержка Git в Visual Studio не является какой-то специальной версией Git. Скорее, это поддержка самого Git.
Клонирование репозитория GitHub с помощью PowerShell в Visual Studio
PowerShell — мощный инструмент; Visual Studio поставляется с командным окном PowerShell.Вы знаете это как консоль диспетчера пакетов NuGet. Рисунок 5 показывает, что PowerShell не имеет проблем с командой Git и, как видите, клонировать удаленный репозиторий довольно просто.
Рисунок 5: Выполнение команды Git Clone из диспетчера пакетов NuGet Консоль PowerShell
Рисунок 6 подтверждает через проводник файлов клонированный репозиторий.
Рисунок 6: Клонированный репозиторий, как показано в проводнике. Обратите внимание, что в контекстном меню, распознающем каталог, есть репозиторий Git.
На следующем шаге Visual Studio Team Explorer будет подключен к локальному репозиторию.
Подключение Visual Studio к Git
На рисунке 7 показано диалоговое окно «Новый проект». Обратите внимание, что локальный репозиторий Git находится в каталоге.
Рисунок 7: Новый проект будет сохранен в домашнем каталоге нового репозитория Git.
Вы еще не закончили. Вы должны указать Visual Studio добавить текущее решение в систему управления версиями. На рисунке 8 показано, как вызвать эту опцию меню.
Рисунок 8: Чтобы добавить решение в систему управления версиями Git, необходимо выбрать пункт меню «Добавить в систему управления версиями».
После добавления проекта в систему управления версиями обозреватель решений отображает это состояние. Рисунок 9 иллюстрирует обозреватель решений.
Рисунок 9. Когда выбран пункт меню «Добавить в систему управления версиями», Visual Studio обнаруживает существующий репозиторий Git.
Если вы решите добавить проект в элемент управления исходным кодом, вам будет предложено выбрать между TFS и Git. Рисунок 10 показывает, как это работает. Окно вывода подтверждает создание нового локального репозитория Git (при условии, что вы выбрали именно этот вариант). В этой последовательности вы должны связать локальный репозиторий Git с удаленным репозиторием. Для этого вы вводите следующую команду:
git remote add origin https://github.com/user/repo.git
Рисунок 10. После выбора параметра Git создается новый репозиторий Git. Отсюда легко указать удаленный репозиторий в консоли PowerShell диспетчера пакетов.
С проектом Visual Studio в системе управления исходным кодом Git пора обратить ваше внимание на Team Explorer.
Работа с Git и Team Explorer
Рисунок 11 иллюстрирует несколько вещей. Во-первых, Visual Studio не подключена ни к одной TFS. Когда-то для использования Team Explorer требовалось активное подключение к TFS. Эта новая встроенная поддержка Git все меняет. TFS — отличная среда, но она не для всех. Почему встроенная и интегрированная поддержка управления исходным кодом должна зависеть от TFS?
Рисунок 11. После того, как решение помещено под локальный элемент управления исходным кодом Git, Team Explorer становится доступным для использования.Вам больше не нужно подключаться к TFS, чтобы использовать Team Explorer.
Отсюда, если вы знакомы с тем, как использовать Team Explorer для фиксации изменений в репозитории исходного кода, вы уже знаете, что делать. Рисунок 12 иллюстрирует основной рабочий процесс. Сначала вы нажимаете кнопку «Изменения» в Team Explorer. Как только вы предоставите сообщение о фиксации, вы можете зафиксировать эти изменения в своем локальном репозитории. Есть три варианта:
В этом примере вы просто зафиксируете, а затем синхронизируете свои изменения на отдельном шаге.
Рисунок 12: Фиксация изменений исходного кода в Team Explorer работает так же, как фиксация изменений в репозитории исходного кода TFS.
Рисунок 13 иллюстрирует результаты первой фиксации. Это действительно так просто. Все, что было сделано с помощью Team Explorer, можно было сделать с помощью команд Git через командную строку, Git Bash или, как было показано ранее, с помощью консоли PowerShell диспетчера пакетов NuGet.
Рисунок 13: Используя историю фиксации в качестве примера, внутри Visual Studio вы можете выбрать использование Team Explorer, командной строки или какой-либо комбинации при взаимодействии с Git.
Важно отметить, что, хотя вы можете выполнять большинство задач с помощью Git в Team Explorer, есть некоторые функции, требующие использования командной строки. Хорошим примером этого является команда git stash . В Team Explorer нет возможности сохранить текущую работу без ее фиксации перед переключением в другую ветку.
Теперь, когда вы зафиксировали свои изменения, следующее, что вам нужно сделать, это отправить эти изменения на удаленный сервер. Этот шаг проиллюстрирован на рис. 14 .
Рисунок 14: Из Team Explorer очень легко синхронизировать локальные и удаленные репозитории Git.
Это все, что нужно для синхронизации с удаленным репозиторием Git. Локальный репозиторий знает об удаленном репозитории, потому что локальный репозиторий был создан путем клонирования удаленного репозитория. С другой стороны, если вы сначала создаете локальный репозиторий, вам нужно вызвать команду git remote add .
О ветвлении и слиянии
Разветвление и слияние очень легко выполнить в Team Explorer.Для демонстрации создадим ветку под названием development. Рисунок 15 иллюстрирует этот рабочий процесс. Обратите внимание, что установлен флажок в ветке Checkout. Когда вы проверяете ветку, она делает эту ветку выбранной в данный момент веткой. Вы всегда на ветке. Когда вы впервые создаете репозиторий, есть одна ветка с именем master . Это корневая ветвь или то, что часто называют стволом. Идея состоит в том, что со временем на стволе появятся ветви, как у дерева. В конце концов, активность в этих ветвях со временем переносится обратно в магистраль.Прежде чем вы сможете переключаться между ветвями, вам нужно либо зафиксировать, либо спрятать свою работу. Сохранение работы помещает вашу работу во временное хранилище без необходимости фиксировать ее в текущей ветке.
Рисунок 15. Из Team Explorer очень легко создавать локальные ветви и публиковать их в удаленном репозитории.
Рисунок 16 иллюстрирует новую ветвь в удаленном репозитории, размещенном на GitHub. Теперь эта ветка доступна для использования другими разработчиками. Когда они синхронизируют свои локальные репозитории, они смогут работать в этой ветке.
Рисунок 16. Когда ветка опубликована, она становится доступной в удаленном репозитории.
Сегодня, независимо от того, используете ли вы Team Foundation Server или Visual Studio Online, вы можете использовать Team Explorer для управления исходным кодом Git и взаимодействия с ним.
Слияние так же просто. В следующем списке перечислен один возможный рабочий процесс.
- Оформить заказ на ветку, в которой вы хотите работать. Вы можете использовать команду git checkout или выбрать ветку в Team Explorer.
- Внесите свои изменения.
- Синхронизируйте локальный репозиторий с удаленным репозиторием, убедившись, что ваша локальная копия мастера обновлена.
- Зафиксируйте изменения в ветке.
- Объедините ваши изменения из ветки (источника) в главную (цель). Вы также можете слить из одной ветки в другую. Или вы можете выполнить слияние от мастера к ветке.
- Если нет конфликтов слияния, синхронизируйте изменения с удаленным репозиторием.
Рисунок 17 показывает, где и как инициировать слияние в Team Explorer.Как и во всем остальном, у вас есть возможность инициировать эти операции с помощью команд git в командной строке.