Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
Are there any standard or "best practice" ways of limiting feature functionality for a particular application?
Example: We have a product with a variety of features, and our customers can pick and choose which features they would like to use, and the cost of the product varies based on which features they are actually using.
In the past, we have distributed along with our software installer an encrypted license file that contains information about the customer, as well as the collection of features that they have enabled. In code, we read from the license file and enable the functionality according to the license file.
This seems to work fine, except there a few disadvantages:
Upgrading users with new functionality can be sort of a pain
If a particular feature shows up in multiple places throughout the application, a developer might not realize that this feature should be licensed, and forget to check the license file before granting functionality to the user
If the license file becomes corrupted, deleted, moved, renamed, etc. the application will not run
We're getting ready to roll out a new set of features, and I was just curious what others in the community have done to tackle this problem?
Why not break down the product into modules like Matlab? Then charge for each module. The licensing can be kept online and the end user just needs to download the module to enable the feature.
There are usually 3 common approaches to this:
using fixed program versions (each version just adds features, you can't customize which features you want or not). You can use also "subversion", like basic and pro edition for Software x.0. Windows uses this approach.
Having modules of functionality, which are a product as themselves. Matlab uses this approach.
Having a software with basic functionality, and then having plugins, or extra apps for sale. Eclipse uses this approach (though it's free)
You can mix those approaches also for a better customizability.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
We are looking to upgrade our current product. The current product is built using web forms (asp.net), c# and Sql server. The current product does not follow much of the best practices such as IOC, Unit of work, Repository pattern etc, however it does follow three layered architecture.
We would like to build the new product from scratch using best practices so that product can be scaled up when required. Our product needs to be a multi tennant web application which should be mobile friendly if viewed on a mobile device. We have found aspnet zero boiler plate which follows best practices but it seems a wee bit limited for us. The disappointment for us is the effort it requires to just add one new field as we would need to add it into multiple places and then recompile the product and publish it. Our product also rely on multiple forms and each form can contain hundereds of fields and on top of that each of our customers may not use all fields in the same form so we need a mechanism to hide and display fields based on customer's credentials. The dynamic creation of forms is a must requirement for us. I have listed below the requirements that we need:
Must follow Industry standard best practices (IOC, Unit of work, Repository, logging etc)
Ability to create forms dynamically and to report on these fields.
Should not rely on compiling and publishing the product for adding additonal field.
Custom business rules for each customer
Adhoc web based reporting
Full auditing to record changed and new value for certain or all fields.
Fully scalable
Role/User based permissions
Is there a suitable framework for achieving above or do we need to build it ourselves?
You used the tag "aspnetboilerplate" So why don't use them ?
I have been learning it since 2016 and it really helpful. A lot of things is well documented and its open source and free. Give it a try.
All the features you specified are included in AspNet Zero application framework. You can start a free demo to see the user interface. Check out the documentation. If you like it you can buy. There's 30 day money guarantee back.
https://aspnetzero.com/
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I'm building a calendar server in .Net. I want the first version of the system to be functional and interoperable for any calendar client. The system is for my college and is my thesis, that's why I don't have enough time to implement all the protocols that these system should implement.
What protocols are REQUIRED in a calendar system server in order to be functional for the clients? Till now it implements RFC 5545 (iCalendar), I'm finishing the RFC 4791 (CalDAV) and some of the extension of WebDAV, after this I'm going to implement the RFC 3744 (ACL).
Should I implement the RFC 6638 (Scheduling Extensions to CalDAV), RFC 3253 (Versioning Extensions to WebDAV) or any other?
In the future I want to implement all these protocols but I have no time now.
Despite the "close votes", I think this is a valid question. There's a lot of standards out there, and a lot of dependencies. And you certainly don't need everything.
The truth is that you need only a subset, and almost no one implements the entire spec.
What's required for you depends on which clients and which features you want to support. So lets say that you want to support iCal, and Thunderbird.
Then at the very least you need large chunks of CalDAV (RFC4791). You don't need every REPORT, but at least calendar-multiget and calendar-query. The freebusy stuff is not used. But for the calendar-query report, there's a small subset of actual queries that clients do.
You need big parts of RFC3744. You can skip most of the REPORTs, but you need a principals system and access-control related WebDAV properties. You also don't need the ACL method. WebDAV ACL is primarily used for principals and reporting access information (but not altering it).
Nobody uses RFC3253 (versioning).
You probably need current-user-principal-URL (rfc5397).
You don't need scheduling (RFC6638). Without scheduling, clients will sync just fine.
Lastly, it's really useful to have support for WebDAV Sync (rfc6578). Clients should be able to live without it, but in reality they tend to misbehave. Without support for that spec, you can fall back on the proprietary ctag, which is widely supported. It's simpler, does the job, but is non-standard.
I would consider this answer a non-exhaustive list though. It's an overview to help you get started. If you have more specific questions about the specs I mentioned, comment here, I'm happy to further expand on this answer.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I plan to use CKEditor in commercial site. I've read http://ckeditor.com/license but I didn't understand how it is possible to have pricing for commercial use while they offer LGPL(which is good choice for commercial use)
Imagine you want to compile the javascript code of CkEditor into a binary application. Just assume this is possible. Then you would not ship the source code of the library any longer.
If you now even make modifications to the source code to distribute within the binary, you do not satisfy the LGPL as it requires that you provide the source for the library along with your binary. Same for the MPL on the file level.
If you don't want to distribute (your changes in) the source-code form of the library, you then can get a commercial license by the project (you buyout the license).
Next to such specific cases I can imagine that some folks just would like to have a commercial license as form of a backup if their legal department is too much puzzled. If the license is relatively cheap, they can opt for it and continue with their own work w/o being further interrupted. Business, you need to keep it running.
But regarding the LGPL, as long as you offer source (incl. the changes you probably make) of the library, you're fine to use it with non-free programs. So this does not mean that your website must be LGPL it's just using a LGPL'ed library.
You can use it for your commercial website. However, if you build a product and want to include (distribute) CKEditor with it then you might need a commercial license.
The condition whether you need the license is based on your product's license. If your product is closed sourced then including an open source product with it without sharing the source code is illegal. So, this commercial/closed distribution license fills the gap. You pay for it and you can distribute your product with the CKEditor closed sourced. Additionally you may do any closed source modifications to CKEditor.
TL;DR: if you want to modify and distribute it with a commercial license then you need to pay, otherwise you are free to use to for free!
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I'm almost finished working on a useful (at least, in my opinion) JavaScript plugin. Having seen and used many JavaScript packages, both freely licensed (JQuery, YUI, etc) and partly or fully commercially licensed I'm not sure what other factors dictate which license I should release my own under and how to support the plugin.
Some background information on my JavaScript plugin:
Similar audience and plugin size/impact to addthis.com, although slightly more niche. My plugin doesn't provide any analytics though.
Uses JQueryUI for user interface, can be expanded upon with there themeing components, etc.
No other similar tool out there (at least that has become popular).
Can be easily integrated in to a website.
Questions I have:
Should I launch a dedicated website for the plugin, or use something similar to Google Groups? Would a dedicated website bring more kudos perhaps?
Would a Creative Commons Non-Commercial license be a suitable license considering I'm a young developer and perhaps reputation building is more important than my bank managers happiness?
These are the 2 big questions that have been puzzling me for a while now, and I don't know anyone who has been in a similar situation :(
Thanks for any advice.
Considering you seem community, rather than cash driven .. the community will hold the key to what they find best, simplest and acceptable (and what works)
What do other plugin developers do? Take their lead. They set the convention and it determines how other people find your plugin. If a Firefox extension only had it's own site then I probably wouldn't find it.
What do others use? GPL? LGPL? What does jQuery use? Ask them why?
It might be worth using an online revision control tool like github or launchpad so people can contribute bug reports and help your development.
If I were you I would definitely use something like launchpad or google code.
You get integrated (community enabled):
source version control
bug tracking
...
for free.
Considering this library is aimed at other (web) developers a shiny website seems a lot less important then the convenient features above (in a known format).
And: congratulations on your first release, of course ;-)
About running site:
For me running dedicated website gives your product more professional look. Hosting on Google groups isn't good choice for all products: you can't build screenshots gallery, own blog, etc. You can build forum by youself if you need it.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I'm evaluating DotNetNuke for a project in which an offshore team is going to be doing the development. In short, the application will be a community blogging platform with many similarities to stackoverflow except no questions, just posts. Posts may include an image or video, tags, use info, title, body, community vote (up or down) comments, hotness, and a few other details. They should be taggable, sortable, categorizeable (beyond what a single set of tags provide) In the future the site will carry forums, a calendar, and a couple of other features for which there are modules available for DotNetNuke. Additionally, this site will incorporate a user experience that will include a lot of custom skinning.
Thoughts?
Using a web application framework (such as DotNetNuke) has a ton of benefits to help you get up and running faster and do less work when creating custom functionality.
However, you have to realize that you're basically incorporating tons of code into your project that you may not be familiar with. No matter how good the code is and how easy the framework is to learn, there's still going to be a significant learning curve for you and your team.
Your decision making process (if you're still deciding whether or not to use DotNetNuke), should include (in addition to reading, talking and other general investigation):
Downloading the application from Codeplex and checking out the source.
Investigating the third party modules that are out there.
Downloading a free module or two that comes with source, and try to reverse engineer the creator's development process. How did she integrate with the framework, what features did she take advantage of, what was written from scratch?
One place where DotNetNuke (or any other framework with tons of extensions) available can really shine is taking existing extensions that are available and customize them. If you need to implement a given feature, check out the solutions in the third party extension community first. You can probably find one that gets you a good percentage of the way there and use it as a foundation for your feature.
For example, if you want a photo gallery on your site, you probably don't want to write it from scratch. There are three major photo galleries out there that sell the source code. The core gallery module is free, simple gallery is cheap, and the source for ultra media gallery is available for a reasonable amount compared to writing it yourself. Any of these could give you a good head start in implementing your features.