Лучший способ ограничить пробную версию? [закрытый]

Недавно я занимался обслуживанием приложения, которое предназначалось для более старой версии .NET Framework (v3.5).

Я не мог использовать Reactive Extensions или Task Parallel Library, но мне нужен был хороший, чистый, последовательный способ отменить события. Вот что я придумал:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;

namespace MyApplication
{
    public class Debouncer : IDisposable
    {
        readonly TimeSpan _ts;
        readonly Action _action;
        readonly HashSet<ManualResetEvent> _resets = new HashSet<ManualResetEvent>();
        readonly object _mutex = new object();

        public Debouncer(TimeSpan timespan, Action action)
        {
            _ts = timespan;
            _action = action;
        }

        public void Invoke()
        {
            var thisReset = new ManualResetEvent(false);

            lock (_mutex)
            {
                while (_resets.Count > 0)
                {
                    var otherReset = _resets.First();
                    _resets.Remove(otherReset);
                    otherReset.Set();
                }

                _resets.Add(thisReset);
            }

            ThreadPool.QueueUserWorkItem(_ =>
            {
                try
                {
                    if (!thisReset.WaitOne(_ts))
                    {
                        _action();
                    }
                }
                finally
                {
                    lock (_mutex)
                    {
                        using (thisReset)
                            _resets.Remove(thisReset);
                    }
                }
            });
        }

        public void Dispose()
        {
            lock (_mutex)
            {
                while (_resets.Count > 0)
                {
                    var reset = _resets.First();
                    _resets.Remove(reset);
                    reset.Set();
                }
            }
        }
    }
}

Вот пример использования его в форме окна, в которой есть текстовое поле поиска:

public partial class Example : Form 
{
    private readonly Debouncer _searchDebouncer;

    public Example()
    {
        InitializeComponent();
        _searchDebouncer = new Debouncer(TimeSpan.FromSeconds(.75), Search);
        txtSearchText.TextChanged += txtSearchText_TextChanged;
    }

    private void txtSearchText_TextChanged(object sender, EventArgs e)
    {
        _searchDebouncer.Invoke();
    }

    private void Search()
    {
        if (InvokeRequired)
        {
            Invoke((Action)Search);
            return;
        }

        if (!string.IsNullOrEmpty(txtSearchText.Text))
        {
            // Search here
        }
    }
}
15
задан 2 revs 8 June 2009 в 22:36
поделиться

15 ответов

Многим людям этот инструмент понадобится только один раз в жизни для импорта некоторых данных.

Так что вам определенно придется перейти на ограниченную версию вместо временной.

5
ответ дан 1 December 2019 в 00:14
поделиться

Нет, я никогда не покупал ограниченные пробные версии. Однако я пожертвовал пару проектов с открытым исходным кодом. Если бы это было программное обеспечение для людей, а не для компаний, я бы порекомендовал систему пожертвований.

Это программное обеспечение похоже на приложение для работы, поэтому:

  • постоянное напоминание, как Foxit
  • , всего 2 формата файлов
  • ] приложение связано с единственной базой данных
1
ответ дан 1 December 2019 в 00:14
поделиться

Вы можете ограничить количество раз, когда пользователи могут использовать эту функциональность в течение заданного периода времени; говорят, что они могут использовать его 8 раз в месяц, прежде чем он покажет "ворчливый экран", когда они его используют. И если им нужно использовать его больше, чем, скажем, 20 раз в месяц, настаивайте на том, чтобы они купили программное обеспечение. Если вы сделаете это, вы можете захотеть предоставить определенное количество ключей для благотворительных или образовательных целей; это помогает пользователям покупать программное обеспечение, когда они знают, что их деньги идут на благотворительные цели.

1
ответ дан 1 December 2019 в 00:14
поделиться
  • Ограниченное количество использований
  • Реклама
  • Заставки, заставляющие вас ждать X секунд, прежде чем он исчезнет
  • Доступны не все функции
  • Демоверсия ограничена одной базой данных
2
ответ дан 1 December 2019 в 00:14
поделиться

Вы можете ограничить размер поддерживаемого файла импорта. Или количество использований. Или, если скорость вставки является критическим фактором, вы можете начать работу на полной скорости, а затем через 30 дней добавить некоторую задержку (но обязательно сообщите своим пользователям, что это сделано намеренно).

Кстати, одна из худших схем была в базе данных Ingres для рабочих станций Sun 20 с лишним лет назад. Если вы ввели неправильный лицензионный ключ, Ingres незаметно включил десяток серьезных ошибок обработки запросов. После полудня поигравшись с ним, я сказал продавцу, что его продукт ужасно глючит, и что мы будем использовать его конкурента.

2
ответ дан 1 December 2019 в 00:14
поделиться

I just wanted to add that this is a strangely biased group. As programmers we want to be able to see all of the features, and play with them, etc. We get annoyed by certain limitations, and ads, etc.

However, normal people seem to react to these things differently. I'm just saying that we aren't really the target market here, probably.

ALSO, we should note that most people aren't nearly as good as we are at circumventing these things, so as has been mentioned, something pretty dumb is probably ok...

We have one product with a free - limited version, and a pro version, and another product with a 2 week free trial. Actually the free version also had a 2 week free trial of the pro, so it was sort of both...

All in all, I think it depends on the product and the people using it...

3
ответ дан 1 December 2019 в 00:14
поделиться

В течение пробного периода в программном обеспечении часто отсутствуют (или ограничиваются) некоторые важные функции, такие как печать или сохранение. Я попробовал (и купил) инструмент для сборки панорамы, который наносит большой водяной знак на готовое изображение. Это позволило оценить качество инструмента, но наложило реальный предел на дальнейшее использование образов, созданных в течение оценочного периода.

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

Уловка в вашем случае будет заключаться в том, чтобы найти способ ограничить функциональность, не устраняя ключевую полезность пробного периода: собственно опробовать программу.

Может быть, ограничение количества записей, которые можно преобразовать за один прогон, поможет?

5
ответ дан 1 December 2019 в 00:14
поделиться

Посмотрите это сообщение в блоге, это обзор, сделанный Энди Брайсом о мелких поставщиках программного обеспечения. Здесь вы можете найти типы пробных версий и их% использования.

http://successfulsoftware.net/2009/04/23/the-truth-about-conversion-ratios-for-software/

Я рекомендую вам Форум по бизнесу программного обеспечения :

http://discuss.joelonsoftware.com/default.asp?biz

Обычные плакаты, похоже, согласны с тем, что вам не нужно слишком много думать о пиратство. Люди, которые не будут покупать, в любом случае не станут покупать, и сложные схемы защиты от копирования рискуют беспокоить честных клиентов.

Это отличный пост Патрика Маккензи по этому поводу:

http: //www.kalzumeus . com / 2006/09/05 / all-you-need-to-know-about-registration-systems /

13
ответ дан 1 December 2019 в 00:14
поделиться

Я бы определенно пошел с ограничением по времени. Как вы упомянули, это обычно довольно легко обойти, но я обещаю вам, что если у вашего программного обеспечения достаточно большая база пользователей, взломы в любом случае появятся в кратчайшие сроки. Таким образом, ИМХО нет никакого смысла в том, чтобы усложнять / невозможно преодолеть ограничение по времени вашего программного обеспечения.

Любые другие ограничения (такие как раздражающие всплывающие окна или ограниченная функциональность) определенно будут для меня препятствием. Если я не могу правильно оценить программное обеспечение, оно должно быть очень хорошим, чтобы я подумал о его покупке.

3
ответ дан 1 December 2019 в 00:14
поделиться

Это маркетинговое решение, и ответ на любое маркетинговое решение всегда - «это зависит ...». Например, не имеет большого смысла (с коммерческой точки зрения) устанавливать 30-дневный лимит на программное обеспечение, которое большинство пользователей, вероятно, будет использовать только один раз (например, восстановление жесткого диска).

Есть некоторые проблемы, связанные с ограниченными по времени пробными версиями:

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

Некоторых из них можно избежать, если вы выберете ограниченное количество применений.

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

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

3
ответ дан 1 December 2019 в 00:14
поделиться

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

Достаточно раздражает (строки все еще можно удалить), но вы получаете большинство функций.

1
ответ дан 1 December 2019 в 00:14
поделиться

Я купил много условно-бесплатного ПО, но всегда раздражаюсь, когда оно отключает определенные функции. Я предпочитаю проверять все функции перед покупкой. Мне нравятся ограничения, которые Altova добавляет к своему программному обеспечению. Вам всегда нужен регистрационный ключ, чтобы использовать их программное обеспечение, и чтобы получить его, вы должны указать свой адрес электронной почты, на который они отправят вам ваш временный ключ. Затем вы можете использовать их программное обеспечение до месяца, а затем вам понадобится новый ключ. Некоторые люди просто продолжат запрашивать новую временную лицензию, но большинство пользователей рано или поздно купят постоянный ключ. Программное обеспечение Altova делает «звонок домой», чтобы проверить ключ, который он использует. Это сделано для ограничения количества пользователей, которые могут использовать программное обеспечение. Я могу установить их продукт на любое количество компьютеров, но в любой момент могу использовать его только на одном компьютере. Если я попытаюсь использовать программное обеспечение в двух или более системах одновременно, программное обеспечение обнаружит это многократное использование и, таким образом, заблокирует мой доступ к приложению.

Тем не менее, я знаю, что многие люди готовы платить за ваше программное обеспечение, если оно достаточно хорошее. Особенно, если вы можете предоставлять дополнительные услуги помимо самого программного обеспечения. (Например, регулярные обновления или подписка на дополнительные каналы данных.)

1
ответ дан 1 December 2019 в 00:14
поделиться

Пожалуйста, не попадайтесь в ловушку ограничения чего-либо в пробной версии, кроме времени или количества использует. Уменьшение функциональности и / или появление надоедливых всплывающих окон с надписью «Это профессиональная функция» просто оттолкнет ваших пользователей. Кроме того, пробный период - это шанс произвести впечатление на потенциальных покупателей, поэтому вам следует продемонстрировать все функции, а не скрывать их.

3
ответ дан 1 December 2019 в 00:14
поделиться

Ограничение количества использований - самый справедливый способ.

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

Я бы сказал, что вы хотите, чтобы люди, регулярно использующие ваше программное обеспечение, с радостью за него платили. Они, скорее всего, с радостью заплатят за это, если они использовали его нетривиальное количество раз.

Кстати, в Beyond compare есть система, в которой вы можете использовать программное обеспечение в течение 30 дней подряд. то есть, если вы используете его один день, а затем используете его через две недели, это будет считаться только двумя днями. Я никогда не был так счастлив платить за программное обеспечение, как когда платил за Beyond Compare.

7
ответ дан 1 December 2019 в 00:14
поделиться

Устранение разрыва было очень поучительным чтением, когда Эрик впервые опубликовал его, я считаю, что это не менее актуально сегодня.

2
ответ дан 1 December 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: