Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    SmartGWT project architecture best practices

    Isomorphic,

    Firstly I would like to thank you and the community for the support. My company is in the process of getting some licenses for SmartGWT Pro. We could able to convince that SamrtGWT was the right choice. Now we would like to get into the initial architecture.
    Can you suggest the frameworks that would fit with SmartGWT. I have come across lot of things with regard to best practices in developing GWT applications like MVP, Command pattern, GWTTestCase, Code split ...etc etc.

    Can you guide me with what would be the ideal project architecuture with SmartGWT. I mean the MVP framework, Testing , Log management etc.
    Also you could mention if something is unnecessary.

    Thanks.

    #2
    Do NOT use Google MVP - it's not applicable, and just results in a lot of extra code to achieve things that are built-in.

    Code splitting is also generally something to ignore for an enterprise application. That kind of tuning has no impact on an application that is frequently used and for long sessions.

    GWTTestCase has issues where it won't run compiler extensions, which breaks it with SmartGWT and many other GWT libraries. Instead we recommend using Selenium to drive both unit and functional tests, using our enhanced Selenium support.

    In particular, we recommend using Selenium RC to set up a continuous integration environment where tests are run on every commit - see also SauceLabs, which makes pieces of this easier.

    Comment


      #3
      Thanks for the info Isomorphic.

      You have mentioned to avoid Google MVP. But can you give your inputs on other MVP frameworks like gwt-platform; mvp4g etc. I have seen some threads related to this in the forums. There is one good exmaple named Serendipity which was developed using gwt-platform and smartgwt.

      My goals in looking for a MVP is this:

      1) Able to unit test maximum possible code
      2) Clear distinction between UI layer, server layer etc.

      Also what Unit Testing framework do you suggest.

      thanks.

      Comment


        #4
        2) is already the case by just following SmartGWT's built-in MVC.

        1) use Selenium as previously indicated. Note that client-only DataSources are a great way to remove the server for a given unit test. Some people have reported success with mocking frameworks such as jmockit, but we prefer the UI-driven tests that Selenium provides, since this tests more layers and is closer to real usage.

        As far as those other MVP-like frameworks - they are generally better received by users as compared with Google's MVP, and also have a number of not-strictly MVP features which can sometimes be separately used. But we still have yet to see an example where complexity is reduced.

        The overarching advice would be: know exactly what you're trying to achieve with an MVP framework, and exactly why it can't be done by just using SmartGWT without MVP, and be able to demonstrate the point in code.

        This is, in a way, a trick: no one has ever been able to answer this question. Instead, we have had people tell us that they can't send a test case to isolate a bug, because MVP has made their code too complicated.

        Comment


          #5
          I would like to clarify that indeed we are getting the Power license. Any change in your opinions Iso.


          Thanks.

          Comment


            #6
            Same advice applies to editions.

            Comment

            Working...
            X