Вот ссылка, объясняя математику позади преобразования десятичного числа к части:
http://www.webmath.com/dec2fract.html
И вот является функцией в качестве примера для того, как на самом деле сделать это с помощью VB (с www.freevbcode.com/ShowCode.asp?ID=582):
Public Function Dec2Frac(ByVal f As Double) As String
Dim df As Double
Dim lUpperPart As Long
Dim lLowerPart As Long
lUpperPart = 1
lLowerPart = 1
df = lUpperPart / lLowerPart
While (df <> f)
If (df < f) Then
lUpperPart = lUpperPart + 1
Else
lLowerPart = lLowerPart + 1
lUpperPart = f * lLowerPart
End If
df = lUpperPart / lLowerPart
Wend
Dec2Frac = CStr(lUpperPart) & "/" & CStr(lLowerPart)
End Function
(От поисков Google: преобразуйте десятичное число, чтобы фракционировать, преобразовать десятичное число для фракционирования кода)
Поскольку вы планируете использовать простые типы и небольшие контракты данных, вы используете привязку почти не имеет значения по сравнению с задержкой, возникающей при переходе через Интернет . Итак, правильный ответ - использовать самый простой в управлении и наиболее безопасный .
Я рекомендую вам разместить приложение в IIS и использовать wsHttpBinding и воспользоваться всеми возможными качествами управляемости. вместе с ним. Он также будет иметь возможность взаимодействия, и хотя сегодня это не имеет значения, он просто бесплатный, так почему бы и нет?
И, пожалуйста, рассмотрите степень детализации вашего сервиса. Вы лучше знаете своих клиентов, но в открытом Интернете всякое бывает. Поскольку время прохождения через Интернет туда и обратно непостоянно и его невозможно контролировать, оно может занять миллисекунды или секунды, а может и не достигнуть его вообще. Таким образом, вам следует по возможности совершать меньше поездок с большей полезной нагрузкой и использовать всевозможные операции кэширования и асинхронные операции, чтобы приложение выглядело «быстрым».
Здесь есть хорошая статья о выборе переплета от Джувала Лоуи:
http://www.code-magazine.com/article.aspx?quickid=0605051&page=3
Обычно рекомендуется не использовать привязку net tcp через Интернет. Не слышал, чтобы кто-нибудь это делал. Хотя это может сработать, если порты полностью открыты и никто не блокирует вызовы.
Проверьте это с помощью nettcp, если это не сработает, вам просто нужно изменить конфигурацию.
Самое важное - это учесть ваши потребности в безопасности. Вам просто нужно указать точку, затем basichttp поверх ssl. Вам нужен end-to-end, тогда wshttp с шифрованием сообщений.
Согласно вашему сценарию, привязка NetTcpBinding является предпочтительной привязкой. Поскольку вы уверены, что этим клиентом будет WCF, взаимодействие не требуется.
Посмотрите здесь, в книге «Программирование служб WCF» .
Единственное, в чем я не уверен, - это брандмауэры. Если вам нужно разобраться в тезисах, возможно, более подходящим будет какое-то WS-связывание.