Café com Bug - 2ª Edição em 13/05/2010

777 views

Published on

Slides da apresentação que fiz na segunda edição do nosso encontro, Café com Bug, no dia 13/05/2010 realizado na WeFit

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
777
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Café com Bug - 2ª Edição em 13/05/2010

  1. 1. com<br />rev. 2<br />
  2. 2. Foco em<br />
  3. 3. Escalabilidade<br />Capacidade Máxima: 100 usuários<br />100 usuários = 100%<br />150 novos usuários<br />Capacidade necessária: 250 usuários = 150%+!<br />
  4. 4. #Comofas?<br />
  5. 5. #Comofas2?<br />
  6. 6. #Comofas3?<br />
  7. 7. Load Balance<br />1<br />2<br />3<br />4<br />5<br />6<br />
  8. 8. Tratamento de Exceções<br />
  9. 9. Como tratar?<br />
  10. 10. A solução!<br />Global.asax<br />protected void Application_Error(object sender, EventArgs e){    Exception ex = Server.GetLastError();    RSLHandler handler = new RSLHandler().Configure();    handler.Handle(ex);}<br />
  11. 11. E o usuário ve isso...<br />
  12. 12. Quando deveria ver...<br />
  13. 13. A solução!<br />Web.Config:<br /><customErrorsdefaultRedirect=“erroPadrao.html" mode="On"> <br /><error statusCode=“403" redirect=“NaoPermitida.html"/><br /> <error statusCode=“404" redirect=“NaoEncontrada.html"/><br /> </customErrors><br />
  14. 14. Errado #1<br />private void Salvar(UsuarionovoUsuario)<br />{<br />//Abreconexão com banco de dados<br />DataReader dr = cmd.Execute(sql);<br /> //Executaumainstruçãoquegera exception<br />throw new Exception(“Whatever”);<br />}<br />Certo #1<br />private void Salvar(UsuarionovoUsuario)<br />{<br />DataReader dr = cmd.ExecuteReader(sql, CommandBehavior.CloseConnection);<br />try {<br /> //Executaumainstruçãoquegera exception<br />throw new Exception(“Whatever”);<br />}finally{<br />dr.Close();<br />}<br />}<br />
  15. 15. Errado #2<br />private void Foo()<br />{<br />try {<br /> //Executa uma operação que lança exceção<br />} catch (Exception ex) {<br /> string Message = ex.Message;<br /> throw ex;<br />}<br />}<br />Certo #2<br />private void Foo()<br />{<br />try {<br /> //Executa uma operação que lança exceção<br />} catch (Exception ex) {<br /> string Message = ex.Message;<br /> throw;<br />}<br />}<br />
  16. 16. Logging/Debugging<br />
  17. 17. var exemplo = (x => x.Log4Net)<br />private void Log(string message)<br />{<br />ILog log = LogManager.GetLogger(“MyLoggerName”); <br /> log.Info(“Debug message”);<br /> log.Error(“A big error!”);<br />}<br /><log4net> <br /> <!-- A1 is set to be a ConsoleAppender --> <br /> <appender name=“MyAppender" type="log4net.Appender.ConsoleAppender"> <br /> <!-- A1 uses PatternLayout --> <br /> <layout type="log4net.Layout.PatternLayout"> <br /> <conversionPattern value=“<br />%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" /> <br /> </layout> <br /> </appender> <br /> <!-- Set root logger level to DEBUG and its only appender to A1 --> <br /> <root> <br /> <level value="DEBUG" /> <br /> <appender-ref ref="A1" /> <br /> </root><br /> </log4net><br />
  18. 18. Contato<br />Email:antonio.zegunis@fnac.com.br ou me@tucaz.net<br />Blog: http://blog.tucaz.net<br />Twitter: http://www.twitter.com/tucaz<br />Referências<br />http://msdn.microsoft.com/en-us/library/ff647787.aspx<br />http://msdn.microsoft.com/en-us/library/ff649308.aspx<br />http://msdn.microsoft.com/en-us/library/ms229014%28VS.80%29.aspx<br />http://blog.tucaz.net/en/2009/07/21/basic-stuff-handling-exceptions-in-net/<br />http://logging.apache.org/log4net/release/manual/configuration.html<br />http://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspx<br />http://intrafnac.fnac.br/dosi/sistemas/WikiSistemas/Paginas%20Wiki/Home.aspx<br />http://intrafnac.fnac.br/dosi/sistemas/WikiSistemas/Paginas%20Wiki/Tratamento%20de%20Exceções.aspx<br />

×