1. Вступ
PDF цього документа доступний за посиланням |ICI|.
Приклади з цього документа доступні за посиланням |ICI|.
C# — це відносно нова мова програмування. З 2000 року вона була доступна у послідовних бета-версіях, а в лютому 2002 року офіційно вийшла разом із платформою .NET 1.0 від Microsoft, з якою вона пов’язана. C# може працювати лише в цьому середовищі виконання. Воно надає програмам, що виконуються в ньому, дуже великий набір класів. У загальних рисах можна сказати, що платформа .NET є середовищем виконання, аналогічним віртуальній машині Java. Однак можна відзначити дві відмінності:
- Java з самого початку виконується на різних OS (Windows, Unix, Macintosh). У 2002 році платформа .NET працювала лише на комп’ютерах з Windows. Останні кілька років проект Mono [http://www.mono-project.com] дозволяє використовувати платформу .NET на таких системах, як Unix та Linux. Поточна версія Mono (лютий 2008 року) підтримує .NET 1.1 та окремі елементи .NET 2.0.
- Платформа .NET дозволяє виконувати програми, написані на різних мовах. Достатньо, щоб компілятор цих мов міг генерувати код IL (Intermediate Language), який виконується віртуальною машиною .NET. Усі класи .NET доступні для мов, сумісних із .NET, що сприяє згладжуванню відмінностей між мовами, оскільки програми широко використовують ці класи. Вибір мови .NET стає скоріше питанням смаку, ніж продуктивності.
У 2002 році C# використовував платформу .NET 1.0. Тоді C# був значною мірою «копією» Java, а .NET — бібліотекою класів, дуже схожою на бібліотеку платформи розробки Java. Під час вивчення мови можна було переходити з середовища C# у середовище Java, не відчуваючи особливого дискомфорту. Навіть існували інструменти для конвертації вихідного коду з однієї мови на іншу. З того часу ситуація змінилася. Кожна мова та кожна платформа розробки тепер має свої особливості. Перенести свої навички з однієї сфери в іншу вже не так просто.
C# 3.0 та фреймворк .NET 3.5 приносять багато нововведень. Найважливішою, ймовірно, є LINQ (Language INtegrated Query), яка дозволяє виконувати запити в уніфікованому форматі, подібному до мови SQL, послідовностей об’єктів, що походять із структур у пам’яті, таких як масиви та списки, із баз даних (наразі — лише SQL Server — лютий 2008 року) або з файлів XML.
Цей документ не є вичерпним курсом. Наприклад, LINQ тут не розглядається. Він призначений для осіб, які вже мають знання з програмування та бажають ознайомитися з основами C#. Це перероблена версія оригінального документа, опублікованого у 2002 році.
При написанні цього курсу мені допомогли кілька книг:
Для версії 2002 року:
- «Professional C# programming», видавництво Wrox
- «C# та .NET», Жерар Леблан, видавництво Eyrolles
На той час я вважав ці дві книги чудовими. З того часу Жерар Леблан опублікував оновлені версії, зокрема таку:
- «C# та .NET 2005», Жерар Леблан, видавництво Eyrolles
Для перегляду 2008 року я використовував такі джерела:
- початковий документ 2002 року. Цей документ, створений шляхом копіювання та вставлення з мого курсу з Java, містив як друкарські помилки, так і більш серйозні помилки, наприклад, твердження, що примітивні типи, такі як System.Int32, є класами, хоча насправді це структури. Mea culpa...
- документацію MSDN до Visual Studio Express 2008
- книга «C# 3.0 in a Nutshell» Джозефа та Бена Альбахарі, видана видавництвом O'Reilly, — одна з найкращих книг з програмування, які мені доводилося читати.
Вихідні коди прикладів з цього документа доступні на сайті [http://tahe.developpez.com/dotnet/csharp/].
Serge Tahé, травень 2008 року
З травня 2008 року мова C#, звісно, еволюціонувала. Проте цей документ залишається актуальним для вивчення цієї мови. На додаток до цього курсу ви знайдете презентацію ORM (об'єктно-реляційний мапер) Entity Framework у статті «Вступ до ORM Entity Framework 5 Code First» на URL [Вступ до Entity Framework 5 Code First на прикладах (2012)].
Serge Tahé, жовтень 2013 р.