Java application from local machine to the server - java-server

I am developing an application in Java on a local machine. This is my first project, and I am afraid I started it in a wrong way, since I will have to install it on every machine, which can reveal such issues as Java versions incompatibility or even its absence on some machines. Besides, I would like to write the GUI in HTML.
So, I've decided it'd be better to write a server side application and open it in the browser. All users are connected to the server via LAN.
I would like to use something like WAMP, but in Java. I've never written web applications in Java.
Could you please help me with advice, which technology I should use (JSP, Apache Tomcat, something else), what kind of problems I can meet transferring the existing code into the server (I use a lot of external libraries, like Apache POI, Jsoup, HttpClient, etc), and tutorials on Java server programming (I've found so many information, I just do not know where I should start learning).
Thank you!

I am currently developing using spring. I think it's a good tool.
http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/index.html
http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/mvc.html
good luck in your app

Related

How to display client's installed software?

I have a requirement of getting the details of all the clients installed software. I have published successfully but when I try running in the client machine it is showing the server details only. How to overcome this problem?
A web browser does not have access to the client operating system. That would be a terrible security problem.
You should consider using software that is made to do this sort of thing. Don't reinvent the wheel.
Most especially, wheels on a sailing ship aren't much good. That's what you're trying to do here.

What are the equivalents of Microsoft ASP.NET and Visual Studio for Linux?

I just wonder what are the similar frameworks and tools for Linux web development.
And can I use Visual Studio to develop websites for Linux Apache? Thanks.
Mono (it supports ASP.NET) and MonoDevelop, I guess.
Web development on Linux isn't specifically tied to one programming language, framework or IDE. More commonly they are related in terms of being Free and Open Source (free as in cost, and also the ability to do what you want with the code).
I loved Visual Studio when we used it for classes, however I haven't quite found a tool that is the same. The only thing near to this would be Eclipse or Netbeans.
In general, many Linux enthusiasts use emacs or vi (or vim) for their editing. At first glance you may not see the power they have, but emacs is definitely a wonderful editor, and vi is very good once you become familiar with it.
For Web programming langauges and frameworks, you have a variety to pick from.
Python is one of the most popular languages to use for Web development. This language has been used by Google, Reddit, Quora and a host of others. Perhaps the most popular framework for Python is Django, and each (Python and Django) have their own following, as well.
Ruby is a wonderfully beautiful langauge, too. Most likely you may have heard of Ruby on Rails, which is a great Web framework allowing you to quickly turn an idea into something actual in no time.
PHP is another popular language, and has the PEAR framework. Many of the online forums that you can buy are written in this language, such as vBulletin and the ever famous phpbb.
In my opinion, it depends on what you want to accomplish. Python and Ruby are great for Web development, as well as non-Web, too.
Ad 1) There are several IDEs. I prefer eclipse, no matter if for html, php, python, c or java.
Ad 2) Yes you can. Create your websites, copy them to your /var/www (or wherever your ww-root) is and you are set.
EDIT: < personal opinion > By the way, I mean there is no thing like "windows web development" and "linux web development". In the end it is of no importance at all on which OS you developped your web application, on which OS the web server runs, which OS the client has or which server- and client-side languages you used (as long as you don't use something certain clients can't provide). You have a web server that communicates via HTTP, HTTPS (or whatever) with clients. This server passes certain data via CGI, lib-apache2-mod-XYZ, WSGI, the interface IIS uses for ASP (or whatever) to executable scripts. These yield a result that the web server then publishes via (fill in arbitrary OSI layer 7 protocol) to the client, no matter what the content: HTML, CSS, images, JSON, you name it. Your operating systems has nothing to do with this.
Not all interfaces are available on all hosting server OS, but you always have a bunch to choose from and what counts is the result in the end. Quidquid agis, prudenter agas et respice finem. < /personal opinion >
There are a ton. You can use mono for ASP.NET that runs on Apache. There are even other languages. PHP, JSP, Djanjo, Ruby on Rails, Node... just to name a few languages/frameworks. There isn't a build of Visual Studio for Linux and you would be hard pressed to set it up to compile Linux assemblies on Windows.

How to Protect program from using on the SERVER?

I have a progam this is a converter for .NET that can be used in other .NET projects.
I have two kinds of license:
Developer license for DESKTOP software
Developer license for WEB server deployed software.
How I can protect my program if client buy (1) license he CAN NOT use it on the SERVER.
Disclaimer: I don't know anything about .Net, other than how to spell it, and I'm not completely sure about that.
It seems like one difference between a person using your file converter on their desktop and using it on a web server is that only a single instance will be running at a time on the desktop; a web page will probably have multiple instances, once per concurrent request. This seems like something you could enforce in software, and also something you could easily write into a license agreement.
Does IIS run with a graphical console on Windows? If it doesn't, and your desktop version does, maybe you could detect that?
Ultimately, though, if someone wants to get around your server/desktop distinction enough, they're going to; they could, for example, have the web server send the document to a desktop machine, and have the desktop send it back to the server. So, at some point, you'll have to give in and either ignore it or to say that's a problem for legal to handle.
If it is desktop software (I'm not sure by the question with the tag), you could use the Environment object to check what OS the code is running on and stop it running on Server Technology. This won't help if they run a server using XP or the like though, but it's a start.

how to write code in asp.net to stop reverse engineering of asp.net application

We are having an application that is downloadable. We want to stop the application being reverse engineered by someone to lose our business. It there any way to stop this?
What do you mean by an downloadable application? You are talking about ASP.NET applications in the title of the question, but that's not a kind of application which can be downloaded. If you have a Console/WinForms/WPF-Application that has compiled binaries, you could use code obfuscation tools to make reverse engineering harder.
Best Regards
Visual Studio (usuall) comes with Dotfuscator (community edition). Look in your Visual Studio Tools program files entry.
PreEmptive Solutions’ Dotfuscator is
the leading .NET Obfuscator, Compactor
and Watermarker that helps protect
programs against reverse engineering
while making them smaller and more
efficient. Dotfuscator Professional
Edition is designed to stop even the
best of decompilers from producing
useful output. It provides
comprehensive and efficient .NET code
development and deployment.
I've had a similiar problem. I had a server based piece of software that was loaded onto a server within the customer's premises. This meant anyone half technical could copy the files from the server onto disk and re-install with some know-how onto another server. Basically, stealing my work.
I wrote in numerous measures, I obfuscated the code and I put hooks into all corners of the server (registry, database, root of drive) so if the code was installed elsewhere the system wouldn't find these items and lock itself up. I even went to the lengths of self encrypting some of the source files and then deleting the encryption tool itself. Unfortunately, if anyone wants to steal the software however, they still can. You have to realistically judge how much effort you must put it to stop a percentage of thefts. I love Roeder's Reflector, but it's programmes like this that allow a competent programmer an insight into your protection code and circumvent it.
Have you looked at 3rd party products like Xheo: http://www.xheo.com/products/codeveil/?gclid=CL-Tjoye7psCFdYB4wodHGVZAQ?
I found this on SO too: Protect ASP.NET Source code
I hope this helps.

"simple" installer for a web application (IIS virtual app + sql server db setup)

I need to create a web application installer.
Install Shield seems like overkill, is there something that can reliably install a web application (IIS setup + sql server db setup).
Suggestions?
CruiseControl.NET (http://sourceforge.net/projects/ccnet/) uses NullSoft's NSIS for this. It does a good job and it's free. The installer setup scripts, including the VBScript program that sets some of the website characteristics in IIS, are all in the source tree (http://ccnet.svn.sourceforge.net/viewvc/ccnet/trunk/ccnet.nsi?view=log and http://ccnet.svn.sourceforge.net/viewvc/ccnet/trunk/install).
Have a look at WIX, schema help, it can do what you want and so much more ...
InstallShield or one of its competitors is the simple solution anything else is going to require you to know way to much about msi(and that is a major headache).
I currently favor Advanced Installer they have a free edition. I believe InstallSheild has a free version as well, I just don't like the InstallShield product any longer and it bothers me that their holding company practacly changes every year.
I can only second NSIS (Nullsoft Scriptable Install System). Supports scripting and is easy to set-up.
installshield is a good way to do this. handles sql server setup and iis config fairly well.
not cheap though I'm afraid but worth it for any type of install. wix might be an good option but how much time can you afford to spend on learning it rather than clicking some wizards in installshield.

Resources