Jave Web framework sweet spots
"Dessert" of Java Web Framework"
This is a very interesting document, so the summary is similar to Reading Notes, as shown in the following figure:
I don't know how to translate sweet spots. Is it translated into sweet places, sweet spots, honey points, and honey points?
This is based on interviews with the following:
JSF Jacob hookom
Rife Geert Bevin
Seam Gavin king
Spring MVC Rob harrop
Spring web flow Rob harrop and Keith Donald
Stripes Tim Fennell
Struts Action 1 Don Brown
Tapestry Howard Lewis ship
Trails Chris Nelson
Webwork Patrick lightbody
Wicket eelco hillenius
Here: http://www.virtuas.com/articles/webframework-sweetspots.html
JSF (Jacob hookom)
1. Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
When you want your browser to work like a desktop program, you can follow the standards and get a lot of third-party support. It is committed to reducing complexity. It allows you to perform high-quality development without dealing with view and specific actions, parameter transfer, status transfer, and rendering, regardless of whether or not tools are used.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
It is not suitable for large-scale, read-only (mainly read-only) websites. Struts is recommended in this case because the knowledge base is rich (it should refer to documents and user groups ).
3. Have you tried them in the Framework mentioned below? Which one do you prefer if you have tried it? Which one do you not like?
Seam:
Advantage: very simple and direct
Disadvantages: too simple for large projects; no good examples of modular Development
Struts:
Advantage: Huge documentation and user base; followed by it
Disadvantages: the separation of status/behavior is too systematic
Webwork:
Advantage: easier to use than struts
Disadvantages: complicated UI is difficult to maintain and the UI code is too complicated (the JSF author attacks the Action Framework)
Tapestry:
Advantage: novel concept; can cope with complex UI
Disadvantage: For a componentized (main competitor of JSF), it is still dependent on the concept of page/action.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
He believes that the JSF standard should be provided by a third party. JSF (2.0) provides "partial faces request", which is an Ajax implementation. JSF also enhances annotation build programming.
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
Many JSF books use struts for comparison. He believes that this does not reflect the characteristics of JSF. He believes that struts and webwork can also achieve JSF.
6. What do you think of Ruby on Rails?
It is as easy to use as webwork, and its CoC (Convention over configration) and scaffolding are very useful. He believes that CoC can be applied to any framework, and he thinks this is the biggest advantage of ROR. He also believes that ROR will embark on the path of other frameworks (such as complexity), because people need their own extensions.
Rife (Geert Bevin)
1. Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
You can pay 10% of the workload and get 90% of the other frameworks ......, It is a full-stack framework (such as ROR ). It absorbs mature layered frameworks and brings together common advantages. Provides Web continuation, crud generation driven by pojo, scalable build-based architecture, no session state control, focus on rest as API, two-way no logic template engine, integrated with the content control framework (CMS ?). The formation of each layer provides reusability (AOP, site, sub-site, page, widget, and Portlet ). Suitable for teams to quickly develop public web projects and those who prefer to develop reusable components.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
Everyone in the team has the knowledge of other frameworks and it is difficult to train them. Development status-related server-side Web Components, rather than using RIA or Ajax. Third-party support is very important (poor rife user group is not large yet ). He recommends that JSF be used in this case. Or, cocoon is recommended when XML is the main release form.
3. Have you tried them in the Framework mentioned below? Which one do you prefer if you have tried it? Which one do you not like?
He has tested webwork, JSF, and Wicket. He prefers webwork to be simple, but does not like its template method (TAG template, should). It also does not provide component encapsulation. He believes that JSF tool support is very attractive. Wicket's pure Java implementation is quite good, but the xml configuration is quite uncomfortable.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
With regard to Ajax, rife has just integrated DWR and will be used later. Integration of dojo, scriptaculous, and prototype is easy to integrate.
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
These incorrect ideas: 1. The xml configuration of rife is cumbersome. 2. rife is a continuations server. 3. rife re-creates a wheel and does not provide fresh things. 4. Rife's template syntax is too bad and too simple. 5. rife is based on the request framework 6 and rife have too many functions, steep learning curve
6. What do you think of Ruby on Rails?
Ror has a great impact on the Java Community, and the Yuan compilation has also gained trust. Ror has nothing to do with, and has not benefited much from the ruby language.
I hate: its template. Partials (component in ROR ). Distribute URLs. Active record provides DSL from the database schema, but not from the domain model. L10n and i18n are not supported. Manual status conversion. Cannot run in JVM (......). In fact, scaffolding generates the actual code. Ruby lacks tools and IDE.
Seam (Gavin King)
1. Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
Applications with rich user interaction experience. It facilitates multi-window operations, supports rollback, single-window multi-work zone, and stateless browsing. The integration of business processes (BPM) is unique. Seam facilitates the use of data-driven Orm. Compliance with JSF and ejb3, multi-task support (Multi-Window/Multi-work zone), and BPM's leading solution.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
PHP or ror is not suitable for applications that only display data from the database to the web page. It is not suitable for scenarios where special HTML components need to be designed. In this case, choose tapestry or wicket. People who are still using jdk1.4. There are also people who like struts (, ).
3. Have you tried them in the Framework mentioned below? Which one do you prefer if you have tried it? Which one do you not like?
JSF: Like its event/interaction model. Like El binding to models. I don't like so much XML (why there is no annotation ). It is too difficult to create your own controls.
Tapestry: Very good. Form Verification is its killer! The template method is very creative. However, I am not interested in a component model other than pojo.
Rife: this is a strange thing, but it is also interesting to start a business. I want to learn more. If you want to learn at your own expense: d
Struts: The model view binding of this item is too complicated. Something is out of date.
Webwork: it is better than struts, but it is outdated. Xwork was a good implementation, but it is outdated now.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
Portal support. Remote framework seam remoting framework (Ajax ). Template message tool support. The ESB, planning engine, and asynchronous support will be integrated in the future.
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
None of these are true: JSF cannot process GET requests. Redirect is not available after JSF post. JSF cannot coexist with rest.
6. What do you think of Ruby on Rails?
It is a good alternative to PhP. If it has a serious persistence layer, it can compete with Java.
Spring MVC (Rob harrop) and spring web flow (Rob harrop and Keith Donald)
1. Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
Spring MVC:
Stable and scalable, supporting i18n, file upload, and Exception Handling. These stable support provides developers with a solid working foundation. Is the best practice, tell you how to do the best. Integrated with spring, leading IOC remote support. Support: the spring community is active and huge. Struts developers can smoothly transition. Suitable for multiple projects and multiple result types.
Spring web flow:
The built-in task processing engine supports the continuous state during linear processing. Abstract to reduce development concerns. It is suitable for multiple project types. The plug-in supports spring MVC, struts, and JSF.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
Spring MVC: Not Suitable for scenarios requiring componentized development. It is a request-driven MVC. JSF or tapestry is recommended for those scenarios.
Spring web flow: It processes linear page streams and is not suitable for "Free browsing ". Of course, spring web flow can coexist with the request driver or component driver.
3. Have you tried them in the Framework mentioned below? Which one do you prefer if you have tried it? Which one do you not like?
The Spring framework supports struts and JSF integration.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
Spring MVC: simplifies JSP labels. More MVC configuration schemas. COC-style default controller, URL ing, view, learn the advantages of rails and stripes. Enhanced Data Binding and verification (fan binding supported ). Portlet support. Spring also accepts Ajax and uses the DWR library.
Spring web flow: a lot of things that you care about ......
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
It is difficult to configure spring MVC. In spring 2.0, it will be improved. You can use your own Schema-based configuration.
6. What do you think of Ruby on Rails?
Spring MVC: ror is very interesting. But it's still naive to use it now. Here is an example. For how to process the complex form of variables, Ror will use this CoC style to process the Variable list, and spring MVC has also experimented with various styles, however, the results are poor. People think that the English plural is odd and there are no certain rules, which can lead to confusion, for example (person-> people ). Therefore, spring MVC designs a variable + list name. The personlist is more explicit. Although it is cool, it is better to use it. That is to say, spring MVC needs to take its essence to its dregs.
Stripes (TIM Fennell)
1. Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
It is the same as spring MVC and webwork. It provides a high-quality action-driven framework while simplifying configuration as much as possible to improve development efficiency. Stripes is suitable for complex data interactions. In this case, the strengths of binding verification are fully reflected, and form and map conversion can be well processed.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
All action-driven frameworks are suitable for loosely related and stateless interactions on a page without Ajax drivers. Suitable for pages refreshed every time. Managing applications in the continuous state between multiple windows is troublesome. Select JSF. However, I think that more than 90% of web programs are the former, while JSF is only applicable to the remaining 9%. Ajax is more suitable for managing stateless UIS. The client does not need Ajax, so you can look at wicket, Which is simpler.
3. Have you tried them in the Framework mentioned below? Which one do you prefer if you have tried it? Which one do you not like?
I have used struts, webwork, and spring MVC. Among them, Struts has been a commercial project, but it brings much more trouble than it brings about more efficiency. It believes that MVC has three disadvantages: exposing too much complexity to the Releaser. There is not enough development convenience, there is not enough error and prompt information, there is no small convenience such as date formatting (in fact, there are ). Poor stability.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
1.3 add inteceptor to implement the AOP function. The verification system should be strengthened. Supports Ajax. I am still looking for a good ajax/JavaScript library.
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
These ideas: 1. Stripes uses annotation to replace XML, but does not change the changes. Because the metadata is closer to the Code, it is very convenient to modify the default configuration, unlike XML, which is a substantial change. 2. annotation means you only have one set of configurations: I think 90% of actions have their own set of configurations! Stripes searches for annotations Based on the inheritance relation, and the annotation of the subclass will overwrite the parent class, because the annotations such as validation can be inherited and can be overwritten if necessary. This is reasonable. In 1.3, validations is allowed Based on UI events. It is backward compatible and does not need to be used.
6. What do you think of Ruby on Rails?
I think the Java Community has a lot to learn from ROR. Stripes learns the ROR front-end and developers can reduce the configuration volume. But ror's rhtml reminds me of the chaotic scriptlet in the previous JSP. Activerecord is a good idea and can be implemented well. Activerecord is easier to understand than Hibernate and other complicated ORM tools, because such a feature ror has caused such a big wave.
Struts Action 1 (DON brown)
1. Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
Documentation and user basics, books and support. Easy to hire (and easy to find a job ). Although the concepts of other projects are more advanced than this, these are nothing. In fact, the web layer is easy and straightforward.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
If you need portlets or complex pages (displaying many things), Struts cannot work or be too boring. In this case, you need a component-based framework, such as JSF, tapestry/wicket.
3In the Framework mentioned below, have you tried them? Which one do you prefer if you have tried it? Which one do you not like?
I have tried these things, and each of them works very well.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
Struts Action 2 is based on webwork2 and will soon begin. Now that AJAX is supported, we are looking for easier development methods, such as JSF support (struts shale), continuation support, and more scripting languages (BSF extension script writing action ).
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
Struts is too outdated and not cool to use. But you can modify or expand it yourself. I think the team limits you much more than the framework limits you.
6. What do you think of Ruby on Rails?
There is no need for D & D tools. It is a good example to help developers improve development efficiency. We will learn its Advanced Concepts in Action 2.
Tapestry (Howard Lewis ship)
1. Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
I think Tapestry will bring many benefits to medium-scale or large-scale applications (or even benefit from single-page applications ). There are good tools that allow you to create new components. Tapestry does not care where data comes from. Many "project types" are based on aspect (aspect) (such as crud vs. RSS feed vs. etc .). I think tapestry is very easy to integrate with IOC (hivemind or with spring) for testing.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
I have not found any advantage over tapestry in other Java frameworks. But for Ror, I have never used it myself. It is hard to say what the project in ror should look like. I have not carefully compared rife, and it seems to be affected by Ror, especially the data access layer similar to activerecord. However, if your application requires a specific URL format, it won't win much in tapestry.
3. Have you tried them in the Framework mentioned below? Which one do you prefer if you have tried it? Which one do you not like?
I have not tried anything other than tapestry in the past two years. I didn't learn ror much, because the time was too short.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
Tapestry 4.0 has good Ajax support through the tacos library. Tapestry 4.1 also needs to further strengthen its support.
Tapestry 5.0 provides significant improvements: There is no abstract class (the quirks of tapestry :). There is no forced inheritance relationship. Annotation is not a method for attributes. No XML, only templates and annotaions. It can only be loaded with classes and automatically searches for class changes. Minimal API, surpassing annotaion. The aspect-oriented (Aspect-Oriented) module is constructed using mix-ins.
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
Tapestry 3.0 is not easy to test, and 4.0 has improved. Tapestry is just a personal show. In fact, we have many active contributors. The learning curve of tapestry is non-steep. It only has beautiful templates. In fact, tapestry is characterized by State management (allowing object storage status, rather than multi-thread Singleton, to manage the free and persistent states between requests)
6. What do you think of Ruby on Rails?
Very influential. However, the template implementation is ugly. I have heard a lot about the advantages and disadvantages of ROR. Based on my basic understanding, these concepts have an impact on tapestry 4 (which has a deeper impact on tapestry 5 ).
Ror means limiting your choice: If you choose Ror, you need to respect its practice (COC...). It seems that your money will be spent. These are similar to Microsoft's philosophy. Java advocates more loose choices and does not limit the tools you use, but you need to have a deeper understanding of your tools. Not only for tapestry, but also for the framework for writing entire stacks such as jee and spring, you need to learn from ROR, not only provide tools, but also provide a complete set of solutions.
Trails (Chris Nelson)
1. Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
Trails applications only need the web interface and persistent domain model. Trails provides a quick interface for your domain model, except for the pojo code that you do not need. Trails allows you to modify the appearance and behavior of the interface, including verification, i18n, and security. These do not require Java code generation. People who do not like code generation should feel comfortable.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
Trails is enough. It allows you to deliver quickly and asks your customer: "Is this good enough ?". This will change your workflow. Of course, this is not a solution that can cover all requirements. Trails has no advantages when the UI needs a lot. I think trails is suitable for hybrid applications. For administrators, they only need to use trails. Other parts can be customized for development. We are using tapestry, hibernate, and spring to implement these parts. Trails Is based on them. Trails is not suitable for non-interactive applications, such as report applications. You can consider eclipse Birt.
3In the Framework mentioned below, have you tried them? Which one do you prefer if you have tried it? Which one do you not like?
I use a lot of struts. It used to be a great framework. The main drawback is that it cannot automatically help set data to the domain model. I have also studied JSF, which is better than struts, but it is very difficult to customize it. Tapestry is very easy to customize, especially for creating high-level components (composed of other components), trails is using it.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
For trails, we stand on the shoulders of giants. Tapestry has made a lot of effort in Ajax functions, so it is not difficult to dance with trails. But we need to create more examples to demonstrate these. We are also committed to making trails easy to get involved in ongoing projects. In the future, trails will also add instance-based security (Role-based role-based) and Method invocation.
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
Trails Is a port to ror. The trails name is from rails. It is based on the concept of rails, but it is not transplanted to it.
6. What do you think of Ruby on Rails?
I think we have a lot to learn from ROR, which will help us enjoy the pleasure of developing web programs.
Webwork (Patrick lightbody)
1. Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
Generally, webwork is suitable for small teams who are willing to maintain a pair of dirty hands and learn how to use the tool. Webwork is not intended for "wheelchair programmers", but those who prefer drag-and-drop development. Webwork returns to those who spend time learning it. For example, it is easy to create actionmapper and configuration implementation until the input and output persons (who have read the reference documentation) to provide the convenience of "Convention" instead of configuration (COC. In my recent example, the URL is like this "/project/123/suite/456/test/create", which is hashed to "com. autoriginate. actions. project. suite. test. createaction, and then automatically pass the parameters: projectid = 123, suiteid = 456. The result is "[action]. jsp" or "[action]-[Result]. jsp", which can be configured through annotation.
That is to say, webwork is the best basic tool in your application framework. It is also good in this case, but it is not the best "dessert" currently ".
Apart from these general requirements, webwork is essential for those who are creating products that require plug-ins and extensions. For example, Jira, confluence, and jive forums. Because webwork supports a wide range of template languages (velociy and freemarker) and complete tag support, it is very easy to insert after the module is written. A jar package can include all the actions and views (supported by the FTL classpath ). The final result is very good: In Confluence, you can upload a jar on the management interface, and the plug-in will be automatically deployed. This is because Atlassian (confluence, Jira Team) understands this framework very well and has made a lot of contributions.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
Like other action frameworks, webwork is weak in control status and wizards. If you write a lot of long wizards, JSF may be a better solution. I also want to say that the document still needs to be improved (the reference document is not bad, but the tutorials, cookbooks and FAQ are still poor). If no webwork expert works as the project leader, new users may be respectful.
For very simple programs, I recommend using simple JSP or spring MVC, if you accept spring. But in general, I think webwork is the best in action framework.
3. Have you tried them in the Framework mentioned below? Which one do you prefer if you have tried it? Which one do you not like?
I have tested rife, spring MVC, struts, spring web flow, and a little bit of tapestry. I found that the concept of rife is excellent, but its implementation is not very good. It is hard to imagine that Geert still uses "M _" as the field prefix. It looks like Java. The template made me difficult, so I didn't continue reading it.
Spring MVC can also be used, but it is a very simple framework implementation. Webwork data binding (called type conversion in the webwork world) is much more powerful and automatic (and spring needs to write property editors by itself ). The support for viewing replacement in spring is limited, while the UI tags in webwork is not provided in spring. In spring, you can use JSP 2.0 to easily write your own tag, but it does not support other languages.
Spring web flow: XML drives me crazy. It is too overhead, regardless of Keith's claim, it "does not support any web framework ". This Web framwork avoids 99% in webwork, spring MVC, struts, or other frameworks. I am not saying this is a bad idea, but I should honestly say it is a complete framework.
Tapestry is elegant, but HTML attributes are annoying. I accept this idea and it brings some benefits in practice (shale also has similarities ). But in fact, I found that "html/CSS developers" and "app developers" are generally the same person, and this is the case with tapestry. In fact, due to Ajax, I think more and more "Program Logic" will be embedded into the UI. In this way, the tapestry model is not so suitable.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
In struts action 2.0, we hope to: better documentation. Supports standards (if possible, we hope to replace ognl with jstl, but first we must ensure that there will be no functional loss ). Enhance Ajax support and provide more widgets, such as automatic completion. Remove configuration from hell; Provide more options, as we mentioned at the beginning of COC.
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
He needs a lot of configuration: I have demonstrated that CoC style can be used to do better than rails (rails's Management Department allows built-in controllers ).
6. What do you think of Ruby on Rails?
It is very important to say that ROR cannot be compared with most frameworks except rife and seam. Comparing ror and webwork is equivalent to comparing Hibernate and JDBC. One is full stack, and the other is only part of the stack.
Another important issue: DHH is a freak, but a smart freak. Its efficiency is indisputable. It is called rails.
Okay, let's not talk about this. Let's talk about anything else:
I Used Rails to create a small app. I threw it away and soon rewritten it in Java. I think rails can quickly complete 80% in your app, while the remaining 20% takes more time than the previous 80%. Of course program development is like this. Scaffolding is very cool, especially activerecord changes classes at runtime. However, you need to write the UI, custom verification rules, and custom security shadows. A crud-based app that can run within 30 minutes does not mean that you can complete it at this speed.
The Web framework of rails is terrible compared with webwork. In fact, it cannot be compared. Its implementation is closer to spring MVC's simple functions.
The complete stack is great. They are doing well in this regard, and there is still a gap between Java and catch up. Webwork is a Web stack, but the persistence solution is not fixed. So the biggest problem is that even if webwork and sitemesh provide dynamic reading and reloading classes, spring, ibatis, and hibernate Do Not. They must at least provide configuration re-reading before developing functions similar to rails. Similarly, Hibernate and ibatis provide insufficient support for webwork requests. For a class, I do not need to configure it in xwork. XML, but the persistence engine does not allow us to do this. If these functions are available at the same time, a complete stack framework may be released.
It is silly to require a speed of 5 times and 10 times. Reliable engineers know that the largest police force spent on conceptual code when developing products, rather than writing code. Define Requirements, obtain feedback, market positioning, database structure, and ing user interfaces. No matter what language you use, you need to think for a long time. No language or framework can speed up thinking.
Finally, rails provides a stack that is well implemented using a scripting language. Other frameworks in Python, Perl, and especially PHP are not yet mature. I think "php monkeys" still have a lot to do. They are usually not very talented engineers. (Maybe I have a translation error and want to correct it ). It provides a good framework in scripting language, so that people can implement well-designed apps and return the results (because of the characteristics of the scripting language ). It is not just "management instead of COC configuration" or even integrated stack. What Java needs is to reflect the ability to change immediately. Many Java open-source leaders think that "modifying web. xml" reloading is a method. This kind of intelligent game should be over. We not only need to reload configuration files and classes, but also the community needs to put enough pressure on sun to provide hotswap capabilities in the next generation of JVM. Or, more complex program models, such as osgi, need to be accepted by the community. Of course, I don't want to take that route.
Wicket (eelco hillenius)
1Where do you think is the "dessert" of your framework? Which type of project is most suitable for him?
I think wicket is code-centric: OO programming can be performed at the view layer. Components are completely self-managed: easy to create and reuse. The separation of concepts is clear and forced. A clean template. High Development scalability-just like oo.
2. What scenarios is it not suitable? What fremework do you recommend in these scenarios? Which is it?
Wicket is not suitable for simple and read-only UI scenarios. In this case, page scripts are more suitable, such as JSP or JSF. If you need unlimited scalability, you may need state-independent implementations. Starting from version 1.2, Wicket also has the concept of status pages, so the scalability is similar to other frameworks.
3. Have you tried them in the Framework mentioned below? Which one do you prefer if you have tried it? Which one do you not like?
JSF:
Advantage: Based on components. Industrial background. Tool support. Some extensions make it easier to use. It allows you to upgrade from a traditional JSP to JSF.
Disadvantage: it lacks the elegance of other APIs. Take JSP as the center. There are many configurations and the code is ugly. There are many implementations. It reminds me of ejb1/2, vendor-centric, and so on.
Rife: I never used it. I 've talked a lot about it.
Seam: Not a real Web framework. Similar to JSF extensions. If you use an EJB/JSF/JBoss combination, this is a good choice. But does not follow JSR 227/235.
Tapestry: Great. Version 4.0 is much better. I recommend it to my company. Wicket is more programmed as the center. Tapestry is more pragmatic.
Trails: never used.
Spring web flow: the framework itself is good, but I don't like its stacking. If a workflow is used, I want to select a scheme such as jbmp. I also don't like stream-centric solutions. I think this is a process-oriented solution.
The framework of webwork, spring MVC, and Struts: Model 2 is terrible. I have been using maverick for several years and contributed code to it, but I have lost all my interest. Model 2 framework is too procedural, and these programmers do not know how to program with OO. I would rather hire a swing programmer than a Model 2 framework programmer, because swing programmers generally write more beautiful programs ....... If I want to pick one of these model 2 frameworks, I chose stripes, which discards some bad aspects in Model 2.
4. What is the future of your framework? What changes will be convenient for user development? Will you support Ajax in the native way? Are you planning to support it?
We will support Java 5. We will enhance spring support, complex permission authentication support, role-based reference implementation, native Ajax support, URL loading (Nice URLs), stateless pages, and so on.
Our market share is not high, but our user base is increasing. I am writing "wicket in action" (manning publishing). It will be published this summer.
5. Are there any rumors about your framework that need to be clarified? If so, what is it?
Scalability is the top priority. The scalability of a program is generally caused by poor database performance or cache policy query optimization concurrency. The scalability of the server is not necessarily scalable. You can continue using the cluster .......
6. What do you think of Ruby on Rails?
I like Ruby I see, and if I have time, I will play it with it carefully. If it's not a problem with wicket, I want to practice ror more .......