Sign in to follow this  

Deployment of traditional applications in a web browser

This topic is 2844 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I've got a C++, client side only kind of background. Forgive me if anything I say is .. you know... naive. My broswer based skills are decidedly first few chapters of a "for dummies" level. So. I've got my C++. I can write a program, you install it on your computer, and away you go. But these days we are moving more and more towards looking for a rich, functional experience from within a web browser, perhaps with some or all of the processing/storage happening elsewhere, e.g. using a google docs spreadsheet. Now, initially I was thinking I could simply learn how to use Flash, which might be sufficient to get me by, but then there's Microsoft's Silverlight which I understand claims to harness more of the client's processing power to give a richer experience (and utilises the .NET framework which also sounds useful). ANd now there's HTML5 to think about which apparently will be the end of Flash (can't see THAT happening overnight though). And recently I dug through a tutorial which got a Java application running via a JSP... My question is: as a decently skilled C++ programmer with essentially zero experience in creating browser-based applications, be they server-backed or standalone; if I'm looking to tool myself up with the skills to build browser-based applications, what technologies should I be looking at. I guess there could be two angles: 1) learn this to get lots of jobs right now 2) learn this because these are the tools people SHOULD be using now, and will be almost certain to use in the future. Sorry I rambled a bit getting my point across.

Share this post


Link to post
Share on other sites
A server side language of your choice (personally I'd go for Java, .Net or Python).

javascript.

HTML/CSS.

Database (personally I'd choose PostgreSQL and avoid MySQL like the plague).

That would be the basics that would get you started.

Share this post


Link to post
Share on other sites
It really depends on what you want to do. There are really many, many technologies in web development, both client-side (some of those you listed) and server side, and they usually act in tandem.

Client-side you have your usual Flash and Silverlight and JavaFX, but what's more common is HTML + javascript. For the rich experience you mention you can use AJAX to update a page partially. There are also many javascript libraries that provide all kind of cool functionality (custom widgets etc). Dojo, Prototype, jQuery, Mootools, just to name a few of the more popular ones.

Server-side you have, among other things, Perl, Python, ASP, PHP and Java. PHP is perhaps the most widespread and easiest to get hosting for. However, PHP is a mess unless you use some kind of MVC framework. It does not by default offer any separation between business logic, control logic, presentation, and content.

Most of my experience is with Java. The Java web development world is very diverse. You have already seen JSP - internally they get compiled to Servlets. Writing just JSP is a pain similar to PHP, although the Java Standard Tag Libraries (JSTL) can help a bit. But normally you want to write your controller and business logic code in Java and just use JSP for presentation. There are alternatives here, too. Instead of using JSP, you can use technologies such as Wicket (and write presentation layer in plain old HTML) or use other presentation technologies such as FreeMarker or Velocity. There are also other technologies, such as MVC Frameworks that aleviate the tediousness of writing Servlet code for you. Struts does this.

The Spring Framework is another great tool, because it can do so much for you without having to turn to other technologies - Dependency Injection, JDBC abstraction support, MVC framework, security (page level or method level or whatever you want), Aspect-Oriented Programming, abstractions for Object-Relational Mapping, page flow control using Web Flow just to name a few.

Coming from a C++ background, I think you might appreciate being able to write your application logic in Java instead of, say, in PHP scripts. In that case, start with plain Servlets + JSP to get a feel for how the Servlet API works, then move on to some of these frameworks to become more productive. Client-side this usually means that you are emitting HTML and javascript code, although the initial input might not even look much like HTML.

Servlets run inside a servlet container (a kind of sub-set of a full-blown JavaEE application container). Tomcat is one popular choice here (there are others of course) and it's easy to integrate it with Eclipse. If you download the NetBeans IDE instead, they have a NetBeans-GlassFish bundle so you can develop using GlassFish.

Database side, you can use MySQL or Postgres. Both are popular for various reasons. Definitely look into Postgres. The main thing to know about MySQL is that there are many storage engines, and the differences between MyISAM (the default) and InnoDB (transactions, foreign-key referential integrity). In either case you want to learn at least the basics of Entity-Relationship modelling, which is the basis for all database work.

Share this post


Link to post
Share on other sites

This topic is 2844 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this