- Разработка клиентских приложений с использованием .NET Framework Develop client applications with .NET Framework
- Связанные разделы Related sections
- Типы клиентских приложений Types of Client Applications
- IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.
- Что такое клиент? Клиентский компьютер и клиентское приложение
- Общее определение термина клиент
- Клиентский компьютер
- Клиентская программа/приложение
- Клиентские приложения среднего уровня Middle-Tier Client Applications
- Увеличение производительности клиента среднего уровня Increasing Middle-Tier Client Performance
Разработка клиентских приложений с использованием .NET Framework Develop client applications with .NET Framework
Существует несколько способов разработки приложений Windows с помощью .NET Framework. There are several ways to develop Windows-based applications with .NET Framework. Вы можете использовать любые из этих средств и платформ. You can use any of these tools and frameworks:
В темах этой статьи описаны способы создания приложений Windows с помощью Windows Presentation Foundation и Windows Forms. This section contains articles that describe how to create Windows-based applications by using Windows Presentation Foundation or Windows Forms. Но с помощью .NET Framework вы можете создавать и веб-приложения, а также клиентские приложения для компьютеров и устройств, публикуемые в Microsoft Store (приложения универсальной платформы Windows). However, you can also create web applications using .NET Framework and client applications for computers or devices that you make available through Microsoft Store (UWP apps).
Связанные разделы Related sections
Универсальная платформа Windows Universal Windows Platform
Создание приложений универсальной платформы Windows (UWP) для предоставления пользователям через Microsoft Store. Describes how to create UWP applications that you can make available to users through Microsoft Store.
.NET API для приложений UWP .NET API for UWP apps
Справочник по типам .NET, которые поддерживают приложения UWP. Reference for .NET types that support UWP apps.
Разработка для множества платформ Develop for Multiple Platforms
Описание методов, которыми можно использовать .NET Framework для разных типов клиентских приложений. Describes the different methods you can use .NET Framework to target multiple client app types.
Начало работы с веб-страницами ASP.NET Get Started with ASP.NET Web Sites
Способы разработки веб-приложений с помощью ASP.NET. Describes the ways you can develop web apps using ASP.NET.
.NET API для Windows Phone Silverlight .NET API for Windows Phone Silverlight
Список API-интерфейсов .NET Framework, которые можно использовать для создания приложений с помощью Windows Phone Silverlight. Lists .NET Framework APIs you can use for building apps with Windows Phone Silverlight.
Типы клиентских приложений Types of Client Applications
Относится к: Outlook 2013 | Outlook 2016 Applies to: Outlook 2013 | Outlook 2016
Существует в основном два типа клиентов обмена сообщениями: клиенты, которые обрабатывают межличностные сообщения (IPM) и IPC. There are primarily two types of messaging clients: those that handle interpersonal messages (IPM) and those that handle interprocess communication (IPC) messages. В этих типах клиентские приложения для обмена сообщениями можно классифицируются следующим образом: Within those types, messaging client applications can be categorized as follows:
«От человека к человеку» Person-to-person
Сочетание людей и компьютеров Mix of persons and machines
В приложениях от человека к человеку, инициа которого инициирует обмен сообщениями, и другому человеку, отвечая на запросы. Person-to-person applications involve a person initiating the exchange of messages and another person responding. Эта категория приложений включает традиционные приложения электронной почты, а также более структурированные обмены, такие как маршруты документов или утверждение расходов. This category of applications includes traditional email applications as well as more structured exchanges such as document routing or expense approval.
Приложения для работы с компьютером включают человека, который инициирует обмен сообщениями, и отвечающий компьютер. Person-to-machine applications involve a person initiating the exchange of messages and a machine responding. Эта категория включает приложения, которые используют электронную почту, например отправку запроса базы данных или подписку на список рассылки. This category includes applications that use email to, for example, submit a database query or subscribe to a mailing list.
Приложения для работы с компьютером включают компьютер, инициирует обмен сообщениями, а также лицо, отвечая на запросы. Machine-to-person applications involve a machine initiating the exchange of messages and a person responding. Эта категория включает приложения, распространяющие документы, такие как каналы новостей и опросы мнений. This category includes applications that distribute documents such as news feeds and opinion surveys.
Приложения «компьютер-компьютер» включают компьютер, инициаляющий обмен сообщениями, и компьютер, отвечающий на запросы. Machine-to-machine applications involve a machine initiating the exchange of messages and a machine responding. Эта категория включает такие приложения, как мониторинг пульса связи, каталог и репликация базы данных. This category includes applications such as link heartbeat monitoring and directory and database replication.
Окончательная категория , сочетание людей и компьютеров, включает более сложный сценарий. The final category, a mix of persons and machines, involves a more complex scenario. Эта категория включает приложения, которые не обязательно передают сообщения между отправителями и получателями. This category includes applications that do not necessarily transmit messages between senders and recipients. Вместо этого они могут размещать их непосредственно в общедоступных папках или на форуме веб-сайта, поддерживаемом хранилищем сообщений. Instead they might post them directly into a public folder or to a web-site forum supported by a message store. Затем сообщения могут быть по требованию других читателей, администратора или агента программного обеспечения. The messages can then be consumed on demand by other readers, an administrator, or a software agent.
Если вы пишете личное приложение, приложение для компьютера или приложение, которое публикует сообщения на общедоступных форумах, разработать приложение для отправки и получения сообщений IPM. If you are writing a person-to-person application, machine-to-person application, or an application that posts messages to public forums, design your application to send and receive IPM messages. Если вы пишете приложение «человек-компьютер» или «компьютер-компьютер», оно может быть предназначено для отправки и получения сообщений IPC. If you are writing a person-to-machine or machine-to-machine application, it can be designed to send and receive IPC messages. Любое приложение, которое требует взаимодействия с пользователем, должно поддерживать сообщения IPM. Any application that requires the interaction of a human user must support IPM messages. Приложения, в которых используются как люди, так и компьютеры в различных сценариях, часто должны поддерживать сообщения IPM и IPC. Applications that involve both people and machines in a variety of scenarios often must support both IPM and IPC messages. Единственное реальное различие между этими двумя классами состоит в том, что сообщения IPM в хранилище сообщений видны пользователям клиентов обмена сообщениями, а сообщения IPC обычно не видны пользователям клиентского приложения. The only real difference between the two classes is that IPM messages in a message store are visible to users of messaging clients, while IPC messages usually are not visible to the client application users.
IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.
Что такое клиент? Клиентский компьютер и клиентское приложение
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем рубрику Сервера и протоколы. Также я решил, что на моем блоге просто необходима рубрика Вопрос-ответ, в которой будет два раздела: «Что такое?» и «Как сделать?». Большинство публикаций на моем блоге довольно большие и подробные, но в этих разделах я буду стараться ответить на один простой вопрос коротко, понятно и с примерами. Грубо говоря, каждая запись — это ответ на вопрос, который задает новичок в сфере web.
Что такое клиент? Клиентский компьютер и клиентское приложение
В этой записи мы разберемся со значением термина клиент и поговорим о том, что такое клиентский компьютер и клиентское приложение. Надеюсь, что данная рубрика окажется действительно полезной и нужной для новичков.
Общее определение термина клиент
Мой блог имеет достаточно узкую тематику, но давайте сперва разберемся с термином клиент и посмотрим, что это слово означает. Как не банально, но клиент – это заказчик той или иной услуги или покупатель. Неважно где и что вы покупаете, например, вы покупаете доменное имя и становитесь клиентом регистратора или вы покупаете хостинг, тогда вы становитесь клиентом хостинг-провайдера. Покупая хлеб в магазине, вы становитесь клиентом магазина.
Вообще, термин клиент пришел к нам из Древнего Рима, в исконном значении слова клиент – это свободный гражданин Римской Империи, который находится в зависимости от патрона (знатного гражданина), но в то же время клиент пользуется покровительством и защитой патрона.
Если говорить про информатику, то клиент – это программное средство или физическое устройство, которое посылает запросы серверу (поставщику услуг)
Клиентский компьютер
В принципе, для описания термина клиентский компьютер нам подойдут оба определения, представленных выше. Если говорить про сеть Интернет, то ваше устройство, с помощью которого вы зашли на мой сайт – это клиентский компьютер, вы искали информацию и нашли ее на моем блоге, соответственно, вы искали того, кто удовлетворит вашу потребность в информации.
Если говорить про локальную сеть или, как частный случай, корпоративную сеть, то клиентский компьютер – это маломощный компьютер, который пользуется вычислительными мощностями сервера при необходимости выполнения той или иной операции. В общем, клиентский компьютер – это машина, которая пользуется услугами.
Клиентская программа/приложение
С клиентскими программами все несколько сложнее, чем с клиентскими компьютерами. Типичным примером клиентского приложения является браузер, с помощью которого вы заходите на сайты. Во-первых, вам нужно понимать архитектуру взаимодействия клиент-сервер. Во-вторых, вам нужно знать, что и клиентские программы, и серверные могут взаимодействовать на одном и том же компьютере.
В общем случае клиентское приложение – это приложение, отправляющее запросы серверу с целью получения той или иной информации. Термин клиент в области IT чаще всего применяется именно к приложениям. Если говорить о сфере веб, то мы уже упоминали о браузерах, которые отправляют серверу специальные HTTP сообщения, которые получили название HTTP запрос, серверы в свою очередь отправляют клиенту сообщения, которые называются HTTP ответы.
Запросы клиента содержат специальные HTTP методы, которые позволяют указать серверу на то, как он должен обрабатывать запрос (некоторые запросы позволяют получить информацию с сервера, некоторые удалить информацию, а некоторые записать, всё зависит от метода). HTTP сервер, отправляя ответ, сообщает клиенту о том, как он понял запрос при помощи специальных кодов состояния.
Если говорить про MySQL сервер, то у него есть клиент, который позволяет выполнять SQL запросы к базе данных из командой строки (это специальное приложение), а также есть клиент с графическим интерфейсом, который позволяет управлять базами данных при помощи мышки. В качестве сервера, к которому делают запросы браузеры, можно привести пример сервера Apache. Если же вас интересуют готовые сборки серверов для веб-разработки, то можно порекомендовать: локальный веб-сервер AMPPS и российскую сборку Denwer.
Подведем итоги: клиентское приложение – это программа, которая позволяет человеку взаимодействовать с сервером и получать требуемые услуги.
Клиентские приложения среднего уровня Middle-Tier Client Applications
В этом разделе обсуждаются различные проблемы, характерные для клиентских приложений среднего уровня, использующих Windows Communication Foundation (WCF). This topic discusses various issues specific to middle-tier client applications that use Windows Communication Foundation (WCF).
Увеличение производительности клиента среднего уровня Increasing Middle-Tier Client Performance
По сравнению с предыдущими технологиями связи, такими как веб-службы с использованием ASP.NET, создание экземпляра клиента WCF может быть более сложным из-за обширного набора функций WCF. Compared to previous communications technologies, such as Web services using ASP.NET, the creation of a WCF client instance can be more complex due to the rich feature set of WCF. Например, при открытии объекта ChannelFactory он может установить безопасный сеанс со службой, что увеличит время запуска экземпляра клиента. For example, when a ChannelFactory object is opened it can establish a secure session with the service, a procedure that increases the startup time for the client instance. Как правило, эти дополнительные функции не влияют на клиентские приложения, так как клиент WCF выполняет несколько вызовов, а затем закрывается. Typically, these additional feature capabilities do not affect client applications greatly since the WCF client makes several calls, and then closes.
Однако клиентские приложения среднего уровня могут быстро создавать множество клиентских объектов WCF и, в итоге, повысить требования к инициализации. Middle-tier client applications, however, can create many WCF client objects quickly and, as a result, experience increased initialization requirements. Существует два основных подхода к увеличению производительности приложений среднего уровня при вызове служб. There are two main approaches to increasing the performance of middle-tier applications when calling services:
Кэшировать клиентский объект WCF и повторно использовать его для последующих вызовов, где это возможно. Cache the WCF client object and reuse it for subsequent calls where possible.
Создайте ChannelFactory объект, а затем используйте этот объект для создания новых объектов канала клиента WCF для каждого вызова. Create a ChannelFactory object and then use that object to create new WCF client channel objects for each call.
При использовании этих подходов следует рассмотреть следующие вопросы. Issues to consider when using these approaches include:
Если служба обслуживает зависящее от клиента состояние с помощью сеанса, то нельзя повторно использовать клиент WCF среднего уровня с несколькими клиентскими запросами, так как состояние службы связано с клиентом среднего уровня. If the service is maintaining a client-specific state by using a session, then you cannot reuse the middle-tier WCF client with multiple-client tier requests because the service’s state is tied to that of the middle-tier client.
Если служба должна выполнять проверку подлинности для каждого клиента, необходимо создать новый клиент для каждого входящего запроса на среднем уровне, а не использовать клиент WCF среднего уровня (или объект канала клиента WCF), так как учетные данные клиента среднего уровня нельзя изменить после создания клиента WCF (или ChannelFactory ). If the service must perform authentication on a per-client basis, you must create a new client for each incoming request on the middle tier instead of reusing the middle-tier WCF client (or WCF client channel object) because the client credentials of the middle tier cannot be modified after the WCF client (or ChannelFactory ) has been created.
Поскольку каналы и клиенты, созданные этими каналами, потокобезопасны, они могут не поддерживать запись нескольких сообщений по сети одновременно. While channels and clients created by the channels are thread-safe, they might not support writing more than one message to the wire concurrently. При отправке больших сообщений, в частности, при потоковой передаче, операция отправки может заблокироваться, ожидая завершения еще одной отправки. If you are sending large messages, particularly if streaming, the send operation might block waiting for another send to complete. Это может стать причиной возникновения двух проблем: отсутствия параллелизма и возможности взаимоблокировки, если поток команд управления возвращается в службу, повторно используя канал (т. е. общий клиент вызывает службу, путь кода которой приводит к обратному вызову общего клиента). This causes two sorts of problems: a lack of concurrency and the possibility of deadlock if the flow of control returns to the service reusing the channel (that is, the shared client calls a service whose code path results in a callback to the shared client). Это справедливо независимо от типа клиента WCF, который вы повторно использовали. This is true regardless of the type of WCF client you reuse.
Каналы со сбоем необходимо обрабатывать независимо от того, используется ли канал совместно. You must handle faulted channels regardless of whether you share the channel. Однако, если каналы используются повторно, канал со сбоем может привести к отмене нескольких ожидающих запросов или отправок. When channels are reused, however, a faulting channel can take down more than one pending request or send.