Ответы на вопросы, связанные с Microsoft Visual Studio.Net

Ответы на вопросы, связанные с Microsoft Visual Studio.Net

Окончание. Начало в КГ № 14

А что это такое за "Solution", и чем "оно" отличается от "Project"?
Solution — это взгляд "Майкрософт" на то, как должен выглядеть проект:). Идея заключается вот в чем. Предположим, вы собрались программировать какое-либо новое С# консольное приложение. Выбираете в меню File-> New-> Project. Выскакивает окошко с выбором типа проекта. Выбираем в левом дереве Visual C# Project, а в правом списке — Console Applica-tion. Приступаем к редактированию полей ввода внизу.
В поле Name вводим название нашего будущего приложения — к примеру, Test1. В поле Location указываем каталог, в котором мы хотим сохранить наш проект. Нажимаем кнопку OK.

Некоторое время Visual Studio шуршит винчестером, затем показывает вам окно редактора с новым файлом-заготовкой. Выбираем из меню пункт View-> Solution Explorer. Перед вами появляется окно с перечнем файлов вашего нового проекта. Файлы организованы в иерархическое дерево. Корень дерева проекта называется Solution test1. Ниже расположен каталог test1, затем идут папка References и сами файлы проекта. Давайте выберем мышкой корень дерева Solution test1 и вызовем на нем контекстное меню, нажав правую кнопку мыши. В выпавшей менюшке выбираем Add-> New Project. Перед нами снова появляется уже знакомое окно Создание нового проекта. Снова выбираем консольное C#-приложение, называем его, скажем, test2 и жмем кнопку OK. Visual Studio опять шуршит винчестером, и... Поняли теперь, что за штука Solution? Если все еще нет, поясняю: Solution — это набор из нескольких проектов, объединенных в рамках какой-либо одной группы. К примеру, в одну группу проектов можно занести все примеры кода, которые я вам приведу в серии статей, посвященных Net. В реальных больших приложениях в отдельные проекты можно вынести какие-либо блоки кода, компилируемые в отдельные DLL. Говоря простым языком, один проект (Project) равняется одному выходному исполнимому файлу (будь то EXE файл приложения или DLL). Одно решение (Solution) — это группа выходных файлов, которые составляют весь тот комплект, который вы отдаете своему заказчику.

В этот набор могут входить файлы документации, один или несколько исполнимых файлов и несколько DLL-файлов. Если вы делаете для своей программы установщик (Setup), он также оформляется в виде отдельного проекта внутри вашего Solution. Для того чтобы со всеми ними работать как с единым целым, и придумано понятие Solution. На самом деле такой подход кажется несколько неестественным лишь начинающему разработчику, но, поверьте, если вы привыкнете, то потом будете удивляться, как раньше обходились без этого понятия. Сам я привык к понятию Solution еще в Delphi. Там такая штука называется Project Group. Надо отдать должное "Майкрософт", у них эта концепция получилась, на мой взгляд, удобнее и естественнее, чем у Borland.

А чего это мастера Visual Studio генерируют так много "левых" комментариев в коде! Можно их как-нибудь от этого отучить?
Конечно, можно. Идете в папку соответствующего языка и правите под себя шаблоны мастеров. Для C# папка шаблонов будет называться C:\Program Files\Microsoft Visual Studio .NET\VC#\VC#Wi-zards\. Для VB.Net — C:\Program Files\Microsoft Visual Studio .NET\Vb7\VBWizards\.
В этих папках и расположены подкаталоги заготовок для разных автоматически генерируемых средой разработки файлов. Называются они довольно прозрачно, и поэтому нетрудно догадаться, какой шаблон для чего нужен. Давайте для примера "заточим по себя" шаблон консольного приложения C#. Расположен он в каталоге C:\Program Files\Microsoft Visual Studio .NET\VC#\VC#Wizards\CSharp ConsoleWiz. Заходим в каталог и видим еще два:). Один называется Template, другой — Scripts. В каталоге Template\1033 располагаются файлы, которые и окажутся в папке вашего нового проекта. Если вы изучите их содержимое любым текстовым редактором, хоть той же самой Visual Studio, то заметите, что, помимо предопределенного кода, они содержат еще и макросы в квадратных скобках на манер ASP. Код, обрабатывающий эти макросы, расположен в подкаталоге Scripts\1033 и является привычным любому web-разработчику файлом JavaScript.

Структура и назначение файлов, находящихся в этих двух каталогах, достаточно прозрачны для более или менее продвинутого программиста. Думаю, вы без труда разберетесь, что и где следует править, для того чтобы достичь нужных вам результатов. Я сам разобрался с этим вопросом минут за тридцать. Если вам что-то непонятно — спрашивайте, я подскажу.
И спрошу! А что это у меня в папке проекта создается так много левых файлов! Как мне от них избавиться? И как добавить к мастеру нового проекта свои собственные файлы? К примеру, манифест для WindowsXP и HTML-страничку с моим readme…

Ну, начнем с того, что, прежде чем от чего-то избавляться, для начала необходимо убедиться в том, что этот файл вам действительно не нужен. Я бы на вашем месте не был в этом так уверен. Если же вы, в отличие от меня, в этом не сомневаетесь, открываете на редактирование файл Template. inf, лежащий в папке шаблонов соответствующего мастера. Template.inf — это обычный текстовый файл, в котором перечислены те файлы, которые копируются в каталог вашего нового проекта. Убираете в нем названия лишних, на ваш взгляд, файлов и добавляете название своих новых файлов. Если вы добавили название своих файлов в список template.inf, не забудьте положить сами эти файлы в папку tempate/1033. Именно оттуда среда разработки их и копирует в каталог вашего нового проекта.

Да, вот еще! Чуть не забыл. Если вы просматривали файлы шаблонов, то наверняка обратили внимание на наличие в тексте шаблона макросов в квадратных скобках, которые среда разработки разворачивает в момент создания нового проекта. Вы можете использовать эти макросы и в ваших файлах. К примеру, фрагмент моей HTML-страницы readme для проекта test2, выглядящий как:
<h1> Проект: [!output PROJECT_NAME]</h1>
развернется во время работы мастера в:
<h1> Проект: test2</h1>

А можно обойтись без Visual Studio Net, компилируя примеры из ваших статей про NET Framework?
Конечно, можно. Для того, чтобы откомпилировать и запустить мои примеры, убедитесь в том, что у вас установлен пакет Microsoft.NET Framework. Где его взять и как его установить, рассказывалось в первой статье цикла. Проверить правильность установки пакета довольно нетрудно. Запустите Far и наберите в командной строке:
csc.exe /?
Если компьютер в ответ на это разразится большим количеством текста, то это означает, что компилятор C# у вас установлен и доступен. Если такого не происходит, это, вероятнее всего, потому, что у вас не описан к нему путь. Net Framework устанавливается в папку:
C:\WINDOWS\Microsoft.NET\Framework\v1.x.xxxx\
где "x" — это номер версии установленного у вас пакета. Под WindowsXP или Windows 2000 впишите путь к этому каталогу в Мой Компьютер-> Свойства-> Дополнительно-> Переменные среды-> Path. Под Windows 98 SE отредактируйте файл autoexec.bat, добавьте этот каталог в список переменной PATH и перезагрузитесь.
Для того чтобы получить исполнимый exe файл примера воспользуйтесь следующей командной строкой:
csc <имя примера>
Например, для того чтобы откомпилировать пример, называющийся "test1.cs", достаточно набрать в командной строке следующее:
csc test1.cs
В результате компилятор создаст рядом с вашим файлом исходного примера исполнимый файл test1.exe.
Давайте прямо сейчас проверим, правильно у вас установлен компилятор или нет. Наберите в Блокноте следующий текст:
class Hello
{
static void Main(){Sys- tem.Console.Write("Hel-lo world!");}
}
Сохраните файл под именем hello.cs. Теперь давайте скомпилируем этот пример с помощью команды csc hello и запустим получившийся файл hello.exe. Если на экране перед вами появилась фраза Hello World, я вас поздравляю. Вы написали свою первую программу на C#.
Для того чтобы создать DLL-файл, используйте ключ компилятора /t:library. Например: для того чтобы скомпилировать в DLL файл test1.cs, выполните следующую команду:
csc /t:library test1.cs
В результате компилятор создаст вместо EXE-файла файл библиотеки DLL test1.dll.
Для того чтобы подключить DLL (например, test1.dll) к своему исполнимому файлу (например, hello.cs), воспользуйтесь ключом компилятора /r:
csc /t:exe /r:test1.dll hello.cs
Ключей /r может быть много. Например, чтобы подключить к проекту hello.cs две DLL-библиотеки test1.dll и test2.dll, строка компилятора будет выглядеть так:
csc /t:exe /r:test1.dll /r:test2. dll hello.cs

У вас есть еще вопросы по Net Framework, на которые вы не нашли ответа? Обращайтесь с ними в форум газеты http://www.nestor.minsk. by/kg/ news_trb — я вам охотно на них отвечу.

Герман Иванов, aka German


Компьютерная газета. Статья была опубликована в номере 15 за 2003 год в рубрике программирование :: разное

©1997-2024 Компьютерная газета