net platform. c# basics
TRANSCRIPT
Що таке .NET?
1. Уніфікована, інтегрована технологічна платформа, випущена Microsoft в 2002
2. Сучасний, потужний та зручний у використанні інструментарій для розробки та
підтримки программного забезпечення
3. Ідеологія проектування та реалізація програмного забезпечення
4. Модель ефективної підтримки життєвого циклу прикладних систем
5 ключових переваг .NET
1. Підтримка численних мов програмування (C#, Managed C++, Visual Basic, F#...)
2. Обширна бібліотека базових класів
3. Спільний для всіх мов механізм виконання
4. Мовна інтеграція. В .NET підтримується міжмовне наслідування
5. Сервісні можливості для розробника (відлагодження, аналіз коду, …) однакові для
всіх мов
Стек технологій.NET Framework 2.0
(2002)
3.0
(2006)
3.5
(2007)
4.0
(2010)
4.5
(2012)
ASP
.NET
ADO
.NET
Win
Forms
Framework Class Library
Common Language Runtime
WPF WCF
WFCard
Space
Entity
Framework
LINQ
Task Parallel
Library
PLINQ
.NET APIs for
Store/UWP apps
.NET APIs for
Store/UWP apps
Головні компоненти .NET
Бібліотека базових класів
Безпека
Web
XML/SOAP
Інше
Доступ до БД
Потоки
Віконні форми
Ввід-вивід
CLR – спільне середовище виконання
CTS – спільна система типів CLS – спільна специфікація мов
Базові терміни
NET компілятор – компілює вихідний код в CIL (Common Intermediate Language).
Збірка – двійковий файл, що підтримує версії, самоописує себе і обслуговується оточенням CLR(Common Language Runtime). Окрім CIL коду в збірці міститься різноманітна службоваінформація, наприклад: інформація про зовнішні збірки (залежності), структура включених в неїтипів і т. п.
JIT компілятор – виконує перетворення коду MSIL в машинні команди по мірі викликупідпрограм (фрагментами). На виході утворюється так званий керований код, який потімвиконується в середовищі CLR.
Керований код – це такий, що містить метадані, які дозволяють CLR виконувати перевіркубезпеки, контроль прав, контроль версій, збір мусору і т. п.
Схема компіляції в CLR.
1. Компіляція файла HelloWorld.cs в файл HelloWorld.dll:csc.exe /target:library /out:"D:/HelloWorld.dll" "D:/HelloWorld.cs“
2. Компіляція файла HelloWorld.cs і створення файла HelloWorld.exe:csc.exe /out: "D:/HelloWorld.exe" "D:/HelloWorld.cs"
Універсальна система типів (UTS)тип
Типи - значення Типи - посилання Вказівники
enum structПрості типи
boolchar
sbyteshort
intlong
byteushort
uintulong
floatdoubledecimal
Class Interface Array Delegate
Типи, визначені користувачем
Вбудовані типи даних CTSCTS VB. NET C# Managed Extensions for C++
System.Byte Byte byte unsigned char
System.SByte SByte sbyte signed char
System.Int16 Short short short
System.Int32 Integer int int or long
System.Int64 Long long __int64
System.Uint16 UShort ushort unsigned short
System.Uint32 UInteger uint unsigned int або unsigned long
System.Object Object object Object^
System.Uint64 ULong ulong unsigned __int64
System.Single Single float Float
System.Double Double double Double
System.Char Char char wchar_t^
System.String String string String^
System.Decimal Decimal decimal Decimal
System.Boolean Boolean bool Bool
Object
Reference types
Sub-types
Value types
Sub-types
Вбудовані типи даних CTS
public string ToString()
public bool Equals(object obj)
public int GetHashCode()
public Type GetType()
public static bool ReferenceEquals(object objA, object objB)
public static bool Equals(object objA, object objB)
protected object MemberwiseClone()
protected virtual void Finalize()
Garbage collector C#• Автоматичне виділення
пам’яті
• Автоматичне очищення пам’яті
1
• Механізм оптимізації звільнення ресурсів
• Видалення об’єктів при необхідності
2
• Швидкодія розробки3
Garbage collector C#
A B C E F G H I
Вказівник нанаступний елемент
A B E G H
Вказівник нанаступний елемент
До:
Після:
Ключові відмінності C# і C++C#
• Мова програмування високого рівня.
• Компілюється в проміжний код, після чого задопомогою Just-In-Time у виконуваний.
• Вивільненням пам'ятті керує Garbage Collector.
• C# структури можуть містити тільки Value Type.
• Делегати, події і властивості можуть бутивизначені як члени класу.
• Модифікатори доступу в C#: public, private,protected, internal, protected internal.
• Мова програмування низького рівня.
• Компілюється в assembler-код.
• Динамічною пам'яттю керує програміст.
• C++ структури мають поведінку таку ж як класи, аледоступ за замовчуванням є публічним, а неприватним.
• Членами класу можуть бути лише змінні,конструктори, функції, оператор перевантаження ідеструктори.
• Модифікатори доступу в C++: public, private,protected. C++ не підтримує внутрішні і захищенімодифікатори доступу всередині однієї зібрки.
C++
Ключові відмінності C# і C++C#
• C# в конструкції обробки виняткових ситуаціймістить додатковий блок finally якийвиконується при будь-яких випадках.
• Не має концепції вказівників на функції. C # маєаналогічну концепцію під назвою delegates.
• Підтримує множинне наслідування інтерфейсів
• Формальні синтаксичні конструкції дляінтерфейсів, делегатів
• Підтримує програмування на основі атрибутів
• Дає можливість писати розширення (extensions)для класів
• C++ не підтримує блок finally в конструкції обробкивиняткових ситуацій.
• Має концепцію вказівників на функції
• Підтримує множинне наслідування класів
• Синтаксичні конструкції для інтерфейсів, делегатіввідсутні
• Не підтримує атрибути
• Не має такої можливості
C++
Наслідування
Інкапсуляція
Поліморфізм
© Denys Prylutskyi, 2015
Підсумки
•Value and Reference types
•Перевизначення методів1
•Boxing, Unboxing
•Явне та неявне приведення типів.
•Втрата даних2
•Абстрактні класи, інтерфейси:
•Різниця між інтерфейсами та абстр.класами.
•Наслідування інтерфейсів.
3
•Equals, GetHashCode
•Garbage collector (brief overview)4