c# - EdgeJS e Entity Framework - Stack Overflow em Português
Seguinte, estou aprendendo NodeJS e estou encantado com o mesmo, porem encontrei a minha primeira pedra no caminho, acesso a banco de dados relacional usando algum ORM (precisamente para acessar o PostgreSQL).
Inicialmente pensei em usar o SequelizeJS, inclusive achei o mesmo bem documentado e promissor, porem achei a a consulta dele um pouco complexa.
uma condição simples como esta:
title LIKE 'Boat%' OR description LIKE '%boat%'
$like: 'Boat%'
$like: '%boat%'
Então resolvi partir para a alternativa, que seria o EdgeJS. Então criaria uma Blibioteca CLR em C# utilizando Repository Pattern que acessa os dados com Entity Framework, onde todos os métodos teriam uma assinatura semelhante a seguinte:
async Task<object> MethodName(object input);
E por no NodeJS, criaria apenas um modulo que serviria de proxy para esta Biblioteca.
Como desenvolvedor .NET, utilizar a Biblioteca CLR me parece mais fácil para manter, porem gostaria de ter uma visão mais ampla do que seria os pros e contras desta estrategia. É uma boa opção? ou estou me mostrando um programador preguiçoso?
interessa-se por questões pelas quais eu também me interesso. vamos por partes. primeiro algumas questões conceptuais sobre linguagens de programções, frameworks e apis, da minha parte, depois uma tentativa de resposta, ainda que se calhar mais o nível do pseudo-código. Já ouvi falar em PostgreSQL. Trata-se de uma arquitectura similar a MongoDB, certo? ou seJa, uma arquitectura, ou linguagem de programação do tipo NoSQL, certo? depois nunca tinha ouvido falar, nem em SequelizeJS, nem em EdgeJS, mas está certo, que vou procurar mais sobre estas ferramentas, e se possível até tentar aprendê-las.
– Tiago Morais Morgado
12/09/15 às 21:36
nunca trabalhei com bases de dados em node.Js, mas estou a caminhar para lá. no sentido em que me tenho interessado não só por node angular e ruby no rails, como também por mongodb e outras arquitecturas do tipo nosql. o código que mostra é relativamente simples. se a sua pergunta é se pode aceder a postgre a partir de node, a resposta é muito possivelmente sim, tem de criar o código em node, e de seguida mapear variáveis para aceder à base de dados de postgresql. de que maneira, não tenho bem a certeza, mas também não será difícil. keep it simple. evite meter frameworks pelo meio para fazer i
12/09/15 às 21:49
@Tiago, obrigado pelo interrese, PostgreSQL é um Banco de Dados relacional, porém ele está evoluindo para ser capaz de exercer o papel de um banco de dados não estrutural (NoSQL). Mas a dúvida em si não era sobre acesso a NoSQL, até pq o Node é ótimo para isto, mas a banco de dados tradicionais (relacional). o SequelizeJS é um ORM para Node, assim como Hibernate é para Java ou Entity Framework é DotNET. EdgeJS não é um ORM, ele permite que uma aplicação Node utilize uma blibioteca CLR (C#) que seja asyncrona, neste caso iria utilizar o EdgeJS para acessar um Repositório escrito em C# (Entity).
12/09/15 às 22:56
Gostaria de ter uma visão mais ampla do que seria os prós e contras desta estratégia. É uma boa opção? Ou estou me mostrando um programador preguiçoso?
Até o momento desta resposta não é.
Explico: A interface que o Edge.js faz com código .NET ainda é muito pequena. Para uso com o Entity Framework, você precisa não apenas embutir o código .NET na aplicação Node, mas também inicializar o contexto de dados, aplicar Migrations, criar as classes que farão parte do contexto, etc.
Não vejo como sendo muito prático a portabilidade no momento, mas posso mudar de ideia, visto que o Edge.js é uma tecnologia muito recente e que a interface com o restante dos Frameworks .NET ainda não está exatamente consolidada.
respondida 12/09/15 às 23:33
Esta não é a resposta que você está procurando? Pesquise outras perguntas com a tag c# node.js orm clr ou faça sua própria pergunta.