Web Development with Java and JSF: Author Interview with Michael Müller

DZone 's Guide to

Web Development with Java and JSF: Author Interview with Michael Müller

· Java Zone ·
Free Resource
Software developer, blogger and active NetBeans user Michael Müller has been a frequent reviewer of technical books. Now he has taken the leap from book reviewer to book author. In this interview, he discusses his new book “Web Development with Java and JSF”, a practical guide for Java developers looking to build their web development skills.

What motivated you to write this book?

In the past years, I have read books of varying quality (average to excellent) that cover JavaServer Faces primarily. But I found that what I was missing from these books was a holistic approach to explaining web development with Java, including Java EE and web technologies.

Another motivation is that I enjoy sharing my knowledge with others. I know a lot of excellent Java developers who build sophisticated multi tier applications with their own user interface, but who have never programmed a web application. Some know about HTML5 and other related technologies. Others are wary to delegate their user interface to third-party software even though they frequently use a browser to surf the web. My book could be of use to these developers.

What specific topics do you cover?

In addition to JavaServer Faces, my book covers web technologies such as HTML5, CSS, and JavaScript as well as Java EE technologies: JPA, CDI, Validation, Security, and more. Simple Java and C# applications are also used to show how a developer might access parts of a web application using other applications written in different languages.

In the book I combine theoretical and practical approaches, and I use sample applications to demonstrate the main points. In Part 1, “TinyCalculator”, a small application for basic arithmetic, serves as a technical appetizer or introduction. Part 2 and Part 3 feature two real-world applications: “Books”, an application for listing and reviewing books; and “Alumni”, a kind of social network to keep in touch, share information, and organize events of former classmates. I use both to explain various aspects of web development.

Additional parts are planned for other important features of web development such as web services (WS and REST). I also want to take a look at other frameworks such as Vaadin and AngularJS.

How do you address the needs of beginners and the interests of advanced developers?

First, this book is not intended for beginners without programming experience. It presumes solid knowledge of Java. "From Novice to Professional" refers to the domain of web development. That is, the book should take professional developers who are novices in web development to pro level.

How is NetBeans IDE featured in the book?

Although I could have written the book without referencing any specific IDE, in my opinion it is more interesting to show practical development in an IDE. The book includes sections that require the use of one, and for this I chose NetBeans. The reader will find step-by-step visual instruction for NetBeans, as well as exercises.

What makes NetBeans ideal for web development?

NetBeans offers everything a developer needs out of the box to develop web applications as they use my book. The IDE comes bundled with GlassFish and no special configuration is needed to run the applications. For professional Java development, NetBeans is always at the forefront of what developers need. And I personally appreciate the work of the NetBeans team and their willingness to implement suggestions that enhance the IDE. The team also resolves issues very quickly.

The book is a work-in-progress, what has been the feedback so far?

A bit of background: The publisher LeanPub allows early access—at a reduced price—to books that are works in progress. There is a suggested minimum payment and it is up to readers to decide what amount they want to pay from that starting point.

Some people have paid the minimum, but a good number of readers have paid more than minimum. I see this as positive feedback and encouragement to continue writing and improving the book. Specifically, people have written that they like my work. I have one reader, Pratab Chatterjee, who has become a sort of contributor to the book. He edits my English grammar. Another reader, Anghel Leonard who is actually an author (Mastering JSF 2.2 ) is now a technical reviewer of the book.

So far, I haven't received any negative feedback. My main hope is that the book is valuable to all readers even if they don’t all send feedback.

When do you plan to be officially published?

My first intention was to write a book of approximately 200 pages. But now I’m guessing it will be 300-350 pages. I update the book every two to three days depending on how much time I have. I would like to complete the main parts by the end of 2014 or early 2015. Then after final edits, if enough people are interested I would publish a printed version.

This is your first book. What tips can you share for those who might want to attempt writing a technical book?

Some years ago, a German publisher approached me about a book on NoSQL. I declined because I was not an expert on this topic, but from then on the idea to write a book took hold of me.

Like many other authors I have a day job, so time is a very important factor. From my contact with authors whose books I have reviewed , I learned that it takes on average six months to two years to write a book. In my case, besides the actual writing I have to also prepare the software and applications I write about. I would estimate that approximately three hours of work will have been spent per completed or final page.

Finally, you need to be patient and to enjoy writing your book. If you want to get rich write a best-selling novel instead.

Download and Buy: Web Development with Java and JSF -- An Enhanced Introduction into Web Development with Java and JavaServer Faces (JSF) for Java Developers

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}