Проектирование модели данных. Выделение невалидных полей

Many Web sites include content that is available only to people who have logged in (that is, who have been authenticated). By default, ASP.NET provides Web site project templates that include pages that let you perform authentication tasks.

The ASP.NET Web project template that is illustrated in this walkthrough is new in Visual Studio 2010.

This walkthrough shows you how to use an ASP.NET Web project template to create a Web site with basic login functionality.

Tasks illustrated in this walkthrough include:

    Creating an ASP.NET Web site.

    Creating a members-only page. The page will be accessible only to authenticated users (users who are logged in).

    Using the registration page, which enables users to register and create a new account.

    Logging in and accessing information that is available only to authenticated users.

    Using the change-password page, which enables users who have an account to change their password.

    Making the change-password page accessible to authenticated users (but only to authenticated users).

Prerequisites

In order to complete this walkthrough, you will need:

    Microsoft Visual Web Developer 2010 Express or Visual Studio 2010.

    SQL Server Express installed locally on your computer. For information about how to install SQL Server Express, see How to: Connect to the AdventureWorksLT Database using an .MDF File .

Creating a New Web Site Project

You will start by creating a new ASP.NET Web site project. The project template that you use includes many of the elements that are required in order to create a site that supports authentication.

This walkthrough uses a Web site project. You could use a Web application project instead. For information about the difference between these Web project types, see Web Application Projects versus Web Site Projects .

To create a new ASP.NET Web site

    Start Visual Studio or Visual Web Developer.

    In the File menu, click New Web Site . (If you do not see this option, click New , and then click Web Site .)

    The New Web Site dialog box is displayed.

    Under Installed Templates , click Visual Basic or C# and then select ASP.NET Web Site .

    In the Web Location box, select File System and enter the name of the folder where you want to keep the pages of the Web site. For example, enter the folder name C:\Websites\Login and then click OK .

    Visual Studio creates the folder and opens the Web site in Source view. Notice that the root Web site contains several files and folders including the Account folder, a Web.config file, the About.aspx and Default.aspx pages, and the Site.master master page.

    The home of page of the Web site is displayed in the browser. Notice the menu items (Home , About ) and the Log In hyperlink.

    Close the browser.

Creating a Members Only Page

In this section, you will create a members-only page. Only users who are logged in (authenticated users) can access this page. You will add a control to the master page to redirect authenticated users to the members-only page. When users who are not logged in (anonymous users) click the members-only hyperlink, they will be redirected to the login page where they can login or create an account.

To create the members only page

    In Solution Explorer , right click the Account folder and then click Add New Item .

    Make sure that you are creating the new page in the Account folder.

    In the New Web Sites dialog box, select Web Form .

    In the Name text box, enter MembersOnly.aspx.

    Select the Select master page check box and then click Add .

    The Select a Master Page dialog box is displayed.

    Under Contents of folders , select Site.master and then click OK .

    The MembersOnly.aspx page is created in the Account folder. The page is a content page for the Site.master page.

    In Solution Explorer , double-click the MemberOnly.aspx page to open it, and then switch to Design view.

    Add content to the main page.

    For example, you can add "Welcome to the members-only page. You have successfully logged in."

In addition to the page that you have created, the Account folder contains the following pages and files:

    Register.aspx. This page lets new users create an account.

    Login.aspx page. This asks for a user name and password.

    ChangePassword.aspx. This page lets registered users change their password.

    ChangePasswordSuccess.aspx. This page is displayed when users successfully change their password.

    A Web.config file.

By default, pages in the Account folder are not accessible to anonymous users, except the Register.aspx and the Login.aspx pages. The settings that define access to pages in the Account folder are configured in the Web.config file in that folder. The settings that define access to the Login page is configured in the root Web.config file.

In the Properties windows, change the Text property to Change Password. You can accept the default ID.

In the Properties window, click NavigateUrl and click the ellipsis (... ) button.

The Select URL dialog box is displayed.

Under Project folders , click Account .

Under Contents of folder OK .

Press CTRL+F5 to run the page.

Notice that the Change Password link is accessible when you are not logged in.

Click Change Password .

You are redirected to the login page because the change-password page is accessible to authenticated users only.

Enter the user name and password that you created earlier, and then click Log In .

Click Log Out .

When you are returned to the home page, close the browser.

Next, you will modify the Change Password hyperlink to make it accessible only to users are logged in. You do this by adding the hyperlink to the HeadLoginView control on the master page.

To make the change-password link available only to logged-in users

    In Solution Explorer , double-click Site.master.aspx to open it, and then switch to Design view.

    Delete the Change Password hyperlink that you created earlier.

    Switch to Source view.

    From the Standard node of the Toolbox , drag a control into the LoggedInTemplate element that is inside the LoginView control.

    Set the Text property to Change Password.

    After the runat="server" attribute, type "NavigateUrl=" and then double-click Pick URL… from the pop-up list.

    The Select Project Item dialog box is displayed.

    Under Project folders , click Account .

    Under Contents folder , select ChangePassword.aspx and then click OK .

    The markup for the hyperlink will resemble the following:

    Change Password

    Note that this hyperlink will not be visible in Design view, because the contents of the LoggedInTemplate element are not visible by default.

Testing the Web Site

You can now test the change-password functionality of the Web site.

To test the change password page

    Press CTRL+F5 to run the site.

    The home page is displayed, but the Change your password link is not visible.

    Click Log In and enter your user name and password.

    You are redirected to the home page. Notice that your name and the Change your password link are now visible.

    Click Members Only.

    You are redirected to the members-only page.

    Click Change your password .

    The change-password page is displayed.

    Enter a new password.

    Click Change Password . If the change is successful, the success page will be displayed.

Testing the New Password

Next you will use your new password to login again and access the members-only page.

To test the new password

    Click Log Out . You will be redirected to the home page that anonymous users see.

    Click Log In .

    Enter your user name and the new password and then click Log In .

    You are redirected to the home page. You can now access content that is available to authenticated users. .

    Click Members Only .

    You are redirected to the members-only page. If you try to login with your old password authentication will fail.

    Close the browser.

Next Steps

In this walkthrough, you used pages that are part of the ASP.NET Web site project template in order to create a Web site that authenticates users. If you prefer, you can also create your own login pages to provide the same functionality that is illustrated in the walkthrough. For more information, see .

Последнее обновление: 31.10.2015

ASP.NET MVC представляет собой платформу для создания сайтов и веб-приложений с использованием паттерна (или шаблона) MVC (model - view - controller).

Работа над новой платформой была начата в 2007 году, а в 2009 году появилась первая версия. В итоге к текущему моменту (2012 год) уже было выпущено 4 версии платформы, а сам фреймворк обрел большую популярность по всему миру благодаря своей гибкости и адаптивности.

Шаблон MVC, лежащий в основе новой платформы, подразумевает взаимодействие трех компонентов: контроллера (controller), модели (model) и представления (view). Что же представляют эти компоненты?

Контроллер (controller) представляет класс, с которого собственно и начинается работа приложения. Этот класс обеспечивает связь между моделью и представлением. Получая вводимые пользователем данные, контроллер исходя из внутренней логики при необходимости обращается к модели и генерирует соответствующее представление.

Представление (view) - это собственно визуальная часть или пользовательский интерфейс приложения - например, html-страница, через которую пользователь, зашедший на сайт, взаимодействует с веб-приложением.

Модель (model) представляет набор классов, описывающих логику используемых данных.

Общую схему взаимодействия упрощенно можно представить следующим образом:

ASP.NET MVC и ASP.NET Web Forms

ASP.NET MVC является в некотором роде конкурентом для традиционных веб-форм и имеет по сравнению с ними следующие преимущества:

    Разделение ответственности . В MVC приложение состоит из трех частей: контроллера, представления и модели, каждая из которых выполняет свои специфичные функции. В итоге приложение будет легче поддерживать модифицировать в будущем.

    В силу разделения ответственности приложения mvc обладают лучшей тестируемостью . И мы можем тестировать отдельные компоненты независимо друг от друга.

    Соответствие протоколу HTTP . Приложения MVC в отличие от веб-форм не поддерживают объекты состояния (ViewState). Ясность и простота платформы позволяют добиться большего контроля над работой приложения

    Гибкость . Вы можете настраивать различные компоненты платформы по своему усмотрению. Изменять какие-либо части конвейера работы MVC или адаптировать его к своим нуждам и потребностям.

В то же время не стоит однозначно сбрасывать со счетов ASP.NET WebForms. Поскольку она также имеет свои сильные стороны, например, модель событий, которая будет ближе тем разработчикам, которые ранее занимались созданием клиентских приложений.

В традиционных веб-формах вы имеете контроль над разметкой и можете в реальном времени в визуальном редакторе Visual Studio увидеть, как будет выглядеть та или иная страница. При работе с MVC Visual Studio подобного не позволяет делать.

В любом случае вы вольны выбирать ту платформу, которая приходится вам больше по душе. И если у вас написаны объемные проекты с применением традиционных веб-форм, возможно, стоит продолжать с ними работать. Тем более, что ASP.NET Web Forms еще не умирает и также продолжает развиваться.

Сегодня я хочу привести 10 веских причин, почему ASP.NET для начинающих подходит больше всего:

Если вы уже работаете с PHP или Java (или даже .NET ), или просто хотите понять, как создавать веб-приложения, то я бы рекомендовал вам задуматься об ASP.NET .

1. Отсутствие System.Web

Для нас, пользователей WebForm , без нее не обойтись при разработке веб-приложений. Если вы решитесь перейти к ASP.NET MVC Core 1.0 , то в нем исключено взаимодействие с библиотекой System.Web , что позволяет ускорить загрузку и работу сайта на базе ASP.NET .

2. Новая улучшенная модель 2016 года

ASP.NET MVC 4 для начинающих и ASP.NET MVC 5 канул в Лету… Некоторое время назад .NET был полностью переписан и переименован в ASP.NET Core 1.0 . Это еще больше облегчило жизнь разработчиков. Из привычного цикла, состоящего из написания кода, компиляции и тестирования работоспособности был исключен этап компиляции. Это значительно ускоряет процесс разработки.

3. Более естественные ощущения

Я был разработчиком в Microsoft еще со времен Classic ASP , и когда я перешел на WebForms , этот переход вовсе не показался мне естественным. С появлением MVC процесс разработки веб-приложений стал более натуральным, и такой формат работы мне понравился. В MVC нет ViewState или IsPostback , и о них не нужно постоянно беспокоиться. Все очень похоже на PHP .

4. Самый популярный в школе

Так как ASP.NET базируется на IIS – одном из самых популярных веб-серверов, то работа с MVC кажется вполне привычной. Большинство корпораций во времена Classic ASP начинали именно с IIS . На сегодняшний день IIS-серверы занимают 28% всего интернета и уступают по популярности только Apache и nginx .

5. Упрощенная интеграция с Javascript

В WebForms при попытке использовать Javascript могли возникнуть всевозможные проблемы, о которых многие из нас даже не подозревают. Мне доводилось видеть, как разработчики мучились с интеграцией JavaScript в код WebForm Page_Load ! В свою очередь, ASP.NET MVC для начинающих позволяет практически безукоризненно интегрировать Javascript в приложения. Просто попробуйте внедрить AngularJs в какое-нибудь веб-приложение на WebForms , а потом расскажите мне, сколько волос осталось на вашей голове.

6. Открытый исходный код

Теперь каждый может просматривать код! Если вы хотите дополнить View , и создать собственный ViewEngine , просто ознакомьтесь с кодом на Github , и посмотрите, как он реализован. Доступ к исходному коду развивает воображение!

7. Кроссплатформенная поддержка

Теперь можно создавать веб-приложения на любой платформе: Apple , Linux или Windows .

8. Независимость от Visual Studio

Чуть ли не с момента первого упоминания о выходе обновленного .NET/ASP.NET , всевозможные разработчики (включая Microsoft ) занялись созданием собственных IDE , которые раскрывают возможности новой версии .NET . Такие IDE (Visual Studio Code или Rider на #C от JetBrains) позволяют разрабатывать собственные ASP.NET и C# проекты без Visual Studio . Теперь не так важно, какую среду использует разработчик, ведь клиентам просто нужен готовый сайт!

9. Адекватное сообщество

ASP.NET MVC для начинающих и для большинства веб-разработчиков как глоток свежего воздуха. Этот инструмент переносит нас в новую эру, далекую от WebForms . Значительная часть разработчиков уже перешла на MVC .

10. Модульное тестирование

Кроме этого ASP.NET MVC предоставляет возможность модульного тестирования. Это в значительной степени облегчает процесс тестирования. Для некоторых разработчиков WebForm это покажется принципиально новым концептом, так как до этого тестирование некоторых интерфейсов и бизнес-компонентов создавало огромные проблемы. В ASP.NET MVC можно без труда протестировать все компоненты и убедиться в полной работоспособности приложения.

В завершение

Надеюсь, что сегодня вы получили достаточно информации о качествах ASP.NET MVC , ради которых стоит перейти на этот инструмент.

Перевод статьи “10 Reasons To Start Using ASP.NET MVC ” был подготовлен дружной командой проекта .

Хорошо Плохо

Введение

1. Исследовательская часть

1.1 Описание предметной области

1.2 Особенности создания страниц на языке APS.NET

1.3 Особенности создания и обращения к базам данных

2. Конструкторская часть

2.1 Структура базы данных

2.2 Принцип работы первой страницы сайта

2.3 Принцип работы второй страницы сайта

2.4 Принцип работы третьей страницы сайта

2.5 Принцип работы четвертой страницы сайта

2.6 Принцип работы пятой страницы сайта

2.7 Принцип работы шестой страницы сайта

2.8 Принцип работы седьмой страницы сайта

2.9 Принцип работы восьмой страницы сайта

2.10 Принцип работы девятой страницы сайта

2.11 Принцип работы десятой страницы сайта

3. Технологическая часть

3.1 Настройка приложения

3.2 Работа с сайтом

3.3 Системные требования

Заключение

Список использованной литературы


Введение

Целью данной курсовой научно-исследовательской работы студента является создание сайта на языке ASP.NET 2005, который позволяет просматривать и вносить изменения в базу данных студентов. ASP.NET – это часть технологии.NET, используемая для написания мощных клиент – серверных интернет приложений. Она позволяет создавать динамические страницы HTML. Динамическими принято называть web – страницы, которые перед отправкой клиенту проходят цикл обработки на сервере. ASP.NET возникла в результате объединения более старой технологии ASP и.NET Framework. Данная работа состоит из четырех динамических страниц, часть из которых взаимодействует с базой данных. Для работы с базой данных используется язык структурированных запросов – SQL (Structured Query Language).


1. Исследовательская часть

1.1 Описание предметной области

Данная работа использует язык APS.NET 2005, который позволяет выполнять обработку событий, вследствие чего старицы являются динамическими. При обработке некоторых событий, происходит соединение с базой данных и выполнение различных запросов и операций. Следствием таким запросов может быть изменения базы данных, добавление новых данных в базу, вывод данных из базы на дисплей. Для взаимодействия с базой данных используется пространство имен System.Data.SqlClient.

1.2 Особенности создания страниц на языке APS.NET

Любая страница состоит из двух частей. Первая часть – Design, представляет собой пустое пространство, на котором можно разместить элементы управления. Вторая часть – Source, представляет собой код языка ASP.NET. Добавление нового кода, происходит при добавлении нового объекта в окне Design, либо при ручном заполнении. Для того чтобы добавить новый элемент в окно Design, его необходимо выбрать из вкладки Toolbox, и перетащить на форму. По аналогии с C#, имеется окно Properties, в котором можно задать те или иные параметры для элементов управления, или задать те или иные события.

Каждая страница начинается со следующего кода: « <% Page Language=”текущий язык программирования” %> ». Где тег “<%” всегда предназначен для интерпретации ASP – кода. Атрибут Language – это указание, что в скриптах данной страницы будет использоваться определенный язык программирования. В данной работе – это язык C#. Затем идет код вида: «

». Этот тег дает указание компилятору обрабатывать элементы управления страницы. Данный тег имеет свойство runat, для которого установлено значение “server” (других значений не бывает). При использовании этого свойства элемент управления обрабатывается компилятором, а не передается браузеру «как есть».

При двойном щелчке на объекте в окне Design откроется файл, с названием аналогичным названию страницы, но отличающийся от нее тем, что добавляется выражение типа «.cs» в конце расширения файла. Также появится код, который соответствует событию по умолчанию для данного элемента. В данном файле ведется разработка кода уже не на языке ASP.NET, а на том языке, который вы выбрали, для данной работы – это язык C#. Задание и обращение к свойствам, методам ничем не отличается от обращения к ним же при написании любой другой программы на конкретно выбранном языке.

Метод Response.Write()

Данный метод отправляет в браузер HTML код. Этот метод является полезным при выведении коротких сообщений. К примеру, он может использоваться при проверке введенных значений для вывода результата.

1.3 Особенности создания и обращения к базам данных

Базы данных прошли долгий путь развития. Вначале все данные хранились в простых файлах. По мере увеличения объемов данных встал вопрос о том, как получить быстрый доступ к нужной информации. Для этого данные стали индексироваться. Другой вопрос – как избежать дублирования, когда одни и те же данные хранятся в разных местах. Сегодня мощная промышленная СУБД немыслима без систем защиты информации, журналирования, транзакции и хранимых процедур.

Данные в СУБД хранятся в таблицах. Таблица состоит из полей и записей. Запись – единица хранения данных, строка таблицы. Для работы с базами данных используется язык структурированных запросов – SQL (Structured Query Language). Команды этого языка называются запросами. Запросы служат для получения данных, для создания и изменения структуры таблиц, добавления, удаления и обновления записей и многого другого. Последовательность команд может храниться прямо на сервере СУБД в виде хранимой процедуры. Либо задаваться в виде набора команд, которые всегда проходят стадию компиляции.

Для создания базы данных в окне Sever Explorer нужно нажать на пункт Data Connections правой кнопкой мыши, и в контекстном меню выбрать Create New Sql Database.

Рис. 1. Создание базы данных

На (рис. 1) показан пример создания базы данных. Для того чтобы указать компилятору, что база находится на локальном компьютере, в поле «Server name» нужно вписать «.\SQLExpress» или «(local)». Имя базы данных указывается в графе «New database name». После нажатия кнопки «ОК», база данных сохранится под указанным именем с расширением «.mdf».

После создания базы данных, в ней необходимо создать таблицы для хранения данных. Таблицу можно сделать и программно, и через окно «Server Properties». При выполнении такой последовательности действий появится узел созданной базы. Его нужно раскрыть, и щелкнуть мышью на пункт Tables, в контекстном меню нужно выбрать «Add New Table». Появится диалоговое окно, в котором нужно указать название столбца, тип данных, которые будут храниться в нем, и разрешение на хранение в ячейке нулевых значений. Бывают такие ситуации, что при создании новых строк, значения в каком-то определенном столбце автоматически увеличивались, этого можно добиться путем выбора пункта «Set Primary Key».

Объект Connection

Объект Connection для соединения с базой данных нуждается в строке соединения для указания пути к СУБД. Свойства класса Connection указаны в таблице:

Метод Open()

Данный метод вызывается после создания объекта SqlConnection, с заданной строкой соединения - ConnectionString. Метод Open() пытается установить соединения с базой данных. Если соединения установить не удается, то появляется соответствующее окно с сообщением об ошибке.

Использование объекта SqlCommand

Объект SqlCommand исполняет запрос SQL, который может быть в форме встроенного текста, процедуры сервера или прямого доступа к таблице. Если это запрос на выборку данных SELECT, то данные обычно помещают в DataSet или в DataReader, но также можно производить и ручные манипуляции. Запросом на добавление данных является INSERT, на изменение UPDATE, на удаление DELETE.

Процедуры сервера нуждаются в параметрах. Они хранятся в коллекции Parametrs и имеют тип SqlParametr. Текстовые команды также могут получать параметры, перед которыми ставится префикс @.

"SELECT id FROM WHERE SecondName = @DropDownList1.Text"

Или же можно использовать форматированный вывод:

Метод ExecuteNonQuery()

Данный метод применим к объектам типа SqlCommand. С помощью данного метода можно выполнять любые операции с базами данных, которые не связаны с запросом или получением данных, например, обновление, удаление записей, создание и изменение таблиц, создание процедур сервера. Она возвращает количество измененных записей в том случае, если выполняются команды Select, Update, Delete.

Метод ExecuteScalar()

Данный метод применим к объектам типа SqlCommand. Этот метод возвращает результат запроса в случае, если это единственное значение.

Рассмотрим пример:

string.Format("SELECT id FROM WHERE SecondName = "{0}"", DropDownList1.Text);

В результате будет возвращено значение поля “id” базы даных, с параметром SecondName равным значению, выбранному из списка. Данный метод работает гораздо быстрее метода ExecuteReader().

Метод ExecuteReader()

Данный метод выполняется, если нужно получить табличные данные. Результат выполнения – курсор, в котором можно двигаться только от начала до конца.

В результате выполнения метода ExecuteReader() объекта Command создается объект DataReader. После использования данного метода необходимо закрывать соединения с базой, иначе такой процесс останется активным и будет занимать ресурсы. Закрыть соединение можно двумя способами. Первый – вызвать перегруженный метод ExecuteReader(), который принимает параметр типа CommandBehavior сл значением CommandBehavior.CloseConnection. В таком случае необходимо перелистать полученную выборку от начала до конца, и соединение закроется, когда будет достигнут конец.