How to handle software licensing on a downloaded product? - asp.net

Im in the middle of developing a product that i will hopefully be attempting to sell towards the end of the year and i was just wondering what the best way to handle the licensing is.
My Product is going to be a downloadable asp.net web application and at the moment looks like there will be a free version and a premium version.
Im thinking about using serials that i can keep track of on my end, but the question is, Whats the best way to restrict the free version and have the application 'know' its premium? or should i just have 2 branches of the same product instead of trying to do it all in the 1?
Im planning on making a web installer for the product where the user can put in the serial and it will determine what version they have.

you could have an encrypted license file that your system checks for every so often which tells it what "version" it is. You can dynamically restrict functionality based on that.
This allows you to keep a single code base, and also make it impossible for the users of your system to simply change a setting in a config file and get your entire system for free.
This is going to be hard to do with a web app.

Related

How to Integrate Internal Inventory system to E-commerce site?

I have windows application Inventory management system and E-commerce site.i want to integrate both system to synchronize inventory at both side.If i sold one product from web then the inventory of windows application should be update and If i sold one product from windows application then the inventory of E-commerce site should be update.how to achieve this scenario??The Inventory data should be kept in xml formate on a domain and a from there that XML is read by windows application.So How to achieve this thing.and whole process is automated.please help.
Generally a database would be better suited to this as you'd have access to things such as stored procedures and transactions that would make updating things a lot easier. If you need to change something in one place then you would only need to update the stored procedure to update it in all places and you don't risk 'forgetting' to update the other place and you reduce the odds of a mistake going unnoticed.
Transactions on the other hand will help if there's any errors or situations that should cause a rollback to happen, for the changes to be undone and not committed.
If you insist on using an XML based inventory system you'd need to have a standardized way of interacting with the XML that accounts for the other end of the system already changing it. If the inventory is being updated because of new stock, but someone is trying to buy something from the website there will very likely be conflict.
It might be because the file is currently in use by a another program (the inventory management system adding new stock). You could always have the website/management system wait until the file is available for use, but that adds a lot of unnecessary delays and is far from clean.
If you absolutely have to use XML then there's a few good tools out there already that help parse and manage XML reading/writing:
How do I read and parse an XML file in C#?

How to require a licence for running my web application on a different server?

I'm working on my own CMS, a kind of Wordpress 2.0 where I'll be able to create websites very easily for my clients. I'm planning on sharing it someday, no cost included.
The advantages are: People who use my platform won't need any coding skills, and developers will be able to add their code, whether it is PHP, CSS or whatever.
Well, it is just the start. The thing is, I don't know how I'm going to share this framework. The user just needs a bunch of files and a database. The files then setup everything in the database, and we're good to go. The user can create his website without spending a cent.
If I want the user to have a licence to use it, how should I do ? I mean, I think I want it to be free, but at least I want the user to create an account on the official website. How can I forbide the user to "use" the framework if he hasn't an account on the framework's official website?
Thank you for your help,
Stefan

Custom web security using GUIDs

Hi ive asked this over on the offical asp.net forums aswell though it would hurt to ask here to.
First some background information (feel free to skip it)
i've only recently started learning asp.net web pages
To start i picked up a few books, that went through web security register/login etc. Using the WebSecurity class.
A while back I made my own website to sell/distribute my own software. This was done using php & mysql.
However ive been wanting to update this as well as build a few more product oriented websites. And just use the main site as a store.
I could do this in php but I would need to brush up on it first. Which given my situation isn’t the best use of my time. As lots of jobs ask for experience using asp.net as well as several years programming experience part of the reason I decided to try and develop my own software. But it it doesn’t work out ill need a job which is why I started learning asp.net.
Now the problem
For my existing site I chose to generate a string of random letters and numbers to use as ids for products, customers etc. I do the same in my software as well instead of using the auto increment in the data field so id 1,2,3 etc.
instead I have strings like a3hgt4ssf, 3243dfsa, sdas342d.
Initially things started okay using following the book using WebSecurity and along with the role provider to deal with logins, creating users, restricting access etc.
Then I found out I had to use the auto incrementing ids. So I started creating my own web security and role provider based upon theirs same functions etc.
But now im stuck initially I stored some data in cookies loggedIn, customerid, username no password then I just checked for the is login cookie. This was how the books did it when I first started learning web development but I moved to software and haven’t followed it to much over the years (lack of time).
Now im not sure if I should be using cookies (same as before) or not, or should I use sessions which expire when the browser closes (as far as I know)
My main concern being security i'm using paypal to process payments. So I think that makes it less of an issue but still.
Im also aware of the size of the .net framework, so I don’t want to reinvent the wheel if features are already available to the accomplish what I need.

Will Drupal (or another CMS) work for me?

I have been planning a little side project of mine for a while now. Since the beginning I had planed on writing a CRUD application from scratch myself. Now after having a little more experience with web programming I think I would save myself a ton of time by using a CMS but being unfamiliar with these systems I do not know if I can do what I need to.
Users will create a profile.
Users will upload images.
Some users will be selling their products, others will be buying them. I will take a percentage. Think ebay without bidding.
Many javascript and php features such as image rotators and an app so users can crop their photos.
Will be integrating Facebook API.
Main reason I am considering a CMS is not to save time, but to make a safer website. I am not experienced with eCommerce and do not want to put my users at risk. Everything else mentioned I can and have done.
Use CMS like Drupal or just start from scratch?
Most of the CMS have the basic functionality you've mentioned in 1,2 and 5.
You'll have to write your own extensions for 3 and 4, or search for existing one that fits you.
Writing an extension for CMS will take less time than writing entire CMS from scratch.
If you want safe and stable code, then it's better to use existing CMS.
I agree with w3b4 that an open source CMS will save you time and give you major security and support advantages.
My experience of open source CMSs only extends to WordPress. I am sure you could make it do all the things you want with a bit of work, but my gut feel is that it might not be the best platform to start out with if you main requirement is buying and selling.
However before you strike it off your list, check out the wp-ecommerce plugin and its various add-ons. This product has developed a lot in recent years and might offer what you need out of the box.

Restaurant back-end systems and .Net

How would I programmatically connect to an existing back-end system of a restaurant using say Micros POS, with a web app built with .Net and C#. Thanks.
Update: Sorry for the ambiguity but I'd like to set up an online ordering system that takes users' orders and forward to a restaurant's back-end system to be processed and printed in the kitchen for cooks to see.
There is no particular reason for choosing .Net other than the fact I'm most familiar with it. I'm open to other options.
In general I'm looking for information regarding the feasibility of this and how to go about it programmatically. How would my app send orders to the kitchen's printers? Do restaurant back-end systems allow for a .Net (or any other) app communicate with it? Do they provide an API?
I currently work at an ISV that does basically this with another one of the big 3 point of sale systems.
First and foremost, get the Micros environment up in a VM.
Next, most of these back office systems are running either Windows 2000 or Windows XP (depending on the age of the system), so be really careful about the version of .Net you choose.
Now, as far as architecture goes, run a service on the back office that communicates regularly with a centralized web service (the website that customers order on), once an order is made available, from there you can then insert it into <insert pos type here>.
You will also find in most instances, especially with Micros being the largest Point of Sale on the market for restaurants, they will not be very helpful with documentation and helping you out with integrating into their software.
Also, I think that My Micros (their enterprise application) already supports this type of functionality.
Another opinion, get into FSTech this year and browse all the competition, there are tons for online ordering just so you can get familiar with the competitions feature sets.
What you need to know is define what you want to do with the POS before a choice of technology, if all you want to do is show some data/reports from the POS system's work, you would need to connect to whatever back-end database the POS devices feed into.
If you need to do something else, you need to look for whatever relevant documentation.
It would help you more to ask a more specific question.
I would probably start by determining if Micros POS has an API. If they do, are the systems at individual restaurants even connected to the net? Try chatting up the manager at a place that uses one of these systems, or just check the documentation on their website.

Resources