Створюємо найпростішу середу розробки (ide)

Найпростіша середовище розробки програмних продуктів на C # і VB.NET

Створюємо найпростішу середу розробки (ide)

Створюємо найпростішу середу розробки (ide)

Що може ця програма. і з якою метою я тут викладаю її вихідний код? Можливості програми такі: користувач може писати текст програм на C # або VB.NET, запускати його і виконувати найпростіші дії з налагодження (програма повідомляє про помилки і вказує їх місцезнаходження), створювати запускаються модулі (exe) або спільні бібліотеки (dll), підключати інші програмні компоненти і зберігати вихідний код і параметри збірки в текстових файлах.

Кому може бути корисний такий інструмент програмування? Ну, по-перше, його можна використовувати в рамках навчальних курсів з програмування, оскільки він є безкоштовним, а його можливостей для цілей навчання основам програмування і алгоритмізації цілком вистачає. На сайті codingcraft.ru ця програма якраз і пропонується в якості навчального інструменту курсу програмування для початківців. Маючи вихідний код проекту на C #, можна "докрутити" його функціональність під вимоги конкретного процесу навчання, наприклад, підключити бібліотеки з базовими алгоритмами, вбудувати автоматизовану підсистему перевірки результатів завдань і виставлення оцінок і т.п. По-друге, частина вихідного програмного коду цього проекту можна використовувати при розробці прикладних підсистем, в завдання яких входить інтерпретація різного роду бізнес - сценаріїв, виконання зовнішніх процедур і т.д. Більш докладно про завдання розробки plug-in архітектури написано тут.

Опис проекту

В основі програми використовується технологія відображення (reflection). яка надає інтерфейси для доступу до елементів завантаженої або динамічно сформованої програмної збірки (Assembly). Технологія відображення побудована на базі сервісів читання і обробки метаданих збірки .NET. більш детально про які можна дізнатися в матеріалах, присвячених віртуальної машині CLR і її оточенню. Якщо коротко описати алгоритм роботи програми, то виглядає це наступним чином. Спочатку створюємо і инициализируем сервіс динамічної компіляції (CodeDomProvider). Виконуємо динамічну компіляцію, викликаючи відповідний метод (CompileAssemblyFromSource) і передаючи в якості параметрів екземпляр класу налаштувань (CompilerParameters) і сам програмний код. Якщо компіляція пройшла без помилок, то її результатом є сформована в пам'яті збірка. Далі, засобами відображення шукаємо в отриманої збірці тип додатки (клас Application), шукаємо за допомогою все того ж відображення у цього типу точку входу (метод Main). Потім створюємо екземпляр типу додатки і запускаємо його, викликаючи метод точки входу. У процесі постійно контролюємо виникнення виняткових ситуацій і належним чином їх обробляємо. Все досить просто, і на підтвердження цих слів нижче приведена частина вихідного коду класу CSSDocument. що містить методи компіляції і запуску програми: Compile () і Run ().

Якщо інтерес до предмету залишився, то завантажуйте вихідний код цілком, розбирайтеся в ньому і вдосконалюйте свої навички. Хай щастить.