Pregunta

Estamos listos para comenzar un nuevo proyecto en el trabajo, sin código heredado. Usamos Subsonic en el pasado y estamos muy contentos con él. Pero eso fue antes de Linq.

¿Alguien ha tenido que enfrentar este mismo problema (Linq x Subsonic)?

¿Cuál fue tu decisión? ¿Cuáles fueron las razones?

Cualquier apreciación apreciada.

¿Fue útil?

Solución

SubSonic

Pros:

  • agradable y simple
  • Andamios

Contras:

  • Las firmas de los métodos a menudo aceptan parms de cadena (aunque se recomienda utilizar constantes de cadena DAO) que pueden ser objeto de abuso.

Ten en cuenta:

  • Requiere un proyecto de sitio web para la generación de modelos sin código y sin intervención (necesita el BuildProvider).

Linq To SQL

Pros:

  • Azúcar sintáctico en el IDE
  • MS admitido
  • Ver el SQL que se ejecutará en el IDE
  • Permite diferentes niveles de manipulación en el modelo, desde la generación automática hasta las definiciones explícitas y las propiedades del objeto.

Contras:

  • complejo. Necesitas aprender nuevos conceptos como DataContext para ser efectivo.

Ten en cuenta:

También evalúe el Entity Framework ADO.NET y aquí .

Otros consejos

La única cosa que me encanta de LINQ, que no creo que SubSonic maneje tan bien, es tratar automáticamente las uniones.

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

generará automáticamente SQL como esteL

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

¿Qué pasa con NHibernate? ¿Está realmente fuera de la foto para nuevos proyectos? Aún así, las personas que vienen de Java lo encontrarán familiar y también puede usarlo con .NET 2.0 y Mono.

Fui con Linq porque está integrado en el marco. Para aquellos que dicen que no será compatible con Microsoft ... es LinqToSql que se eliminará gradualmente. Creo que uno de los planes es absorberlo en el Entity Framework.

Ahora estoy usando Entity Framework. También usa linq y, básicamente, es exactamente igual a linqToSql con más flexibilidad y potencia si decide usarlo.

Tiendo a evitar los marcos y los ormos de terceros porque eventualmente también se extinguen. Creo que tienen más posibilidades de extinguirse porque su vida se debe a la cantidad de personas interesadas en usarla. Su vida también depende en gran medida de su autor principal / colaborador.

Mi experiencia ha sido primaria con SubSonic. Es muy sencillo de implementar y tendrás tu DAL completado en menos de media hora. Tenga en cuenta que esta es una navaja suiza, ya que está diseñada para ser útil. Básicamente, se obtiene una clase generada por tabla, así como la capacidad de realizar una carga diferida para las colecciones. También puede ejecutar procedimientos almacenados a través del marco, por lo que si tiene estructuras de datos complejas, puede obtenerlas de la base de datos y actualizar una clase que realice manualmente.

Lo he usado en 5 proyectos principales ahora, y estoy impresionado con la rapidez con la que me volví dependiente de él.

Estaba en la misma situación. LinQ es más "visual", usted hace todo dentro de vstudio, e incluso Rob admite que el subsónico tiene algunas cosas para emparejarlo.

IEnumerable, LINQDatasource (con paginación automática) y el modelado visual me han convencido para elegir Linq sobre Subsonic.

El mayor riesgo con linq to sql es que Microsoft se canse de él y lo abandone. Existe mucha especulación de que esto ya ha ocurrido y que solo se actualizará el marco de la entidad. Subsonic no sufre de esto y, en el peor de los casos, tiene el código fuente para realizar las modificaciones.

Es posible que desee ver qué sucede cuando MS deja de desarrollar LINQ to SQ L, ya que parece estar sucediendo. La última versión de SubSonics es más fácil de crear consultas y más legible, luego su versión anterior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top