Mult upload de Imagens com jquery e Asp .Net Mvc

Conversando com um amigo hoje sobre plugins upload do jquery, ele me indico um muito bom e simples de se implementar que ainda utliza os templates do jquery Ui.

segue link para download dele:

http://www.plupload.com/download.php

A documentação dele é muito boa, mas mesmo assim rolvi criar um post com ele :)

vamos utilizar o proprio exemplo do site, criei uma action com o nome upload na controller Home, e na sua view adicionei os seguintes arquivos:

jquery.plupload.queue.css / browserplus-min.js / plupload.full.js / jquery.plupload.queue.js

Obs.: não esqueça de verificar se na sua master page esta com o jquery na página.

feito isso, vamos configurar o plugin, temos varias formas de utilizar ele, no meu exemplo peguei o primeiro do site ;) o que esta com flash_uploader:

jquery mult upload de imagens

jquery mult upload de imagens

neste exemplo estou utilizando algumans parametros opcionais como unique_names , que apesar de ser um bool não e obrigatorio e outros obrigatórios como url do local onde depois do upload a action que deve ser chamada.

No nosso back end, não precisamos fazer muito:

mult upload de imagens com jquery

mult upload de imagens com jquery

 

Vamos lá a nossa primeira variavel, recebemos o primeiro valor da requist.files, logo em seguido, crio uma variavel que contém o path do diretório onde as imagens devem ser encaminhas depois de salvas depois as salvamos.

crie um diretório com o nome files, na raiz do projet e depois e so testar :)

 

Segue linque do projeto:

http://www.4shared.com/file/a6i0WiTb/MvcNhibernate.html

Espero que seja úti e ate mais :)

Categoriasasp net MVC

Tipos de relacionamentos com fluent nhibernate

Neste post irei brincar um pouco mais com Nhibernate, tentando passar os tipos de relacionamento como ele, 1 x 1, 1 x n e n x n.

Eu irei utilizar o mesmo projeto dos posts anteriores.

Para o relacionamento 1 x 1 irei criar o domínio Armadura, onde iremos especificar que tipo de armadura do cavaleiro Ex.: Bronze, prata, papel … etc.

Domínio Armadura

Domínio Armadura

Nosso classe de mapeamento:

Mapeamento Armadura

Mapeamento

Note o .Length que adicionei depois do Map, como estamos  criando as nossas tabelas, através de nossas classes de domínio e mapeamento,com  fluent nhibernate também podemos , setar a o tamanho de nossas colulas se elas serão not null … etc.

No Domínio Cavaleiros adicione :

public virtual Armadura Armadura { get; set; }

Criamos uma propriedade com o valor do domínio Armadura.

Em CavaleirosMap

References(x => x.Armadura);

Com isso mapeamos a nossa pripriedade Armadura com o Domínio Armadura, assim criando o relacionamento 1 x 1, vamos rodar o script para que o fluent crie a tabela o relacionamento.

Na classe Config.cs altere os parametros do método .Create(true, true), agora na HomeController, dentro da Index action  adicione o código para que ele possa gerer o script e dropar e criar as tabelas.

var drop = new Config();

Verificando no nosso banco:

relacionamento 1 x1 fluent nhibernate

Relacionamento 1 x 1

Podemos ver na imagem, que ele fez tudo para agente, crio a tabela e a FK em Cavaleiros. Agora vamos ao relacionamento 1 X n.

Iremos utilizar 1 x n HasMany, quando precisarmos de uma lista Ex.: Cavaleiro,Especial, temos que criar um lista de especiais para um cavaleiro, pois um cavaleiro ira ter muitos  especiais.

Para isso vamos criar o Domínio Especiais:

Domínio

Domínio Especial

Mapeamento:

MapEspecial

MapEspecial

No Domínio Cavaleiros adicione este trecho de código:

HasMany Fluent Nhibernate

HasMany Fluent Nhibernate

Como cavaleiros terá uma lista de especiais, criamos uma propriedade especial com o valor da interface IList, depois criamos a propriedade Especial como Enumerable, para que possamos com a nossa lista e depois no construtor iniciamos a nossa lista, até aqui bem simples, vamos ao nosso Map:

E no nosso Map de Cavaleiros, temos também que alterar, pois como especial não e mais uma string, está com o valor de uma referência e será um lista temos que mapea-lo como tal:

HasMany(x => x.Especial)
.Access.CamelCaseField(Prefix.Underscore);

Neste trecho estamos especificando que o relacionamento é de um para muitos, que teremos uma lista do tipo Especial.

Bom vamos rodar novamente o projeto para criar a nossa tabela…

O banco tem que ficar desta forma:

HasMany Fluent Nhibernate

HasMany Fluent Nhibernate

Agora vamos para n x n:

Vamos criar o Domínio  Batalhas, onde um cavaleiro pode ter lutado em muitas Batalhas e uma batalha pode ter participado muitos Cavaleiros.

Criando o domínio Batalhas:

DominioBatalhas

DominioBatalhas

O Map de Batalhas:

Mapeamento Fluent Nhibernate

Mapeamento Fluent Nhibernate

O domínio Cavaleiros:

Relacionamentos com Fluent Nhibernate

Relacionamentos com Fluent Nhibernate

Mao de Cavaleiros:

Mapeamento com Fluent Nhibernate

Mapeamento com Fluent Nhibernate

Vamos rodar Buildar para testar.

O banco tem que ficar desta forma:

Banco de dados

Banco de dados

Bom com isso finalizamos os tipos de relacionamento com fluent nhubernate, no próximo post irei criar os metodos para que possamos testar esses relacionamentos… até espero que sejá útil :)

Segue abaixo o link para Download do projeto:

http://www.4shared.com/file/LUdieTLg/MvcNhibernate_2.html

CategoriasSem categoria

Gerar script de banco de dados e criar tabelas com fluent nhibernate

Bom explorando um pouco mais o fluent nhibernate, podemos criar as tabelas de acordo com as nossas classes de domínio.

Para isso só precisamos mexer no nosso método CreateSessionFactory() e no nosso web.config.

web.config

<appSettings>

<add key=”PathScriptDataBase” value=”Path_Para_Onde_Vc_Quer_Que_Seja_Gerado_O_Arquivo_Com_Os_Scripts” />

</appSettings>

Depois no nosso método pegamos esse path e adicione a linha para que o fluent saiba onde
criar o script de criação das tabelas.

.ExposeConfiguration(cfg => new SchemaExport(cfg).SetOutputFile(pathScriptBanco.ToString())
.Create(true, true))

Note esse metodo .Create, eles recebe dois parametros booleanos, onde o primeiro como true e para criar o script
e o segundo para dropar nossas tabelas e recria-las novamente.

 Schema with fluent nhibernate

gerarSchema

Com esse pedaço de código já podemos começar a pensar em DDD onde iremos focar totalmente no domínio deixando para ver o nosso banco de dados por último.

Bom espero que seja útil até.

Segue link para quem quiser baixar o projeto:

http://www.4shared.com/file/xWpf2igd/MvcNhibernate.html

Categoriasfluent nhibernate

O Mundo é dos .Net’s

julho 12, 2011 2 comentários

Olá  a todos !

Meu Nome é Thiago Adriano, trabalho com desenvolvimento na plataforma .Net,  irei começar uma serie de posts para iniciantes, que queiram aprender esta plataforma.

Neste primeiro post, gostária de indicar alguns link’s para o pessoal iniciante, ferramentas grátis, disponiveis para download.

Para começar vamos baixar o visual studio 2010 profissional e o Sql Server 2008 R2.

https://www.dreamspark.com/default.aspx

Depois vamos baixar uma ferramenta muito boa para ajudar no nosso dia a dia o ReSharper

http://download.jetbrains.com/resharper/ReSharperSetup.6.0.2202.688.msi

Bom com isso já podemos começar a brincar, agora vamos criar um projeto em Asp Net Mvc com C#.

Imagem de uma solution em Mvc

solution em mvc

solution em mvc

Bom vamos detalhar os diretórios e arquivos da nossa Solution:

O diretório Content, nele ficam os nossos arquivos  .css e as nossas imagens, no print abaixo eu criei um diretório abaixo de Content para inserir as imagens.

diretorio para inseir as imagens

Controller:

No pouco tempo que eu trabalho com Mvc, não falando  só com C#, mas também com PHP, vejo muitas pessoas com um conceito errado dele, inserindo regras de negocio, quando ele deveria apenas trabalhar como um gerente, recebendo dados do browser indo na Model e passando para a view, caso precise criar alguma regra o certo “no meu ponto de vista” seria criar um repositório genérico onde podemos inserir regras que achariamos certo colocar em nossas Controllers.

Model:

A Model,  “estruturas de dados” deve trabalhar com persistencia , ela é que tem contato com o banco de dados.

Scripts:

Nele e onde estão os nossos arquivos .js

View:

Neste diretório iremos inserir nossas partials views nossos arquivos html que estam com a extensão .ascx e também temos o diretório Shared, onde fica a nossa master.page.

Logo abaixo temos mais dois arquivos: Global.asax e Web.Conifg, em uma navegação bem rápida pela web, achei um artigo muito bom, falando sobre Global.asax:

“Segue a dica :)

http://www.dotnetcurry.com/ShowArticle.aspx?ID=126

Ele da uma descrição de cada um dos  métodos que podemos adicionar em nosso Global.asax, ao meu ver um artigo muito bom.

Bom agora ja podemos começar a brincar  com Asp Net Mvc, com o  visual studio 2010 podemos criar um projeto como o acima que ele force para exemplo, muito simples de se debugar para aprender… bom até um próximo post.

Categoriasasp net MVC

Configurar o Fluent Nhibernate com Asp .Net Mvc

dezembro 5, 2010 Deixe um comentário

Olá a Todos!

Neste Post Irei mostrar um passo a passo de como se configurar o Fluent Nhibernate com asp Net Mvc.

Para quem nao conhece o Fluent Nhibernate recomendo uma breve leitura em:

http://wiki.fluentnhibernate.org/Getting_started.

Crie um Projeto Mvc 2 Web Application.

http://fluentnhibernate.org/downloads

Faça o download do fluent, depois disso em seu projeto, va em References click com o botão direito, va em browser e navegue até a pasta onde você deixou as suas dll’s do fluent.

Vamos criar um arquivo que ira gerenciar as nossas  sessões:

Crie um diretório na sua Solution, no meu caso irei criar com o nome Comum e dentro dele crie uma classe com o nome Config.cs.

SessionManager

fluent Nhibernate

Bom analisando a nossa Class:

Temos três propriedades:

Session: utilizaremos para trabalhar com a sessão: salvar,deletar  … etc, os métodos que iremos enviar os valores para a nossa sessão.

Trasaction: com esse trabalharemos para dar Commit, Rollback… etc

ISessionFactory: propriedade que recebe os valores de retorno no nosso método CreateSessionFactory().

E o método   CreateSessionFactory(), que neste exemplo esta conectando em um banco Sql Server 2008. Para mais informações, sobre como conectar em outros bancos como por exemplo Mysql  veja nesse link:

http://wiki.fluentnhibernate.org/Database_configuration

Agora vamos no nossas classes de  Domínio e iremos criar a nossa class Cavaleiros.

Obs.: estou criando esta class no na model do meu projeto.

Fluent Nhibernate

Fluent Nhibernate

Duas Observações a 1 não esqueça do virtual o fluent usa ele para o mapeamento e coloque como private no set do Id, pois ele será atribuido pelo Nhibernate.

Depois crie um diretório com o nome Repositório e dentro dele uma class com o nome  CavaleirosMap.cs.

Fluent Nhibernate

Fluent Nhibernate

Criamos o nosso primeiro atributo o id:

Id(x => x.Id).GeneratedBy.Identity();

Colocamos o GeneratedBy.Identity, pois sera o Nhibernate que ira criar o Id para nós, agora podemos mapear os outros atributos.

Note que assim que colocamos Map(x => x. )  ele ja mapeia os outros atributos que criamos na outra class cavaleiro.cs

Fluent Nhibernate

Fluent Nhibernate

Depois que terminarmos este mapeamento a class ficará assim:

Fluent Nhibernate

Fluent Nhibernate

Agora vamos criar a nossa tabela Cavaleiros:

create table

sql para exemplo

Nao podemos esquecer de configurar no sql manager studio, no modo design Column Properties Identity Specification colocar como yes indentity increment, se nao o sql server nao ira deixar o nhibernate criar os Ids.

Bom agora vamos na nossa Controller:

 

Bom na controller nós instanciamos a nossa  classe Cavaleiros e tbm criamos uma propriedade com o nome entidade,  que se encarrega de chamar os métodos que iram trabalhar com a nossa sessão.

Bom como o foco deste post é somente  a configuração irei parar por aqui, espero que seja útil.

Categoriasfluent nhibernate
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.