O ASP.Net é a nova versão de Active Server Pages, desenvolvida pela Microsoft. Nessa arquitetura, todos os aplicativos (inclusive os do Office) são desenvolvidos em cima de módulos chamados de "assemblies", que são semi-compilados.
Na hora da execução dos módulos (assemblies), a compilação é completada por um software chamado (CLR) Common Language Runtime.
Esse software CLR não roda apenas sob Windows. Dessa forma é possível ter ASP.Net para Linux, Solaris e outros sistemas operacionais. Outra característica é que uma aplicação pode ser desenvolvida com linguagens que tenham as sintaxes de VB, Delphi, PERL, Visual C++, COBOL entre outras.
Todas elas usam a mesma biblioteca chamada ".NET Base Class Library" onde há recursos para acessar base de dados, criação de interfaces gráficas para o usuário e até mesmo a criação de páginas dinâmicas para Internet (o que era chamado de ASP).
-------------------------------------------------------------------------------------------------
O ASP.Net não vem habilitada por padrão nos planos de Hospedagem ASP
Você pode solicitar a ativação gratuitamente através do formulário de suporte
-------------------------------------------------------------------------------------------------
Abaixo, seguem alguns exemplos do que pode ser feito com o ASP.Net.
Antes, uma explicação sobre um arquivo importante, chamado web.config:
O web.config serve para configurar sua aplicação de diversas formas. Você deve criar e colocar esse arquivo no diretório WWW de sua conta.
1) Configurar elementos de segurança (autenticação, autorização)
No exemplo acima é criada uma propriedade chamada nomeBanco com o valor já definido, chamado CreativeHost.
No código da página ASP.Net, o valor é obtido através do comando: ConfigurationSettings.AppSettings("nomeBanco")
ASP.Net e Bancos de Dados:
Abaixo há exemplos de conexão a SQL Server, a MS-Access e a banco de dados com DSN, respectivamente.
SQL:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQLClient" %>
<html>
<head>
<title>Exemplo de conexão com base de dados SQL com ADO.NET</title>
<script language="vb" runat="server">
Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim objConn as New SQLConnection("Server=xxx;Database=xxx;UID=xxx;PWD=xxx;")
objConn.Open
Dim strSQL as String = "select * from xxx"
Dim dCommand as New SQLCommand(strSQL, objConn)
Dim dReader as SQLDataReader
dReader = dCommand.ExecuteReader(CommandBehavior.CloseConnection)
dGrid.DataSource = dReader
dGrid.DataBind()
objConn.Close()
dReader.Close()
End Sub
</script>
</head>
<body>
<p><asp:DataGrid ID="dGrid" Runat="server" /></p>
</body>
</html>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<head>
MS-Access:
<title>Exemplo de conexão a um banco de dados Access com ADO.NET</title>
<script language="vb" runat="server">
Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim objConn as New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;uid=xxx;pwd=xxx;data source=" & server.mappath("xxx.mdb"))
objConn.Open
Dim strSQL as String = "select * from xxx"
Dim dCommand as New OleDbCommand(strSQL, objConn)
Dim dReader
dReader = dCommand.ExecuteReader()
dRepeater.DataSource=dReader
dRepeater.DataBind()
dReader.Close()
objConn.Close()
End Sub
</script>
</head>
<body>
<form runat="server">
<asp:Repeater id="dRepeater" runat="server">
<HeaderTemplate> <table border="1" width="100%">
<tr>
<th>Test Field 1</th>
<th>Test Field 2</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Container.DataItem("testfield1")%></td>
<td><%#Container.DataItem("testfield2")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>
</body>
</html>
DSN:
<%@ Page CompilerOptions='/R:"C:\Caminho_Para_o_arquivo_ODBC_do_.Net\
Microsoft.NET\Odbc.Net\Microsoft.data.odbc.dll"'%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="Microsoft.Data.Odbc" %>
<HTML>
<HEAD>
<script language="vb" runat="server">
Sub Page_Load(Source as object, e as EventArgs)
Dim sConString As String = "DSN=Nome_do_DSN;UID=;PWD=;"
Dim oConnection as ODBCConnection = new ODBCConnection(sConString)
Dim sSQL as String = "select TOP 30 * from tabela_teste"
Dim oDataAdapter as ODBCDataAdapter = New ODBCDataAdapter(sSQL, oConnection)
Dim oDataSet as DataSet = new DataSet()
oDataAdapter.Fill(oDataSet)
oDataGrid.DataSource = oDataSet
oDataGrid.DataBind()
End Sub
</script>
</head>
<body><ASP:DataGrid ID="oDataGrid" Runat="server" /></BODY>
</HTML>
ASP.Net e Upload de arquivos:
Abaixo, segue um exemplo de um arquivo com a extensão .aspx, que contém a lógica da programação. Também mostramos o arquivo web.config.
ASPx:
<%@ Import namespace="System.IO"%>
<html>
<head>
<title>Exemplo de Upload de Arquivo</title>
<script language="VB" runat="server">
Dim savePath As String = "d:\web\seulogin\www\upload\"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' O item Upload_Click handler primeiro se certifica de que a propriedade PostedFile de
' HtmlInputFile está setada como não sendo "Nothing" e obtém o nome do arquivo, o content
' type e o content length. Ele compara o arquivo propriamente dito com os atributos antes de
' fazer o upload.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Upload_Click(source As Object, e As EventArgs)
If Not (uploadedFile.PostedFile Is Nothing) Then
Try
Dim postedFile = uploadedFile.PostedFile
Dim filename As String = Path.GetFileName(postedFile.FileName)
Dim contentType As String = postedFile.ContentType
Dim contentLength As Integer = postedFile.ContentLength
' Logo na linha de baixo permitimos arquivos que estejam somente no formato BMP para
' serem salvos no diretório de FTP. Você pode especificar outros formatos também.
if ContentType = "image/bmp" then
' Abaixo, setamos o limite de tamanho para menos de 2.000 Kbytes
if contentLength < 2000 then
' Faz upload do arquivo
postedFile.SaveAs(savePath & filename)
' Finaliza o upload com uma mensagem de sucesso
message.Text = "SUCESSO: " & filename & " uploaded<br>content type: " & contentType & "<br>content length: " & contentLength.ToString()
else
message.Text = "ERRO: O tamanho máximo deve ser de 2Mb."
end if
else
message.Text = "ERRO: Somente arquivos .BMP são permitidos"
end if
' Algum outro tipo de erro ocorreu: confira o caminho do diretório onde os arquivos deverão
' ser adicionados, permissões de gravação, etc.
Catch exc As Exception
message.Text = "ERRO: Falha ao subir o arquivo."
End Try
End If
End Sub
</script>
</head>
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Formulário de upload
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<body>
<form enctype="multipart/form-data" runat="server">
' Chamamos de "uploadedFile" abaixo, para o .Net obter o arquivo para upload.
Selecione o arquivo para upload: <input id="uploadedFile" type="file" runat="server">
' Botão de "submit" para o upload.
<p><input type=button id="upload" value="Upload" OnServerClick="Upload_Click" runat="server">
' Abaixo, um controle para mostrar mensagens vindas do gerenciador de eventos.
<p><asp:Label id="message" runat="server"/>
</form>
</body>
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
</html>
web.config:
O arquivo deve conter na seção de configuração o seguinte parâmetro:
ASP.Net e Envio de e-mails:
Abaixo, segue um exemplo de como o ASP.Net pode enviar e-mails. O exemplo inclui manipulação de headers (cabeçalhos), envio de múltiplos arquivos anexados e utilização de servidores de SMTP externos.
<%@ Page Language="VB" Debug="true" %>
<% @Import Namespace="System.Web.Mail" %>
<%
Dim obj As System.Web.Mail.SmtpMail
Dim Attachment As System.Web.Mail.MailAttachment
Dim Mailmsg As New System.Web.Mail.MailMessage()
obj.SmtpServer = "smtp.seudominio.com.br"
Mailmsg.To = "nome@outrodominio.com.br"
Mailmsg.From = "Test <nome@seudominio.com.br>"
Mailmsg.Subject = "Envio de e-mails via .NET"
' Cabeçalhos customizados podem ser tratados da seguinte forma:
Mailmsg.Headers.Add("Reply-To", "outronome@seudominio.com.br")
Mailmsg.Headers.Add("Code123", "Value123")
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Aplicação de exemplo que usa o System.Web.Mail do .Net para enviar mensagens
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ...E-mail em formato de texto
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Mailmsg.BodyFormat = MailFormat.Text
Mailmsg.Body = "<h1>TESTE EM FORMATO TEXTO</h1> Você deve estar vendo somente texto nessa mensagem de teste."
obj.Send(Mailmsg)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ...E-mail em formato HTML
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Mailmsg.BodyFormat = MailFormat.Html
Mailmsg.Body = "<h1>TESTE HTML TEST</h1> Você deve estar vendo a mensagem em formato HTML."
obj.Send(Mailmsg)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ...E-mail com arquivos anexos
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Attachment = New MailAttachment("d:\web\seulogin\www\teste1.html")
Mailmsg.Attachments.Add(Attachment)
Attachment = New MailAttachment("d:\web\seulogin\www\teste2.html")
Mailmsg.Attachments.Add(Attachment)
Attachment = New MailAttachment("d:\web\seulogin\www\teste1.jpg")
Mailmsg.Attachments.Add(Attachment)
Mailmsg.BodyFormat = MailFormat.Text
Mailmsg.Body = "Attachement Test - Você deve receber nesta mensagem 3 arquivos anexos."
obj.Send(Mailmsg)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' NOTA: Qualquer tentativa de sobrecarregar o método "Send" não retornarão um
' valor indicando sucesso no envio. Para o .NET, os e-mails são simplesmente gravados
' no diretório "Pickup" do servidor, de onde são lidos e enviados pelo serviço de SMTP
' do servidor. E-mails com erro são tratados do mesmo jeito, mas gravados no diretório
' "Badmail" de c:/inetpub/mailroot.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
response.write("Email Enviado.")
%>
ASP.Net e arquivos XML O exemplo abaixo vai ler um arquivo XML chamado products.xml