Концепция решений и проектов
Сеанс работы
в Studio.Net начинается с открытия существующего или создания нового решения
(solution). В дальнейшем вместо термина решение я иногда буду
использовать термин рабочее пространство, так как буквальный перевод
— решение — не всегда точен. Файлы с расширением sin используются IDE (Integrated
Development Environment) для хранения настроек и начальных установок конкретных
решений. Концепция решений помогает объединить проекты и другие элементы
в одном рабочем пространстве. Множество файлов разного типа, в рамках одного
решения составляют приложение (application) Visual Studio.Net 7.0. Рабочее
пространство может содержать несколько проектов, быть пустым или содержать файлы,
которые имеют смысл и вне контекста решений. В любом случае, вы должны
начинать работу в студии с открытия существующего или создания нового рабочего
пространства.
Проект как
часть решения состоит из отдельных компонентов, например файлов, описывающих
форму окна или шаблон диалога (re-файл), файлов с исходными кодами программных
модулей (.срр, .cs) и/или файлов, представляющих собой описание запроса к базе
данных (database script), HTML-документов и, т. д. Настройки проектов
хранятся в специальных файлах проектов. Они могут иметь разные расширения, так
как в одном пространстве можно объединять проекты совершенно разных типов. Например,
проект MFC-приложения хранит свои установки в файле с расширением vcproj, а
файл проекта, реализованного на языке
С#, имеет расширение
csproj. Такой файл является читаемым, его можно открыть вне рамок Studio.Net
(например, с помощью Notepad) и увидеть описание установок проекта на еще одном
из «секретных» языков. Например, проект типа MFC Application с именем MyProj
содержит файл MyProj.vcproj, начальный фрагмент которого мы приведем здесь:
<?xml
version="1.0"?>
<VisualStudioProject
ProjectType="Visual C++" Version="7.00" Name="MyProj" Keyword="mfc">
<Build>
<Settings>
<Platform
Name="Win32"/>
<Configuration
Name="Debug|Win32"
InterraediateDirectory="Debug"
OutputDirectory="Debug"
ConfigurationType="l"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCBscMakeTool"/>
<Tool
Name="VCCLCorapilerTool"
Optimization="0"
Нет необходимости
углубляться в анализ языка описания проекта. Поверхностного взгляда достаточно,
чтобы понять, что мы имеем дело с последовательностью <предложений>, описывающих
тип проекта, настройки и перечень инструментов Studio.Net для его обработки.
То же самое можно сказать про sin-файл. Он читаем, и если открыть его
в текстовом режиме, то можно увидеть предложения некоего служебного языка, описывающие
состав и настройки рабочего пространства.