Альтернатива WCF для клиент-серверного приложения в vb.net express? - PullRequest
3 голосов
/ 17 января 2012

Я работаю над многопользовательским программным обеспечением для телефонного банка. Первоначально я планировал использовать Windows Communication Foundation. Тем не менее, я использую Visual Basic 2010 Express, и хотя я могу создавать клиенты WCF, я не могу создать сервер WCF. Будучи студентом колледжа, у меня нет денег на Visual Studio 2010 Professional, и хотя он доступен через программу DreamSpark, условия лицензирования не позволяют использовать его в коммерческих целях (я надеюсь разработать недорогую систему телефонного банка [это не домашнее задание; на самом деле я учусь на бухгалтера]].

Могу ли я использовать какие-либо альтернативы WCF? Мой предложенный дизайн приложения выглядит следующим образом:

  1. Задание, созданное на сервере, который имеет все телефонные номера, которые необходимо вызвать из базы данных (то есть лицо, создающее задание, из общей базы данных может создать отфильтрованный список телефонных номеров, которые необходимо вызвать). Эти номера идут в очередь.
  2. Клиенты подключаются к серверу и входят в систему. Когда подключается каждый клиент, ему передается номер из очереди.
  3. Когда каждый абонент заканчивает вызов, он нажимает кнопку, указывающую ответ на этот вызов. Затем клиент отправляет сообщение об обновлении на сервер, и в ответ ему присваивается следующий номер в очереди.

Я размышляю здесь, но не могу ли я использовать базу данных SQL как для общего списка, так и для отфильтрованного списка? То есть каждый список находится в своей собственной таблице и имеет переменную, указывающую на следующую запись базы данных в отфильтрованном списке. Когда клиент запрашивал запись, он отправлял следующую запись, а когда клиент обновлял запись, он мог отправлять инструкцию SQL с внесением соответствующего изменения.

Я слышал о транзакциях и кэшировании, нужно ли их использовать для приложений такого типа? Если так, как бы я?

Я бы тогда использовал System.Net или что-то подобное для подключения клиента к серверу, верно?

Спасибо за вашу помощь!

Ответы [ 4 ]

1 голос
/ 17 января 2012

Вы можете построить свой сервер как REST .Для этого существует множество платформ (например, ServiceStack , OpenRasta , Ресурсы поверх MVC ).В наши дни это очень популярный способ создания сервисов, так как он имеет много преимуществ, включая простоту, его легче масштабировать, чем многие другие типы сервисов, и вы можете создавать кроссплатформенные клиенты (включая Windows Forms и HTML / Javascript, но буквально всес клиентским стеком HTTP может быть клиент).

0 голосов
/ 17 января 2012

Служба WCF - это не что иное, как проект библиотеки классов. Поэтому создайте проект библиотеки классов, добавьте ссылку на system.servicemodel и system.runtime.serialization и все готово. WCF - лучший выбор для разработки любых распределенных систем в .Net.

0 голосов
/ 17 января 2012

Неважно, какую версию Visual Studio вы используете.

Я не уверен, почему вы считаете, что не можете создать службу WCF.

Служба WCF может быть закодирована в любой версии Visual Studio.

ОБНОВЛЕНИЕ

ОК, поэтому вы спрашиваете, может ли VB Express автоматически генерировать тестовый клиент?Ну, я не уверен, но эта функциональность не нужна для работы с WCF.Вы можете легко написать свой собственный тестовый клиент.

В Google есть около пяти миллионов примеров.Вот один из них: http://weblogs.asp.net/ralfw/archive/2007/04/14/a-truely-simple-example-to-get-started-with-wcf.aspx

0 голосов
/ 17 января 2012

Да, один из подходов, который вы могли бы использовать, - это использовать базу данных SQL Server, писать хранимые процедуры SQL для доступа к вашим данным в таблицах SQL и реализовывать функциональность вашего сервера. Вы бы использовали SqlClient .Net для вызова этих хранимых процедур (и не System.Net).

В качестве альтернативы, вы можете просто написать Windows Службу (вместо службы WCF) и вызвать ее, используя RPC, или System.NET, или .Net Remoting, и т.д ...

...