Привет всем
Я решил начать цикл статей на тему обучения программирования в .NET, а именно на C#. Я не претендую на авторство всего, что здесь и далее будет написано, я всего лишь хочу дать знания тем, кто этого желает.
На Хабре много раз могли заметить мои комментарии по поводу того, что я очень хотел бы обучать людей, но никак не мог придумать как это сделать. После цикла статей MaxElc я подумал, что тоже могу паралельно с ним начать писать.
Пожалуй начнём!
Архитектура .NET
.NET — это среда исполнения или платформа. Она располагается между кодом и Windows, позволяя предоставлять нужные службы. Платформа .NET состоит из двух основных компонентов. Это Common Language Runtime и .NET Framework Class Library.
Common Language Runtime (сокращенно CLR) можно назвать «двигателем» платформы .NET. CLR занимается управлением памятью, компиляцией и выполнением кода, работой с потоками управления, обеспечением безопасности и т.п.
.NET Framework Class Library — это набор классов на все случаи жизни.
Итак, чтобы понять, как работает .NET, рассмотрим её составные части:
Общая система типов (Common Type System, сокращенно CTS) — охватывает большую часть типов, встречающихся в распространенных языках программирования.
Виртуальная система исполнения (Virtual Execution System, сокращенно VES) — отвечает за загрузку и выполнение программ, написанных для CLI.
Система метаданных (Metadata System) — предназначена для описания типов, хранится в независимом от конкретного языка программирования.
Общий промежуточный язык (Common Intermediate Language, сокращенно CIL) — независимый от платформы объектно-ориентированный байт-код, выступающий в роли целевого языка для любого поддерживающего CLI компилятора.
Общая спецификация языков (Common Language Specification, сокращенно CLS) — соглашение между разработчиками языков программирования и разработчиками библиотек классов, в котором определено подмножество CTS и набор правил.
Одной из основных идей .NET является совместимость различных служб, написанных на разных языках. Например, служба, написанная на C++ для .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследованный от класса, написанного на Visual Basic .NET, а исключение, созданное методом, написанным на C#, может быть перехвачено и обработано в Delphi.
Я не буду вдаваться в подробности и перепечатывать учебники. Для тех, кто желает более подробно узнать про .NET я оставлю внизу ссылки на необходимые ресурсы. Просто весь смысл сводится к тому, что .NET нам помогает! И это очень хорошо. =)
Основы C#
Для удобного исполнения примеров рекомендую вам скачать бесплатный Visual Studio 2008 Express, а у кого траффик не казенный, то можете использовать #Develop — это OpenSource проект с открытым исходным кодом.
Начнём с немного боянного уже примера — Hello World!
- using System;
-
- class HelloWorld
- {
- public static int Main()
- {
- Console.WriteLine("Hello World!");
- return 0;
- }
- }
* This source code was highlighted with Source Code Highlighter.
Если вы используете Visual Studio или #Develop — создайте новый консольный проект. Для извращенцев :) можно попробовать использовать csc.exe — это компилятор C#. Он входит в состав свободно распространяемой MS.NET SDK.
Для сборки в IDE выберите Build в меню Project, а используя csc.exe наберите в командной строке:
csc /out:TargetFile.exe SourceFile.cs
где TargetFile.exe — это выходной файл, а SourceFile.cs — файл, где вы набрали вышенаписанный код.
Давайте разберём код, который мы написали.
using подключает пространство имён System, которое включает в себя методы ввода/вывода и нужные типы.
class HelloWorld — объявили новый класс, который мы обозвали как HelloWorld. Чуть позже я вам расскажу про классы более подробнее, а пока вам надо понять, что любая программа на C# состоит из классов.
Далее идёт метод Main() — это дверь для компилятора. Свою работу он будет начинать отсюда. Метод Main() обязателен для любой программы и его имя должно писаться именно так. В C# регистр имеет значение ;).
[модификатор] возвращаемый_тип ИмяМетода([параметр])
{
//тело метода
}
Вот как выглядят методы. Сначала идёт модификатор, затем надо указать тип данных, которые он будет возвращать, имя самого метода, а в скобках параметры, которые он принимает. Про всё это вы узнаете из будущих статей, а пока просто попытайтесь запомнить.
Квадратные скобки обозначают необязательные параметры. Модификаторы используются для указания особенностей вызова метода, например, откуда он может быть вызван.
Наконец перейдём к самим операторам. У нас вызывается метод WriteLine() класса System.Console для вывода строки в консоли. Для выхода из метода применяется оператор return и так как это метод Main(), то происходит выход из программы. В заголовке метода Main() указан тип int, поэтому необходимо вернуть целое значение (в данном случае).
Важные ссылки
.NET Framework (Wikipedia)
Офф. сайт .NET
Обзор технологии NET Framework (MSDN)
Visual Studio 2008 Express
#Develop
C# IDE Mobile
P.S. Я оставил эту статью логически незаконченой, т.к. завтра намериваюсь продолжить писать и опубликавать. Пишите в комментарии свою критику и вопросы. Надеюсь вам понравилось.
P.P.S. MaxElc! А вёдрами то интереснее =)