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

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

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

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

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

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

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

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


person Sam Cantrell    schedule 17.01.2012    source источник
comment
Не должно возникнуть проблем с созданием службы WCF с использованием экспресс-выпуска. Вы уверены, что это где-то задокументировано?   -  person Kangkan    schedule 17.01.2012
comment
Что касается экспресс-выпуска VB 2008 года, существует http://msdn.microsoft.com/en-us/library/bb531269%28v=VS.90%29.aspx. Я не могу найти ничего о VB 2010, кроме отсутствия шаблона сервера WCF.   -  person Sam Cantrell    schedule 17.01.2012
comment
Кажется, шаблоны не установлены/упакованы с экспресс-версией. Однако вы можете скопировать шаблоны из любой установки профессиональной версии или попытаться найти их в Интернете. Это предлагается на этой странице: msdn.microsoft.com/en-us/library /bb552362.aspx   -  person Kangkan    schedule 17.01.2012
comment
Будут ли вызывающие абоненты подключаться к этой услуге через Интернет? Или по лану?   -  person tom redfern    schedule 18.01.2012


Ответы (4)


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

person gregmac    schedule 17.01.2012

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

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

person RBarryYoung    schedule 17.01.2012

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

person softveda    schedule 17.01.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

person tom redfern    schedule 17.01.2012
comment
Я знаю, что скринкаст, который я смотрел при создании службы WCF, показал, что обычная Visual Studio создала тестовый клиент WCF для тестирования вашей службы. Есть ли у VB Express такая же возможность? - person Sam Cantrell; 17.01.2012
comment
На сайте Ralf Westphal, похоже, больше нет его примера кода, но его все равно стоит посмотреть. - person SteveCinq; 17.04.2017