小编Pet*_*ron的帖子

试用版宽限期

我应该如何实现全功能的宽限期或N次使用方案,以最大限度地提高我的小型5美元社交网络Windows应用程序的销售额,同时鼓励持续使用有限版本的用户从未(尚未?)支付费用?

宽限期选项:

  1. 使用限制.使用20次后,将其瘫痪.
  2. 日历日限时.首次使用30天后,软件就会崩溃.
  3. 实际使用天数限时,例如.7天.如果在7 + N天的过程中使用7天,则在第7天后将其瘫痪.
  4. 时间限制.使用或玩耍20小时后,将其瘫痪.
  5. 上述与渐进式跛行和可选的唠叨屏幕相结合.
  6. 纳布屏幕,我反对.

瘫痪的软件并不是所有人都喜欢的(特别是开源阵营),但是我必须根据快乐的用户和谋生来做出决定,所以我已经在下面的限制软件中汇总了我的观点.

我到目前为止的试用软件结论:

  • 专注于使您的软件变得更好,而不是花时间挫败破解者.如果它足够流行,它最终将被逆向工程.
  • 让客户享受您的软件的全部功能 ......一段时间.依赖用户更有可能购买.
  • 假设它有任何好处,残缺的软件可以比捐赠唠叨屏幕的软件5倍.
  • 尽可能简单地付钱.
  • 感知价值很重要,但保持低价可能会导致冲动购买.
  • 定价真的很难.
  • 提供100%无问题退款保证将带来更多销售.

我打算削弱我的演示版本,但我确实希望试用用户体验所有功能.这是一个小型的消费者应用程序,具有潜在的庞大用户群,所以我看它定价约5美元,但我不知道.某些用户或1美元可能值50美元.我稍后会留下价格.这是关于软件的瘫痪.

软件类型分组的真实数据支持的答案会更有帮助,但是对此的任何想法都是值得赞赏的.

trialware shareware trial

10
推荐指数
2
解决办法
1075
查看次数

在SQL中检索插入的行ID

如何在SQL中检索插入行的ID?

用户表:

Column  | Type
--------|--------------------------------
ID      | * Auto-incrementing primary key
Name    | 
Age     | 
Run Code Online (Sandbox Code Playgroud)

查询示例:

insert into users (Name, Age) values ('charuka',12)
Run Code Online (Sandbox Code Playgroud)

sql

10
推荐指数
3
解决办法
2万
查看次数

MongoDb C#GeoNear查询构建

如何使用C#驱动程序和GeoNear方法查询MongoDB附近的地理点?

以下返回具有错误距离值的点:

var results = myCollection.GeoNear(
    Query.GT("ExpiresOn", now), // only recent values
    latitude,
    longitude,
    20
);
Run Code Online (Sandbox Code Playgroud)

我怀疑我应该告诉Mongo查询double [] Location字段,但我不知道查询语法.

c# syntax geospatial mongodb

10
推荐指数
1
解决办法
3206
查看次数

Google AppEngine WebApp2上的PATCH方法处理程序

我尝试def patch():在我的方法中使用一种方法webapp2.RequestHandler来支持部分资源更新,但后来发现在webapp2.py中冻结了允许的方法:

allowed_methods = frozenset(('GET', 'POST', 'HEAD', 'OPTIONS', 'PUT',
                             'DELETE', 'TRACE'))
Run Code Online (Sandbox Code Playgroud)

在Google AppEngine上部署时,如何扩展webapp2.RequestHandler或修改WSGIApplication类以允许PATCH HTTP方法?

google-app-engine webapp2 http-patch

10
推荐指数
1
解决办法
1549
查看次数

使用Clojure CLI Tools启动nREPL

如何从clj命令启动nREPL ?

我无法使用Lein或Boot运行我的项目,因为我在某处有一个不平衡的paren,并且读者抱怨`java.lang.RuntimeException:从第13行开始的read-cond需要偶数个表单.

clojure command-line-interface nrepl

10
推荐指数
2
解决办法
1069
查看次数

如何在不为每个字段重复“pub”的情况下创建一个所有字段都是公共的公共结构?

如何在 Rust 中定义一个公共结构,其中所有字段都是公共的,而不必pub在每个字段前重复修饰符?

一个pub_struct宏将是理想的:

pub_struct! Foo {
    a: i32,
    b: f64,
    // ...
}
Run Code Online (Sandbox Code Playgroud)

这相当于:

pub struct Foo {
    pub a: i32,
    pub b: f64,
    //...
}
Run Code Online (Sandbox Code Playgroud)

struct public rust rust-macros

10
推荐指数
1
解决办法
5612
查看次数

购物车会话状态在ASP.NET MVC中完成

我正在为ASP.NET MVC中未经身份验证的用户实现一个简单的会话购物车,我想做得对.

在过去,我总是将购物车ID存储在持久Session["CartID"]存储中并作为cookie存储.每当我需要显示购物车时,我都会从我CartsCartItems桌子上查找用户的购物车商品.但在内部我知道更强烈的方法会更清洁.

在谷歌搜索最新的会话MVC之后,我找到了这个术语HttpSessionStateWrapper,这似乎是处理会话的可测试方式.但我没有找到任何好的教程或标准化的实现.也许这只是一个嗡嗡声,我应该坚持Session["..."].

在最新版本的ASP.NET MVC中使用会话实现购物车的正确方法是什么?

c# asp.net-mvc session shopping-cart strong-typing

9
推荐指数
1
解决办法
1万
查看次数

使用LINQ构建链接列表

使用LINQ通过前任(或父)元素索引来排序无序元素列表的最快方法是什么?

每个元素都有一个唯一的ID和该元素的前任(或父)元素的ID,从中可以构建链表以表示有序状态.

ID      | Predecessor's ID
--------|--------------------
20      | 81
81      | NULL
65      | 12
12      | 20
120     | 65
Run Code Online (Sandbox Code Playgroud)

排序顺序为{81,20,12,65,120}.一个(有序的)链表可以很容易地从这些元素迭代地组装,但它可以在更少的LINQ语句中完成吗?

编辑:我应该指定ID不一定是顺序的.为简单起见,我选择了1到5.查看随机的更新元素索引.

c# linq sorting linked-list

9
推荐指数
2
解决办法
3408
查看次数

在设置之前比较布尔值

在C#中,布尔变量的值设置为当false 只有当它是true,我应该检查它是否true设置之前,或刚成立的呢?

假设变量是true50%的时间,检查它是有意义的,因为比较更快.如果变量true大部分时间,我应该跳过比较吗?

哪种更好的做法?

方法1,先检查:

if (bVariable)
    bVariable = false;
Run Code Online (Sandbox Code Playgroud)

方法2,只需设置它:

bVariable = false;
Run Code Online (Sandbox Code Playgroud)

在哪种情况下方法2是首选,如果有的话?

c# comparison boolean

8
推荐指数
1
解决办法
2377
查看次数

SmtpClient.SendAsync调用自动取消

每当我smtpClient.SendAsync(...)从ASP.NET MVC应用程序中调用时,异步请求都会自动取消,即使SendAsyncCancel()从未调用过.

.Send(...)另一方面,同步请求通过就好了.

我的EmailService服务包装器处理SmtpClient从我的ASP.NET MVC 3应用程序中发送异步电子邮件.通过StructureMap将服务实例注入到每个MVC控制器中,StructureMap将新SmtpClient实例包装在using (...) { }语句中.

这是我的EmailService.SendAsync包装方法SmtpClient:

public void SendAsync(EmailMessage message)
{
    try
    {
        using (var smtpClient = new SmtpClient(_cfg.Host, _cfg.Port)
        {
            EnableSsl = _cfg.EnableSsl,
            Credentials = _credentials
        })
        {
            smtpClient.SendCompleted += new SendCompletedEventHandler(Email_OnCompleted);

            var mailMessage = new MailMessage(message.From, message.To)
                                {
                                    Subject = message.Subject,
                                    Body = message.Body
                                };

            smtpClient.SendAsync(mailMessage, message);

            _logger.Info(string.Format("Sending async email to {0} with subject [{1}]", …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc asynchronous smtp smtpclient

8
推荐指数
1
解决办法
4443
查看次数