Essa é velha mais estamos sempre precisando .....
MailMessage objMail = new MailMessage("emailfrom@email.com", "maTo@email.com");
objMail.Subject = "ASSUNTO";
StringBuilder mensagem = new StringBuilder();
mensagem.AppendLine("CONTEUDO HTML");
objMail.Body = mensagem.ToString();
objMail.BodyEncoding = System.Text.Encoding.UTF8;
objMail.IsBodyHtml = true;
objMail.Priority = MailPriority.Normal;
SmtpClient objSmtp = new SmtpClient("smtpm.eum.com.br");
objSmtp.Credentials = new NetworkCredential("USUARIO", "SENHA");
objSmtp.Send(objMail);
Armario do Rafa
sexta-feira, 17 de janeiro de 2014
Pingdom
Serviço de monitoria bem interessante no site https://www.pingdom.com/ que envia SMS quando um site/sistema cadastrado fica inoperante (404), o serviço não é tão caro e ajuda seu site/sistema ficar o maior tempo no ar possível.
quarta-feira, 23 de outubro de 2013
Paginação com jQuery - Como paginar uma table - Passar parametros para um arquivo js
Esse tópico abrange dois assuntos uma parte (se não quase toda) mostra um script para paginação, e nesse mesmo script há um exemplo de como passar parâmetros para um aquivo .js, para tirarmos a "sujeira" do código e deixar o HTML apenas com o necessário.
Existem varias maneiras de fazer uma paginação, muitos componentes, inclusive do próprio .NET com a GridView(aspx) e WebGrid(cshtml), só que no caso eu precisava que não desse o post, então procurei em vários lugares por uma paginação simples de se utilizar, mais não consegui encontrar. Sempre havia varias referencias de .js e .css e o que eu queria era apenas a paginação simples alem disso precisava que o paginador não alterasse o layout da minha Table.
Bom então aqui está, com as seguintes funcionalidades:
1 - A principal paginarrs sem graça;
2 - O desenvolvedor passa por parâmetro a quantidade de itens que vão ser agrupados que posteriormente vão ser mostrados em um input select;
3 - Também são passados como parâmetro se os link's de primeira e ultima e próximo e anterior vão ser exibidas.
Como utilizar: É bem simples
Apos referenciar o arquivo js (Download) e css (Download) em apenas uma chamada o conteúdo da table já vai ser paginada, porem a table tem que estar com uma estrutura especifica:
<table>
<tbody id="tablePaginar">
</tbody>
</table>
<ul id="ulPaginacao" class="ul-paginacao">
</ul>
O restante do conteúdo (tr e td) podem estar da maneira que o desenvolvedor quiser.
E agora a chamada:
<script type="text/javascript">
PAGINACAO.init(["tablePaginar", "ulPaginacao", 10, 1, true, true]);
PAGINACAO.execscript();
</script>
os parâmetros são os seguintes:
{
1 - Id do table que vai estar sendo paginado;
2 - Id do ul que vai ser criado a paginação;
3 - Quantidade de itens que vão ser exibidos na table;
4 - Quantidade de elementos que vão ser exibidos no ul, sendo que, os dois primeiros e os dois últimos são fixos para grandes quantidades;
5 - se mostra ou não os link's da primeira e ultima pagina;
6 - se mostra ou não os link's da Anterior e Próxima pagina;
}
Clique aqui para ver como fica a paginação.
Só pra finalizar não é muito performático (se é que essa palavra existe) colocar 300 mil linhas nesse mesmo table, lembrando que ele fica na maquina do usuário e com algumas centenas de registros a pagina já começa a ficar um pouco lenta, então deve ser feito um outro tipo de paginação mais que é assunto para um outro dia!!!
Bom acho que é só isso e espero que ajude alguém ....
Existem varias maneiras de fazer uma paginação, muitos componentes, inclusive do próprio .NET com a GridView(aspx) e WebGrid(cshtml), só que no caso eu precisava que não desse o post, então procurei em vários lugares por uma paginação simples de se utilizar, mais não consegui encontrar. Sempre havia varias referencias de .js e .css e o que eu queria era apenas a paginação simples alem disso precisava que o paginador não alterasse o layout da minha Table.
Bom então aqui está, com as seguintes funcionalidades:
1 - A principal paginar
2 - O desenvolvedor passa por parâmetro a quantidade de itens que vão ser agrupados que posteriormente vão ser mostrados em um input select;
3 - Também são passados como parâmetro se os link's de primeira e ultima e próximo e anterior vão ser exibidas.
Como utilizar: É bem simples
Apos referenciar o arquivo js (Download) e css (Download) em apenas uma chamada o conteúdo da table já vai ser paginada, porem a table tem que estar com uma estrutura especifica:
<table>
<tbody id="tablePaginar">
</tbody>
</table>
<ul id="ulPaginacao" class="ul-paginacao">
</ul>
O restante do conteúdo (tr e td) podem estar da maneira que o desenvolvedor quiser.
E agora a chamada:
<script type="text/javascript">
PAGINACAO.init(["tablePaginar", "ulPaginacao", 10, 1, true, true]);
PAGINACAO.execscript();
</script>
os parâmetros são os seguintes:
{
1 - Id do table que vai estar sendo paginado;
2 - Id do ul que vai ser criado a paginação;
3 - Quantidade de itens que vão ser exibidos na table;
4 - Quantidade de elementos que vão ser exibidos no ul, sendo que, os dois primeiros e os dois últimos são fixos para grandes quantidades;
5 - se mostra ou não os link's da primeira e ultima pagina;
6 - se mostra ou não os link's da Anterior e Próxima pagina;
}
Clique aqui para ver como fica a paginação.
Só pra finalizar não é muito performático (
Bom acho que é só isso e espero que ajude alguém ....
sexta-feira, 11 de outubro de 2013
Prompt de comando com C#
Comum para a maioria dos desenvolvedores, temos sempre desafios interessantes as vezes meio que estranhos a fazer, quando precisei fazer a algum tempo achei no minimo esquisito ter que rodar um comando do prompt de comando a partir do C#.
Então aqui esta um exemplo simples de comando para abrir um Bloco de notas:
System.Diagnostics.Process.Start("notepad");
Ou passando parametro como no exemplo abaixo:
System.Diagnostics.Process.Start("iexplore","google.com");
Assim tambem podemos rodar um arquivo ".bat" executando varias tarefas.
this is it!!
Então aqui esta um exemplo simples de comando para abrir um Bloco de notas:
System.Diagnostics.Process.Start("notepad");
Ou passando parametro como no exemplo abaixo:
System.Diagnostics.Process.Start("iexplore","google.com");
Assim tambem podemos rodar um arquivo ".bat" executando varias tarefas.
this is it!!
terça-feira, 8 de outubro de 2013
Formatos de data na sua aplicação - Locale IDs
Bom, um problema que tive nos meados de 2008, mas que ainda é bem comum de acontecer.
Estava desenvolvendo uma aplicação web e local funcionava que era uma beleza, porem quando publicava a mesma não rodava absolutamente nada, analisando notei que a data esta com um formato diferente do que estava esperando e comecei a pesquisar então obtive a seguinte resposta, que quando trabalhamos com servidores que estão localizados em outros local(país) as configurações regionais estão configurados com a formatação de seu país. O LCID permite realizar a formatação de datas e configurações regionais de acordo com o país que o desenvolvedor necessitar, setando o código atribuído para cada país.
um exemplo de como utilizar:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="home.aspx.cs"
Inherits="Home" LCID="1046" Title="Site Web" %>
Aqui uma "pequena" listagem dos LCID's com referencia do site da Microsoft
Estava desenvolvendo uma aplicação web e local funcionava que era uma beleza, porem quando publicava a mesma não rodava absolutamente nada, analisando notei que a data esta com um formato diferente do que estava esperando e comecei a pesquisar então obtive a seguinte resposta, que quando trabalhamos com servidores que estão localizados em outros local(país) as configurações regionais estão configurados com a formatação de seu país. O LCID permite realizar a formatação de datas e configurações regionais de acordo com o país que o desenvolvedor necessitar, setando o código atribuído para cada país.
um exemplo de como utilizar:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="home.aspx.cs"
Inherits="Home" LCID="1046" Title="Site Web" %>
Aqui uma "pequena" listagem dos LCID's com referencia do site da Microsoft
Language - Country/Region | LCID Hex | LCID Dec |
Afrikaans - South Africa | 0436 | 1078 |
Albanian - Albania | 041c | 1052 |
Alsatian | 0484 | 1156 |
Amharic - Ethiopia | 045e | 1118 |
Arabic - Saudi Arabia | 0401 | 1025 |
Arabic - Algeria | 1401 | 5121 |
Arabic - Bahrain | 3c01 | 15361 |
Arabic - Egypt | 0c01 | 3073 |
Arabic - Iraq | 0801 | 2049 |
Arabic - Jordan | 2c01 | 11265 |
Arabic - Kuwait | 3401 | 13313 |
Arabic - Lebanon | 3001 | 12289 |
Arabic - Libya | 1001 | 4097 |
Arabic - Morocco | 1801 | 6145 |
Arabic - Oman | 2001 | 8193 |
Arabic - Qatar | 4001 | 16385 |
Arabic - Syria | 2801 | 10241 |
Arabic - Tunisia | 1c01 | 7169 |
Arabic - U.A.E. | 3801 | 14337 |
Arabic - Yemen | 2401 | 9217 |
Armenian - Armenia | 042b | 1067 |
Assamese | 044d | 1101 |
Azeri (Cyrillic) | 082c | 2092 |
Azeri (Latin) | 042c | 1068 |
Bashkir | 046d | 1133 |
Basque | 042d | 1069 |
Belarusian | 0423 | 1059 |
Bengali (India) | 0445 | 1093 |
Bengali (Bangladesh) | 0845 | 2117 |
Bosnian (Bosnia/Herzegovina) | 141A | 5146 |
Breton | 047e | 1150 |
Bulgarian | 0402 | 1026 |
Burmese | 0455 | 1109 |
Catalan | 0403 | 1027 |
Cherokee - United States | 045c | 1116 |
Chinese - People's Republic of China | 0804 | 2052 |
Chinese - Singapore | 1004 | 4100 |
Chinese - Taiwan | 0404 | 1028 |
Chinese - Hong Kong SAR | 0c04 | 3076 |
Chinese - Macao SAR | 1404 | 5124 |
Corsican | 0483 | 1155 |
Croatian | 041a | 1050 |
Croatian (Bosnia/Herzegovina) | 101a | 4122 |
Czech | 0405 | 1029 |
Danish | 0406 | 1030 |
Dari | 048c | 1164 |
Divehi | 0465 | 1125 |
Dutch - Netherlands | 0413 | 1043 |
Dutch - Belgium | 0813 | 2067 |
Edo | 0466 | 1126 |
English - United States | 0409 | 1033 |
English - United Kingdom | 0809 | 2057 |
English - Australia | 0c09 | 3081 |
English - Belize | 2809 | 10249 |
English - Canada | 1009 | 4105 |
English - Caribbean | 2409 | 9225 |
English - Hong Kong SAR | 3c09 | 15369 |
English - India | 4009 | 16393 |
English - Indonesia | 3809 | 14345 |
English - Ireland | 1809 | 6153 |
English - Jamaica | 2009 | 8201 |
English - Malaysia | 4409 | 17417 |
English - New Zealand | 1409 | 5129 |
English - Philippines | 3409 | 13321 |
English - Singapore | 4809 | 18441 |
English - South Africa | 1c09 | 7177 |
English - Trinidad | 2c09 | 11273 |
English - Zimbabwe | 3009 | 12297 |
Estonian | 0425 | 1061 |
Faroese | 0438 | 1080 |
Farsi | 0429 | 1065 |
Filipino | 0464 | 1124 |
Finnish | 040b | 1035 |
French - France | 040c | 1036 |
French - Belgium | 080c | 2060 |
French - Cameroon | 2c0c | 11276 |
French - Canada | 0c0c | 3084 |
French - Democratic Rep. of Congo | 240c | 9228 |
French - Cote d'Ivoire | 300c | 12300 |
French - Haiti | 3c0c | 15372 |
French - Luxembourg | 140c | 5132 |
French - Mali | 340c | 13324 |
French - Monaco | 180c | 6156 |
French - Morocco | 380c | 14348 |
French - North Africa | e40c | 58380 |
French - Reunion | 200c | 8204 |
French - Senegal | 280c | 10252 |
French - Switzerland | 100c | 4108 |
French - West Indies | 1c0c | 7180 |
Frisian - Netherlands | 0462 | 1122 |
Fulfulde - Nigeria | 0467 | 1127 |
FYRO Macedonian | 042f | 1071 |
Galician | 0456 | 1110 |
Georgian | 0437 | 1079 |
German - Germany | 0407 | 1031 |
German - Austria | 0c07 | 3079 |
German - Liechtenstein | 1407 | 5127 |
German - Luxembourg | 1007 | 4103 |
German - Switzerland | 0807 | 2055 |
Greek | 0408 | 1032 |
Greenlandic | 046f | 1135 |
Guarani - Paraguay | 0474 | 1140 |
Gujarati | 0447 | 1095 |
Hausa - Nigeria | 0468 | 1128 |
Hawaiian - United States | 0475 | 1141 |
Hebrew | 040d | 1037 |
Hindi | 0439 | 1081 |
Hungarian | 040e | 1038 |
Ibibio - Nigeria | 0469 | 1129 |
Icelandic | 040f | 1039 |
Igbo - Nigeria | 0470 | 1136 |
Indonesian | 0421 | 1057 |
Inuktitut | 045d | 1117 |
Irish | 083c | 2108 |
Italian - Italy | 0410 | 1040 |
Italian - Switzerland | 0810 | 2064 |
Japanese | 0411 | 1041 |
K'iche | 0486 | 1158 |
Kannada | 044b | 1099 |
Kanuri - Nigeria | 0471 | 1137 |
Kashmiri | 0860 | 2144 |
Kashmiri (Arabic) | 0460 | 1120 |
Kazakh | 043f | 1087 |
Khmer | 0453 | 1107 |
Kinyarwanda | 0487 | 1159 |
Konkani | 0457 | 1111 |
Korean | 0412 | 1042 |
Kyrgyz (Cyrillic) | 0440 | 1088 |
Lao | 0454 | 1108 |
Latin | 0476 | 1142 |
Latvian | 0426 | 1062 |
Lithuanian | 0427 | 1063 |
Luxembourgish | 046e | 1134 |
Malay - Malaysia | 043e | 1086 |
Malay - Brunei Darussalam | 083e | 2110 |
Malayalam | 044c | 1100 |
Maltese | 043a | 1082 |
Manipuri | 0458 | 1112 |
Maori - New Zealand | 0481 | 1153 |
Mapudungun | 0471 | 1146 |
Marathi | 044e | 1102 |
Mohawk | 047c | 1148 |
Mongolian (Cyrillic) | 0450 | 1104 |
Mongolian (Mongolian) | 0850 | 2128 |
Nepali | 0461 | 1121 |
Nepali - India | 0861 | 2145 |
Norwegian (Bokmål) | 0414 | 1044 |
Norwegian (Nynorsk) | 0814 | 2068 |
Occitan | 0482 | 1154 |
Oriya | 0448 | 1096 |
Oromo | 0472 | 1138 |
Papiamentu | 0479 | 1145 |
Pashto | 0463 | 1123 |
Polish | 0415 | 1045 |
Portuguese - Brazil | 0416 | 1046 |
Portuguese - Portugal | 0816 | 2070 |
Punjabi | 0446 | 1094 |
Punjabi (Pakistan) | 0846 | 2118 |
Quecha - Bolivia | 046B | 1131 |
Quecha - Ecuador | 086B | 2155 |
Quecha - Peru | 0C6B | 3179 |
Rhaeto-Romanic | 0417 | 1047 |
Romanian | 0418 | 1048 |
Romanian - Moldava | 0818 | 2072 |
Russian | 0419 | 1049 |
Russian - Moldava | 0819 | 2073 |
Sami (Lappish) | 043b | 1083 |
Sanskrit | 044f | 1103 |
Scottish Gaelic | 043c | 1084 |
Sepedi | 046c | 1132 |
Serbian (Cyrillic) | 0c1a | 3098 |
Serbian (Latin) | 081a | 2074 |
Sindhi - India | 0459 | 1113 |
Sindhi - Pakistan | 0859 | 2137 |
Sinhalese - Sri Lanka | 045b | 1115 |
Slovak | 041b | 1051 |
Slovenian | 0424 | 1060 |
Somali | 0477 | 1143 |
Sorbian | 042e | 1070 |
Spanish - Spain (Modern Sort) | 0c0a | 3082 |
Spanish - Spain (Traditional Sort) | 040a | 1034 |
Spanish - Argentina | 2c0a | 11274 |
Spanish - Bolivia | 400a | 16394 |
Spanish - Chile | 340a | 13322 |
Spanish - Colombia | 240a | 9226 |
Spanish - Costa Rica | 140a | 5130 |
Spanish - Dominican Republic | 1c0a | 7178 |
Spanish - Ecuador | 300a | 12298 |
Spanish - El Salvador | 440a | 17418 |
Spanish - Guatemala | 100a | 4106 |
Spanish - Honduras | 480a | 18442 |
Spanish - Latin America | 580a | 22538 |
Spanish - Mexico | 080a | 2058 |
Spanish - Nicaragua | 4c0a | 19466 |
Spanish - Panama | 180a | 6154 |
Spanish - Paraguay | 3c0a | 15370 |
Spanish - Peru | 280a | 10250 |
Spanish - Puerto Rico | 500a | 20490 |
Spanish - United States | 540a | 21514 |
Spanish - Uruguay | 380a | 14346 |
Spanish - Venezuela | 200a | 8202 |
Sutu | 0430 | 1072 |
Swahili | 0441 | 1089 |
Swedish | 041d | 1053 |
Swedish - Finland | 081d | 2077 |
Syriac | 045a | 1114 |
Tajik | 0428 | 1064 |
Tamazight (Arabic) | 045f | 1119 |
Tamazight (Latin) | 085f | 2143 |
Tamil | 0449 | 1097 |
Tatar | 0444 | 1092 |
Telugu | 044a | 1098 |
Thai | 041e | 1054 |
Tibetan - Bhutan | 0851 | 2129 |
Tibetan - People's Republic of China | 0451 | 1105 |
Tigrigna - Eritrea | 0873 | 2163 |
Tigrigna - Ethiopia | 0473 | 1139 |
Tsonga | 0431 | 1073 |
Tswana | 0432 | 1074 |
Turkish | 041f | 1055 |
Turkmen | 0442 | 1090 |
Uighur - China | 0480 | 1152 |
Ukrainian | 0422 | 1058 |
Urdu | 0420 | 1056 |
Urdu - India | 0820 | 2080 |
Uzbek (Cyrillic) | 0843 | 2115 |
Uzbek (Latin) | 0443 | 1091 |
Venda | 0433 | 1075 |
Vietnamese | 042a | 1066 |
Welsh | 0452 | 1106 |
Wolof | 0488 | 1160 |
Xhosa | 0434 | 1076 |
Yakut | 0485 | 1157 |
Yi | 0478 | 1144 |
Yiddish | 043d | 1085 |
Yoruba | 046a | 1130 |
Zulu | 0435 | 1077 |
HID (Human Interface Device) | 04ff | 1279 |
segunda-feira, 7 de outubro de 2013
JSFIDDLE - IDE JavaScript HTML Online
Essa semana vi no fórum da MSDN um desenvolvedor que postou sua duvida com um link apontando para o site jsfiddle, com o html ja todo desenvolvido achei bem interessante, para quem quer começar a aprender html, css, javascript e jquery uma ótima ferramenta!
Aqui um exemplo do como utilizar: http://jsfiddle.net/WKu3r/1/
Aqui um exemplo do como utilizar: http://jsfiddle.net/WKu3r/1/
Utilizando API Google Maps
Há alguns dias atrás estive utilizando a API do google maps, achei bem legal e tive algumas dificuldades como por exemplo adicionar vários markers pois o marker pegava sempre o ultimo content e outras coisas que não me lembro .. rs
Bom para quem for desenvolver algo com a API estou disponibilizando um fonte com as seguintes funcionalidades:
1ª - Busca o local do navegador utilizando o navigator.geolocation.getCurrentPosition (apesar de as vezes não funcionar muito bem).
2ª - Adicionar vários Marker's que são adicionados conforme o zoom no mapa.
3ª - Autocomplete para busca de locais.
4ª - infowindows as informações que são contents em html
e não podendo se esquecer também do cálculo da distância utilizando latitude e longitude e tempo de percurso utilizando a API do GMaps também. Aqui está um exemplo de como o get pode ser utilizado, e que pode ser recuperado em json ou xml.
Para acessar: http://www.rmmetecnologia.com/maps
Download da Solution: http://sdrv.ms/18Kn75L
Espero ter ajudado...
Bom para quem for desenvolver algo com a API estou disponibilizando um fonte com as seguintes funcionalidades:
1ª - Busca o local do navegador utilizando o navigator.geolocation.getCurrentPosition (
2ª - Adicionar vários Marker's que são adicionados conforme o zoom no mapa.
3ª - Autocomplete para busca de locais.
4ª - infowindows as informações que são contents em html
e não podendo se esquecer também do cálculo da distância utilizando latitude e longitude e tempo de percurso utilizando a API do GMaps também. Aqui está um exemplo de como o get pode ser utilizado, e que pode ser recuperado em json ou xml.
Para acessar: http://www.rmmetecnologia.com/maps
Download da Solution: http://sdrv.ms/18Kn75L
Espero ter ajudado...
quarta-feira, 2 de outubro de 2013
ViewBag vs ViewData vs TempData
Quando comecei a trabalhar com o plataforma MVC da microsoft, me deparei com um problema como passar os dados de uma ActionResult para a uma View, foi ai que descobri a ViewBag só que também descobri a ViewData e TempData entao veja quais são suas diferenças para utilizar a que melhor te atende.
TempData - parecida com uma sessão de servidor, só que de curta duração, Porem possui um tempo de vida maior que o ViewBag e ViewData, o TempData dura desde sua criação até que seja chamado, então quando houver um request do TempData, ele se torna nulo. Uma dado criado em uma TempData atribuida em uma Controller persiste após um redirect entre actions que pode ser exibido em uma View.
ViewData e ViewBag - são bem parecidas, porque são utilizadas para persistir dados entre a Controller e a View correspondente. A duração é apenas entre o envio através da Controller e a exibição na View, depois disso tornam-se nulas novamente e no caso de um redirect se tornam nulas. e suas diferenças são que a ViewData é acessada utilizando o nome entre chaves ViewData["ID_CLIENTE"] e a ViewBag é dinamica ViewBag.IdCliente, a ViewData necessita de conversão quando é de um tipo complexo e a ViewBag não necessita.
terça-feira, 17 de setembro de 2013
Borda arredondada IE7 / IE8
De vez em quando precisamos fazer alguns jobs com o alto nível de chatice, e quase sempre tem alguem que já enfrentou esses mesmos problemas.
Nesse caso PIE(progressive internet explorer) nos ajuda a tornar o Internet Explorer do 6-9 capaz de processar algumas propriedades do CSS3.
baixe aqui o exemplo ou acesse o site http://css3pie.com/
colaboração: Gustavo gaigher
Nesse caso PIE(progressive internet explorer) nos ajuda a tornar o Internet Explorer do 6-9 capaz de processar algumas propriedades do CSS3.
baixe aqui o exemplo ou acesse o site http://css3pie.com/
colaboração: Gustavo gaigher
terça-feira, 7 de maio de 2013
DropDownList Personalizado TwiterBootstrap
Personalizei um DropDownMenu para um DropDownList utilizando o framework do Bootstrap.
ficou bem legal vale a pena postar.
Ele ficou com essa aparência
e o jquery para mudar o item principal.
Obs: ja que o objeto não é um input é necessário um jquery para pode pegar o valor dele e atribuir para algum input para podermos recuperar o valor dele no CodeBehind, como mostrado no exemplo.
ficou bem legal vale a pena postar.
Ele ficou com essa aparência
O Codigo ficou bem simples
e o jquery para mudar o item principal.
Obs: ja que o objeto não é um input é necessário um jquery para pode pegar o valor dele e atribuir para algum input para podermos recuperar o valor dele no CodeBehind, como mostrado no exemplo.
segunda-feira, 29 de abril de 2013
Visualizando TO DO's no visual studio
As vezes ao desenvolver um sistema não possuímos a especificação do sistema por completa, sabendo pelo menos as funcionalidades do sistemas conseguimos desenvolver as métodos principais. Um desenvolvedor no minimo organizado deve comentar seus códigos e também comentar tarefas que não foram possíveis concluir por algum motivo com o "TODO".
Agora a parte legal, o Visual Studio mostra pra você todos os "Afazeres" que temos no projeto indo em:
View -> Task List -> Selecionar no combo Comments
sábado, 27 de abril de 2013
Scrum no Visual Studio
Artigo muito bom sobre como aplicar Scrum com o Visual Studio.
Explica passo a passo de como criar os PBI's (Product Backlog Itens) e fazer o gerenciamento do projeto utilizando o TFS (Team Foundation Server).
http://imasters.com.br/artigo/24388/visual_studio/planejamento-agil-no-visual-studio-2012-usando-scrum/
Explica passo a passo de como criar os PBI's (Product Backlog Itens) e fazer o gerenciamento do projeto utilizando o TFS (Team Foundation Server).
http://imasters.com.br/artigo/24388/visual_studio/planejamento-agil-no-visual-studio-2012-usando-scrum/
Framework's CSS
Esse artigo é sobre algo que venho utilizando para deixar o desenvolvimento do layoult de sites mais ágeis e mais bonitos.
O 1º Framework TwiterBootstrap, um BootTheme que permite personalização do estilo CSS, alem de deixar o site muito legal com estilização de botões, icones e muito mais.
O 2º ainda não utilizei mais em breve vou testar é o MetroUiCSS que personaliza seu site no estilo do Windows Phone e Windows 8.
Tem ainda o wrap bootstrap que tem vários templates pra bootstrap pagos e gratuitos.
Valew
quarta-feira, 26 de setembro de 2012
Exportando um Relatório simples em PDF
Esse Post é feito para quem precisa extrair um relatório de uma pagina Html simples apenas com estilos nas fontes com fundo de imagens etc.
Lembrando que o relatório vai sair igual a sua pagina, caso queira uma imagem no relatório é necessário colocar o caminho inteiro da imagem no seu Html ao invés de apenas referencias a partir do projeto.
Para criarmos o relatório basta referenciar a Dll itextsharp no projeto
e criarmos o método a seguir:
...
Lembrando que o relatório vai sair igual a sua pagina, caso queira uma imagem no relatório é necessário colocar o caminho inteiro da imagem no seu Html ao invés de apenas referencias a partir do projeto.
Para criarmos o relatório basta referenciar a Dll itextsharp no projeto
e criarmos o método a seguir:
...
quarta-feira, 12 de setembro de 2012
Problemas com caracteres especias na hora de extrair um Excel
Essa semana tivemos um problema no trabalho que os caracteres com acento entre outros caracteres, estavam ficando com caracteres especiais bem estranhos rs.
Bom a resolução para o problema foi colocar ResponseEnconding="iso-8859-15" no @Page (Parte de definições de atributos da pagina) em que o relatório ia ser extraído.
Li em outros posts que o response acaba funcionando apenas nas informações do HTML , mas dados que vão para o banco eram armazenados com caracteres especiais estranhos, não consegui simular o erro, mas li que se jogar a tag globalization da maneira abaixo com o FileEncondign e o Response e Request Encoding funciona.
globalization fileEncoding="iso-8859-15" requestEncoding="utf-8" responseEncoding="utf-8" culture="pt-BR" uiCulture="pt-BR"
quarta-feira, 1 de agosto de 2012
Ferramenta de Identação de código
Ferramenta online bem legal para você identar seus códigos, principalmente SQL, já que dificilmente as ferramentas de desenvolvimento não ajudam.
http://www.dpriver.com/pp/sqlformat.htm
Referência: http://emilaneze.com.br
http://www.dpriver.com/pp/sqlformat.htm
Referência: http://emilaneze.com.br
Formato de Datas
Estou criando esse post porque existem vários tipos de formatos de data que são utilizados na programação esse arquivo ja uso a algum tempo e me ajuda muito quando acabo esquecendo quando preciso.
o Code é utilizado no SQL Server e o Format pode ser utilizado por exemplo no Oracle.
o Code é utilizado no SQL Server e o Format pode ser utilizado por exemplo no Oracle.
quinta-feira, 12 de julho de 2012
Lendo um XML de uma URL utilizando o XmlReader
Muitas vezes nos deparamos com vários tipos de leitura de dados, seja por banco de dados, arquivos txt, arquivos xls e etc. Nesse artigo irei mostrar como ler um arquivo XML, o mesmo estando em uma URL de uma forma bem simples.
Criando o projeto.
1) Crie um projeto no caso do exemplo utilizarei um Console Application
2) A seguir utilizaremos o seguinte exemplo para leitura.
da ULR http://api.facebook.com/restserver.php?method=links.getStats&urls=globo.com
Visualização do arquivo
3) Utilizaremos o código abaixo.
da ULR http://api.facebook.com/restserver.php?method=links.getStats&urls=globo.com
Visualização do arquivo
3) Utilizaremos o código abaixo.
Obs: o foreach utilizado é para ler cada linha do DataTable.
4) A imagem a segui mostra como a estrutura do arquivo ficou em um DataTable.
quarta-feira, 11 de julho de 2012
Dynamic Data Entities Web Site
Utilizado para criar aplicações web simples ele utiliza o banco de dados como referencia. Assim voce pode criar um cadastro ou uma consulta em pouco tempo de desenvolvimento.
Além do banco de dados para criar um projeto Dynamic Data Entities Web Site é necessário o arquivo de mapeamento das entidades do banco no caso do exemplo iremos utilizar o LinqToSQL.
Criando o projeto.
1) No VisualStudio ir para New, Web Site, Dynamic Data Entities Web Site.
2) Abra as propriedades do projeto vá em Add, New Item.
3) Selecione o Linq to SQL Classes.
4) Adicione as tabelas que ira utilizar.
5) Abra o arquivo Global.asax.
6) Encontre a linha que esta comentada, descomente e altere o nome YourDataContextType para o nome do seu arquivo de mapeamento, no caso do exemplo DataClassesDataContext.
//model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false });
Pronto seu Dynamic Data Entities Web Site esta pronto, agora é só executar .....
Além do banco de dados para criar um projeto Dynamic Data Entities Web Site é necessário o arquivo de mapeamento das entidades do banco no caso do exemplo iremos utilizar o LinqToSQL.
Criando o projeto.
1) No VisualStudio ir para New, Web Site, Dynamic Data Entities Web Site.
2) Abra as propriedades do projeto vá em Add, New Item.
3) Selecione o Linq to SQL Classes.
4) Adicione as tabelas que ira utilizar.
5) Abra o arquivo Global.asax.
6) Encontre a linha que esta comentada, descomente e altere o nome YourDataContextType para o nome do seu arquivo de mapeamento, no caso do exemplo DataClassesDataContext.
//model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false });
Pronto seu Dynamic Data Entities Web Site esta pronto, agora é só executar .....
sábado, 21 de maio de 2011
Tenha Boas Praticas Nomenclatura
Antes de começar a desenvolver vamos falar sobre um assunto muito importante nomenclatura.
Quando você começa em uma empresa e seus respectivos analistas começam a lhe passar atividades certifique-se com seus colegas de serviço se existe alguma documentação de nomenclaturas de objetos.
Uma coisa que é muito ruim é quando você vai fazer alguma alteração em um projeto e existe uma variável com o nome de teste quem nunca pegou isso!
Estou disponibilizando uma documentação que ja uso faz algum tempo.
Download Nomenclatura
Normalmente após o uso da nomenclatura eu criaria um Textbox assim: txtDataNasc
Para Banco de Dados
Sempre que estou em um projeto tento seguir essas nomeclaturas porque tento, nem sempre é possível deixar tudo no padrão depende do tempo que você tem para desenvolver o projeto.
Procedure: SP_nm_Proc
Function: FC_nm_Funçao
Dts: DTS_nm_Dts
Package: PC_nm_Pack
Tabelas: TB_nm_Tabela
Obs.: Sempre coloque no nome o assunto em que você esta trabalhando por exemplo: SP_CADASTRO_CLIENTES
em objetos de banco de preferência nunca coloque espaços, assentos entre outros caracteres especiais.
Variáveis e Parâmetros para procedures e functions e queries:
VC_... - Variável Caractere
VD_... - Variável data
VN_... - Variável Numérica
C_... - Variável Cursor
PEC_... - Parâmetro de entrada do tipo Caractere
PED_... - Parâmetro de entrada do Tipo Data
PEN_... - Parâmetro de entrada do tipo Numérico
PSC_... - Parâmetro de saída do tipo Caractere
PSD_... - Parâmetro de saída do Tipo Data
PSN_... - Parâmetro de saída do tipo Numérico
Utilizando nomenclaturas podeter certeza que você facilita um codigo de manutenção para outros desenvolvedores e para você mesmo pois eu duvido que você vai lembrar de algo que desenvolveu a um ano atras.
Abs..... até o proximo.
Quando você começa em uma empresa e seus respectivos analistas começam a lhe passar atividades certifique-se com seus colegas de serviço se existe alguma documentação de nomenclaturas de objetos.
Uma coisa que é muito ruim é quando você vai fazer alguma alteração em um projeto e existe uma variável com o nome de teste quem nunca pegou isso!
Estou disponibilizando uma documentação que ja uso faz algum tempo.
Download Nomenclatura
Normalmente após o uso da nomenclatura eu criaria um Textbox assim: txtDataNasc
Para Banco de Dados
Sempre que estou em um projeto tento seguir essas nomeclaturas porque tento, nem sempre é possível deixar tudo no padrão depende do tempo que você tem para desenvolver o projeto.
OBJETOS DE BANCO
Procedure: SP_nm_Proc
Function: FC_nm_Funçao
Dts: DTS_nm_Dts
Package: PC_nm_Pack
Tabelas: TB_nm_Tabela
Obs.: Sempre coloque no nome o assunto em que você esta trabalhando por exemplo: SP_CADASTRO_CLIENTES
em objetos de banco de preferência nunca coloque espaços, assentos entre outros caracteres especiais.
Variáveis e Parâmetros para procedures e functions e queries:
VC_... - Variável Caractere
VD_... - Variável data
VN_... - Variável Numérica
C_... - Variável Cursor
PEC_... - Parâmetro de entrada do tipo Caractere
PED_... - Parâmetro de entrada do Tipo Data
PEN_... - Parâmetro de entrada do tipo Numérico
PSC_... - Parâmetro de saída do tipo Caractere
PSD_... - Parâmetro de saída do Tipo Data
PSN_... - Parâmetro de saída do tipo Numérico
Utilizando nomenclaturas podeter certeza que você facilita um codigo de manutenção para outros desenvolvedores e para você mesmo pois eu duvido que você vai lembrar de algo que desenvolveu a um ano atras.
Abs..... até o proximo.
Assinar:
Postagens (Atom)