|
Чепуха, написанная спереди Основываясь на. Трёхуровневая архитектура .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 Web application) и название его UI.
Рисунок 4 Добавить библиотечный проект Структура после сложения показана на рисунке 5. В то же время кликните правой кнопкой мыши по интерфейсу и установите его как элемент запуска.
Рисунок 5 Схема структуры проекта Добавьте цитату В Solution Explorer добавляйте ссылки на каждый уровень. Слой BLL выберите ссылки --->правой кнопкой мыши ---> добавления ссылок. Как показано на рисунке 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) с ссылкой на Проводник серверов, а также соответствующий файл 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 { private DataLinq.DBLinqDataContext objDataContext = новый DataLinq.DBLinqDataContext();
публичный User SelectRecordByID(userid строки) { Попробуй { return (от u в objDataContext.User, где u.Id == userid select u). Сингл(); } 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 («ложь»); } }
На этом этапе код интерфейса входа завершён. Можно запустить его, чтобы увидеть эффект.
|