6 maneiras de fazer a mesma coisa, o que é considerado boas práticas?

As vezes tem tantas maneiras diferentes de fazer o mesmo código que nós ficamos na dúvida quanto a qual maneira usar. O que seria considerado "boa prática" pela comunidade e o que sua equipe entenderia melhor. Suponhamos que você esteja trabalhando dentro de um método de um Domain Service chamado UmDomainServiceChique(objetoDoDominio) que será chamado por uma API. Você tem uma regra de negócio chique para ser verificada que por enquanto chamarei de VerificaMinhaRegraChiqueComplexa(). Você chama UmDomainServiceChique(objetoDoDominio) e caso VerificaMinhaRegraChiqueComplexa() retorne true você vai querer que UmDomainServiceChique faça o que tem que fazer e a api retornar Ok 200, caso contrário você quer que a API responda um erro qualquer, tipo BadRequest, e retornar uma mensagem dizendo que VerificaMinhaRegraChiqueComplexa deu ruim. Eu vejo 6 maneiras de fazer isso, gostaria de saber a opinião de outrs devs sobre qual seria a maneira menos gambiarr

Method Error 500 - Maximum Length Exceeded with AJAX web service call

Eu estava codificando um  clássico formulário de cadastro, e resolvi usar Cascading Dropdown do Ajax Control Toolkit para a seleção de Estados e Cidades.
O conceito é simples: ao selecionar um Estado no ddlEstados o ddlCidades será populado apenas com as cidades desse estado.

O problema se manifestou da seguinte forma: para os estados que continham mais cidades, como MG, o ddlCidades era populado apenas com a mensagem "Method Error 500", porém essa não era uma exception disparada, e não era possível debugar o projeto e encontrar o disparo da exception. (Talvez se eu usasse o source do Ajax Control Toolkit em vez da biblioteca compílada seria possível debugar).

Tudo indicava que a exception estava sendo tratada, e no tratamento ela escrevia esse erro 500 nos itens.

Esse problema é causado porque existe um limite máximo de itens JSON que uma página pode mandar ou receber. Para alterar esse valor deve-se acrescentar as seguintes linhas no web.config:



  
    
       
    
  

Lembre-se que esse 5000000 é um exagero, apenas de exemplo. Dependendo do caso 2000 está de bom tamanho.

Links que podem ser úteis:

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/Walkthrough/CCDWithDB.aspx
http://harriyott.com/2007/07/method-error-500-maximum-length.aspx

Have Fun ;)

Comentários

Postagens mais visitadas deste blog

Busca de CEP com o Lazarus - Parte 1 - UrlEncode

Botão Add This para adicionar seu post em qualquer rede

Uso de memória no SQL Server