- •Лекція 1 Вступ. Огляд парадигм та платформ для Web-розробки. Платформа asp.Net. Інструменти та інтегроване середовище розробки Visual Web Developer 2010.
- •1.1 Вступ. Поняття Інтернет. Базові концепції Всесвітньої павутини www. Еволюція Web
- •1.1.1 Поняття Інтернет
- •1.1.2 Базові концепції Всесвітньої павутини www
- •1.1.3 Еволюція Web
- •1.2 Огляд парадигм та платформ для Web-розробки
- •1.2.2 Найбільш поширені мови та технології розробки
- •1.3 Платформа asp.Net
- •1.3.1 Розвиток asp.Net
- •1.3.2 Ключові переваги asp.Net mvc
- •1.4 Інструменти та інтегроване середовище розробки Visual Web Developer 2010
- •1.4.3 Додаткові компоненти
- •1.4.4 Отримання допоміжної інформації від розробників
- •1 Анатомія html-документа
- •2 Текст
- •3 Гіперпосилання
- •4 Форматовані списки
- •5 Таблиці
- •6 Каскадні таблиці стилів
- •Лекція 3 Синтаксичні конструкції мови c#.
- •3.1Зв’язок між c# I .Net. Особливості платформи .Net
- •3.1.1 Загальномовне виконуюче середовище
- •3.1.2 Класи .Net Framework
- •3.1.3 Простори імен .Net
- •3.2Синтаксичні особливості c#
- •3.2.2 Визначені типи даних
- •3.2.3 Керування потоком виконання
- •3.2.4 Перерахування
- •3.2.5 Простори імен
- •3.2.6 Метод Main (). Консольний ввід-вивід. Коментарі.
- •3.3Об’єкти і типи
- •3.3.1 Класи
- •3.3.2 Структури
- •3.4Наслідування
- •3.4.1 Типи наслідування
- •3.4.2 Модифікатори доступу
- •3.4.3 Інтерфейси
- •3.5Узагальнення
- •3.6Операції
- •1 Колекції
- •2 Делегати
- •Лекція №5 Елементи керування на сторінках asp.Net
- •1. Структура web-додатку на основі asp.Net
- •2. Керування станом в asp.Net
- •3. Серверні елементи керування на сторінках asp.Net
- •3.1 Серверні веб-елементи управління
- •4. Сценарії обробки запитів
- •5. Життєвий цикл сторінки asp.Net
3.1.2 Класи .Net Framework
Найбільша перевага написання керованого коду, з точки зору розробника, полягає в тому, що ви отримуєте можливість використовувати бібліотеку базових класів .NET.
Базові класи .NET представляють величезну колекцію класів керованого коду, що дозволяють вирішувати практично будь-які завдання, які раніше можна було вирішувати з допомогою Windows API. Всі ці класи слідують тій же об'єктної моделі IL з одиночним наслідуванням. Це означає, що можна або створювати об'єкти будь-якого з базових класів .NET, або наслідувати від них власні класи. Відмінність базових класів .NET полягає в тому, що вони спроектовані інтуїтивно зрозумілими і простими у використанні.
Нижче перераховані області, які обслуговуються базовими класами .NET 3.5.
Ключові засоби, пропоновані IL (включаючи примітивні типи даних CTS)
Підтримка та управління графічним інтерфейсом користувача Windows
Web Forms (ASP.NET)
Доступ до даних (ADO.NET)
Доступ до каталогів
Доступ до файлової системи і реєстру
Взаємодія з мережею і доступ в Інтернет
Атрибути і рефлексія. NET
Доступ до аспектів операційної системи Windows
Здатність взаємодії з СОМ
3.1.3 Простори імен .Net
Простори імен (namespace) - це спосіб, завдяки якому .NET уникає конфліктів імен між класами.
Простір імен - це не більше, ніж група типів даних, але дає той ефект, що імена всіх типів даних в межах простору імен автоматично забезпечуються префіксом - назвою простору імен. Простори імен можна вкладати один в одного. Наприклад, більшість базових класів .NET загального призначення знаходяться в просторі імен System. Базовий клас Array відноситься до цього простору, тому його повне ім'я - System. Array. Платформа. NET вимагає, щоб всі імена були оголошені в межах простору імен.
3.2Синтаксичні особливості c#
У С #, як і в інших С-подібних мовах, більшість операторів завершуються крапкою з комою (;) і можуть продовжуватися у кількох рядках без необхідності вказівки знака переносу. Оператори можуть бути об'єднані в блоки за допомогою фігурних дужок ({}). Однорядкові коментарі починаються з подвійного слеша (//), а багаторядкові – зі слеша із зірочкою (/ *) і закінчуються протилежної комбінацією (*/). Мова С # чутлива до регістру символів. Це означає, що змінні з іменами myVar і MyVar є різними.
Простори імен представляють спосіб групування асоційованих класів. За допомогою ключового слова імен оголошується простір імен, з яким повинен бути асоційований клас. Весь код в наступних фігурних дужках розглядається як приналежний до цього простору імен. Оператор використання специфікує простір імен, який повинен переглядати компілятор в пошуках класів, згаданих в коді, але не визначених у поточному просторі імен.
using System;
namespace Wrox
{
Оператор using дозволяє підключати простори імен, щоб можна було звернутися до будь-якого класу просто по імені цього класу. Без using довелося б повністю уточнити виклик методу, вказавши повну ієрархію простору імен.
Далі оголошується клас. Весь код С # повинен міститися всередині класу. Оголошення класу складається з ключового слова class, за яким слідує ім'я класу і пара фігурних дужок. Весь код, асоційований з цим класом, розміщується між цими дужками.
class MyFirstClass
{
Далі оголошується метод Main (). Кожна виконувана програма С # (така як консольний додаток, додаток Windows або служба Windows) повинна мати точку входу - метод Main ().
public static void Main()
{
Цей метод викликається при запуску програми. Він повинен або нічого не повертати (void), або повертати цілочисельне значення (int). Формат визначення методу в С #:
[модифікатори] тип_повернення Ім’яМетоду ([параметри])
{
//Тіло методу. Код. Який щось виконує.
}
У перших квадратних дужках представлені необов'язкові ключові слова. Модифікатори використовуються для специфікації певних властивостей методу, таких як, наприклад, звідки цей метод може бути викликаний.
Оператор return здійснює вихід з методу (якщо це метод Main - вихід з програми).
Нижче наведено зразок найпростішої програми на мові C#.
using System;
namespace Wrox
{
public class MyFirstClass
{
static void Main()
{
Console.WriteLine("Hello from Wrox.");
Console.ReadLine ();
return;
}
}
}
Рекомендації
Одним із важливих аспектів, що забезпечують зрозумілість програм, є вибір імен для змінних, методів, класів, перерахувань і просторів імен. Очевидно, що ім'я має відображати призначення елемента і бути спроектованим так, щоб виключити конфлікти з іншими іменами. Загальна філософія середовища .NET Framework також свідчить, що ім'я змінної повинно відображати призначення її екземплярів, але не тип даних.
У більшості випадків рекомендується використовувати для імен стиль, відомий як Pascal casing. У цьому стилі кожне слово в імені пишеться з великої літери.
Назви просторів імен важливі для того, щоб забезпечити таке проектування, яке виключає ризик появи однакових імен у просторі імен. Назви просторів імен – це єдиний спосіб забезпечення розходження імен об'єктів в поділюваних збірках. NET.
Важливо, щоб всі назви не конфліктували з ключовими словами. Фактично, якщо спробувати назвати певний елемент у своєму коді словом, якому трапиться бути ключовим в С #, то майже напевно буде синтаксична помилка, тому що компілятор припустить, що це ім'я посилається на оператор мови.
3.2.1 Змінні
Синтаксис оголошення змінних в С # виглядає наступним чином:
ТипДаних Ідентифікатор;
наприклад:
int i;
Компілятор не дозволить використовувати цю змінну до тих пір, поки вона не буде ініціалізована значенням. Після того, як змінна оголошена, їй можна присвоювати значення, використовуючи операцію =:
i = 10;
Можна також одночасно оголосити змінну і ініціалізувати її:
int i = 10;
Якщо в одному операторі оголошуються і ініціалізуються більше однієї змінної, всі вони повинні бути одного типу:
int i = 10, у = 20; / / х та у мають тип int
Щоб оголосити змінні різних типів, доведеться використовувати окремі оператори. Усередині множинного оголошення присвоювати значення різних типів не можна:
Ініціалізація змінних
Компілятор С # вимагає, щоб будь-яка змінна була ініціалізована деяким початковим значенням, перш ніж можна було звернутися до неї в якійсь операції.
У С # використовуються два методи для забезпечення ініціалізації змінних перед
використанням.
Змінні, які є полями класу або структури, якщо не ініціалізовані явно, за замовчуванням обнуляються в момент створення.
Змінні, локальні по відношенню до методу, повинні бути явно ініціалізовані в коді до появи будь-якого оператора, в якому використовуються їх значення. В даному випадку при оголошенні змінної її ініціалізація не відбувається автоматично, але компілятор перевірить всі можливі шляхи потоку управління в методі і повідомить про помилку, якщо виявить будь-яку можливість використання значення цієї локальної змінної до її ініціалізації.
Виведення типу
Виведення типу з контексту здійснюється за допомогою ключового слова var. Синтаксис оголошення змінної при цьому дещо змінюється. Компілятор "виводить" тип змінної на основі того, як вона ініціалізується. Наприклад:
int someNumber = 0;
стає
var someNumber = 0;
Незважаючи на те, що змінна someNumber в другому випадку не оголошена як int, компілятор визначає, що someNumber повинна мати тип int до тих пір, поки ця змінна знаходиться в своїй області видимості.
Існують кілька правил, яких необхідно дотримуватися при виведенні типу:
Змінна повинна бути ініціалізована. В іншому випадку компілятор не зможе вивести її дійсний тип.
Ініціалізатор не може бути null.
Ініціалізатор повинен бути виразом.
Ініціалізатор не можна встановлювати в об'єкт, якщо тільки цей новий об'єкт не створюється в ініціалізаторі.
Область видимості змінних
Область видимості, або контекст, змінної - це частина коду, в межах якого доступна дана змінна. У загальному випадку така область визначається описаними нижче правилами.
Поле, також відоме як змінна-член класу, знаходиться в області видимості до тих пір, поки в цій області знаходиться клас, що містить поле.
Локальна змінна знаходиться в області видимості до тих пір, поки закриваюча фігурна дужка не вкаже кінець блоку операторів або методу, в якому вона оголошена.
Локальна змінна, оголошена в операторах циклу for, while або подібних їм, видима в межах тіла циклу.
Константи
Константа - це змінна, значення якої не змінюється за час її існування. Позначивши змінну ключовим словом const при її оголошенні і ініціалізації, вона буде оголошена як константа:
const int a = 100; / / Це значення не може бути змінено
Нижче перераховані основні характеристики констант.
Вони повинні ініціалізуватися при оголошенні, і одного разу присвоєні їм значення, ніколи не можуть бути змінені.
Значення константи має бути обчислено під час компіляції. Таким чином, ініціалізувати константу значенням, узятим з іншої змінної, не можна. Якщо все-таки потрібно це зробити, потрібно використовувати поля тільки для читання.
Константи завжди неявно статичні.
