Author Archive

Log4net – SmtpAppender

Tuesday, May 4th, 2010
Autor: nuno.lourenco


Ao se configurar o log4net para usar um SmtpAppender, para envio de e-mails com os logs da aplicação, deixo uma nota de reparo no que concerne o envio para vários destinatários:

A documentação refere que para diversos destinatários dever-se-à configurar o log4net separando os endereços por (;). Se assim for surgirá o seguinte erro:

System.FormatException: The specified string is not in the form required for an e-mail address.
   at System.Net.Mime.MailBnfHelper.ReadMailAddress(String data, Int32& offset, String& displayName)
   at System.Net.Mail.MailAddressCollection.ParseValue(String addresses)
   at log4net.Appender.SmtpAppender.SendEmail(String messageBody)
   at log4net.Appender.SmtpAppender.SendBuffer(LoggingEvent[] events)

Isto porque

O SmtpAppender do log4net recorre ao tipo System.Net.Mail. MailAddressCollection da Framework .NET, que por sua vez usa o método Add(string) para adicionar os endereços. Ora acontece que na documantação está o seguinte:

If multiple e-mail addresses separated with a semicolon character (";") are passed in the addresses parameter. a FormatException exception is raised.

Portanto a documentação do log4net pode induzir em erro. Modificar a separação dos endereços por (,) resolverá o problema.

Happy codding icon smile Log4net   SmtpAppender

ref: Log4net’s SmtpAppender with multiple email addresses

C#, .NET and Diacritics

Monday, May 3rd, 2010
Autor: nuno.lourenco


Talvez se perguntem, hein? Pois a ideia é saber “converter” texto com acentuação e não só, pelo corresponde texto sem acentuação. Ora dito isto o que se quer:

  1. âãäåçèéêë –> aaaaceeee
  2. ìíîïðñòó –> iiiiðnoo
  3. ôõöùúûüý –> ooouuuuy

Ora então o código que possibilita a alteração:

 1:  public string RemoveDiacritics(string input)
 2: {
 3:  string stFormD = input.Normalize(NormalizationForm.FormD);
 4: var sb = new StringBuilder();
 5:  
 6:  for (int i = 0; i < stFormD.Length; i++)
 7: {
 8: UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[i]);
 9:  if (uc != UnicodeCategory.NonSpacingMark)
 10: {
 11: sb.Append(stFormD[i]);
 12: }
 13: }
 14:  
 15:  return (sb.ToString().Normalize(NormalizationForm.FormC));
 16: }

Happy Coding icon smile C#, .NET and Diacritics

ref: Michael Kaplan blog

Umbraco – Write Permissions

Tuesday, October 13th, 2009
Autor: nuno.lourenco


Para quem usa umbraco, aqui deixo uma lista dos directórios que necessitam de ter permissões de escrita/modificação:

bin
config
css
data
media
umbraco
usercontrols
xslt

Happy coding icon smile Umbraco – Write Permissions

SQL Server Transactions

Friday, September 25th, 2009
Autor: nuno.lourenco


Deixo uma pequena nota, no que respeita a transacções em SQL Server. As transacções podem ser “acumuladas” e cada acção de sucesso (commit) apenas afecta a transacção “corrente”. No que respeita a acções de insucesso (rollback), o cenário é difierente, ou seja, qualquer que sejam as transacções que existam, no instante do insucesso, todas irão falhar.

Os diagramas seguintes ilustram o dito acima: (as imagens foram retiradas da internet)

pic1 thumb SQL Server Transactions

pic2 thumb SQL Server Transactions

ASP.NET Textbox TextMode = Password

Tuesday, August 4th, 2009
Autor: nuno.lourenco


O modo de afectar o conteúdo de o controlo ASP.NET Textbox, em que esteja definido o modo de texto, do input, como Password (TextMode = Password), deverá ser diferente do habitual:

 1: password.Text = "password";

Mas sim, deverá ser:

 1: password.Attributes.Add("value", "password");

Happy codding icon smile ASP.NET Textbox TextMode = Password


Better Tag Cloud