Использование нескольких проектов в одном решении
Основные теоретические сведения
Можно поместить в одно решение несколько проектов разных типов. Например, можно создать игру XNA для Windows Phone, Xbox 360 и компьютера под управлением Windows, используя единственный файл решения. Для каждого из этих устройств можно создать отдельный файл проекта. Игровой движок может быть реализован в четвёртом проекте, который нужно использовать в остальных проектах.
Можно создать приложение Silverlight, которое подключается к веб-службе; при этом можно поместить и проект приложения Silverlight и проект веб-службы в одно решение.
Проекты решения и выполняемые ими задачи должны быть определены в начале разработки. Если решение содержит несколько проектов, можно назначить один из них запускаемым проектом, который будет выполняться первым при запуске проекта.
Создание решения с несколькими проектами
Новые проекты можно добавить к решению, щёлкнув правой кнопкой мыши по решению и выбрав во всплывающем меню пункт Добавить -> Создать проект…. В открывшемся окне можно выбрать любой из представленных шаблонов проекта и создать новый проект, который будет являться частью решения.
Часто к решению приложения Silverlight для Windows Phone добавляется проект библиотеки классов, которая может использоваться в нескольких приложениях. Однако, в виде дополнительного проекта используются фоновые задачи и приложения XNA, если они должны запускаться со страницы приложения Silverlight.
Чтобы использовать ресурсы одного проекта в другом проекте, в последний нужно добавить ссылку на нужный проект и добавить в файл исходного кода директиву using.
Например, к проекту приложения добавляется новый проект библиотеки классов MyLibrary, в которой создаётся класс MyClass, который может быть полезен в других приложениях. Код библиотеки класса на языке C# может выглядеть так:
namespace MyLibrary { public class MyClass { public void MyMethod() { // код метода } } }
Чтобы использовать этот класс библиотеки в основном проекте, требуется добавить ссылку на проект библиотеки, после чего класс будет доступен в коде программы:
using MyLibrary; ... private void button1_Click(object sender, RoutedEventArgs e) { MyClass c = new MyClass(); c.MyMethod(); }
Дополнительные материалы
Сайт MSDN: http://msdn.microsoft.com/ru-ru/library/sc65sadd.
Задание к работе
- Откройте в Visual Studio созданный в предыдущих работах проект программы для Windows Phone.
- Добавьте к решению для приложения новый проект библиотеки классов Windows Phone.
- Перенесите код программы для вычисления результата в проект библиотеки.
- Добавьте в главный проект программы ссылку на проект библиотеки и вызов методов класса библиотеки.
- Запустите программу и проверьте правильность её работы.
- Откройте на компьютере папку с файлами приложения (папка Bin -> Debug, вложенная в приложение). Измените расширение файла приложения .xap на .zip, и откройте этот файл с помощью любой программы для работы с архивами формата ZIP. Обратите внимание, что в архиве присутствует дополнительная библиотека с расширением .dll.
- Составьте отчёт о проделанной работе. Включите в отчёт необходимые листинги программы.