середа, 19 жовтня 2016 р.

Рішення і проекти.

Давайте подивимось на структуру файлів, які створила Студія для нашої програми.
Запустимо Провідник (File Explorer) і перейдемо в нашу робочу папку "app". В цій папці Студія створила файл "app.sln" і іншу папку "app".
Відкриємо цю папку "app". В ній знаходиться декілька папок і декілька файлів. Перш за все звернемо увагу на файл "Program.cs". Це текстовий файл який можна відкрити любим редактором текстів, наприклад, Блокнотом. Відкривши цей файл Блокнотом, ми бачимо, що він містить текст нашої програми, цей текст ми вже редагували в Студії.
Також в папці "app" є файл "app.csproj". Це файл проекту нашої програми. Це теж тектовий файл, але спеціального виду, написаний за спеціальними правилами. Подібний формат файлу називається "XML". Файл проекту містить всю інформацію, яка необхідна Студіі для того, щоб з набору файлів створити програму.
Крім всього іншого, файл проекту містить  перелік файлів, з яких Студія будує програму. Це можна побачити, відкривши файл "app.csproj" блокнотом і пошукавши там "Program.cs": це буде щось подібне на
<Compile Include="Program.cs" />
Але не пробуйте щось змінити в файлі проекту, використовуючи Блокнот або інший текстовий редактор: фай проекту має певну структуру, і якщо його неправильно відредагувати, Студія не зможе з ним працювать.


Також, якщо наша програма вже запускалась із Студії, в папці "app" буде знаходитись папка "bin". В цій папці Студія створює нашу програму, яку можна скопіювати на інший компьютер (з установленою .NET) і там її використовувати.
Відкриемо папку "bin". В ній буде папка "Debug", а в павці "Debug" буде наша програма "app.exe", яку можна запустити прямо з Провідника.

Вернемось назад в папку "app", в якій знаходиться файл "app.sln". Файл "app.sln" - це теж текстовий файл спеціальної структури, який мастить список проектів і деяку додаткову інформацію. Цей файл називається "solution" файл. Термін "solution" можна перекласти з англійської мови як "рішення" - вирішення якогось завдання.
Тобто, структура файлів, які використовує Студія, приблизно така:
  • Файл "solution", має розширення "sln" - це текстовий файл спеціальної структури, який містить список проектів, з якого складається "рішення" і деяку додаткову інформацію.
  • Проекти. Як правило, проекти створюються в окремих папках. Проект складається з набору файлів, всі ці файли перераховані в файлі проекту. В нашому випадку є тільки один ароект, файли якого містяться в папці "app", а вся інформація про те, як з файлів проекту побудувати програму, міститься в файлі "app.csproj".
Для того, щоб продовжити працювати над нашою програмою, запустимо Студію і відкриемо в Студії файл, який описує наше рішення - app.sln. Запускаємо Студію, в меню "File" вибираємо "Open -> Project/Solution...", в відкрившомуся вікні знаходимо і вибираємо наш файл "app.sln" і нажимаємо "Open" (Відкрити). Студія прочитає цей файл і загрузить дані для всіх проектів в цьому рішенні (у нас є лише один проект "app.csproj").

Якщо в меню View вибрати Solution Explorer, Студія відкриє вікно, в якому можна побачити, з чого складається наше рішення і проекти, які в нього входять.



Якщо вибрати файл Program.cs, то Студія відкриє цей файл і можна буде його редагувати.

пʼятниця, 19 серпня 2016 р.

Трохи теорії

Ми зробили програму, яка вміє виводити текст в вікно. Спробуємо розібратися, що саме ми зробили.
Що це таке - комп'ютерна програма?
Програма - це послідовність дій. Наприклад, кулінарний рецепт якогось блюда - це програма для того, хто хоче приготувати це блюдо. В рецепті описана послідовність дій, в результаті яких ми отримуємо готовий продукт. Рецепт повинен бути написаний так, щоб той, хто готує блюдо, чітко розумів, що саме потрібно робити.
Комп'ютерна програма - це теж послідовнісь дій, але ці дії повинен вміти виконувати комп'ютер.
Сам комп'ютер складається з багатьох блоків. Блок, який виконує команди програми, називається процесором.
Як правило, програма для комп'ютера - це послідовність чисел. Ці числа - це команди, які вміє виконувати процесор комп'ютера. Як правило, програма зберігається в файлі на жорсткому диску комп'ютера. Коли потрібно виконати програму, програма загружається з диска в оперативну пам'ять і процесор починає по черзі виконувати команди.
Виходить, що комп'ютерна програма - це послідовність чисел, якими закодовані команди процесора.
Значить, для того, щоб написати програму, потрібно написати послідовність чисел (кожному з яких відповідає певна команда для процесора) і зберегти цю послідовність чисел в файл.
Так дійсно можна створити програму. (Насправді програма крім послідовності команд містить деяку додаткову інформацію але це не міняє суті,)
Але так писати програми дуже незручно, бо потрібно пам'ятати всі числа, які кодують команди. Крім того, є стандартні дії, які доведеться скурпульозно повторювати. Наприклад, щоб додати два числа, треба:

  1. Записати перше число з оперативної пам'яті в певне місце в пам'яті процесора.
  2. Записати друге число з оперативної пам'яті в певне (інше) місце в пам'яті процесора.
  3. Виконати команду "додати два числа".
  4. Записати результат з певного місця в пам'яті процесора в оперативну пам'ять.
Як видно, сама проста операція вимагає виконати декілька кроків.

Тому роблять по-іншому: спочатку пишуть програму на спеціальній мові програмування. Потім запускають спеціальну програму (компілятор), яка опрацьовує файл з тектом програми, написаним на цій мові програмування, і створює програму (послідовність чисел), яку вже може виконувати комп'ютер.

Тепер повернемося до того, що ми зробили, коли написали нашу програму.
Ми дали команду Студії створити по шаблону текст програми на мові C#. Файл з цим текстом записаний на диску в нашій робочій папці. Щоб побачити цей файл, можна запустити провідник, перейти в нашу робочу папку (в мене це папка "CS" в корені диску "D:"), там перейти в папку "app" (це назва нашого solution), там перейти в папку "app" (це ім'я нашої програми) і там буде файл "Program.cs". Це звичайний текстовий файл. Якщо відкрити цей файл блокнотом, то ми побачимо текст нашої програми, такий самий, який ми бачили в Студії.

Коли ми запускали нашу програму (в меню Debug -> Start Debugging), Студія спочатку запустила прогаму-компілятор, яка з нашого тексту створила програму, яку може виконувати комп'ютер, а потім Студія запустила цю створену програму.
Цю програму можна запустити без Студії. Якщо перейти в папку "bin", потім в папку "debug", ми там побачимо файл "app.exe". Цей файл можна запустити прямо з Провідника, виділивши його і нажавши "Enter".

Насправді, все дещо складніще, але для розуміння суті поки що досить такого спрощеного пояснення.

середа, 10 серпня 2016 р.

Перша програма

Напишемо нашу першу програму.
Студія містить набір шаблонів, які дозволяють швидко створити програму. Зараз я опишу кроки, які треба виконати, щоб створити нашу програму. Потім я поясню, що в нас вийшло.
  1. Запускаємо Студію.
  2. Вибираємо меню "File" -> "New" -> "Project"
  3.  Відкриється вікно "New Project". В цьому вікні із списку шаблонів вибираємо "Console Application". Цей шаблон знаходиться в папці Installed/Templates/Visual C#/Windows
    В поле Name (Ім'я) пишемо ім'я нашої програми. Нехай це буде "app".
    В поле Location пишемо нашу робочу папку. В цій папці будуть створені файли, які необхідні для нашої програми. Я використовую папку "CS" в корені диску "D:". Ви можете використовувати будь-яку іншу папку.
    В поле Solution Name пишемо назву для нашого Solution, Я пізніше поясню, що це таке, зараз можна просто написати таке саме ім'я, як і для програми, "app"
  4. Нажимаємо "OK". Студія по вибраному шаблону створить програму і відкриє файл з кодом цієї програми.
Зараз ця створена за шаблоном програма майже нічого не робить. Якщо її запустити, то відкриеться консольне вікно, яке зразу ж закриється і програма завершиться.

Змінимо нашу програму так, щоб вона виводила якийсь текст в консольне вікно і чекала, поки не буде натиснута клавіша "Enter".
Після фігурної дужки, яка йде після
static void Main(string[] args)
добавимо наступні команди:

Console.WriteLine("Some text");
Console.ReadLine();

Тепер текст програми має виглядати так:

Запустимо цю програму.
Для цього виберемо меню Debug -> Start Debugging:

Відкриється консольне вікно, в це вікно буде виведений текст "Some text" і програма буде очікувати на ввод даних. Якщо нажати "Enter", програма завершиться.

Далі я розповім, що саме ми зробили і як це працює.