Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

GWT + Hibernate

description
by

Tibor Vajda

on 29 March 2010

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of GWT + Hibernate

Views Client Server Data Transfer Object (DTO) Design by Contract Dozer Logging UI Design: Firebug Project build, test, deploy: Pojo Dependency Injection Hibernate Validator Asynchronity Statelessness Public services Strong types Persistence Business Domain RPC Command Request parameters Response Result Service request void getAddressFromString(String rawAddress) {
dispatcher.execute(new GetAddressFromString(rawAddress), new IFeedCallBack<GetAddressFromStringResult>() {

@Override
protected void handleSuccess(GetAddressFromStringResult result) {
deliveryAddressChanged(result.getAddress());
}

});
} Callback Quality Quality Presenters JUnit GWTTestCase Selenium EasyMock EventBus Project management GWT browser plugin Logging Issue tracking: Automated build management: Development Environment: JUnit EasyMock Decoupling public class BillingModule extends AbstractModule {
@Override
protected void configure() {
bind(TransactionLog.class).to(DatabaseTransactionLog.class);
bind(CreditCardProcessor.class).to(PaypalCreditCardProcessor.class);
bind(BillingService.class).to(RealBillingService.class);
}
} public class RealBillingService implements BillingService {
private final CreditCardProcessor processor;
private final TransactionLog transactionLog;

@Inject
public RealBillingService(final CreditCardProcessor processor,
final TransactionLog transactionLog) {
this.processor = processor;
this.transactionLog = transactionLog;
}

public void chargeOrder(PizzaOrder order, CreditCard creditCard) {
ChargeResult result = processor.charge(creditCard, order.getAmount());
transactionLog.logChargeResult(result);
}
} class Phone implements ContactDetail {
final ContactDetailId id;
String number;
String label; // work, home...
} class PhoneEditorPresenter {

interface Display {
HasClickHandlers getSaveButton();
HasValue getNumberField();
}

void bindDisplay() {
display.getSaveButton().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
doSave();
}
});
}

void doSave() {
phone.setNumber(display.getNumberField().getValue());
service.execute(new UpdatePhone(phone), new UpdatedPhone() {
public void onSuccess() {
tearDown();
}
public void onError(Throwable error) {
renderError(error);
}
});
}
} Szoftverfejlesztés GWT + Hibernate környezetben Vajda Tibor
Innofeed Kft.

tibor.vajda@innofeed.hu
+36 20 36 56 302 Model Repositories Queries Entities Value Objects Query implementations Repository implementations MySQL GIN
Full transcript