domingo, 8 de março de 2015

MVC 3 - Atributo Bind e o método TryUpdateModel

Quem já utiliza o MVC3 sabe que é possível criarmos views tipadas, e isso é ótimo quando os campos contidos nos formulários são referentes a uma única classe.
Mas e quando os valores coletados nos campos são referentes a classes distintas. O que fazer? Neste caso podemos utilizar o atributo Bind junto com o método TryUpdateModel.
Vamos utilizar como exemplo duas classes uma classe Pessoa e uma classe Doenca. Se em um mesmo formulário tivéssemos que pegar o valores de Pessoa e de Doenca a View que contém estes campos não poderia ser tipada pois trata-se de classes distintas. A solução mais comum seria criar uma outra classe que contenha propriedades referentes a Pessoa e a Doenca e tipar a view com essa nova classe.
Mas, existe uma alternativa. Vamos resolver esse problema utilizando o atributo Bind e da classe FormCollection
Crie as classes Pessoa e Doenca conforme exemplo abaixo:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Pessoa
{
    public string Nome {getset; }
    public string Sexo { getset; }
    public string Observacao { getset; }
}
public class Doenca
{
    public string Nome { getset; }
    public string TipoDoenca { getset; }
    public string Observacao { getset; }
}
Insira o seguinte código abaixo na View
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
    @Html.TextBox("Pessoa.nome", "Pessoa")
    <br />
    <text>Masculino</text>
    @Html.RadioButton("Pessoa.sexo", "masculino")
    <br />
    <text>Feminino</text>
    @Html.RadioButton("Pessoa.sexo", "Feminino")
    <br />
    @Html.TextArea("Pessoa.observacao")
    <br />
    @Html.TextBox("Doenca.nome", "Doenca")
    <br />
    <text>Ossea</text>
    @Html.RadioButton("Doenca.tipoDoenca", "ossea")
    <br />
    <text>Cancer</text>
    @Html.RadioButton("Doenca.tipoDoenca", "cancer")
    <br />
    @Html.TextArea("Doenca.observacao")
    <input type="submit" name="submit" value="submeter" />
}
Insira este código no Controller
?
1
2
3
4
5
6
7
8
9
10
[HttpPost]
public ActionResult Index([Bind(Prefix = "Pessoa,Doenca")]FormCollection collection)
{
    Pessoa pessoa = new Pessoa();
    TryUpdateModel(pessoa, "Pessoa", collection.ToValueProvider());
    Doenca doenca = new Doenca();
    TryUpdateModel(doenca, "Doenca",collection.ToValueProvider());
    return View();
}

O detalhe neste código é o parâmetro passado ao método. Como a View não é fortemente tipada estamos utilizando a classa FormCollection para capturar os valores dos campos e o atributo Bind com sua propriedade Prefix.
A propriedade  Prefix associa uma marcação – Campo de formulário com um parâmetro de um método do Controller.
Observe que coloquei os id’s dos campos do formulário da seguinte forma “Prefix.PropriedadeDaClasse“. Analise o seguinte campo:
@Html.TextBox(“Pessoa.nome”, “Pessoa”)
O id deste TextBox é “Pessoa.nome”, ou seja, Pessoa é a string que foi definida na propriedade Prefix e nome é um dos atributos definidos na Classe Pessoa. Adicionando um prefixo é possível saber a qual classe pertence o valor contido no campo do formulário.
O nome após o prefixo deve ser idêntico ao nome da propriedade da classe
Utilizamos o método TryUpdateModel passando os respectivos parâmetros: Objeto, Prefixo e o  Parâmetro do FormCollection seguido do método ToValueProvider.

Perigo de fazer Download

Se por um lado a internet proporciona a você númeras facilidades, por outro, a rede mundial de computadores também é capaz de oferecer diversos riscos aos seus usuários. Para quem opta por fazer downloads ilegais, baixando versões não oficiais de programas, não tem idéia do perigo em que está se aventurando. Talvez até mesmo ache que está tendo algum tipo de vantagem. Mas será que está mesmo?
Veja o grande perigo pro trás de um simples e talvez aparente inocente download de um arquivo, que pode ser um vídeo, uma música, um programa, um documento ou qualquer formato de arquivo.

Abaixo separei alguns cuidados que você deve tomar ao pensar em fazer um download de um programa ou documento.


Localização da hospedagem do arquivo

Não importa o tipo de arquivo que desejamos baixar, ele está localizado fisicamente em um servidor que disponibiliza vários serviços na Internet aos seus cliente.

O grande problema é que muitos desses servidores não possui nenhum controle do que está hospedado neles. Muitos desses arquivos já estão infectados com algum tipo de vírus. E quando baixamos, instalamos ou executamos o download se ele estiver infectado não podemos esprar outra coisa senão nosso computador também ser infectado com esta praga terrível o Vírus de Computador.

Como se proteger?

Procure baixar seus programas sempre utilizando sites de empresas que tem uma marca ou um nome a zelar. Por exemplo: Microsoft, HP, DEL, e assim por diante.

Evite usar sites que procuram ou tentam facilitar a vida dos usuários, o qual embora possuam uma lista variada de aplicativos, poderá causar a você uma enorme dor de cabeça.


Perigo de baixar versão não oficial de programa

Os aplicativos que escondem vírus não são novidade, pois há anos essa prática é acontece na internet. Um dos primeiros casos de vírus disfarçados, de acordo com o Gdata,  foi o do Amiga Virus F. Ele vinha disfarçado de um programa para testes de modem e ao ser executado, o HD era sobrescrito com uma palavra de baixo calão em inglês. 

De acordo com o PandaLabs, quase 12% de todos os computadores do país estão infectados com algum tipo de malware. Além disso, 52,02% de todas as máquinas possuem alguns vírus, porém eles não estão ativos.

Quando se fala em sistemas operacionais, o cuidado precisa ser ainda maior, pois há casos em que o malware está imbutido no código do SO. Por isso, os antivírus não conseguem identificá-lo e o próprio sistema "mexido", pode começar a consumir banda em excesso, enviar spam ou malwares, ou seja, você faz a instalção, se previne com antivírus, mas o problema vem do próprio sistema. 

Além dos riscos eminentes de vírus, aplicativos suspeitos, versões beta, programas modificados ou piratas, baixados via Torrent ou sites de hospedagem de reputação duvidosa, podem vir acompanhados de keyloggers– programas maliciosos que captam tudo o que é digitado no teclado, especialmente senhas

Além dos aplicativos, filmes, músicas, jogos e todo o tipo de arquivo, podem conter malwares disfarçados, portanto sempre mantenha seu antivírus atualizado.

Apesar de oferecer muitas facilidades, a internet é cheia de armadilhas, por isso, ficar ligado em tudo é uma das formas de nunca ser enganado. Desconfiar de tudo é uma das melhores táticas para não ser pego de surpresa por keyloggers, antivírus falsos e malwares em geral.

Tome cuidado com ofertas tentadoras ou mensagens com conteúdo muito apelativo. Elas certamente trarão problemas. Manter um site confiável para baixar aplicativos, manter o antivírus atualizado e cuidar onde clica, são ações que garantem uma  margem de segurança em sua navegação.


quarta-feira, 31 de dezembro de 2014

ASP.NET MVC - Controller

Esta pasta contém todas as classes de controlador responsável pela manipulação das requisições feitas pelo usuário. 

Por padrão ao definir um nome de classe controlador, utilizamos o sufixo Controller. Neste caso, se desejamos criar um controle Cliente o seu nome será ClienteController.cs

No entanto, existe uma diferença entre a forma que um controlador mapeia uma URL. Por exemplo: uma requisição "http://www.teste.com/default.aspx" irá mapear diretamente o arquivo "default.aspx" no diretório raiz do servidor. Entretanto, o framework MVC mapeia URLs para métodos. este métodos estão contidos nas classes de controladores.  

Se desejar saber mais envie um email para aspnetwf@gmail.com