RSS

Mudança de domínio e desativação deste Blog

Pessoal,

Informo aqui que a partir de hoje não estarei dando continuidade com este blog !!!!! Mas calma, ESTAREI CONTINUANDO com o mesmo no endereço http://www.rafaelzaccanini.net

Como vocês devem saber, este é um blog gratuito do wordpress e possui suas limitações. Sendo assim, a partir de hoje estarei dando continuidade porém em um ambiente hospedado e com muito mais recursos. :)

Estarei também encerrando as respostas, dúvidas  e comentários enviados a partir deste endereço, portanto para tais recursos utilize o endereço http://www.rafaelzaccanini.net

Peço que as pessoas que possuem assinaturas para RSS façam novamente a partir do novo endereço.

Espero a compreensão de todos.

Abraços ;)

 

 

 

 

Linq to SQL – Conceitos Avançados ( Parte 5 ) – Utilizando Compiled Query

Nesta quinta parte da série estarei falando sobre o uso de uma técnica muito produtiva e padronizada para a compilação de consultas chamado Compiled Query.

É muito comum em diversos sistemas a execução da mesma consulta diversas vezes por diversos usuários, porém, além de bastante improdutivo a repetição destas queries existe o fato da “perca” de desempenho em run-time. Isto devido ao fato que uma série de procedimentos e rotinas internas ocorrem para realizar a transformação destas queries para T-SQL, uma vez repetindo a mesma diversas vezes na aplicação, diversas vezes estes procedimentos internos irão ocorrer. Read the rest of this entry »

 
Leave a comment

Publicado por em 20/12/2011 em Linq

 

Tags: , , , ,

Linq to SQL – Conceitos Avançados (Parte 4) – Escrevendo diretamente com SQL

Nesta quarta parte da série demonstrarei como podemos realizar consultas e chamadas com SQL diretamente utilizando Linq.

Visando que o Linq to SQL faz parte do pacote de tecnologias ADO.NET e seus serviços são prestados pelo modelo do provedor ADO.NET, isto torna possível juntar Linq to SQL com ADO.NET. Um exemplo claro, é possível criar uma nova instância de um DataContext utilizando uma conexão ADO.NET existente.

Em alguns casos pode ser que a consulta a ser realizada, ou a query a ser executada sejam muito específicas. Nestes casos é possível utilizar os métodos ExecuteCommand e ExecuteQuery para que comandos SQL sejam executados diretamente em seu banco de dados a partir de seu DataContext.

Read the rest of this entry »

 
Leave a comment

Publicado por em 06/12/2011 em Linq

 

Tags: , , , ,

Linq to SQL – Conceitos Avançados (Parte 3) – Trabalhando com Stored Procedures complexas

 

Nesta terceira parte da série sobre Linq to SQL demonstrarei como trabalhar com Stored Procedures complexas.

Como esta é a última parte da série onde falarei sobre Stored Procedures, é muito interessante a leitura do artigo anterior onde falo sobre como trabalhar com procedures simples, veja aqui o artigo anterior.
Para este artigo vamos trabalhar com uma procedure bem mais complexa que a do artigo anterior, onde a mesma utilizará parâmetros de entrada, parâmetros de saída, tipos de retorno dinâmico e código de retorno.

 
Criando a Stored Procedure

Vamos criar a procedure ObtemGrupos, a mesma recebe um código de grupo de produtos, e retorna através do parâmetro de saída “@quantidadeProdutos” a quantidade de produtos que pertencem ao código do grupo solicitado. A mesma retorna ainda todas ou apenas algumas colunas da tabela de Grupos dependendo do
parâmetro “@todasColunas” e caso não exista um grupo com o código passado a mesma retorna 1, caso contrário retorna 0.

Vejamos como fica:


CREATE PROCEDURE ObtemGrupos
@codGrupo INT,
@todasColunas BIT,
@quantidadeProdutos INT OUTPUT
AS
 SET NOCOUNT ON

IF NOT EXISTS (SELECT 1 FROM tbProdutosGrupos WHERE codProdutoGrupo = @codGrupo)
 RETURN 1

IF @todasColunas = 1
 SELECT * FROM tbProdutosGrupos
 WHERE codProdutoGrupo = @codGrupo
 ELSE
 SELECT nome, sigla FROM tbProdutosGrupos
 WHERE codProdutoGrupo = @codGrupo

 SELECT @quantidadeProdutos = COUNT(*) FROM tbProdutos WHERE codProdutoGrupo = @codGrupo

RETURN 0

Read the rest of this entry »

 
Leave a comment

Publicado por em 05/12/2011 em Linq

 

Tags: , , , ,

Linq to SQL – Conceitos Avançados (Parte 2) – Trabalhando com Stored Procedures simples

Nesta primeira parte técnica da “mini-série” falarei sobre como se relaciona e procede a utilização de Stored Procedures com o Linq to SQL.

Vale ressaltar que, o funcionamento de procedures com o Linq to SQL é um tanto diferente e mais complexo do que com tabelas ou views, pois uma procedure pode possuir parametros de entrada, parametros de saída, retornos com tipos de dados diferentes de forma dinâmica, retornos com conjuntos de dados múltiplos, etc. Tudo isto dificulta a interpretação dos resultados.

Para este artigo demonstrarei o uso de uma procedures simples, a mesma apenas retorna todos os registros da tabela de usuários (tbUsuarios):


CREATE PROCEDURE SelecionaTodosUsuarios

AS
SET NOCOUNT ON
SELECT * FROM tbUsuarios

Read the rest of this entry »

 
Leave a comment

Publicado por em 03/12/2011 em Linq

 

Tags: , , , ,

Linq to SQL – Conceitos Avançados (Parte 1) – Introdução

Publicarei aqui uma série de artigos divididos em 8 partes sobre conceitos (de certa forma avançados) sobre Linq to SQL.

Atualmente não tenho escrito muito aqui em meu blog, devido a correria do dia-a-dia e outras prioridades, mas estou estudando bastante sobre Linq, e devido a isto estou criando esta “mini-série” de alguns conceitos que acho muito interessantes.

Divulgarei cada parte aos poucos e na seguinte ordem:
(Dependendo do caso, a ordem pode ser alterada entre eles)

Linq to SQL – Conceitos Avançados ( Parte 1 ) – Introdução (ESTE)
Linq to SQL – Conceitos Avançados ( Parte 2 ) – Trabalhando com Stored Procedures simples
Linq to SQL – Conceitos Avançados ( Parte 3 ) – Trabalhando com Stored Procedures complexas
Linq to SQL – Conceitos Avançados ( Parte 4 ) – Escrevendo diretamente com SQL
Linq to SQL – Conceitos Avançados ( Parte 5 ) – Utilizando Compiled Query
Linq to SQL – Conceitos Avançados ( Parte 6 ) - Evitando e tratando concorrência
Linq to SQL – Conceitos Avançados ( Parte 7 ) – Adicionando validações
Linq to SQL – Conceitos Avançados ( Parte 8 ) – Trabalhando com Transactions

Como havia escrito anteriormente, ainda estou estudando e não domino totalmente Linq. Portanto pode ser que exista algum erro, ou recurso que pode ser feito de uma forma diferente (ou até melhor).

Fiquem a vontade para sugestões, críticas e feedbacks.

Abraços e até o próximo artigo sobre Trabalhando com Stored Procedures simples

 
Leave a comment

Publicado por em 02/12/2011 em Linq

 

Tags: , , , ,

ASP.NET MVC – Renderizando/Trabalhando com Partial View pelo Controller com chamada via ajax/jQuery

Em alguns casos podemos necessitar a renderização de uma Partial View via código. Como por exemplo, imaginando que em nossa MasterPage já exista algo como:

<% Html.RenderPartial("MontaDetalhesComprasUserControl"); %>

Onde o mesmo exiba os detalhes de todas as suas compras realizadas até o momento. Porém, ao adicionarmos um novo item em nossas compras, ou atualiza-la de alguma forma via Ajax, precisamos atualizar os detalhes quanto as nossas compras também!

Read the rest of this entry »

 
2 Comments

Publicado por em 07/09/2011 em ASP.NET MVC, jQuery

 

Tags: , , ,

SQL Server (SSMS Tools Pack) – Ótimo Add-in para melhorar sua IDE

Esta semana conheci um ótimo Add-in para SQL Server através do meu colega André Cypreste. Achei o mesmo tão bom, que tenho que compartilhar com todos ! :)

Chamado de SSMS Tools Pack, este assistente possui diversos melhoramentos para quase todas as versões do SQL Server (SQL Server Management Studio (SSMS) 2005, 2008, 2008 R2, 2011 (Denali) CTP1 e suas respectivas versões Express).

Read the rest of this entry »

 

Tags: , , ,

ASP.NET MVC – Validando os parâmetros na requisição de uma URL

Este post demonstrará como podemos validar os dados em uma URL de requisição ASP.NET MVC, o mesmo foi baseado em um artigo de autoria do Shivprasad Koirala.

Sabemos que em toda requisição para uma Action, os parâmetros sempre são enviados juntos através da URL. Não seria ótimo poder validar estes parâmetros para não permitir que informações inválidas ou fora de padrão cheguem as nossas Actions?

Considerando a seguinte URL em MVC http://localhost:9040/Home/ValidandoOsParametros se formos enviar o id como parâmetro ficaria assim http://localhost:9040/Home/ValidandoOsParametros/4 podemos ver que o id é numérico, logo não podemos realizar a seguinte requisição http://localhost:9040/Home/ValidandoOsParametros/abc.  Para tanto o ASP.NET MVC fornece um mecanismo para validação pelo qual podemos validar a URL analisando se os dados são válidos.

Observe a seguinte ação em HomeController:

public class HomeController : Controller
{
public ActionResult ValidandoOsParametros(int id)
{
return View();
}
}

Read the rest of this entry »

 
Leave a comment

Publicado por em 28/08/2011 em ASP.NET MVC, ASP.NET.MVC 3

 

Tags: , , , ,

ASP.NET MVC – Criando Views Genéricas e com Campos Dinâmicos

Isso mesmo, neste post demonstrarei como podemos criar uma View genérica, ou seja, que possa ser utilizada de diversas formas, com renderização dos campos de acordo com sua utilidade (campos dinâmicos) e com uma fácil implementação.

Mas você deve estar se perguntado, “Para que eu utilizaria uma View genérica em meu projeto?”. A resposta é fácil e com um simples exemplo fica fácil de responder.

Imagine uma solução onde existam dezenas de relatórios, onde cada um possua parâmetros específicos. Dependendo da forma de desenvolvimento, pode ficar algo um tanto quanto trabalhoso para se programar o preenchimento de cada um. Agora imagine a solução onde você selecionaria o relatório e seus parâmetros já viessem renderizados automaticamente em sua View. Ou até mesmo uma Classe de Usuários com seus campos já renderizados, e ao alterar para uma Classe Clientes por exemplo, na mesma View já vier renderizados os campos apenas do Cliente.

A forma de utilização/implementação e utilidade depende da necessidade de cada um, mas vamos lá!

Como podemos observar abaixo em nosso banco, possuímos apenas duas tabelas (Usuarios e Clientes), note que temos campos dos tipos varchar, int, datetime, bit e decimal:

Figura 1

Read the rest of this entry »

 
 

Tags: , , ,

 
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 136 other followers