|
Нісенітниця, написана попереду Базуючись на. Трирівневу архітектуру .NET можна поділити на такі рівні: рівень Data Linq, рівень доступу до даних, шар бізнес-логіки та рівень презентації. Стрілкові символи на рисунку 1 нижче ілюструють взаємодію між шарами: рівень доступу до даних посилається на рівень Data LINQ; Шар бізнес-логіки посилається на рівень доступу до даних і класи сутностей у Data LINQ. Рівень презентації стосується як бізнес-логічного шару, так і класів сутностей на рівні Data LINQ. Рівень Data LINQ переважно включає класи сутностей та класи контексту даних. Зазвичай клас сутності призначений для однієї таблиці в базі даних. Ми можемо створювати екземпляри класів сутностей, які передаються між різними шарами як об'єкти даних.
Рисунок 1: Трирівнева архітектура LINQ to SQL Нижче наведено приклад вікна входу при створенні проєкту для впровадження трирівневої архітектурної розробки LINQ у SQL Підготовка 1. По-перше, вам потрібна база даних і таблиця даних для зберігання імені користувача та пароля авторизованої особи. Тут використовується база даних SQL Server 2005. Структура таблиці бази даних показана на рисунку 2.
Таблиця користувачів бази даних Рисунок 2 2. Відкрийте VS і створіть новий проєкт ---> інших типів проєктів---> рішень Visual Studio---> порожніх рішень. Як показано на рисунку 3. (Тут використовується Visual Studio 2008)
Рисунок 3 Створення порожнього розв'язку 3. Додайте бібліотеку класу. Клацніть правою кнопкою миші на новоствореному рішенні в Solution Explorer ---> додайте ---> нову бібліотеку проєктів ---> класів. Як показано на рисунку 4. Той самий метод передбачає додавання трьох бібліотек — BLL, DAL і DataLinq, а також додатку Windows Forms (якщо це розробка веб-додатків, виберіть ASP.NET веб-додаток) і назву UI.
Рисунок 4 Додати бібліотечний проєкт Структура після додавання показана на рисунку 5. Водночас клацніть правою кнопкою миші по інтерфейсу і встановіть інтерфейс як елемент запуску.
Діаграма структури проєкту на рисунку 5 Додайте цитату У Solution Explorer додайте посилання на кожен рівень. BLL layer Select References --->клацніть правою кнопкою миші ---> додати посилання. Як показано на рисунку 6. Додайте посилання на System.Data.Linq. Водночас, відповідно до взаємозв'язку між шарами, показаними на рисунку 1 вище, додайте посилання на проєкти до DAL і DataLinq. Аналогічно, рівень DAL додає посилання на проєкти до System.Data.Linq і DataLinq, шар DataLinq додає посилання до System.Data.Linq, а шар інтерфейсу додає посилання на System.Data.Linq і посилання на проєкти на BLL і DataLinq.
Рисунок 6 Додати посилання на проєкти Наразі встановлено трирівневу архітектуру. Далі потрібно додати відповідні класи до кожного шару. 1. По-перше, шар DataLinq. Клацніть правою кнопкою миші DataLinq---> додайте ---> новий проєкт---> виберіть клас LINQ у SQL, як показано на рисунку 7.
Рисунок 7 Додавання LINQ до класу SQL 2. Після завершення додавання автоматично створюється порожній дизайнер (файл .dbml) з посиланням на Server Explorer, а також відповідним файлом dbml.layout (XML-файл) і файлом designer.cs. Відкрийте Server Explorer і встановіть зв'язок із базою даних.
Рисунок 8 Відкритий дослідник серверів 3. Підключитися до бази даних. Виберіть інструмент ---> додайте базу даних. Як показано на рисунку 9. Виберіть новостворену базу даних і визначте базу даних з'єднання. На цьому етапі база даних з'явиться в Server Explorer.
4. Виберіть таблицю даних, яку ви хочете використовувати, перетягніть її на дизайнера, як показано на рисунку 10 нижче. Збережи файл. Тепер класи DataContext та класи сутностей із пов'язаними властивостями, методами та методами автоматично згенеровані.
Рисунок 10 Клас користувача Додайте шари коду Рівень DAL Створіть новий клас UserDAL і додайте наступний код //UserDAL.cs використання DataLinq; з використанням System.Data.Linq;
Простір назв DAL
{ публічний клас UserDAL { приватний DataLinq.DBLinqDataContext objDataContext = новий DataLinq.DBLinqDataContext();
публічний User SelectRecordByID(рядковий userid) { спробуйте { return (від u в objDataContext.User, де u.Id == userid select u). Single(); } catch (виняток, наприклад) { кинь колишнього; } } }
}
Шар BLL Створіть новий клас UserBLL і додайте наступний код //UserBLL.cs з використанням System.Data.Linq; використання DataLinq;
Простір назв BLL
{ публічний клас UserBLL { приватний DAL. UserDAL objUserDAL = новий DAL. UserDAL();
публічний User SelectRecordByID(рядковий userid) { return objUserDAL.SelectRecordByID(userid); } }
}
Код шару UI //LoginForm.cs приватний BLL. UserBLL objUserBLL = новий BLL. UserBLL();
private void btnSubmit_Click(object sender, EventArgs e) { string id = txtId.Text.Trim(); string psd = txtPsd.Text.Trim();
User localDataTable = objUserBLL.SelectRecordByID(id);
якщо (localDataTable != null && localDataTable.Psd == psd) { MessageBox.Show («Успіх»); } інше { MessageBox.Show («неправда»); } }
На цьому етапі код для інтерфейсу входу завершено. Можна запустити його, щоб побачити ефект.
|