Faculty Connection Experience com novo conteúdo para professores

Faculty Connection

A área acadêmica da Microsoft disponibiliza aos professores de todo o Brasil um conjunto de vídeos com aulas conceituais sobre as tecnologias Microsoft. Este conteúdo pode ser usado pelo professor para complementar a teoria apresentada em sala de aula. A maior parte destes vídeos foi desenvolvido por professores de renomadas instituições, como USP e UNESP. A lista completa dos cursos está disponível no Faculty Connection Experience!

Anúncios

expressões regulares

1. O que são expressões regulares?

Trata-se de um método formal para se especificar um padrão de texto.
O uso de expressões regulares na computação é abundante e praticamente
pré-histórico. Isto se deve pela facilidade de se fazer comparações, a fim de achar
uma dada palavra (ou parte dela) em um texto.

2. Aplicações

Quando, em um SO de modo texto, deseja-se listar todos os arquivos começados por J
em um determinado diretório, basta fazer:

ls J* (unix like) ou
dir J* (dos)

Neste caso, o uso do caractere * dá-se de forma especial, significando “qualquer
cadeia de caractere (String)”. Assim serão mostrados arquivos como:

Java.txt;
JavaFree.rox;
JavaDetona.net;
Entre outros começados com J.

Chamamos J*, então, de expressão regular.
Como esse exemplo, existem centenas de aplicações onde as expressões regulares
poupam um bom trabalho na implementação.

Para fim de exemplo didático, será mostrado um código simples para validar endereços
de email (hello world das expressões regulares :D).

3. Gramática das Expressões Regulares

Antes do exemplo, porém, seria de bom tom o conhecimento dos caracteres especiais
usados em expressões regulares. Apesar de ser um assunto extenso, será abordado
somente alguns dos caracteres especiais mais usados e aceitos pela API do Java, a
saber: [\^]?*+-.

*
Qualquer cadeia de caractere.

Expressão Regular: J*Free // Qualquer coisa que comece com J e termine com Free

String comparada: JavaFree
String válida: sim

String comparada: JavaPago
String válida: não

[ ]
Um dos elementos do conjunto

Expressão Regular: [rgp]ato // Qualquer palavra com a primeira letra sendo ou ‘r’ ou
‘g’ ou ‘p’, e as letras seguintes sendo “ato”

String comparada: pato
String válida: sim

String comparada: gato
String válida: sim

String comparada: xato
String válida: não

^
Exclusão

Expressão Regular: [^rgp]ato // Qualquer palavra cuja primeira letra NÃO é ‘r’ nem
‘g’ nem ‘p’, sendo “ato” o resto da palavra

String comparada: rato
String válida: não

String comparada: xato
String válida: sim


Intervalo

Expressão Regular: [H-L]avaFree // A primeira letra da palavra deve está entre H e L
(inclusive H e L)

String comparada: JavaFree
String válida: sim

String comparada: RavaFree
String válida: não

.
Qualquer caractere

Expressão Regular: JavaFre.

String comparada: JavaFree
String válida: sim

\
Classe de caracteres pré-definidos. São eles:

\d : Um dígito,
\D : Algo que não seja um dígito,
\s : Um espaço em branco,
\S : Algo que não seja um espaço em branco,
\w : Qualquer letra, dígito ou underscore ( _ )
\W : Algo que não seja letra, dígito ou underscore

Expressão regular: \wJavaFree\s200\d\w

String comparada: _JavaFree 2004_
String válida: sim
?
Uma ou nenhuma vez, assim como ‘*’, ‘?’ é um elemento quantificador.

Expressão regular: a? // Uma ou nenhuma ocorrência de ‘a’

String comparada:
String válida: sim

String comparada: a
String válida: sim

+
Uma ou mais vezes, assim como ‘*’ e ‘?’, é um elemento [i]quantificador[i].

Expressão regular: a+ // Uma ou mais ocorrências de ‘a’

String comparada:
String válida: não

String comparada: aaa
String válida: sim

ASP.NET MVC

Vou colocar alguns links sobre o MVC no ASP.NET que achei interessantes.
MVC no ASP.NET
http://www.asp.net/mvc
MVC na Wikipedia
http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework

MVC .NET
Esse video muito é interessante porque explica de forma simples o funcionamento do MVC no .NET
http://www.asp.net/learn/mvc-videos/video-395.aspx

MVC com Repository Pattern
http://www.asp.net/learn/mvc-videos/video-403.aspx

Pipes e Filtros usando TDD
http://www.asp.net/learn/mvc-videos/video-352.aspx

Form Posting Scenarios
Um dos artigos mais completos sobre utilização de formulários e captura de informações usando MVC
http://weblogs.asp.net/scottgu/archive/2008/09/02/asp-net-mvc-previ…

Incluindo validação nos campos de um formulário
http://www.asp.net/learn/mvc-videos/video-423.aspx

Microsoft DreamSpark – Software profissional grátis para os estudantes

A Microsoft lançou um programa “novo” de oferta de software profissional a todos os estudantes.

Para aderir a este programa basta fazer login com a conta live, registar, dizer em que escola e país é que estudam. Depois disso a Microsoft confirma que são alunos dessa escola e disponibiliza as versões profissionais gratuitamente.

Exemplos de Software incluídos neste programa:

  • Visual Studio 2005 Professional Edition
  • Studio 2008 Professional Edition
  • XNA Game Studio 2.0
  • Expression Studio
  • SQL Server 2005
  • Windows Server

Ou seja incluem tudo o que é necessário para um profissional deste área, grátis para todos os estudantes. Com este programa a Microsoft aposta numa adopção em grande escala das suas ferramentas de desenvolvimento, pelos profissionais de amanhã.

mais informações:
https://www.dreamspark.com/default.aspx

Gravando no arquivo web.config

Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(“~”);

ConnectionStringsSection dbConnString = webConfig.ConnectionStrings;

//Alterando
dbConnString.ConnectionStrings[“GUSMAO”].ConnectionString = “TAY,BRUNO,LUIZ”;

//Adicionando
dbConnString.ConnectionStrings.Add(new ConnectionStringSettings(“LERO”, “ConnString”, “System.Data.OleDb”));

Criando NameSpaces no JavaScript

Criar NameSpaces no JavasCript é relativamente simples, segue o exemplo:

var Empresa = {};

Empresa.Servicos = {};

Empresa.Servicos.Validacao = function() { // code };

Empresa.Servicos.Validacao.prototype.toString = function() { // code };

var validacao = new Empresa.Servicos.Validacao();

validacao.toString();

Declaração de Classes

Criar classes com ou sem framerworks é um problema ?

Porque não unir o melhor dos dois mundos ?

Uso bastante o “Class.create” do Prototype,  no entanto em meus estudos, notei que o Visual Studio 2005 e 2008  perdemos o intellessence dos métodos das classes criadas pelo Class.create.

Quando estamos trabalhando com uma ou duas classes de pequeno, até que não vejo problema.  Mas imaginem o cenário com 5 ou mais classes com 1000 linhas, cheia de herança e você se vendo procurando métodos… “pesadelo?”

Nesses casos o intelessence quebra um galhão!

Segue um pequeno exemplo para criar classes com herança usando os recursos do Prototype e que pode ser capturado pelo intellessence do Visual Studio.

Code:
function Cores(elemento)
{
this.Elemento = elemento;
this.Cor= “”;
}
Cores.prototype.Mudar = function(cor)
{
$(this.Elemento).style.backgroundColor =cor;
this.Cor = cor;
}
function CaixasColoridas(elemento)
{
Cores.apply(this);
this.Elemento = elemento;
}
//Herança
CaixasColoridas.prototype = new Cores;

Exemplo de classe

Exemplo de classe