Mostrando postagens com marcador MVC. Mostrar todas as postagens
Mostrando postagens com marcador MVC. Mostrar todas as postagens

segunda-feira, 22 de abril de 2013

Snippet

Snippet ou Fragmento de Código é a forma de invocar códigos pré-estabelecidos pelo desenvolvedor em qualquer parte do sistema.

O Visual Studio já vem com diversos snippet  e um bom exemplo de um snippet que já existe no Visual Studio é o for.

Qualquer palavra que se digita no Visual Studio ele te mostra as possibilidades, algumas delas contém uma descrição dizendo que pode se invocar um snippet. Como no exemplo abaixo: 


É só pressionar duas vezes a tecla TAB que o snippet será invocado. O resultado é o seguinte:

No exemplo acima o Visual Studio adicionou a estrutura do for ao código.
O mesmo acontece com outras palavras, como  foreach, if, switch, etc.

Você pode criar o seu próprio snippet. O Snippet é um arquivo Xml e tem a seguinte estrutura:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
       <CodeSnippet Format="1.0.0">
             <Header>
                    <Title>Exemplo snippet</Title>
                    <Shortcut>exemplo</Shortcut>
                    <Description>Esse código adiciona for, if, while e foreach</Description>
                    <Author>Celso Zequim</Author>
                    <SnippetTypes>
                           <SnippetType>Expansion</SnippetType>
                           <SnippetType>SurroundsWith</SnippetType>
                    </SnippetTypes>
             </Header>
             <Snippet>
              <Declarations>
                     <Literal>
                           <ID>indice</ID>
                           <Default>i</Default>
                           <ToolTip>Indice</ToolTip>
                    </Literal>
                    <Literal>
                           <ID>maximo</ID>
                           <Default>Max</Default>
                            <ToolTip>Máximo Permitido</ToolTip>
                     </Literal>
        <Literal>
        <ID>valor</ID>
                            <Default>valor</Default>
        <ToolTip>Valor para comparação</ToolTip>
        </Literal>
        <Literal>
          <ID>Condicao</ID>
          <Default>condicao</Default>
          <ToolTip>Valor do switch</ToolTip>
        </Literal>
             </Declarations>
             <Code Language="csharp">
        <![CDATA[for (int $indice$ = 0; $indice$ < $maximo$; $indice$++)
                    {
                    $selected$ $end$
                    }
     
      if($valor$ == "")
                    {
                   
                    }
     
        switch ($Condicao$)
            {
                default:
            }
      ]]>
                    </Code>
             </Snippet>
       </CodeSnippet>
</CodeSnippets>

  • Header – Representa as informações exibidas no memento que se posicionar sobre a palavra de atalho,
  • Declarations – Local onde as variáveis que serão utilizadas no código deverão ser declaradas.
  • Code – Qual é o código que será impresso no momento em que o desenvolvedor invocar o snippet.

Repare que existe um código dentro do for, “$selected$ $end$”, esse código indica ao Visual Studio o local que o cursor deverá ficar assim que o desenvolvedor terminar de preencher as variáveis solicitadas.

Salve esse arquivo com a extensão “snippet”, no meu caso eu estou salvando como “exemplo.snippet”.  vá até o menu Tools e clique na opção “Code Snippets Manager”.

A seguinte janela será exibida:

Clique no botão Import e localize o arquivo que deseja importar. No meu caso é o “exemplo.snippet”.
Feito isso é só digitar em algum trecho de código o comando que você colocou em “Shortcut”, no meu caso é a palavra “exemplo”

 Note que quando posicionar sobre a palavra do seu Snippet, o Visual Studio irá lhe exibir as informações que você inseriu no Header e ao pressionar duas vezes a tecla TAB, o resultado será a seguinte:

        static void Main(string[] args)
        {

            for (int i = 0; i < Max; i++)
            {
               
            }

            if (valor == "")
            {

            }

            switch (condicao)
            {
                default:
            }
     
     
        }



Você pode usar o Snippet para adicionar qualquer código de forma rápida.


sexta-feira, 19 de abril de 2013

WindowsForms - básico do Básico


WindowsForms nada mais é do que você desenvolver uma aplicação que ficará instalada diretamente no desktop do usuário. Essa aplicação só “funcionará” em ambientes com sistema operacional Windows. Porém existem algumas formas de se emular essa aplicação em outros sistemas, como Mac O.S e Linux por exemplo.

Na tela New Project, adicione um projeto do tipo “Windows” e escolha a opção Windows Forms Application.  Como no exemplo abaixo:

 Ao criar o projeto a tela apresentada será essa abaixo:


O desenvolvimento de WindowsForms segue a mesma linha do desenvolvimento Web. Temos as guias:
  • ToolBox  - onde estão os controles disponíveis para utilização
  • DataSources – Local onde é possível criar e gerenciar um banco de dados
  • Solution Explorer – Representa a estrutura do seu projeto, arquivos, referências, etc.
  • Properties – local onde é possível alterar a uma propriedade especifica de um controle, de um form ou até mesmo criar um evento para uma ação.
  • Server Explorer – local onde você pode criar uma conexão com um banco de dados já existente


Sempre que criar um novo projeto, por padrão, um formulário é criado. Nesse caso o From1. O formulário é o local onde os controles serão apresentados para o usuário final.

Por exemplo, vou selecionar na ToolBox o controle TextBox e arrastar para o formulário e pressionar o F5 para executar. Veja abaixo:



No exemplo abaixo eu vou demonstrar como utilizar os controles mais básicos do WindowsForm.

Utilizando o mesmo formulário, vou adicionar um controle do tipo Button. E na guia de propriedades vou alterar a propriedade Text para “OK” e a propriedade Name para “BtnOK”.  Teremos a seguinte tela:




Agora vou dar um duplo click sobre o botão.  E o Visual Studio(VS) direciona para a o arquivo Form1.cs, local onde é feita toda a programação do formulário.  Por padrão o C# sempre cria o construtor padrão do formulário. Como no exemplo abaixo:

public Form1()
{
    InitializeComponent();
}

Mas ao dar o duplo click no botão “BtnOK” o VS adiciona o seguinte evento ao código
private void BtnOK_Click(object sender, EventArgs e)
{

}

Sempre que o usuário clicar no botão ok, esse evento será invocado.
Vou alterar esse evento  e adicionar o seguinte código:
private void BtnOK_Click(object sender, EventArgs e)
{
    MessageBox.Show(textBox1.Text);
}


Nesse código acima eu estou dizendo para o sistema exibir uma caixa de mensagem, para o usuário final, com o conteúdo do campo de texto.

Ao pressionar F5, digite um valor na caixa de texto e click em ok. Veja o resultado:

 No exemplo abaixo eu vou adicionar dois campos de texto, TextBox1 e TextBox2. Com o valor digitado pelo usuário eu vou realizar uma soma e imprimir o resultado na tela. Veja abaixo como ficou a tela:





Vou dar um duplo click no botão ok e colocar o código abaixo:
double x =0;
double y = 0;
double resultado = 0;
if(double.TryParse(textBox1.Text,out x) && double.TryParse(textBox2.Text, out y))
{
    resultado = x + y;
    MessageBox.Show(resultado.ToString());
}

No código acima eu converto o valor digitado no TextBox1 para Double, pois originalmente ele é uma string e não é possível realizar cálculos com texto. O mesmo foi feito para o TextBox2.  Na variável resultado  atribui o resultado da soma dos dois campos e exibi para o usuário final.
Ao executar o projeto e preencher os campos ao clicar no botão ok o resultado é o seguinte:


Para identificar cada campo podemos utilizar o controle tipo Label. Alterando a propriedade nome. No exemplo abaixo eu adicionei dois títulos, um para o valor X e outro para o valor Y. Veja o Exemplo:



Esse é um exemplo bem simples e para quem esta começando.
Em breve vou colocar um outro exemplo mais completo. 

sexta-feira, 12 de abril de 2013

Criptografar senha

Aqui vai uma dica de como criptografar uma senha.

Eu particularmente utilizo um método um pouco peculiar mas que já vi várias pessoas utilizando.
No exemplo abaixo eu concateno  usuário e senha criando um Hash com essa informação. veja o exemplo:


using System.Security.Cryptography;


public static string AcertaSenha(string _login, string _senha)
{
    StringBuilder senha = new StringBuilder();

    MD5 md5 = MD5.Create();
    byte[] entrada = Encoding.ASCII.GetBytes(_login + "//" + _senha);
    byte[] hash = md5.ComputeHash(entrada);
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < hash.Length; i++)
    {
senha.Append(hash[i].ToString("X2"));
    }
    return senha.ToString();
}

Se eu passar o usuário "celso" e a senha "12345" o resultado será:
321F8F2C95B3AE3F5B9DAD4B58CF1819

em outra situação, se eu passar o usuário "CELSO" e a senha "12345" o resultado será:
5B105E94EB8276DB9738A92AFF8A490F


:)

sexta-feira, 5 de abril de 2013

MVC 4.0 - Como Utilizar


O MVC (Model-View-Controller ou Modelo-Visão-Controlador) nada mais é que separar o desenvolvimento em camadas.
São três:

  •  Model - Representa os dados;
  •  View - Representa a visualização dos dados;
  •  Controller - Manipula requisições dos usuários.


Para criar um projeto utilizando MVC é simples.
*Para os exemplos que seguem, vou utilizar o Visual Studio 2012. Disponível no link "Install Visual Studio Express 2012 for Web"

Abra o Visual Studio e clique em New Project


 A janela a seguir será exibida. Selecione o item ASP.NET MVC 4 Web Application, localizado dentro de Web. Vou dar o nome do projeto como ExemploMVC.


Após o Visual Studio criar o projeto, a estrutura será essa, como na imagem abaixo:

 Se você pressionar F5, o projeto compilará e exibirá a seguinte janela:
Essa página é um controller padrão criado como exemplo.

Para criar um novo Controller é simples, clique com o botão direito sobre a pasta Controllers e vá em “Add->Controller...”

Vou dar o nome do controle como sendo “Exemplo”, veja na imagem abaixo:


Essa é a estrutura padrão de um controle:





Eu vou modificar o retorno do método Index para facilitar a demonstração:
public class ExemploController : Controller
{

public string Index()
{
return "Exemplo MVC";
}

}

Ao pressionar F5 e chamar o controle na url, veja o resultado:

Eu posso criar outros métodos, veja o exemplo abaixo:
public string nome(string valor)
        {
            return "Nome:" + valor;
        }
Nesse exemplo o método nome irá imprimir na tela o valor passado pelo usuário. Veja o resultado





Para adicionar uma View a esse controle é muito simples, primeiro você deve dizer que seu método irá retornar uma view. Como abaixo:
public ActionResult ExemploView()
        {
            return View();
        }

Após criar o método, clique com o botão direito dentro do método e clique em Add View, como no exemplo abaixo:



A janela a seguir será exibida, é interessante utilizar o mesmo nome do método para a View, isso ajuda na manutenção.


Na guia “Solution Explorer” é possível visualizar o local onde a View foi criada. Veja na imagem abaixo:




O conteúdo padrão do arquivo ExemploView.cshtml é o abaixo:
@{
    ViewBag.Title = "ExemploView";
}

<h2>ExemploView</h2>

Ao executar e chamar o controle exemplo e o método ExemploView, veja o resultado. A propriedade ViewBag.Title é responsável pelo texto exibido na barra de títulos.


 Para passar um parâmetro digitado pelo usuário do controller para a view é muito simples, veja o exemplo:
public ActionResult ExemploView(string nome)
        {
ViewBag.texto = "Olá " + nome;           
return View();
        }
Você deve criar um método que receba esse valor, no exemplo acima é uma string, nome.

Existe um controle dinâmico da view que é construído com o nome que você quiser. Nesse exemplo eu criei uma propriedade com o nome texto e disse que ela tem o valor “Olá  “ concatenado com o valor digitado pelo usuário.

No arquivo ExemploView.cshtml eu tenho que dizer que essa informação será exibida.
@{
    ViewBag.Title = "ExemploView";
}

<h2>ExemploView</h2>

@ViewBag.texto

Pressione F5 para ver o resultado:

Para adicionar um Model e trabalhar com esse tipo de camada é mais simples ainda.  Clique com o botão direito sobre o item Models e depois vá em Add-> Class



Adicionei uma classe com o nome de produto e inclui os itens: id, nome, tipo e valor.
public class produto
    {
        public int ID { get; set; }
        public string nome { get; set; }
        public string tipo { get; set; }
        public decimal valor { get; set; }
    }

Para criar um controle utilizando essa classe será necessário criar um DbContext apontando para ela. Veja o exemplo:

    public class ProdutoContexto : DbContext
    {
        public DbSet<produto> produtos { get; set; }
    }

Agora é necessário criar um controle apontando para essa classe. Veja abaixo:



No exemplo acima eu criei o controle com o nome de produto e em template disse que ele terá leitura, escrita e uma camada view.
Apontei para o model produto que criamos anteriormente e o contexto que foi criado dentro desse model. 


Pressione F5 e chame o controle na URL.  Como no exemplo abaixo:

Ao clicar no link Create New a tela a seguir será exibida:



Preencha os campos, clique em gravar e veja o resultado.

Essas informações ficam gravadas na memória, pois o Model esta apontando para o um objeto e não para o banco de dados.

Em principio eu tive um pouco de trabalho para entender como funcionava o MVC,  agora tudo ficou mais fácil e ágil.

Estou trabalhando com MVC junto com LINQ, é sensacional. Vale a pena tentar.
Em breve vou postar um exemplo utilizando com LINQ.

Utilizei como referência a própria documentação do Visual Studio e também o site http://www.asp.net/mvc