
- •Деякі основні переваги платформи .Net
- •Введення в будівельні блоки платформи .Net (clr, cts і cls)
- •Роль бібліотек базових класів
- •Що привносить мова c#
- •Порівняння керованого і некерованого коду
- •Інші мови програмування, орієнтовані на .Net
- •Життя в багатомовному оточенні
- •Огляд збірок .Net
- •Роль мови сil
- •Переваги мови cil
- •Переваги мови cil
- •Компіляція cil-коду в інструкції, специфічні для платформи
- •Роль метаданих типів .Net
- •Роль маніфесту збірки
- •Поняття загальної системи типів (cts)
Порівняння керованого і некерованого коду
Можливо, найбільш важливий аспект, який слід знати про мову С #, полягає в тому, що він породжує код, який може виконуватися тільки в рамках виконуючого середовища .NET (використовувати C# для побудови COM-сервера або некерованого додатка C / C++ не допускається) . Висловлюючись офіційно, для позначення коду, орієнтованого на виконуючу середу .NET, застосовується термін керований код. Двійковий модуль, який містить керований код, називається складанням (збірки більш докладно розглядаються далі в цьому розділі). На противагу цьому, код, який не може обслуговуватися безпосередньо виконуючим середовищем .NET, називається некерованим кодом.
Інші мови програмування, орієнтовані на .Net
Важливо пам'ятати, що C# - це не єдина мова, яку може використовуватися для побудови .NET-додатків. Середовище Visual Studio спочатку пропонує п'ять керованих мов, а саме - С #, Visual Basic, C++ / CLI, JavaScript і F #.
На замітку! F # - це мова .NET, заснована на синтаксисі функціональних мов. Хоча вона може застосовуватися як чиста функціональний мова, в ній також пропонується підтримка конструкцій об'єктно-орієнтованого програмування (ООП) і бібліотек базових класів .NET. Додаткові відомості про цю керовану мову доступні на її офіційній головній сторінці за адресою http://msdn.microsoft.com/fsharp.
На додаток до керованих мов, пропонованих Microsoft, існують .NET-компілятори, які призначені для мов Smalltalk, Ruby, Python, COBOL і Pascal (і це далеко не повний перелік). Хоча в цій книзі увагу сконцентровано на мові С #, ви можете порахувати небезінтересним наступний веб-сайт:
www.dotnetlanguages.net
Клацнувши на посиланні Resources (Ресурси) в самому верху домашньої сторінки цього сайту, можна отримати список всіх мов програмування .NET і відповідні посилання, призначені для завантаження різних компіляторів (рис. 1.2).
Навіть якщо ви цікавитеся в першу чергу побудовою програм .NET з використанням синтаксису С#, все одно рекомендується відвідати зазначений сайт, оскільки ви напевно вважатимете багато мов для .NET заслуговують додаткової уваги (наприклад, LISP.NET).
Життя в багатомовному оточенні
Як тільки розробники приходять до усвідомлення незалежної від мови природи .NET, у них виникає безліч питань. Найпоширеніше з них може бути сформульоване так: якщо всі мови .NET компілюються в керованому коді, чому існує не один, а безліч мов / компіляторів?
Відповісти на це питання можна по-різному. Програмісти бувають дуже вибагливі, коли справа стосується вибору мови програмування. Деякі вважають за краще мови з численними точками з комою і фігурними дужками, але з мінімальним набором ключових слів. Іншим подобаються мови, що пропонують більш читабельні синтаксичні конструкції (такі як в Visual Basic). Хтось не бажає відмовлятися від свого досвіду роботи на мейнфреймах і воліє перенести його на платформу .NET (вибираючи компілятор COBOL.NET).
А тепер дайте відповідь чесно: якби в Microsoft запропонували єдину "офіційну" мову .NET, наприклад, на базі сімейства BASIC, то чи всі програмісти були б раді такому вибору? Або якби "офіційна" мову .NET грунтувалася на синтаксисі Fortran, скільки людей у світі просто б проігнорували платформу .NET? Оскільки виконуюча середу .NET демонструє меншу залежність від мови, використовуваного для побудови блоку керованого коду, програмісти .NET можуть, зберігати свої синтаксичні уподобання, обмінюватися скомпільованими збірками з колегами, іншими відділами та зовнішніми організаціями (і не звертати уваги на те, яка мова .NET в них застосовується).
Ще одна корисна перевага інтеграції різних мов .NET в одному уніфікованому програмному рішенні випливає з того простого факту, що кожна мова програмування має свої сильні і слабкі сторони. Наприклад, деякі мови програмування володіють чудовою вбудованою підтримкою для виконання складних математичних обчислень. В інших краще реалізовані фінансові або логічні обчислення, взаємодія з мейнфреймами і т.п. А коли переваги конкретної мови програмування об'єднуються з перевагами платформи .NET, виграють всі.
Звичайно, в реальності велика ймовірність того, що доведеться витрачати більшу частину часу на побудову програмного забезпечення за допомогою надавання переваги мови .NET. Проте, після освоєння синтаксису однієї з мов .NET вивчення синтаксису якоїсь іншої мови істотно спрощується. Вдобавок це досить вигідно, особливо тим, хто займається консультуванням з розробки програмного забезпечення. Наприклад, якщо віддається перевага мовою у вас є С #, то при попаданні в клієнтську середу, де все побудовано на Visual Basic, ви все одно зможете користуватися функціональністю .NET Framework і розуміти загальну структуру кодової бази з мінімальними зусиллями і занепокоєнням.