Pergunta

Estamos prontos para iniciar um novo projeto no trabalho, sem código legado. Nós usamos subsônico no passado e muito felizes com isso. Mas isso foi antes do Linq.

Alguém teve que enfrentar esse mesmo problema (Linq X Subsonic)?

Qual foi a sua decisão? Quais foram as razões?

Qualquer percepção apreciada.

Foi útil?

Solução

Subsônico

Prós:

  • Bom e simples
  • Andaimes

Contras:

  • As assinaturas de método geralmente aceitam os parms de string (embora você seja incentivado a usar constantes de string Dao) que podem ser abusadas.

Tenha em mente:

  • Requer o projeto do site para a geração de modelos sem código e prática (precisa do BuildProvider).

Linq para SQL

Prós:

  • Açúcar sintático no IDE
  • Ms suportados
  • Veja o SQL a ser executado no IDE
  • Permite diferentes níveis de reprodução no modelo, desde a geração automática até as definições explícitas até as propriedades do objeto.

Contras:

  • Complexo. Você precisa aprender novos conceitos, como o DataContext, para ser eficaz.

Tenha em mente:

Avalie também o Estrutura de entidade ADO.NET e aqui.

Outras dicas

A única coisa que eu amo no Linq, que não acho que as linhas subsônicas com a graça, está lidando automaticamente com junções.

FROM a in db.Orders
where a.Total > 100
SELECT new {a.Item.Desc, a.Customer.Name};

gerará automaticamente o SQL como este

select i.DESC, c.NAME 
from  ORDERS o  
inner join ITEMS on o.ItemID = i.ItemID 
inner join CUSTOMERS c on o.CustomerID = c.CUSTOMERID 
where o.TOTAL > 100

E quanto a Nibernate? Está realmente fora de cena para novos projetos? Ainda assim, as pessoas vindas de Java o acharão familiar e você também pode usá -lo com .NET 2.0 e Mono.

Eu fui com o LINQ porque está embutido na estrutura. Para aqueles que dizem, não será suportado pela Microsoft ... é o Linqtosql que será eliminado. Acredito que um dos planos é absorvê -lo na estrutura da entidade.

Agora estou usando a estrutura da entidade. Ele também usa o LINQ e, basicamente, é exatamente como o Linqtosql com mais flexibilidade e energia, se você optar por usá -lo.

Costumo evitar estruturas e orms de terceiros, porque eventualmente eles também morrem. Eu acredito que eles têm mais chance de morrer porque a vida deles vem de quantas pessoas estão interessadas nela e usá -la. A vida deles também depende fortemente de seu principal autor/colaborador.

Minha experiência tem sido primária com subsônico. É muito direto para implantar e você terá seu dal em menos de meia hora. Lembre -se de que esta é uma faca suíça do exército, como é projetado para a utilidade. Basicamente, você recebe uma classe gerada por tabela, bem como a capacidade de fazer o carregamento preguiçoso para coleções. Você também pode executar procedimentos armazenados por meio da estrutura; portanto, se você tiver estruturas de dados complexas, poderá buscá -las no banco de dados e atualizar uma classe que você trabalha manualmente.

Eu o usei em 5 grandes projetos agora e estou impressionado com a rapidez com que me tornei dependente disso.

Eu estava na mesma situação. O Linq é mais "visual", você faz tudo dentro do VStudio e até Rob admite que o subsônico tem algumas coisas para combinar.

Ienumerable, LinqDatasource (com paginação automática) e a modelagem visual me convenceram a escolher o LINQ em vez de subsônico.

O maior risco com o LINQ para o SQL é que a Microsoft se cansará dele e o abandonará. Há muita especulação de que isso já aconteceu e que apenas a estrutura da entidade será atualizada. O subsônico não sofre com esse caso e pior, você tem o código -fonte para fazer suas edições.

Você pode querer examinar o que acontece quando MS para de desenvolver LINQ para sqL, como parece estar acontecendo. A versão mais recente dos Subsonics é mais fácil de criar consultas e mais legível, depois a versão anterior.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top