Разработка гибридных приложений для мобильных устройств под Windows Phone

Разработка WebForm - серверного сценария гибридного мобильного приложения

Разбить на страницы
Показывать лекцию целиком

Ход выполнения работы:

Создадим веб-сайт, который будет возводить число в требуемую степень. При этом сервер будет принимать от клиента число и степень, производить операцию возведения в степень и отправлять клиенту результат.

  • Создайте проект с шаблоном "Пустое веб-приложение ASP.NET". Дайте ему имя, например, "WebApplication_Power".
  • Добавьте в проект новый элемент "Форма Web Form" и дайте ему имя, например, "MainForm.aspx":

    Окно добавления формы в проект:

  • Поместите на форму два элемента "TextBox" для ввода данных, кнопку "Button" и элемент "Label" для вывода результата.

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

    Примерное содержимое страницы:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainForm.aspx.cs" Inherits="WebApplication_Power.MainForm" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
        .text {
            width:100%;
            font-family:Garamond;
            text-align:center;
            font-size:xx-large;
        }
        .main {
            top: 50%;
            left: 50%;
            width: 800px;
            height: 500px;
            position: absolute;
            margin-top: -250px;
            margin-left: -400px;
        }
        .tb {
            width:60%;
            margin-left:20%;
            height: 40px;
    	 font-size:xx-large;
        }
        .button {
            width:40%;
            margin-left:30%;
            font-size:xx-large;
        }
        .lbl {
            margin-left:30%;
            font-size:xx-large;
        }
    </style>
    </head>
    <body class="main">
        <form id="form1" runat="server">
            <h1 class="text">Расчет степени</h1>
            <p class="text">Введите число</p>
            <asp:TextBox ID="tbNumb" runat="server" CssClass="tb"></asp:TextBox>
            <br />
            <p class="text">Введите степень</p>
            <asp:TextBox ID="tbPower" runat="server" CssClass="tb"></asp:TextBox>
            <br />
            <asp:Button ID="btnCalc" runat="server" Text="Расчет" CssClass="button"/>
            <br />
            <asp:Label ID="lblResult" runat="server" Text="" CssClass="lbl"></asp:Label>
            <br />
        </form>
    </body>
    </html>
  • Запустите проект. Он будет иметь примерно такой вид в эмуляторе мобильного браузера:
  • Остановите отладку и перейдите в режим конструктора. Двойным щелчком по кнопке создайте метод обработки события "onClick":
  • Замените содержимое C# - кода представленного выше файла MainForm.aspx.cs на следующее:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication_Power
    {
        public partial class MainForm : System.Web.UI.Page
        {
            protected Int64 numb; //число
            protected int power;  //степень
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Int64.TryParse(Request["numb"], out numb)  Int32.TryParse(Request["power"], out power))
                    Calc();
                else
                    lblResult.Text = "Введите число и степень";
            }
    
            protected void btnCalc_Click(object sender, EventArgs e)
            {
                //если может перевести содержимое TextBox в число
                if (Int64.TryParse(tbNumb.Text, out numb)  Int32.TryParse(tbPower.Text, out power))
                    Calc(); //выполняем расчет
                else //иначе
                    lblResult.Text = "Введите число и степень"; 
            }
    
            protected void Calc()
            {
                Int64 result = numb;
                bool check = false;  //индикатор переполнения
                int i;
                for (i = 1; i < power; i++)
                {
                    result = result * numb;
                    if (result < 0)  //если результат получился отрицательным, значит, его значение больше, чем максимальное в Int64
                        check = true;
                }
                if (check == true)
                    lblResult.Text = "Результат слишком большой";
                else
                    lblResult.Text = Convert.ToString(result);
            }
        }
    }
  • Запустите проект. Далее представлены скриншоты тестирования серверного сценария для различных входных данных:
  • Проверка на больших числах. Наибольшее число в Int64 - это 263-1, то есть для переполнения достаточно 2 и 64.
  • Страницы:

    Ход выполнения работы:

    Создадим веб-сайт, который будет возводить число в требуемую степень. При этом сервер будет принимать от клиента число и степень, производить операцию возведения в степень и отправлять клиенту результат.

  • Создайте проект с шаблоном "Пустое веб-приложение ASP.NET". Дайте ему имя, например, "WebApplication_Power".
  • Добавьте в проект новый элемент "Форма Web Form" и дайте ему имя, например, "MainForm.aspx":

    Окно добавления формы в проект:

  • Поместите на форму два элемента "TextBox" для ввода данных, кнопку "Button" и элемент "Label" для вывода результата.

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

    Примерное содержимое страницы:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainForm.aspx.cs" Inherits="WebApplication_Power.MainForm" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
        .text {
            width:100%;
            font-family:Garamond;
            text-align:center;
            font-size:xx-large;
        }
        .main {
            top: 50%;
            left: 50%;
            width: 800px;
            height: 500px;
            position: absolute;
            margin-top: -250px;
            margin-left: -400px;
        }
        .tb {
            width:60%;
            margin-left:20%;
            height: 40px;
    	 font-size:xx-large;
        }
        .button {
            width:40%;
            margin-left:30%;
            font-size:xx-large;
        }
        .lbl {
            margin-left:30%;
            font-size:xx-large;
        }
    </style>
    </head>
    <body class="main">
        <form id="form1" runat="server">
            <h1 class="text">Расчет степени</h1>
            <p class="text">Введите число</p>
            <asp:TextBox ID="tbNumb" runat="server" CssClass="tb"></asp:TextBox>
            <br />
            <p class="text">Введите степень</p>
            <asp:TextBox ID="tbPower" runat="server" CssClass="tb"></asp:TextBox>
            <br />
            <asp:Button ID="btnCalc" runat="server" Text="Расчет" CssClass="button"/>
            <br />
            <asp:Label ID="lblResult" runat="server" Text="" CssClass="lbl"></asp:Label>
            <br />
        </form>
    </body>
    </html>
  • Запустите проект. Он будет иметь примерно такой вид в эмуляторе мобильного браузера:
  • Остановите отладку и перейдите в режим конструктора. Двойным щелчком по кнопке создайте метод обработки события "onClick":
  • Замените содержимое C# - кода представленного выше файла MainForm.aspx.cs на следующее:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication_Power
    {
        public partial class MainForm : System.Web.UI.Page
        {
            protected Int64 numb; //число
            protected int power;  //степень
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Int64.TryParse(Request["numb"], out numb)  Int32.TryParse(Request["power"], out power))
                    Calc();
                else
                    lblResult.Text = "Введите число и степень";
            }
    
            protected void btnCalc_Click(object sender, EventArgs e)
            {
                //если может перевести содержимое TextBox в число
                if (Int64.TryParse(tbNumb.Text, out numb)  Int32.TryParse(tbPower.Text, out power))
                    Calc(); //выполняем расчет
                else //иначе
                    lblResult.Text = "Введите число и степень"; 
            }
    
            protected void Calc()
            {
                Int64 result = numb;
                bool check = false;  //индикатор переполнения
                int i;
                for (i = 1; i < power; i++)
                {
                    result = result * numb;
                    if (result < 0)  //если результат получился отрицательным, значит, его значение больше, чем максимальное в Int64
                        check = true;
                }
                if (check == true)
                    lblResult.Text = "Результат слишком большой";
                else
                    lblResult.Text = Convert.ToString(result);
            }
        }
    }
  • Запустите проект. Далее представлены скриншоты тестирования серверного сценария для различных входных данных:
  • Проверка на больших числах. Наибольшее число в Int64 - это 263-1, то есть для переполнения достаточно 2 и 64.
  • Вернуться к учебному плану