Archive for 'Sem categoria'

Treinamento de .NET

Olá Pessoal, estou montando um treinamento em .net, ainda não sei se será presencial ou online, mas já estou fechando o conteúdo do treinamento, abaixo segue o conteudo, caso alguém tenha alguma sugestão/critica sobre o contéudo, por favor deixem a sugestão/critica como comentário aqui no blog.

Total de horas: 36 horas
Conteúdo programático:

1-) Introdução
-Overview e dicas das certificações Microsoft.
-Introdução ao Microsoft .Net Framework.

2-) Visual Studio 2008 Team System
- Introdução ao Visual Studio 2008 Team System.
- Controle de Código Fonte.
- Tipos de Projetos/Tipo de Itens de Projetos disponíveis.

3-) Linguagem C# .Net- Introdução a Linguagem C# .Net.
- Atribuição composta e instrução de interação.
- Instruções de decisão.
- Arrays e Coleções.
- Classes e Objetos.
- Utilizando Herança
- Apresentando o Generics.
- Extensão de métodos.
- Lambda Expression
- Types Anonymous.

4-) Windows Form
- Introdução ao Windows Form.
- Conhecendo alguns dos principais controles do Windows Form.
- Introdução ao Windows Presentation Foundation

5-) Web Form
- Introdução ao asp.net web form.
- Conhecendo alguns dos principais controles do Asp.Net .
- Criando o primeiro website.

6-) WCF & Web Service
- Introdução a arquitetura de serviços.
- Comparando WCF e Web Service.
- Criação de um serviço WCF e Web Service.
- Como publicar os serviços no IIS.

Evento DevFranca - Obrigado

Pessoal,

Gostaria de agradecer a todos que participaram do evento do primeiro encontro do DevFranca, foi muito bom, espero que este seja o primeiro de muitos.. Infelizmente devido ao tempo que nunca para, não foi possível falar de tudo o que queria, mas mesmo assim acredito que tenha contribuido para o crescimento de alguns.

Em breve o Dheyson e o Vinicius estarão liberando o material e as fotos do evento, espero que todos os que compareceram ao evento ajudem no crescimento da comunidade…

Um forte abraço e um obrigado ao pessoal que ajudou:

InfoKraft (Ricardo).
Unifran - (Jorge, Beto e Sr. Reis)
Comunidade em ação (Microsoft TechNet/MSDN)
Microlins
Com4
ITGroup

Sem vocês nada do evento teria sido possível.

 

Abraço,

Seja bem vindo!

Como diria nosso companheiro Nelson Borges: “Ao infinito e além!”

As vésperas do nosso primeiro e grande evento recebemos mais um integrante valioso para comunidade, este integrante é o Sr. Fausto Goncin ou somente goncim. Ele é Bacharel da 1ª turma de Ciência da Computação da Unifran. Com grande bagagem em SGBD (Sistemas de Gerenciamento de Bancos de Dados), dentre eles MS SQL, MySQL e Firebird, desenvolve aplicações para a web em ASP e PHP utilizando o framework PRADO. Pra quem não conhece este framework o nosso companheiro goncin vai falar bastante sobre ele.

Seja bem vindo!!!

C# 4.0 –News…

Estou estudando algumas novidades do C# 4.0 e do Visual Studio 2010, até o momento estou gostando bastante, uma coisa posso garantir, o time de desenvolvimento esta atento as sugestões dadas nos fóruns do MSDN e nas comunidades. Apesar do que muitas pessoas dizem a respeito da Microsoft, sinto que cada vez o time de desenvolvimento esta mais próximo das comunidades, bom agora chega de ficar “puxando saco” e vamos ao que interessa.:)

Pelo que percebi, o C# 4.0 esta focado em programação dinâmica, mas EU ainda não considero o C# uma linguagem dinâmica. Os objetos são dinâmicos, no sentido de que sua estrutura e seu comportamento não é definido em um modelo estático. Me lembra um pouco do Pynthon e Ruby J.

Veja a evolução abaixo:

Dynamic lookup

Charlie já dizia no seu blog algum tempo atrás, que a próxima versão do visual Studio iria fornecer uma infra-estrutura comum que permitira a todas as linguagens .NET a opção de resolução de nomes em tempo de execução em vez de ser no tempo de compição. Em resumo seria mais ou menos assim, você teria uma variável do tipo Dynamic e poderia colocar qualquer método nela que aceitaria no tempo de compilação, e a verificação da existência daquele método apenas seria visto em runtime, você deve estar pensando, putz !?, pois foi a mesma coisa que pensei quando conheci o DLR (Dynamic Language Runtime), vale comentar que o tipo dinâmico não é a mesma coisa que o tipo var.. :)

 

Veja este exemplo do Mads Torgersen:

dynamic d = GetDynamicObject(…);
d.M(7); // calling methods
d.f = d.P; // getting and settings fields and properties
d[“one”] = d[“two”]; // getting and setting thorugh indexers
int i = d + 3; // calling operators
string s = d(5,7); // invoking as a delegate

O Channel 9, possui uma série de videos que ajudam mais o entendimento:

Por enquanto é sow.. depois irei postar mais sobre o C# 4.0..

Abraço,

1° Encontro do DevFranca

No dia 29/08, irá ocorrer em Franca o 1° encontro de desenvolvedores e profissionais de tecnologia do interior paulista, um evento bem animado com sorteios de brindes e um ótimo conteúdo técnico. Um momento para aprender e compartilhar suas experiências e conhecimento com os demais participantes da região, confira abaixo os assuntos das palestras.

  • - Desenvolvimento de aplicações SOA;
  • - Novidades e Facilidades do Microsoft Framework;
  • -Desenvolvimento de relatórios com Crystal Reports em banco de dados Oracle;
  • -Aplicações RIA com Flex e C#.Net
  • - Tema livre;

O evento irá ocorrer na Universidade de Franca, e a entrada é um quilo de alimento não perecível, que será doado às entidades de assistência social da cidade.

As inscrições estão abertas a partir de 03/08 através do site www.devfranca.com.br e www.viniciussandim.com, mas você já pode ir reservando seu convite enviando um e-mail para juninhob16@hotmail.com .

As seguintes empresas apóiam este projeto:

 

                     

Prova BETA Windows 7

Olá Pessoal,

A Microsoft disponibilizou para a comunidade uma prova beta do Windows Seven, o código do exame é 71-680, e para prestar a prova, basta entrar no site da prometric (www.prometric.com) escolher o exame com o código acima e no campo promotion code, digitar o seguinte código : WIN7J

Fonte: http://blogs.technet.com/betaexams/archive/2009/04/15/register-for-beta-exam-71-680-ts-windows-7-configuring.aspx

PS: Vale lembrar que as provas beta são gratuitas (free..rs) e valem como certificação normalmente.

Abraço e boa sorte.

Google Map - Reverse-Geocoder

Alguma vez, você já deve ter utilizado o serviço do Google Map como usuário, serviço tão útil que o Google disponibiliza algumas bibliotecas para integrar o Google Map em suas aplicações .NET, até aqui nada de novidade, e até na web existem vários artigos e exemplos de como consumir estas bibliotecas ou serviço do Google:

Veja alguns exemplos:

Google Maps Control for ASP.Net - Part I
http://www.c-sharpcorner.com/UploadFile/shabdarghata/google-maps-user-control-for-ASP-Net-part103232008234414PM/google-maps-user-control-for-ASP-Net-part1.aspx

Lat Lays Flat - Part 1 : A Google Maps .NET Control
http://www.codeproject.com/KB/custom-controls/LatLaysFlat-Part1.aspx

Os exemplos acima mostram uma aplicação web utilizando o Google map da seguinte forma: você passa o endereço para o serviço e ele redireciona você a imagem de referência no mapa, em que momento isso é útil, quando você quer visualizar o mapa de um endereço especifico. Bom mas como tem necessidades de deixar as coisas mais complexas, imagine a seguinte situação.

- Você precisa disponibilizar um mapa no site, o usuário escolhe (clica) em um ponto do mapa, e você captura o endereço (latitude e longitude) do ponto no gráfico selecionado. Como fazer isso ?

Simples, o Google também possui um serviço chamado reverse-geocoder, e este serviço simplesmente resolve o problema acima, ou seja você gera o mapa e consegue pegar latitude e longitude do ponto selecionado.

A url do service é: "http://maps.google.com/maps/geo?q="; e para implementar no seu código é simples, veja um exemplo de uma classe consumindo este serviço:

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Text;
   4:  using System.Web;
   5:  using System.Net;
   6:  using System.Web.UI; 
   7:   
   8:   
   9:  namespace GoogleGeocoder
  10:  {
  11:     public interface ISpatialCoordinate
  12:     {
  13:        decimal Latitude {get; set; } 
  14:        decimal Longitude {get; set; } 
  15:     }
  16:   
  17:     /// <summary>
  18:     /// Estrutura da Coordenada
  19:     /// </summary>
  20:     public struct Coordinate : ISpatialCoordinate
  21:     {
  22:        private decimal _latitude; 
  23:        private decimal _longitude;
  24:   
  25:        public Coordinate(decimal latitude, decimal longitude)
  26:        {
  27:           _latitude = latitude;
  28:           _longitude = longitude; 
  29:        }
  30:   
  31:        #region ISpatialCoordinate Members
  32:   
  33:        public decimal Latitude
  34:        {
  35:          get 
  36:          { 
  37:              return _latitude; 
  38:          }
  39:          set 
  40:          { 
  41:              this._latitude = value; 
  42:          }
  43:        }
  44:   
  45:        public decimal Longitude
  46:        {
  47:          get 
  48:          { 
  49:              return _longitude; 
  50:          }
  51:          set 
  52:          { 
  53:              this._longitude = value;
  54:          }
  55:        }
  56:   
  57:     #endregion
  58:     }
  59:   
  60:     public class Geocode
  61:     {
  62:        private const string _googleUri = "http://maps.google.com/maps/geo?q=";
  63:        private const string _googleKey = "yourkey";
             // Opções de exportação: csv, xml, kml, json
  64:        private const string _outputType = "csv"; 
  65:   
  66:        private static Uri GetGeocodeUri(string address)
  67:        {
  68:           address = HttpUtility.UrlEncode(address);
  69:           return new Uri(String.Format("{0}{1}&output={2}&key={3}", 
                _googleUri, address, _outputType, _googleKey));
  70:        }
  71:   
  72:        /// <summary>
  73:        /// Metodo para Pegar a Coordenada de um endereço
  74:        /// </summary>
  75:        /// <param name="address">Endereço
  76:        /// <remarks>
  77:        /// <example>Rua Libero Badaró , SP</example>
  78:        /// </remarks>
  79:        /// </param>
  80:        /// <returns>Latitude e longitude do endereço.</returns>
  81:        public static Coordinate GetCoordinates(string address)
  82:        {
  83:           WebClient client = new WebClient();
  84:           Uri uri = GetGeocodeUri(address);
  85:   
  86:   
  87:           string[] geocodeInfo = client.DownloadString(uri).Split(',');
  88:   
  89:           return new Coordinate(Convert.ToDecimal(geocodeInfo[2]), 
                Convert.ToDecimal(geocodeInfo[3]));
  90:        }
  91:   
  92:     }
  93:  }
  94:   

Mais exemplos sobre :

Reverse Geocoding Webservice

http://www.geonames.org/maps/reverse-geocoder.html

GeoNames .NET WCF Client

http://www.codeproject.com/KB/WCF/GeoNames-WCFClient.aspx

Eu também falei deste e de outros assuntos no meu blog -> http://nelsonborgesjr.spaces.live.com/blog/

[]´s

OFF - IDE Visual Studio Tips and Tricks

Olá, pessoal, me desculpem pelo post off.
Estive vendo alguns sites sobre dicas do Visual Studio, achei alguns interessantes, como é de interesse de todos, vou compartilhar aqui. O interessante é para quem trabalha dia-a-dia com a ferramenta, pois vai ver que existem alguns detalhes que ganham produtividade, eu gostei e espero que gostem.
Channel 9
http://channel9.msdn.com/pdc2008/TL46/
MSDN Visual Studio 2005
http://msdn.microsoft.com/en-us/library/bb245788(vs.80).aspx

Abraço,

Enviando e-mail no Asp.NET usando o provedor GMAIL

Neste curto artigo estarei demonstrando com enviar e-mail através de uma página ASP.NET utilizando o provedor Gmail, este artigo têm como foco estudantes que estão iniciando em desenvolvimento de sistemas.

Requisitos para o Exemplo: Neste nosso exemplo iremos usar o Visual Studio 2008 com Framework 3.5, caso não tenha instalado, efetue o download gratuitamente no seguinte site :  http://www.microsoft.com/Express/

Primeiramente abra o Visual Studio 2008, vá em File -> New -> Project, na tela de New Project escolha o projeto de C# -> Web,o nome do projeto e da solução deixe como SendMail

Agora vá em Solution Explorer e veja os itens que o Visual Studio criou, procure o arquivo Default.aspx e dê um duplo clique nele. A página irá abrir em branco insira os seguintes controles dentro da página conforme tabela abaixo.

Nota: (Procure os controles na aba ToolBox se a mesma não estiver visível pressione CTRL+ALT+X)

 

Controle

Propriedades

Observação

TextBox

- Altere a propriedade ID do controle para “destinatarioTextBox”;

É importante sempre que inserir um controle na pagina um nome simples e objetivo para que o mesmo possa ser localizado facilmente no código.

TextBox

- Altere a propriedade ID do controle para “mensagemTextBox”;

- Altere a propriedade TextMode para multiline;

 

Button

- Altere a propriedade ID do controle para “enviarButton”;

Este será o botão responsável por disparar o evento que irá chamar o envio do e-mail.

Label

- Altere a propriedade ID do controle para “RespostaEnvioLabel”;

- Altere a propriedade Visible para false;

Esta Label irá receber a mensagem se o envio foi executado com sucesso ou não, esta mensagem irá aparecer somente depois do envio.

 

Veja um exemplo abaixo da imagem2 de como deverá ficar sua página:


Imagem2 – Controles na página

Clique com o botão direito do mouse em qualquer ponto da página e escolha a opção ViewCode, no topo do código faça a inserção das seguintes linhas (abaixo) .

 

   1:  using System.Net.Mail;
   2:  using System.Net.Configuration;

Volte para o arquivo Default.aspx e dê um duplo clique no botão enviar e insira o código abaixo dentro do evento enviarButton_Click:

 
 
   1:  //O e-mail do remetente
   2:  string remetenteEmail = "nbsjunior@gmail.com"; 
   3:  MailMessage mail = new MailMessage();
   4:  mail.To.Add(destinatarioTextBox.Text);
   5:  mail.From = new MailAddress(remetenteEmail, "Nelson Borges", 
System.Text.Encoding.UTF8);
   6:  mail.Subject = "Assunto:Este e-mail é um teste do Asp.Net";
   7:  mail.SubjectEncoding = System.Text.Encoding.UTF8;
   8:  mail.Body = mensagemTextBox.Text;
   9:  mail.BodyEncoding = System.Text.Encoding.UTF8;
  10:  mail.IsBodyHtml = true;
  11:  //Prioridade do E-Mail
  12:   mail.Priority = MailPriority.High;
  13:   
  14:  SmtpClient client = new SmtpClient();
  15:  //Adicionando as credenciais do seu e-mail e senha:
  16:  client.Credentials = new System.Net.NetworkCredential
(remetenteEmail, "digiteAquiSuaSenhaGmail");
  17:   
  18:  // Esta porta é a utilizada pelo Gmail para envio
  19:  client.Port = 587;
  20:   
  21:  //Definindo o provedor que irá disparar o e-mail
  22:  client.Host = "smtp.gmail.com";
  23:   
  24:  //Gmail trabalha com Server Secured Layer
  25:   client.EnableSsl = true; 
  26:   try
  27:   {
  28:  client.Send(mail);
  29:  respostaEnvioLabel.Text = "Envio do E-mail com sucesso";
  30:  respostaEnvioLabel.Visible = true;
  31:  }
  32:  catch (Exception ex)
  33:  {
  34:  respostaEnvioLabel.Text = "Ocorreu um erro ao enviar:" 
+ ex.Message;
  35:  respostaEnvioLabel.Visible = true;
  36:  }
  37:   

Vamos à explicação do código acima: Para o envio do e-mail é necessário a utilização do namespace System.Web.Mail, para mais detalhes acesse: http://msdn.microsoft.com/en-us/library/system.web.mail.aspx dentro deste namespace você irá encontrar as várias classes relacionadas ao envio de e-mail:

MailMessage – Classe usada para criar e manipular o conteúdo de mensagem, no nosso exemplo instanciamos esta classe com o nome de mail (MailMessage mail = new MailMessage();).

Bom agora que entendemos o MailMessage vamos continuar com a explicação de cada linha do código que inserimos:

mail.To: Nesta linha estamos adicionando o valor do texto digitado na textbox destinatário, esta valor esta sendo passado para a propriedade To do mail através do método Add.

mail.From: Aqui estamos definindo o endereço de origem (remetente) que utilizaremos para enviar a apresentação do e-mail, no nosso caso usamos o MailAddress que é uma classe da System.Web.Mail usada para especificar o endereço de e-mail, exibição do nome no e-mail etc.

mail.Subject: Nesta linha estamos adicionando o assunto do e-mail.

mail.Body: Aqui estamos adicionando o conteúdo digitado no textbox mensagem ao corpo do e-mail.

mail.IsBodyHtml: Aqui definimos que o corpo da mensagem será um HTML, esta definição é um valor booleano ou seja true para verdade e false para falso.

mail.Priority: Você pode definir a prioridade do e-mail através desta propriedade.

No nosso exemplo estamos enviando um e-mail através do SMTP, existem outras formas que não serão tratadas neste artigo, dentro do namespace Sytem.Web.Mail existe também a classe SmtpClient que irá permitir o envio do e-mail, mais detalhes acesse: http://msdn.microsoft.com/pt-br/library/system.net.mail.smtpclient.aspx

client.Credentials: Após instanciar a classe SmtpClient, iremos definir algumas propredades, a primeira é a Credentials que irá validar o usuário e a senha no host (provedor de e-mail no nosso caso o Gmail), repare que usamos as credencias a classe da System .Net chamada NetworkCredential , esta classe fornece credenciais para esquemas de autenticação baseada em senhas como NTLM e Kerberos, mas detalhes acesse: http://msdn.microsoft.com/pt-br/library/system.net.networkcredential.aspx

client.Port: Aqui você irá definir a porta de saída do e-mail, como default é a porta 25, porém no provedor de SMTP do Gmail é utilizado a porta 587, a definição da porta é muito importante estar correto pois o envio do e-mail pode falhar por isso.

client.Host: O Host é provedor do serviço de e-mail, no nosso caso o Gmail, para outros provedores, é necessário conhecer o endereço de configuração do smtp, que neste artigo é “smtp.gmail.com”.

client.EnableSsl: Esta propriedade define se iremos utilizar o SSL para criptografar o e-mail.

client.Send: Este é método é responsável pelo envio do e-mail (MailMessage) que configuramos acima.

Finalizando o artigo, você agora pode efetuar um teste com sua nova página de envio de e-mails, basta apertar F5 no Visual Studio preencher os dados e clicar em enviar…

Até mais..

Evento em Franca – Developer

Olá, All.

Estou conversando muito com o Vinicius Sandim “blogueiro “ e com o Ricardo da InfoKraft e estamos pensando em criar um evento em Franca para desenvolvedores, estamos fechando alguns temas do evento e juntamente os especialistas que irão falar no evento.

Dentre os temas estão:

- Design Patterns
- Visual Studio 2008 e o CTP 2010
- .NET Framework
- Crystal Reports With Oracle
- PMI vs SCRUM
- Adobe Flex e o Conceito RIA
- Mesa Redonda (Neste tópico o publico irá participar com os palestrantes sobre assuntos diversos).

 

O que vocês acham destes temas? Têm algum tema que você gostaria de ver ai dentro?, se possível faça os comentários na pagina ou se preferir mande um e-mail para cromoborges@bol.com.br .