0

How can I make a setup version from my web application that will allow any user who have the required files to :

  • Provide initial information through a simple interface or editing a file that is required for the website to start (The admin user and password, the production database credentials, etc)

  • Copy the database schema (my application's ordinary tables + the membership tables)

...There's a point I'd like to learn more about but it's not that important at the moment but if you have a link or an idea, it would be great: how to protect my application from users who might buy it and share a copy of it on the internet or with friends!

EDIT

Sorry for replying this late! I was kinda sick yesterday .. Thanks for your time and I'm commenting on your answers right now :)

EDIT 2

AGAIN! .. for who ever voted down my question, please leave an explanation so people including the question owner would learn or put some light on a confusion .. just down-voting it and run is just about you satisfying your need to down vote a question you think might be worng! =)

3
  • 1
    This is really an open ended question. If you're using VS 2010 then you have a wide set of options as Wyatt explained below. Can you explain a sample scenario of how you'd like to deploy or what you'd like to accomplish? Commented Mar 17, 2011 at 12:14
  • @Mike G- I really have no idea on what more information I can tell you but I'm using VS2010 and my customers will be using shared hosting account. It's kind of a CMS like Joomla, IPB forums (Never had the chance to setup a .NET CMS!) Commented Mar 18, 2011 at 8:20
  • AGAIN! .. for who ever voted down my question, please leave an explanation so people including the question owner would learn or put some light on a confusion .. just down-voting it and run is just about you satisfying your need to down vote a question you think might be worng! =) Commented Mar 18, 2011 at 8:37

3 Answers 3

2

Really depends on the definition of "any host" as there are lots of things one can do on a dedicated box that you can't on a shared box. In any case, if I had to do this today, I would look at creating a wevb deployment package. That will work on anything running 2008, which is most commercial outfits. It will also hand db deployment and config tweaking.

Regarding rights management, the best bet is some sort of system where the app has to ping your service to check licensing -- pretty much the only foolproof way. Of course, unless you got something real special, most people won't bother with anything so encumbered and will likely look elsewhere for a solution. If you are paying, you might as well go turnkey IMHO.

Sign up to request clarification or add additional context in comments.

6 Comments

Well Wyatt, if you need any further information please ask me so you could help better and also I hope you'd check my comment @Mike G. and what did you mean by go turnkey ?
btw this seems like the answer, but I'll have to learn and read a little before I use it ... a couple of articles on Web Deployment Package and Rights Management System would be great! .. Thanks for your effort Wyat =)
@Wyatt, I agree re the licensing. If it's an enterprise application then most companies will not accept such a requirement. If it's a hobby type app then people will look for a free version.
@UpTheCreek- "such a requirement" what requirement ?
@IKashef : going turnkey means setting it up as a hosted service rather than software people install. Generally a much easier sell these days.
|
2

The only way that I am aware of is creating a installer with Visual Studio, so forgive my ignorance if their is a better way.

You could implement a licensing system on the web application, where it calls a remote server to authenticate every time the application is started (Global.asax).

And for deployment you could create a Application where the user has to input a license key. You then contact your server (website) and authenticate the key. If the key is valid you download all the required files to the user’s computer (In a .zip file). Then ask for all the configuration values (Admin user name, password, database name, database host) and create the database schema and copy over the required files, for the website, to their hosting server.

Just a idea, haven’t implemented something like this but it should work in theory.

1 Comment

It's okay, anyway you focused on the "protecting my application" part and that needs some creativity and that's exactly what I've been thinking to do .. but the problem is Global.asax is readable for my client (I mean he has the files .. with a little knowledge or using someone's help) .. he could edit or delete the method calling my server to authenticate it's license .. what do you think ? .. +1 for your time and your idea =)
1

Not to steal answer thunder away from @Wyatt, but this may be the answer that @IKashef is looking for:

Visual Studio 2010 has a feature to package and publish projects to IIS 7 very easily. Please note the following article that walks through how to do this: http://weblogs.asp.net/gunnarpeipman/archive/2009/06/18/visual-studio-2010-web-application-packaging-and-publishing.aspx

It isn't an installer, but it allows for easy deployments from your environment to others. I've read, but can't find articles on how to make this automated into a "standalone installer". I've worked with TFS to use this to deploy to testing servers.

This talks about the 1-click publish a little more: http://vishaljoshi.blogspot.com/2009/05/web-1-click-publish-with-vs-2010.html

Information about the IIS 7 web deployment tools: http://blogs.iis.net/drobbins/archive/2008/01/23/new-web-deployment-tool-for-iis7.aspx

Hopefully this will give you some food for thought. I know it isn't a 100% solution type answer, but deploying/installing a web application is a very open ended question. Questions like, "if and how are you delivering code to your customers" or "are you doing your own hosting" are important to answer first.

1 Comment

+1 For a great guide on how to normally deploy an asp.net website. but this is not what I needed. what I needed is to have a package that do those steps in your articles to configure it self (with the help of the client, to enter the db connection string info and stuff). but I don't need to create a special package or process for every different client and server.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.