Friday, September 22, 2006

Envio de e-mail por vbscript

Estive a pesquisar a procura de um metodo que me ajude no envio de E-mail por Vbscript, espero que este exemplo seja util.


Sub enviamail(mail)

Set objMessage = CreateObject("CDO.Message")

objMessage.Subject = "Example CDO Message"

objMessage.From = mail

objMessage.To = "Email"

objMessage.TextBody = "Mensagem de Teste."

'Envio de Anexos

'objMessage.AddAttachment "c:\somefile.txt"

objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = 'caminho do exchange pode ser IP ou nome

objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

objMessage.Configuration.Fields.Update

objMessage.Send

End Sub

Thursday, August 31, 2006

Enviar mensagem com imagem no (Body) por Email...

Pois é, em vez de enviar anexos com imagens é possivel enviar através do corpo da mensagem do E-mail uma imagem.
Para isso está um pequeno codigo a demostrar.

Codigo:
Imports System.Net.Mail

Dim fromAddress As String = "XXXXX@mail.com"
Dim toAddress As String = "YYYYY@mail.com"
Dim subject As String = "Teste com imagem no body"
Dim contentId As String = "image1"
Dim filename As String = "c:\image001.jpg"
Dim body As String = "Aqui está o link para o recurso: "<"img src=""cid:image1""/>"

Dim mailMessage As New MailMessage(fromAddress, toAddress)
mailMessage.Subject = subject
Dim av1 As AlternateView
av1 = AlternateView.CreateAlternateViewFromString(body, Nothing, MediaTypeNames.Text.Html)
Dim linkedResource As LinkedResource = New LinkedResource(filename)
linkedResource.ContentId = contentId
linkedResource.ContentType.Name = filename
av1.LinkedResources.Add(linkedResource)
mailMessage.AlternateViews.Add(av1)
mailMessage.IsBodyHtml = True
Dim mailSender As New SmtpClient("servidor")
Try
mailSender.Send(mailMessage)
Response.Write("mensagem enviada!")
Catch ex As Exception
Response.Write(ex.Message)
End Try

Thursday, August 17, 2006

Tratamento de texto em relação a moeda (currency)

Quando se pretende formatar a moeda como texto o VS tem metodos formatar o valor que recebemos em Double e transformar em moeda, mas tambem é possivel definirmos exactamente o formato que se pretende.
No exemplo 1 é definido uma formatação de texto de como o resultado final irá sair.
No exemplo 2 utilizamos o formato "c" de currency que ira pegar no valor double e dar-lhe o formato em moeda da cultura vigente.
É preciso referir que o resultado final da moeda depende da culture que se esteja a ser utilizada no momento se estiver-mos na cultura americana o resultado nao será "€" euro, mas sim "$" dolar.

Exemplo 1:
total.Text = String.Format(String.Format("{0:£#,##0.00;(£#,##0.00);Nothing}", CDbl(value.Text)))

output: £124,14

Exemplo 2:
total1.Text = String.Format(String.Format("{0:c}", CDbl(value.Text)))

output: 124,14 €

Monday, August 14, 2006

Adicionar ou remover permissões de ficheiros ou directorios ACL (Access Control List)

Estava a explorar o msdn2 a procura de como controlar o acesso a pastas e ficheiros e encontrei este site onde explica como se adiciona ou remove as permissoes, Site.

No exemplo que eles dão, eles criaram um metodo:
AddFileSecurity(fileName, "DomainName\AccountName", _
FileSystemRights.ReadData, AccessControlType.Allow)
onde e definido o ficheiro a ser trabalhado, o utilizador que podera aceder, dando-lhe permissao de escrita.

Tuesday, August 08, 2006

Desenhar atraves de GDI um SMILE

Pois é o ASP.net e uma ferramenta tao pratica que todos os dias uma pessoa aprende sempre coisas novas, nunca podemos dizer que ja sabemos tudo, porque os utilizadores encontram sempre maneiras de complicar a vida, devemos ter a resposta, sim claro... com ajuda do msdn2 e um pouco de arte conseguimos fazer tudo.

criar a class onde sera desenhado o smile.

Imports System.Web
Imports System.Drawing
Imports System.Drawing.Text
Imports System.Drawing.Imaging
Imports System
Namespace imagem
Public Class novaimagem
Implements IHttpHandler
Public ReadOnly Property IsReusable() As Boolean _
Implements IHttpHandler.IsReusable
Get
Return True
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) _
Implements IHttpHandler.ProcessRequest
Dim bm As New Bitmap(101, 101)
Dim gr As Graphics = Graphics.FromImage(bm)
gr.FillEllipse(Brushes.Yellow, 0, 0, 99, 99)
gr.DrawEllipse(Pens.Black, 0, 0, 99, 99)
gr.DrawArc(Pens.Black, 20, 20, 60, 60, 0, 180)
gr.FillEllipse(Brushes.Black, 40, 40, 20, 25)
gr.FillEllipse(Brushes.White, 25, 15, 20, 25)
gr.DrawEllipse(Pens.Black, 25, 15, 20, 25)
gr.FillEllipse(Brushes.Black, 35, 20, 10, 15)
gr.FillEllipse(Brushes.White, 55, 15, 20, 25)
gr.DrawEllipse(Pens.Black, 55, 15, 20, 25)
gr.FillEllipse(Brushes.Black, 65, 20, 10, 15)
context.Response.ContentType = "image/GIF"
bm.Save(context.Response.OutputStream, ImageFormat.Gif)
End Sub
End Class
End Namespace

Inserir no Web.config:
system.web>
httpHandlers>
add verb="*" path="Imagem.ashx" type="imagem.novaimagem"/>
/httpHandlers>


Sendo chamado pelo Botao:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Image1.ImageUrl = String.Concat("Imagem.ashx")
End Sub

Depois de clicar no botao ira aparecer um smile :) :).

Monday, July 31, 2006

"Cannot resolve collation conflict for equal to operation."

Ora aqui esta um erro que aconteceu, pensava eu "Ok projecto feito, toca a passar a BD para o servidor do cliente", ora la se muda e entao o que aconteceu quando arrebenta.....
"Cannot resolve collation conflict for equal to operation."


Problema: o problema nao é mais que um problema de linguaguem, se trabalhas com "Latin_general_CL_AS" e onde metes a BD esta com outra lingua, entao as tuas stored procedures entra em conflito e da erro.

Resolução: é associar ao campos a lingua por defeito da Base de dados.
exemplo:

Errada:
select employee_id
from MYLINKED.qdb.dbo.employee_appt qdb inner join
person on qdb.employee_id = person.my_id


Alterada:
select employee_id
from table.qdb.dbo.employee_appt qdb inner join
person on qdb.employee_id = person.my_id COLLATE database_default

Thursday, July 27, 2006

Associar Enter key ao Botão....

Pois é... nao sabia como associar o enter ao botao de submit entao pesquisei e encontrei este codigo que ajuda nesse campo.

asp:Panel ID="pnl1" runat="server" defaultbutton="Button1">
asp:Button ID="Button1" runat="server" Text="Button1" />
/asp:Panel>

Ok, mais uma coisa que nao sabia, sempre a aprender.....

Wednesday, July 26, 2006

Conexão de Base de dados por VBscript

Para fazer ligações a BD por ADODB em VBscript e simples depois de criar é o normal, como eu fazia em VB6...., :P .


Set OBJdbConnection = CreateObject("ADODB.Connection")
OBJdbConnection.Open "driver={SQL Server};server='server';uid=sa;pwd=;database=Northwind"
SQLQuery = "SELECT CompanyName, Country, Phone FROM dbo.Customers"
Set Result = OBJdbConnection.Execute(SQLQuery)
If Not Result.EOF Then
Do While Not Result.EOF
winmsgbox(Result("CompanyName"))
Result.MoveNext
Loop
End If
OBJdbConnection.Close

Listagem Active directory por vbscript

Pediram-me a uns dias para realizar uns comandos em vbscript a nivel de LDAP, entao começei a explorar e voilá, toca a fazer listagens.... Primeiro por comando, o segundo por um Query em ADODB.

Codigo:
1.
Set objADSystemInfo = CreateObject("ADSystemInfo")
'Utilizador que esta a utilizar
strUserDN = objADSystemInfo.UserName

Set objUser = GetObject("LDAP://" & strUserDN)
For Each strGroup in objUser.Groups
'Listagem dos grupos
winmsgbox(strGroup.Name)
Next
'Listagem do Email
winmsgbox(objUser.mail)

2.
Dim conn, cmd, rs, temp, ldapPath

ldapPath = "caminho"

Set conn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
conn.provider = "adsdsoobject"
conn.open "active directory provider"
cmd.activeconnection = conn
cmd.commandtext = ";(objectclass=computer);name,cn,distinguishedname;subtree"
Set rs = cmd.Execute
Do Until rs.eof
winmsgbox(rs.fields("name") & vbTab & rs.fields("cn") & vbTab & rs.fields("distinguishedname"))
rs.movenext
Loop

Wednesday, July 19, 2006

Editor de Texto FCKEditor em asp.net

Aqui se tem um editor de texto bastante util, a sua utilização e bastante simples.
1º É necessario fazer download do DLL a adicionar na toolbox do controls.
2. Adicionar na aplicação o package em Site.

Depois de estes dois aplicativos estarem inseridos podemos começar a trabalhar com o control.

Depois de inserir o control na pagina .aspx vamos ao source dele e temos que associar ao package metendo BasePath="../FCKeditor/", podemos tambem defenir skins para ter um aspecto mais office, por defeito ele ja trás 3 modelos, o do office é SkinPath="skins/office2003/", e o varivel para inserir texto não é text mas sim value.
Ok já esta pronto a ser utilizador.

Exemplo final:

FCKeditorV2:FCKeditor ID="FCKeditor1" Value="" SkinPath="skins/office2003/" runat="server" BasePath="../FCKeditor/"


Monday, July 17, 2006

Limitar internet a utilizadores da Active directory no windows 2003 server

Foi-me pedido para limitar a internet a um conjunto de utilizadores da active directory, entao começei a explorar o "Group policys" do Win2003 e pensei "vou ter que ter um grupo de utilizadores com politicas especiais de acesso a internet", onde defino o que esse conjunto de pessoas poderão aceder.
Entao criei este pequenito manual, rapido rapido para configurar esse grupo.

Configurar internet para alguns utilizadores na active directory no Servidor:

Software 2003 Busniess Server


'Group Policy Management;

- Botao direito na sede e selecionar "Create and link a GPO here..." Criar o nome exemplo "Internet Policy".

- Defenir a quem se destina "user ou groups".

- Botao direito em cima de "Internet Policy" e selecionar "Edit"

- ir a "user configuration-> windows settings->Internet Explorer Maintenance->Proxy Settings" em properties, defenir a proxy a ficar.
'se for utilizadores com acesso a internet mete-se a correcta, senao fica a errada para os que nao irão ter acesso

- aplicar definição.

'Bloquear Connections do internet Explorer

- Group Policy Management

- Botao direito em cima de "Internet Policy" e selecionar "Edit"

- ir a "user configuration-> Administrativa Templates->windows componentes->Internet Explorer->Internet Control Panel-> disable the connection Page"

- Meter Como Enable

O utilizador tem que fazer logoff e voltar a conectar para que as novas configurações fiquem registadas.
Ao abrir o internet explorer vao ao "Tools->Internet Option" e vão reparar que falta o tab das conexoes de rede, tá feito.... espero que tenha sido util.

Função para automatizar valores para control

Em vez de cada vez de ter que inicializar variaveis do tipo inteiro para control, uma pessoa pode criar um simples metodo que ira associar as variaveis inteiro, isto é bom para quem utiliza muitas variaveis de control e quando se pretende mudar paginas...

Protected Enum SearchType As Integer
NotSet = -1
valor = 0
valor1 = 1
End Enum

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Write(SearchType.NotSet)
End Sub

Tuesday, July 04, 2006

Introdução automatica de Código

Há certas funções que uma pessoa precisa e como há tanta coisa para recordar e temos que pesquisar em projectos anteriores para os encontrar, o vb2005 tem uma função que ajuda nessas pequenas funções chamada "insert snippet".

Essas funçoes sao chamadas quando trabalhamos em code-behind, carrega-se no botao direito do rato e seleciona-se "insert snippet", ai teremos um conjunto de funçoes que nos convem utilizar.

Exemplo:

"insert snippet -> Data Types -> convert a string to a byte array" tendo como resultado:

Dim bytes As Byte() = System.Text.Encoding.Unicode.GetBytes("StringToConvert")

Monday, July 03, 2006

Manual de instalação de IPbrick

Estava eu a instalar o Ipbrick num pc qualquer e estava a ver na parte de tras da caixa do CD, olha... algo que pode ajudar... Manual

Criação de Trigger para distinguir fim de semana

A uns tempos atras foi defenido um tempo entre X e Y que inclui o mês inteiro, depois foi pedido para saber quanto dias realmente eram uteis, ou seja a ideia era mesmo pegar no sabado e domingo e esqueçer entao vim com este trigger em SQL server, eheh ajuda sempre....

/*CREATE TRIGGER validadata ON dbo.Agenda
FOR INSERT

AS
/*Na inserção dos dias da operação valida os dias Sabado e domingo nao inserindo*/
declare @DTI as datetime,@DTF as datetime, @codigo as int
select @codigo=AG_COD, @DTI=AG_DI,@DTF=AG_DF from inserted

DECLARE @days int, @dp int , @cnt int,@wkends as int,@tempo as datetime
set @wkends=0
set @cnt=0
set @days=datediff(d,@DTI,@DTF)
set @tempo=@DTI
while @cnt <=@days
begin
set @dp=datepart(dw,dateadd(dw,@cnt,@tempo))
/*1 e 7 é sabado e domingo respectivamente*/
if @dp=2 or @dp=3 or @dp=4 or @dp=5 or @dp=6
begin
set @wkends=@wkends+1
end
set @cnt=@cnt+1
End

Listagem das Fontes

Quando se formata um texto podemos escolher qual a formatação com que este irá ficar, mas como se chama essa função???? Simples atraves deste exemplo podemos listar todas as fontes que existem no pc.

imports system.drawning

Dim oneFontFamily As FontFamily
For Each oneFontFamily In FontFamily.Families
ListBox1.Items.Add(oneFontFamily.Name)
Next

Tuesday, June 27, 2006

Redimensionar uma imagem

As vezes precisavamos trabalhar com imagens e mudar o seu tamanho, devido ao seu tamanho e esta ser pesada, para isso podemos trabalhar com uma imagem, vou demostrar 2 exemplos.
O primeiro será para guardar fisicamente no servido a segunda será para guardar na Base de Dados

1.

'1.1 encontra o nome do ficheiro a fazer upload e transforma em fluxo de informação
Dim ImageStream As Stream = ImageLocation.PostedFile.InputStream

'1.2 transforma esse fluxo numa variavel de imagem
Dim tamanho As System.Drawing.Image = System.Drawing.Image.FromStream(ImageStream)

Dim retorna As System.Drawing.Image.GetThumbnailImageAbort = false

'1.3 indica-se as novas dimensoes da imagem
Dim imagem As System.Drawing.Image = tamanho.GetThumbnailImage(imageWidth, imageHeight, retorna, IntPtr.Zero)

'1.4 guarda a imagem num espaço fisico, com uma extenção .png
retorna.Save(Request.PhysicalApplicationPath + "pics\minhaimagem" , ImageFormat.Png)

'1.5 liberta a memoria reservada no IIS
retorna.Dispose()

2.

'2.1 encontra o nome do ficheiro a fazer upload e transforma em fluxo de informação
Dim ImageStream As Stream = ImageLocation.PostedFile.InputStream

'2.2 transforma esse fluxo numa variavel de imagem
Dim tamanho As System.Drawing.Image = System.Drawing.Image.FromStream(ImageStream)

Dim retorna As System.Drawing.Image.GetThumbnailImageAbort = false

'2.3 indica-se as novas dimensoes da imagem
Dim imagem As System.Drawing.Image = tamanho.GetThumbnailImage(imageWidth, imageHeight, retorna, IntPtr.Zero)

Dim imageS1 As MemoryStream = New MemoryStream

'2.4 associamos a imagem ao fluxo de memoria
thumbNailImg.Save(imageS1, ImageFormat.Png)
Dim idimagem(imageS1.Length) As Byte
imageS1.Position = 0

'2.5 envia para byte o fluxo de informação
imageS1.Read(idimagem, 0, CInt(ImageStream.Length))

Friday, May 26, 2006

Como esconder o nome dos Discos.......

Esta nao sabia, mas agora ja sei.....

1. vai para Start > run > "diskpart".
vai aparecer uma janela com a seguinte descrição.
DISKPART>

2. escreve "list volume"

vai aparece algo do genero:

Volume### Ltr Label Fs Type Size Status Info
-------------- ---- ------ --- ----- ---- ------- -----

Volume 0 F DC-ROM
Volume 1 C NTFS Partition 7000MB Healthy
Volume 2 D soft NTFS Partition 8000MB Healthy
Volume 3 E Porn NTFS Partition 8000MB Healthy


3.Se quiser esconder a drive E entao escreve "select volume 3"

entao vai aparecer na mesma janela { Volume 3 is the selected volume}

4.agora escreve " remove letter E"
agora a mensagem vai aparece{ Diskpart Removed the Drive letter }
as vezes e preciso fazer reboot ao computador.

Diskpart vai remover a letra . Agora o Windows XP nao tem a capacidade de indentificar o disco desconhecido.

Não a necessidade de ter medo, nao havera perda de informação para reparar o nome da drive repete o mesmo processo, mas no passo 4 muda "remove" para "assign"
ou seja escreve " assign letter E"

Ok esta feito, mais um coisa que aprendi.....

Saturday, May 13, 2006

Conexoes a Base de Dados

Estava a ver uma pagina e pensei, é mesmo isto que qualquer um de nos precisa....

Aqui vai o link para realizar conexoes as diversas Base de Dados Conexao Base Dados

Saturday, May 06, 2006

Tratamento e validação de Texto em VB.net

Estava a explorar uns sites e encontrei um site que explica muito bem como se realiza validações, sim aquelas coisas que depois de termos o programa feito temos que fazer :P , em VB.net, aqui fica o site Validacao

Saturday, April 29, 2006

Datagrid dentro Datagrid


Este projecto ainda é do tempo das datagrid e framework 1.0 e tinha como base o desenvolvimento em ASP.NET.

Está situação aconteceu quando estava a chamar documentos relacionados com outros tipo de documentos ....... :P e assim por adiante, utilizei neste exemplo a Base de dados Northwind, ja conhecida por muita gente.

O segredo esta na alteração da nossa datagrid na parte do html.

Criem uma coluna e ponham em ultima posição, depois adicionem uma placeholder tendo visible=false;

Fechem um TR e um TD da datagrid logo a seguir ao placeholder;

criar uma novo TR e TD dentro da TD criar a nova datagrid;

depois de criada e defenida a datagrid fechar o TR e o TD;

fechar o placeholder e pronto esta feito a parte de o html;


CodeBehind:

Tambem é simples porque basta jogar com o placeholder selecionado e activar para true.

Select Case e.CommandName

Case "expand"

Dim Expanded As PlaceHolder = e.Item.FindControl("Expanded")
Dim btnExpand As ImageButton = e.Item.FindControl("imgexpand")
If btnExpand.ImageUrl.Equals("~/image/low.gif") Then
btnExpand.ImageUrl = "~/image/high.gif"
Expanded.Visible = False
Else
btnExpand.ImageUrl = "~/image/low.gif"
Expanded.Visible = True
End If
End Select

e como podem ver.... bastante simple e pratico......

Conexão Excel

A algum tempo atrás precisei de exportar dados de um excel e como o google e nosso amigo, fiz a pesquisa nele, após inumeras horas... exagero 1 ou 2 horitas, encontrei uma conexao que dava perfeitamente para o que pretendia, aqui vai....

Dim conexao_Excel As String = "Provider=Microsoft.Jet.OleDb.4.0;" _
& "data source=c:\Email1.xls;" _
& "Extended Properties=Excel 8.0;"

Para realizar uma select realizei:

da = New OleDbDataAdapter("SELECT * FROM [Email$]", conexao_Excel)

' o "Email$" é o sheet da folha, este select obriga a que a pagina de excel esteja previamente preparada para se poder trabalhar correctamente.

Friday, April 28, 2006

Matar Processos

em vez de fazer crt+ALT+DEL vamos complicar um pouco mais, ora toca a matar processos atraves de codigo para isso utilizei as seguintes linha de codigo....

Dim process As Process
process = System.Diagnostics.Process.GetProcessesByName("processo")(0)
process.Kill()

Win32

Aqui esta um pequeno exemplo de como o win32 nos pode ajudar a visualizar conteudo do nosso PC.

Dim ObjQuery As New Management.SelectQuery("Win32_Process")

' O Array abaixo é para definir quais são as propriedades que queremos obter.
' Mas caso queira pode passar no SelectQuery.
Dim Propriedades() As String = New String() {"Name", "Handle", "ProcessID"}

' Instanciando o objeto de procura para a query
Dim searcher As New Management.ManagementObjectSearcher(ObjQuery)
Dim ObjColecao As Management.ManagementBaseObject
ListBox2.Items.Add("Informações sobre o Processos")
ListBox2.Items.Add("**********************************")
For Each ObjColecao In searcher.Get()
For x As Integer = 0 To Propriedades.Length - 1
ListBox2.Items.Add("- " & Propriedades(x) & " - " & ObjColecao(Propriedades(x)))
Next
ListBox2.Items.Add("**********************************")
Next

Grupos e Utilizadores associados a um ficheiro ou Pasta

Existe maneiras para visualizar os grupos e utilizadores associados a uma pasta ou ficheiro, para isso este codigo ajuda na sua visualização.


Imports System.Management
Imports System.Security.AccessControl
Imports System.Security.Principal

Dim path As String = "caminho da pasta ou ficheiro"

Dim sd As FileSecurity = File.GetAccessControl(path)
For Each ace As FileSystemAccessRule In sd.GetAccessRules(True, True, GetType(NTAccount))
Dim name As NTAccount = CType(ace.IdentityReference, NTAccount)
' onde ira guardar os nomes
ListBox2.Items.Add(name)
Next

Criar shortcuts em .net

Num pensei que uma coisa tão simples que se faz quase todos os dias fosse tão dificil de fazer a nivel de programação, para criar um simples shortcut tive que chamar o control IWshRuntimeLibrary.
O codigo a seguir ira demostrar como se realiza um shortcut

Imports IWshRuntimeLibrary
Dim teste As WshShell = New WshShell
'caminho do desktop
Dim DesktopDir As String = _
CType(teste.SpecialFolders.Item("Desktop"), String)
Dim shortCut As IWshRuntimeLibrary.IWshShortcut
'nome do shortcut
shortCut = CType(teste.CreateShortcut(DesktopDir & _
"\novo.lnk"), _
IWshRuntimeLibrary.IWshShortcut)
With shortCut
.TargetPath = "caminho do shortcut vai ter"
.WindowStyle = 1
.Description = "descrição"
.WorkingDirectory = DesktopDir
.IconLocation = "caminho do ico"
.Save()
End With

Adicionar controls, DLL, OCX etc....

ja tive perguntas que podem parecer idiotas para quem trabalha a algum tempo com .net, uma delas é, "como se adiciona um DLL", bom para responder a essa questão é bastante simples, para isso diriga-se ao quadro da direita do seu visual studio e na opção "solution Explorer" irá ter a opção "References" com o botão direito do rato selecione "add reference" e adicione o .dll pretendido, para adicionar um control no quadro da esquerda "toolbox" e com o botao direito selecione a opção "Choose Items..." adicionando o control que pretende, podera ser em .dll, .ocx etc.....

Autenticação Active directory LDAP

Boas este vai ser o meu primeiro artigo, bom nao sera mesmo artigo é apenas um link mas que irá ajudar muita gente que está a começar a trabalhar com Active directory e LDAP.
Existe um metodo simples facultado pelo msdn2 para validar o utilizador de um servidor através do LDAP, Autenticação pela Active Directory, para isso temos a ajuda né ;).
Nos proximos artigos irei expor outras campos que podem ser visualizados e pelo active directory, fiquem bem.....

.NET

Site com Codigo em .NET para ajudar a resolver aqueles problemas que toda a gente tem.....