В чем техническая разница между настольным приложением .Net и веб-приложениями? - PullRequest
2 голосов
/ 27 августа 2010

Я только начал изучать C #.

Может кто-нибудь объяснить технические различия между настольным приложением .Net и веб-приложением?.

Я имею в виду, например, если у меня есть простойПриложение HelloWorld, использующее WinForm, какие шаги необходимо выполнить, чтобы преобразовать его в веб-приложение HelloWorld?

Ответы [ 5 ]

2 голосов
/ 27 августа 2010

Нет никакого реального способа сделать "справедливое сравнение", поскольку эти два действительно похожи на "мел и сыр".Настольное приложение имеет одну «точку входа», запускающую исполняемый файл, тогда как у веб-приложения есть много, каждая страница .aspx, которую вы создали.

Не существует «простого» способа конвертировать приложение «Hello World»так как модели пользовательского интерфейса / презентации настолько разные.Классическое консольное приложение полностью написано в коде с использованием Console.WriteLine, тогда как приложение webforms, которое говорит «Hello World», может быть полностью написано в разметке asp.net.

Приложение asp.net «Hello World» можетбыть простым как файл с именем default.aspx, содержащий:

<%@ Page Language="C#" AutoEventWireup="true"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
Hello, world!
    </form>
</body>
</html>

В то время как эквивалент консольного / настольного приложения равен:

using System;
namespace ConsoleHelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Hello World");
        }
    }
}
1 голос
/ 27 августа 2010

Это большая тема, которую нужно освещать в одном SO сообщении.Некоторые вещи, которые я бы рекомендовал понять:

Тамэто гораздо больше, чем это понять, но это хорошее место для начала ...

1 голос
/ 27 августа 2010

Изменение настольного приложения на веб-приложение потребует настройки веб-сервера для обслуживания веб-страниц и преобразования каждого диалога из приложения в веб-страницу.Функциональность / бизнес-логика должна входить в страницы «кода позади» (в WebForms) и в модели / контроллеры (в MVC).Также может потребоваться некоторый визуальный редизайн, но вы всегда можете просто начать с преобразования 1: 1 и перейти оттуда.

Веб-приложения часто требуют немного отличающихся принципов проектирования, чем настольные приложения.Например, через веб-сайт у вас не будет доступа к жесткому диску пользователя.Вам также придется обрабатывать несколько одновременных пользователей на вашем сайте, тогда как одни и те же пользователи, одновременно запускающие приложение для настольных компьютеров, будут делать это изолированно друг от друга.

0 голосов
/ 27 августа 2010

Существует довольно много способов написания настольных приложений, каждый из которых потребует совершенно другого портирования для превращения в веб-приложение.Я приведу лишь пару примеров.

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

Silverlight поддерживает (довольно существенное) подмножество приложений WPF.Было бы довольно тривиально кодировать что-то вроде «привет» в общем подмножестве, поэтому один и тот же исходный код мог бы создать либо настольное приложение, либо веб-приложение Silverlight.

0 голосов
/ 27 августа 2010

Веб-страница ASP.NET (или любая активная веб-страница: Perl, cgi-bin php и т. Д.) - это короткая программа, которая на мгновение запускается, создает поток html и завершает работу, делая веб-приложение намного ближе кнабор консольных приложений, чем интерактивное приложение WinForm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...