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

Más contenido relacionado

Destacado

Slides MES6 Plenary Jf Matos Slideshare
Slides MES6 Plenary Jf Matos SlideshareSlides MES6 Plenary Jf Matos Slideshare
Slides MES6 Plenary Jf Matos SlideshareUniversidade de Lisboa
 
Developing A Website with evoloop
Developing A Website with evoloopDeveloping A Website with evoloop
Developing A Website with evoloopFathhi Mohamed
 
Teachingportfolio 2009
Teachingportfolio 2009Teachingportfolio 2009
Teachingportfolio 2009aileenwilson
 
Bel campos cristina_pac1.0_avaini_doc
Bel campos cristina_pac1.0_avaini_docBel campos cristina_pac1.0_avaini_doc
Bel campos cristina_pac1.0_avaini_docCristina Campos
 
הגדרת משפחת Nexus סיסקו 20.2.2011
הגדרת משפחת Nexus   סיסקו 20.2.2011הגדרת משפחת Nexus   סיסקו 20.2.2011
הגדרת משפחת Nexus סיסקו 20.2.2011ELI KENDEL אלי קנדל
 
Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...
Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...
Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...OMcareers Community
 
Guaranteed Income for Retirement
Guaranteed Income for RetirementGuaranteed Income for Retirement
Guaranteed Income for RetirementAnna_Conner
 
Scale Cloud across Enterprise
Scale Cloud across EnterpriseScale Cloud across Enterprise
Scale Cloud across EnterpriseChris Haddad
 
Sedlcarter
SedlcarterSedlcarter
Sedlcarterhdahedo
 
Responsive IT and Connected Business
Responsive IT and Connected BusinessResponsive IT and Connected Business
Responsive IT and Connected BusinessChris Haddad
 
Personal Branding
Personal BrandingPersonal Branding
Personal Brandinggjvandam
 
新乐小学四年级1班家长会
新乐小学四年级1班家长会新乐小学四年级1班家长会
新乐小学四年级1班家长会lms0023
 
Funnypic (1)
Funnypic (1)Funnypic (1)
Funnypic (1)rovuks
 
Search and Social Collide and Merge : Collision Course
Search and Social Collide and Merge : Collision CourseSearch and Social Collide and Merge : Collision Course
Search and Social Collide and Merge : Collision CourseOMcareers Community
 
Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5
Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5
Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5ELI KENDEL אלי קנדל
 

Destacado (20)

Slides MES6 Plenary Jf Matos Slideshare
Slides MES6 Plenary Jf Matos SlideshareSlides MES6 Plenary Jf Matos Slideshare
Slides MES6 Plenary Jf Matos Slideshare
 
Developing A Website with evoloop
Developing A Website with evoloopDeveloping A Website with evoloop
Developing A Website with evoloop
 
Teachingportfolio 2009
Teachingportfolio 2009Teachingportfolio 2009
Teachingportfolio 2009
 
Business plan-startup
Business plan-startupBusiness plan-startup
Business plan-startup
 
Bel campos cristina_pac1.0_avaini_doc
Bel campos cristina_pac1.0_avaini_docBel campos cristina_pac1.0_avaini_doc
Bel campos cristina_pac1.0_avaini_doc
 
911
911911
911
 
הגדרת משפחת Nexus סיסקו 20.2.2011
הגדרת משפחת Nexus   סיסקו 20.2.2011הגדרת משפחת Nexus   סיסקו 20.2.2011
הגדרת משפחת Nexus סיסקו 20.2.2011
 
Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...
Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...
Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...
 
Guaranteed Income for Retirement
Guaranteed Income for RetirementGuaranteed Income for Retirement
Guaranteed Income for Retirement
 
Amber Profile
Amber ProfileAmber Profile
Amber Profile
 
Scale Cloud across Enterprise
Scale Cloud across EnterpriseScale Cloud across Enterprise
Scale Cloud across Enterprise
 
Sedlcarter
SedlcarterSedlcarter
Sedlcarter
 
Responsive IT and Connected Business
Responsive IT and Connected BusinessResponsive IT and Connected Business
Responsive IT and Connected Business
 
הגדרת נתבי סיסקו 1.0
הגדרת נתבי סיסקו 1.0הגדרת נתבי סיסקו 1.0
הגדרת נתבי סיסקו 1.0
 
Personal Branding
Personal BrandingPersonal Branding
Personal Branding
 
新乐小学四年级1班家长会
新乐小学四年级1班家长会新乐小学四年级1班家长会
新乐小学四年级1班家长会
 
Funnypic (1)
Funnypic (1)Funnypic (1)
Funnypic (1)
 
Search and Social Collide and Merge : Collision Course
Search and Social Collide and Merge : Collision CourseSearch and Social Collide and Merge : Collision Course
Search and Social Collide and Merge : Collision Course
 
Odyssey: The Business of Consulting
Odyssey: The Business of ConsultingOdyssey: The Business of Consulting
Odyssey: The Business of Consulting
 
Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5
Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5
Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5
 

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

Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersHarlley Oliveira
 
Palestra de segurança em PHP - Hacking
Palestra de segurança em PHP - HackingPalestra de segurança em PHP - Hacking
Palestra de segurança em PHP - HackingLuis Gustavo Almeida
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scopeCarlos Santos
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaMilfont Consulting
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryHarlley Oliveira
 
BDD com Easyb
BDD com EasybBDD com Easyb
BDD com EasybIsmael
 
Offline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesOffline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesCaelum
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09Carlos Santos
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)Carlos Santos
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Jaime Schettini
 
Programacao Com Asp Ii
Programacao Com Asp   IiProgramacao Com Asp   Ii
Programacao Com Asp Iiguest3118b2
 

Similar a Café com Bug - 2ª Edição em 13/05/2010 (20)

Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o Javascript
 
Aula 2 - ASP
Aula 2 - ASPAula 2 - ASP
Aula 2 - ASP
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
Palestra de segurança em PHP - Hacking
Palestra de segurança em PHP - HackingPalestra de segurança em PHP - Hacking
Palestra de segurança em PHP - Hacking
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma prática
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
BDD com Easyb
BDD com EasybBDD com Easyb
BDD com Easyb
 
Beagajs
BeagajsBeagajs
Beagajs
 
Artigoajax
ArtigoajaxArtigoajax
Artigoajax
 
Offline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesOffline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio Lopes
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)
 
Aplicacoes Web Com AJAX
Aplicacoes Web Com AJAXAplicacoes Web Com AJAX
Aplicacoes Web Com AJAX
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007
 
Programacao Com Asp Ii
Programacao Com Asp   IiProgramacao Com Asp   Ii
Programacao Com Asp Ii
 

Último

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 

Último (6)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

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

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