Pregunta

¿Cuál es la diferencia entre OpenWrap y NuGet. Y lo que usted prefiere?

¿Fue útil?

Solución

OpenWrap es un proyecto de código abierto que proporciona para la gestión de la dependencia en las aplicaciones, no sólo en tiempo de compilación, sino también en tiempo de ejecución.

Como tal, nuestras características están dirigidos a la resolución dinámica de las dependencias, ya sea para aplicaciones WPF compuestos, el desarrollo de aplicaciones web o servicios públicos de todo el sistema. Esto hace que nuestra aplicación muy diferente de lo que hace NuGet.

Así que aquí están las cosas que son diferentes (probablemente me voy a olvidar mucho, pero ah bueno).

  • No hay dependencia de Visual Studio, y el enfoque en la productividad en la línea de comandos en lugar de en una interfaz de usuario
  • No hay dependencia de PowerShell, OW viene con su propio sistema de comandos que le permite desarrollar, desplegar y ejecutar sus propios comandos, ya sea de nuestra concha (la herramienta o.exe), bien del propio MSBuild.
  • OpenWrap utiliza OpenWrap para construir y desplegar sí mismo, y es amigable xcopy en cada paso del camino.
  • tiene un repositorio de todo el sistema de paquetes, para que pueda desplegar sus comandos de utilidad una vez en lugar de una vez por solución
  • Apoya la resolución dependencia dinámica en tiempo de ejecución, en caso de que desee hacerlo
  • Tiene un formato de paquete extensible, para que pueda crear nuevos tipos de dependencias en un paquete y tienen OpenWrap ayuda que los usa en su aplicación
  • Compatible con los dos paquetes y paquetes OpenWrap NuGet y repositorios
  • Las estancias bien lejos de las complicaciones de XML y OData, y va a por DSL basados ??en texto simples que son fáciles y rápidos para aprender
  • Ayuda construir integrado, para que pueda construir y empaquetar la solución de una sola vez
  • Soporta repositorios personalizados en un recurso compartido de red que se puede publicar a partir de la cáscara openwrap o las tareas msbuild
  • Proporciona nivelación dependencia, eligiendo automáticamente qué combinación de versiones de los paquetes se resuelve
  • ReSharper medios de integración que cualquier cambio que hagas a sus dependencias se refleja en VS en tiempo real
  • medios de integración TeamCity se puede construir, desplegar paquete y el paquete usando exactamente el mismo proceso, a partir de una secuencia de comandos de MSBuild o desde la línea de comandos
  • constructores extensibles significa que puede cambiar la forma en la acumulación se activa en OpenWrap
  • Soporte para los corredores de la prueba y las pruebas de envío junto con paquetes
  • Usos compatibles puntos de extensibilidad de MSBuild para incluir referencias de montaje, y se va el código que construyen solos. Una vez que usted envía binarios, que no tienen dependencia código openwrap , sólo a la acumulación de tiempo.

Esto es sólo por las diferencias, ya que es lo que preguntaste, así que no te molestaré con lo que hacemos lo mismo que otros gestores de paquetes.

Otros consejos

Sólo quería meter su cuchara con algunas reflexiones desde el lado NuGet de las cosas. hojas Seb algunos detalles que vale la pena señalar.

  • Si bien nuestra interfaz de usuario principal se basa VS, el núcleo NuGet montaje no tiene ningún vínculo con VS. El producto páginas Web ASP.NET tiene un gestor de paquetes basado en la web. Me escribió una entrada de blog que muestra un ejemplo de la utilización de NuGet para construir un sitio web que se actualiza en tiempo de ejecución. http://haacked.com /archive/2011/01/15/building-a-self-updating-site-using-nuget.aspx
  • NuGet proporciona una potente consola de PowerShell. NuGet paquetes pueden agregar nuevos comandos a la consola. Ver http : //blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/ . Al igual que antes, se trata de un cliente a NuGet y el núcleo NuGet no lo requiere.
  • NuGet está disponible para instalar a través de la galería de extensiones VS y es muy fácil para empezar inmediatamente.
  • soportes NuGet apuntando al cliente en un directorio (o recurso compartido de red) que contiene un conjunto de paquetes y automáticamente lo trata como un repositorio. Así que si usted no quiere tratar con OData, usted no tiene que hacerlo. Pero también incluimos una implementación de nuestra galería así que no hay necesidad de tratar de forma manual con OData / XML en cualquier caso.
  • NuGet no le requiere para desplegar cualquier parte del NuGet como parte de su solicitud. Se mantiene las manos de encima y se centra en la automatización de las medidas que podría adoptar sin NuGet para adquirir y desplegar sus dependencias. Para ser claros, como señala Seb, tampoco termina OpenWrap. Sólo quería dejar claro que NuGet no requiere esto también.

Uno de los principios fundamentales de NuGet (y una diferencia importante con OpenWrap) es que no trata de cambiar la forma de trabajar. En su lugar, hace que sea mucho más fácil de hacer las cosas que usted ya hace hoy en día.

Digamos por ejemplo que usted está tratando de utilizar una biblioteca de Foo, que depende de una biblioteca bar. Hoy en día, se tendría que encontrar manualmente las bibliotecas, copiarlos en su máquina y añadir referencias a ellos. A continuación, las versiones más nuevas van a salir y usted pasar por movimientos similares a conseguir que se actualizan.

En tal escenario, tanto NuGet y OW hará que sea fácil de llevar en esas referencias, pero la diferencia clave es que NuGet lo hace de una manera que es completamente no invasivo. es decir, se obtendrá los binarios en su máquina y referencias en la misma forma que si hubiera hecho de forma manual. Después de que se ha hecho esto, el archivo de proyecto es completamente 'normal', sin ningún tipo de vínculos con NuGet en construcción o en tiempo de ejecución.

Lo que esto significa es que si usted consigue a través de algunas bibliotecas NuGet y poner su proyecto en el control de código fuente, otro desarrollador es entonces capaz de utilizar su proyecto sin necesidad NuGet en absoluto.

El enfoque OpenWrap tiene méritos como bien, pero ir por ese camino, usted tiene que estar dispuesto a utilizar OpenWrap todo el camino, y no ser fácilmente capaz de alejarse de ella.

Hay muchas otras diferencias (como el soporte rica VS en NuGet), pero esto es lo que veo como la diferencia fundamental entre los dos.

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