При работе над лекцией использовался Учебный курс по
Презентацию к данной лекции можете скачать здесь.
В предыдущих разделах нашего курса мы изучали способы разработки клиентских приложений, запускаемых в браузере пользователя. Однако, при разработке более или менее серьезного сайта нам придется осваивать технологии создания активных серверных страниц. Для чего нужны активные серверные страницы? Прежде всего для предоставления доступа к данным. Благодаря возможности хранения данных на веб-сервере можно создать электронный магазин, новостной сайт или сервис социальных сетей. Активные серверные страницы позволяют, также реализовывать сложную бизнес-логику, например, резервировать авиабилеты.Активные серверные страницы повышают безопасность веб-сайта, так как просмотрев их исходный код в браузере, невозможно ничего понять об их истинном содержании.
В Microsoft разработана своя версия активных серверных страниц, которая называется ASP.NET. Несмотря на огромные возможности этой технологии, у новичков на начальном этапе могут возникнуть некоторые сложности. Рассмотрим следующий пример. Допустим, нам нужно отобразить на экране некоторый текст. С помощью технологии ASP.NET это можно сделать следующим образом (sample_1):
<%@PageLanguage="C#"%>
<scriptrunat="server">
protectedvoidPage_Load(object sender, EventArgs e)
{
stringstr;
str = "Глядя на Мир, не перестаешь удивляться";
myLabel.Text = str;
}
</script>
<!DOCTYPEhtml>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>Отображениетекста в метке</title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:LabelID="myLabel"runat="server"/>
</div>
</form>
</body>
</html>
Согласитесь, получается сложновато… Нельзя ли упростить пример? Оказывается, можно. Резкое уменьшение количества кода позволяет очень интересная идея Microsoft - технология ASP.NetRazor. Сравните следующий код с предыдущим.
@{
varstr = "Время подобно искусному управителю, непрестанно производящему новые таланты взамен исчезнувших";
}
@str
Для ускоренной разработки веб-приложений на основе технологии ASP.NetMicrosoft предложила инструмент
Для упрощения написания JavaScript-кода в
В настоящее время все большую популярность приобретают мобильные устройства. В
При работе с технологией Razor веб-странички, в отличие от ASP.NET-страниц, имеющих расширение .aspx, будут иметь расширение .cshtml (.vbhtml).
Покажем на примере, как можно создавать веб-странички с расширением .cshtml в программе
Вначале запускаем программу
Выбираем пункт Templates (шаблоны). Далее, выбираем пункт EmptySite (Пустой сайт), указываем название сайта (myFirstRazor).
Далее, щелкаем правой кнопкой мыши по названию сайта и добавляем файл (NewFile…).
Из списка появившихся шаблонов выбираем тип файла CSHTML и указываем имя файла - DateTime.cshtml.
Далее, вводим следующий код(sample_2)
@{
varmyDate=DateTime.Now.Date;
varmyDay=DateTime.Now.Day;
varmyMonth=DateTime.Now.Month;
varmyYear=DateTime.Now.Year;
varmyDayOfWeek=DateTime.Now.DayOfWeek;
}
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="utf-8"/>
<styletype="text/css">
p{
font-family: 'Comic Sans MS'; color: #0094ff;
}
</style>
<title>Знакомство с типом Дата/Время</title>
</head>
<body>
<p>Сегодняшняя дата: @myDate</p>
<p>@myDay-й день месяца</p>
<p>День недели - @myDayOfWeek</p>
<p>@myMonth-й месяц</p>
<p>@myYear-й год</p>
</body>
</html>
Запускаем проект и получаем следующий результат:
Здесь хотелось бы отметить следующее.
@{
………………
}
Помимо JavaScript вполне можно использовать и C#.В следующие примере мы покажем способ нахождения суммы вещественного массива, написанный на языке C# (sample_3).
<styletype="text/css">
p {
font-family: 'Comic Sans MS';color: #0094ff;
}
</style>
@{
double[] alpha = { -3.8, 11.6, 5.9, 13.4, 24.67 };
int n = alpha.Length;
double sum = 0;
stringstr = "";
inti;
for (i = 0; i<n;i++ )
{
str+=alpha[i] + " ";
sum+=alpha[i];
}
}
<p>Массив: @str</p>
<p>Сумма массива: @sum</p>
Обратите внимание, что код нашей веб-страницы может быть очень аскетичным. Рассмотрим еще один пример работы с массивом (sample_4).
@{
string[] Planets = {"Меркурий","Венера","Земля","Марс",
"Юпитер","Сатурн","Уран", "Нептун" };
<p>Количество планет Солнечной системы: @Planets.Length</p>
foreach (var Planet in Planets)
{
<br/>@Planet
}
<h3>Обратный порядок планет:</h3>
Array.Reverse(Planets);
foreach (varreversedItemin Planets)
{
<br/>@reversedItem
}
}
В двух последующих примерах мы покажем работу операторов, влияющих на ход выполнения программы, а именно, условный оператор и переключатель.
<styletype="text/css">
p {
font-family: 'Comic Sans MS';color: #0094ff;
}
</style>
@{
var a1 = 3;
var a2 = -5;
varstr="";
var b1=a1;
if (a1 > a2) { b1 = a1; } else { b1 = a2; }
str = "Наибольшее из двух чисел = " + b1;
}
<p>Первое число: @a1</p>
<p>Второе число: @a2</p>
<p>@str</p>
<styletype="text/css">
p {
font-family: 'Comic Sans MS'; color: #0094ff;
}
</style>
@{
var weekday = "Пятница";
var greeting = "";
switch(weekday)
{
case"Понедельник": greeting = "Отдых от выходного дня"; break;
case"Вторник": greeting = "Подготовка к рабочему дню"; break;
case"Среда": greeting = "Рабочий день"; break;
case"Четверг": greeting = "Отдых от рабочего дня"; break;
case"Пятница": greeting = "Подготовка к выходному дню"; break;
case"Суббота": greeting = "Первый выходной день"; break;
case"Воскресенье": greeting = "Второй выходной день"; break;
default: greeting = "Сегодня какой-то другой день, отлично."; break;
}
<p>Сегодня @weekday, @greeting</p>
}
В следующем примере (sample_7) мы покажем прием работы со словарем. Программа будет генерировать библейские заповеди.
<styletype="text/css">
h1 {
font-family: 'Comic Sans MS'; color: #0094ff;
}
</style>
@{
var Precept = newDictionary<int, string>();
Precept.Add(1, "Я Господь, Бог твой; да не будет у тебя других богов пред лицом Моим");
Precept.Add(2, "Не делай себе кумира и никакого изображения того, что на небе вверху,
что на земле внизу, и что в воде ниже земли. Не поклоняйся им и не служи им; ибо Я Господь, Бог твой,
Бог ревнитель, наказывающий детей за вину отцов до третьего и четвёртого [рода], ненавидящих Меня,
и творящий милость до тысячи родов любящим Меня и соблюдающим заповеди Мои");
Precept.Add(3, "Не произноси имени Господа, Бога твоего, напрасно; ибо Господь не оставит без наказания того,
кто произносит имя Его напрасно");
Precept.Add(4, "Помни день субботний, чтобы святить его. Шесть дней работай,
и делай всякие дела твои; а день седьмый - суббота Господу, Богу твоему: не делай в оный никакого дела ни ты,
ни сын твой, ни дочь твоя, ни раб твой, ни рабыня твоя, ни скот твой, ни пришлец, который в жилищах твоих.
Ибо в шесть дней создал Господь небо и землю, море и все, что в них; а в день седьмый почил.
Посему благословил Господь день субботний и освятил его");
Precept.Add(5, "Почитай отца твоего и мать твою, чтобы продлились дни твои на земле,
которую Господь, Бог твой, дает тебе");
Precept.Add(6, "Не убивай");
Precept.Add(7, "Не прелюбодействуй");
Precept.Add(8, "Не кради");
Precept.Add(9, "Не произноси ложного свидетельства на ближнего твоего");
Precept.Add(10, "Не желай дома ближнего твоего; не желай жены ближнего твоего, ни раба его,
ни рабыни его, ни вола его, ни осла его, ничего, что у ближнего твоего");
Random rand = newRandom();
int n=rand.Next(1, 10);
stringstr = Precept[n];
}
<h1>@str</h1>
В заключение мы продемонстрируем работу с формой (sample_8). В форме мы разместим три поля ввода и кнопку. В поля ввода пользователь будет вводить коэффициенты квадратного уравнения. При нажатии на кнопку программа будет выдавать на экран результат.
@{
varstr = "";
if(IsPost) {
// Извлечение чисел, введенных пользователем.
var a = Request["txtA"].AsFloat();
var b = Request["txtB"].AsFloat();
var c = Request["txtC"].AsFloat();
var d = System.Math.Pow(b, 2) - 4 * a * c;
if (d< 0) { str = "Действительных корней нет!"; }
else
{
var x1=(-b-System.Math.Sqrt(d))/(2*a);
var x2 = (-b + System.Math.Sqrt(d)) / (2 * a);
str = "x1 = " + x1 + ", x2 = " + x2;
}
}
}
<!DOCTYPEhtml>
<html>
<head>
<title></title>
<metahttp-equiv="content-type"content="text/html;charset=utf-8"/>
<styletype="text/css">
body {background-color: beige; font-family: Verdana, Arial;
margin: 50px; }
form {padding: 10px; border-style: solid; width: 250px;}
</style>
</head>
<body>
<p>Решение квадратного уравнения</p>
<formaction=""method="post">
<p><labelfor="txtA">a=</label>
<inputtype="text"name="txtA"/>
</p>
<p><labelfor="txtB">b=</label>
<inputtype="text"name="txtB"/>
</p>
<p><labelfor="txtC">c=</label>
<inputtype="text"name="txtC"/>
</p>
<p><inputtype="submit"value="Вычислить"/></p>
</form>
<p>@str</p>
</body>
</html>
На практических занятиях мы изучим возможности технологии ASP.NETRazor для работы с базами данных и создания галерей изображений.
При работе над лекцией использовался Учебный курс по
Презентацию к данной лекции можете скачать здесь.
В предыдущих разделах нашего курса мы изучали способы разработки клиентских приложений, запускаемых в браузере пользователя. Однако, при разработке более или менее серьезного сайта нам придется осваивать технологии создания активных серверных страниц. Для чего нужны активные серверные страницы? Прежде всего для предоставления доступа к данным. Благодаря возможности хранения данных на веб-сервере можно создать электронный магазин, новостной сайт или сервис социальных сетей. Активные серверные страницы позволяют, также реализовывать сложную бизнес-логику, например, резервировать авиабилеты.Активные серверные страницы повышают безопасность веб-сайта, так как просмотрев их исходный код в браузере, невозможно ничего понять об их истинном содержании.
В Microsoft разработана своя версия активных серверных страниц, которая называется ASP.NET. Несмотря на огромные возможности этой технологии, у новичков на начальном этапе могут возникнуть некоторые сложности. Рассмотрим следующий пример. Допустим, нам нужно отобразить на экране некоторый текст. С помощью технологии ASP.NET это можно сделать следующим образом (sample_1):
<%@PageLanguage="C#"%>
<scriptrunat="server">
protectedvoidPage_Load(object sender, EventArgs e)
{
stringstr;
str = "Глядя на Мир, не перестаешь удивляться";
myLabel.Text = str;
}
</script>
<!DOCTYPEhtml>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>Отображениетекста в метке</title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:LabelID="myLabel"runat="server"/>
</div>
</form>
</body>
</html>
Согласитесь, получается сложновато… Нельзя ли упростить пример? Оказывается, можно. Резкое уменьшение количества кода позволяет очень интересная идея Microsoft - технология ASP.NetRazor. Сравните следующий код с предыдущим.
@{
varstr = "Время подобно искусному управителю, непрестанно производящему новые таланты взамен исчезнувших";
}
@str
Для ускоренной разработки веб-приложений на основе технологии ASP.NetMicrosoft предложила инструмент
Для упрощения написания JavaScript-кода в
В настоящее время все большую популярность приобретают мобильные устройства. В
При работе с технологией Razor веб-странички, в отличие от ASP.NET-страниц, имеющих расширение .aspx, будут иметь расширение .cshtml (.vbhtml).
Покажем на примере, как можно создавать веб-странички с расширением .cshtml в программе
Вначале запускаем программу
Выбираем пункт Templates (шаблоны). Далее, выбираем пункт EmptySite (Пустой сайт), указываем название сайта (myFirstRazor).
Далее, щелкаем правой кнопкой мыши по названию сайта и добавляем файл (NewFile…).
Из списка появившихся шаблонов выбираем тип файла CSHTML и указываем имя файла - DateTime.cshtml.
Далее, вводим следующий код(sample_2)
@{
varmyDate=DateTime.Now.Date;
varmyDay=DateTime.Now.Day;
varmyMonth=DateTime.Now.Month;
varmyYear=DateTime.Now.Year;
varmyDayOfWeek=DateTime.Now.DayOfWeek;
}
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="utf-8"/>
<styletype="text/css">
p{
font-family: 'Comic Sans MS'; color: #0094ff;
}
</style>
<title>Знакомство с типом Дата/Время</title>
</head>
<body>
<p>Сегодняшняя дата: @myDate</p>
<p>@myDay-й день месяца</p>
<p>День недели - @myDayOfWeek</p>
<p>@myMonth-й месяц</p>
<p>@myYear-й год</p>
</body>
</html>
Запускаем проект и получаем следующий результат:
Здесь хотелось бы отметить следующее.
@{
………………
}
Помимо JavaScript вполне можно использовать и C#.В следующие примере мы покажем способ нахождения суммы вещественного массива, написанный на языке C# (sample_3).
<styletype="text/css">
p {
font-family: 'Comic Sans MS';color: #0094ff;
}
</style>
@{
double[] alpha = { -3.8, 11.6, 5.9, 13.4, 24.67 };
int n = alpha.Length;
double sum = 0;
stringstr = "";
inti;
for (i = 0; i<n;i++ )
{
str+=alpha[i] + " ";
sum+=alpha[i];
}
}
<p>Массив: @str</p>
<p>Сумма массива: @sum</p>
Обратите внимание, что код нашей веб-страницы может быть очень аскетичным. Рассмотрим еще один пример работы с массивом (sample_4).
@{
string[] Planets = {"Меркурий","Венера","Земля","Марс",
"Юпитер","Сатурн","Уран", "Нептун" };
<p>Количество планет Солнечной системы: @Planets.Length</p>
foreach (var Planet in Planets)
{
<br/>@Planet
}
<h3>Обратный порядок планет:</h3>
Array.Reverse(Planets);
foreach (varreversedItemin Planets)
{
<br/>@reversedItem
}
}
В двух последующих примерах мы покажем работу операторов, влияющих на ход выполнения программы, а именно, условный оператор и переключатель.
<styletype="text/css">
p {
font-family: 'Comic Sans MS';color: #0094ff;
}
</style>
@{
var a1 = 3;
var a2 = -5;
varstr="";
var b1=a1;
if (a1 > a2) { b1 = a1; } else { b1 = a2; }
str = "Наибольшее из двух чисел = " + b1;
}
<p>Первое число: @a1</p>
<p>Второе число: @a2</p>
<p>@str</p>
<styletype="text/css">
p {
font-family: 'Comic Sans MS'; color: #0094ff;
}
</style>
@{
var weekday = "Пятница";
var greeting = "";
switch(weekday)
{
case"Понедельник": greeting = "Отдых от выходного дня"; break;
case"Вторник": greeting = "Подготовка к рабочему дню"; break;
case"Среда": greeting = "Рабочий день"; break;
case"Четверг": greeting = "Отдых от рабочего дня"; break;
case"Пятница": greeting = "Подготовка к выходному дню"; break;
case"Суббота": greeting = "Первый выходной день"; break;
case"Воскресенье": greeting = "Второй выходной день"; break;
default: greeting = "Сегодня какой-то другой день, отлично."; break;
}
<p>Сегодня @weekday, @greeting</p>
}
В следующем примере (sample_7) мы покажем прием работы со словарем. Программа будет генерировать библейские заповеди.
<styletype="text/css">
h1 {
font-family: 'Comic Sans MS'; color: #0094ff;
}
</style>
@{
var Precept = newDictionary<int, string>();
Precept.Add(1, "Я Господь, Бог твой; да не будет у тебя других богов пред лицом Моим");
Precept.Add(2, "Не делай себе кумира и никакого изображения того, что на небе вверху,
что на земле внизу, и что в воде ниже земли. Не поклоняйся им и не служи им; ибо Я Господь, Бог твой,
Бог ревнитель, наказывающий детей за вину отцов до третьего и четвёртого [рода], ненавидящих Меня,
и творящий милость до тысячи родов любящим Меня и соблюдающим заповеди Мои");
Precept.Add(3, "Не произноси имени Господа, Бога твоего, напрасно; ибо Господь не оставит без наказания того,
кто произносит имя Его напрасно");
Precept.Add(4, "Помни день субботний, чтобы святить его. Шесть дней работай,
и делай всякие дела твои; а день седьмый - суббота Господу, Богу твоему: не делай в оный никакого дела ни ты,
ни сын твой, ни дочь твоя, ни раб твой, ни рабыня твоя, ни скот твой, ни пришлец, который в жилищах твоих.
Ибо в шесть дней создал Господь небо и землю, море и все, что в них; а в день седьмый почил.
Посему благословил Господь день субботний и освятил его");
Precept.Add(5, "Почитай отца твоего и мать твою, чтобы продлились дни твои на земле,
которую Господь, Бог твой, дает тебе");
Precept.Add(6, "Не убивай");
Precept.Add(7, "Не прелюбодействуй");
Precept.Add(8, "Не кради");
Precept.Add(9, "Не произноси ложного свидетельства на ближнего твоего");
Precept.Add(10, "Не желай дома ближнего твоего; не желай жены ближнего твоего, ни раба его,
ни рабыни его, ни вола его, ни осла его, ничего, что у ближнего твоего");
Random rand = newRandom();
int n=rand.Next(1, 10);
stringstr = Precept[n];
}
<h1>@str</h1>
В заключение мы продемонстрируем работу с формой (sample_8). В форме мы разместим три поля ввода и кнопку. В поля ввода пользователь будет вводить коэффициенты квадратного уравнения. При нажатии на кнопку программа будет выдавать на экран результат.
@{
varstr = "";
if(IsPost) {
// Извлечение чисел, введенных пользователем.
var a = Request["txtA"].AsFloat();
var b = Request["txtB"].AsFloat();
var c = Request["txtC"].AsFloat();
var d = System.Math.Pow(b, 2) - 4 * a * c;
if (d< 0) { str = "Действительных корней нет!"; }
else
{
var x1=(-b-System.Math.Sqrt(d))/(2*a);
var x2 = (-b + System.Math.Sqrt(d)) / (2 * a);
str = "x1 = " + x1 + ", x2 = " + x2;
}
}
}
<!DOCTYPEhtml>
<html>
<head>
<title></title>
<metahttp-equiv="content-type"content="text/html;charset=utf-8"/>
<styletype="text/css">
body {background-color: beige; font-family: Verdana, Arial;
margin: 50px; }
form {padding: 10px; border-style: solid; width: 250px;}
</style>
</head>
<body>
<p>Решение квадратного уравнения</p>
<formaction=""method="post">
<p><labelfor="txtA">a=</label>
<inputtype="text"name="txtA"/>
</p>
<p><labelfor="txtB">b=</label>
<inputtype="text"name="txtB"/>
</p>
<p><labelfor="txtC">c=</label>
<inputtype="text"name="txtC"/>
</p>
<p><inputtype="submit"value="Вычислить"/></p>
</form>
<p>@str</p>
</body>
</html>
На практических занятиях мы изучим возможности технологии ASP.NETRazor для работы с базами данных и создания галерей изображений.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.