GWT and Search Engines - gwt

Does GWT app are indexed by search engines???? if yes, how to accomplish that?
Thanks.

GWT apps and more generally ajax can't be fully indexed by search engines... yet. But work is being done to make ajax applications crawlable. The most common alternative used by developers to get their gwt app referenced is to publish an html version.

Search engines don't prefer html that generated on client side by javascript(Ajax). They prefer static html that generated from server side. That is why, AJAX applications are difficult to index because they are generated dynamically on the client side.

Related

GWT XMLHttpRequest?

I am using GWT. GWT is based on XMLHttpRequest. what is XMLHttpRequest and how GWT works?
XMLHttpRequest
Thanks!
It is a very wide question.
It might be helpful if you read about Ajax first.
How GWT Works
If I want to describe it very simple, we can say its a javascript object which transfers requests between browser and remote server without reloading entire webpage. It's internal implementation is browser native, but its known as heart of any AJAX (Asynchronous Javascript And Xml) based technology such as GWT, jQuery and other similar frameworks.
See this link for more information.

The Output page(Response page) of my Application, will given by JSP only.... Then what is the use of GWT at client side

I want to develop a Web Application by combining Spring Framework, GWT, Servlets, JSP........
I plan to develop Server side using Spring,Servlet ,JSP....
And for Client side, GWT....
The Output page(Response page) of my Application, will given by JSP only....
Then what is the use of GWT at client side....
please clear my doubt....
Read the following
1) AJAX - http://en.wikipedia.org/wiki/Ajax_(programming)
2) RIA - http://en.wikipedia.org/wiki/Rich_Internet_application
3) GWT - http://en.wikipedia.org/wiki/Google_Web_Toolkit
The problem with using purely jsp to create a web application is that each user interaction typically requires the entire page to be reloaded. Depending on what you're doing this approach is considered outdated. GWT is built on top of javascript and xhttp requests, allowing user interactions to affect only relevant portions of the page. This generally results in a faster and smoother user experience.
If you have already decided that you want to use JSP, then you don't need GWT. Although you could use it to create custom dynamic components and embed them on your page. Or to create a part of your application where you find JSP not sufficient (which would be probably a part that should be more 'dynamic' and would require a lot of javascript).
http://code.google.com/webtoolkit/overview.html#how

GWT for big projects?

My friend and I want to develop a big web2.0 project. We decided to write it in Java because we love it and we are good at it and the other libraries which we will use are written in Java (Apache Lucene, Apache Cassandra ...). and we choose GWT as a framework. We love google, google technologies, google apis.
and I want to ask do you think that GWT is suitable to launch the big projects like youtube, twitter, wikipedia and other... ? Is gwt-rpc mechanism reliable in big projects?
Well GWT is suitable for web applications and not web sites or web pages, GWT is suitable for applications like Gmail which is a BIG application yet contains a single page which has complex actions.
GWT fails in some projects with many pages, We used GWT in an ERP system which contained about 100 page each page represents CRUD operations + some business operations, GWT wasn't the perfect choice.
Other thing GWT may fail in is that web crawlers can't extract information from javascript files generated by GWT. Search engines prefer static HTML generated from server side, and not generated on client side by javascript as GWT does. So, Google search engine will not give results from your site.
In summary, GWT is suitable for web applications with fewer number of pages and more complex actions.
Your examples (youtube, twitter, wikipedia) are not good candidates for GWT, so if you're building that type of application you'll probably want to stick to traditional server based frameworks like SpringMVC or Spring Roo.
GWT is better suited for applications that would traditionally be desktop based and need to do a lot of processing on the client side such as email clients, games, reporting apps, word processors, etc...
I want to point out that "in big projects if generated javascript codes is larger and larger, User is obligated to wait to download js file before to use web site."

Comparing GWT and Turbo Gears

Anyone know of any tutorials implemented across multiple web application frameworks?
For example, I'm starting to implement GWT's Stock Watcher tutorial in Turbo Gears 2 to see how difficult it will be to do in Turbo Gears 2.
Likewise, I'll be looking for a Turbo Gears 2 tutorial to implement in GWT.
But I hate to re-create the wheel - so I was wondering if anyone was familiar with such projects and/or would be interested in helping me work on such a project.
Thanks,
--Spencer
While it is possible to combine the two frameworks, I hope to convince you not to do so.
Most web-frameworks, including Turbogears, have server-side page flow management. A page is served to the user by generating html, user interacts by clicking on links or by posting a form, the browser sends a fresh request to the server, and finally server responds with new html altogether. You AJAX'ify the page by using a js library, or the framework has some support. But, in general, transition from one view to another is done on the server side.
GWT is totally different. There is only a single HTML page in the system. Once this page is downloaded, everything happens on the browser through javascript. When the user clicks on a link, its essentially just a javascript function call. History management is done through fragment urls (the portion after the #).
These two philosophies are poles apart. So apart that I daresay GWT doesn't work well with any server-side web technology. See this discussion on GWT vis-a-vis JBPM/Struts/Spring Webflow. And see this discussion on GWT v/s JQuery.

How (im)practical is it to use GWT with something other than Java on the server-side?

For web application development, I've been steeped in dynamic languages such as Ruby, PHP, and Python. Using popular frameworks for these languages, all my knowledge about HTML, CSS, and JavaScript transfers fairly straightforwardly: templates are basically HTML with embedded code that the server executes to generate the dynamic sections of the page.
Lately, I've been thinking about using GWT for building the UI of my next project. At this point, I'm just trying to wrap my head around how development with GWT works, as seems to follow an entirely different paradigm. In addition, it seems there's an unstated assumption that the server-side part of the app is written in Java. Would it be impractical to use something other than Java for the server side?
Related question:
GWT + GAE python: frameworks for COMET & RPC
While not actually impractical I would say that you get the most value from GWT by having the same code on client and server, since it allows for easy code reuse (fx. if your data objects are serializable then you could just send them directly to the client). So I guess my answer would be; yes you can do it and it's going to be more work than just having Java on the server side.
I don't think there's any requirement that you use Java on the server. At the end of the day, GWT compiles Java to JavaScript. You can do all the comms via the RequestBuilder object, you don't have to use the RPC services.
I guess the question is: if you don't like/know/prefer Java on the server side, why would you use it on the client when it's effectively an abstraction over JavaScript anyway?
There is no requirement to use Java on the server side. GWT supports JSON out of the box. Any server side component that can generate JSON ( or other supported serialization methods ) will work. You could use PHP on the server side, or bash shell scripts, it doesn't matter to the Javascript code that is generated by GWT.
Yes, it can be practical. I use Rails as my backend and GWT/GXT as my frontend. I love every bit of it! I couldn't stand worrying about browser incompatibilities, so GWT/GXT was a real joy. Also, I had already started my backend in Rails and did not have much experience with Java on the server, so I stuck with Rails.
You may want to take a look at an appropriate GWT Rest framework, as you won't be using RPC.
As an aside, there is one exception where you should use Java on the server. That's if you want to use Google App Engine.
Feel free to ask me any specific questions and I'll be happy to help you out.
Good Luck.
-JP