MongoMapper.NET

Filed in Uncategorized Comments Off

mongomapper_grandeAcabo de subir a la rama de producción los cambios de master

Lamentablemente he tenido que romper compatibilidad en algunas cosas.

-He cambiado todo el sistema de búsquedas,  he quitado el Finder y todos los métodos estáticos de la clase MongoMapper, a cambio he metido una clase nueva, MongoMapperCollection, que es la que se usara en las búsquedas:

var col = new MongoMapperCollection<Country>();
 
col.Find().SetLimit(1);     
Assert.AreEqual(1, col.Count);
Assert.AreEqual(3, col.Total);     
 
col.Find().SetLimit(3).SetSortOrder("Name");
Assert.AreEqual(3, col.Count);
Assert.AreEqual(3, col.Total);
 
col.Find(Query<Country>.EQ(C => C.Code, "NL"));
Assert.AreEqual("NL",col.First().Code);
Assert.AreEqual("NL", col.Last().Code);
 
foreach (Country country in col)
{}

También puedes heredar tu clase de MongoMapperCollection y usarla ya “Tipada”

public class CountryCollection: MongoMapperCollection<Country>
{}
 
var col = new CountryCollection();
 
col.Find().SetLimit(1);     
Assert.AreEqual(1, col.Count);
Assert.AreEqual(3, col.Total);     
 
col.Find().SetLimit(3).SetSortOrder("Name");
Assert.AreEqual(3, col.Count);
Assert.AreEqual(3, col.Total);
 
col.Find(Query<Country>.EQ(C => C.Code, "NL"));
Assert.AreEqual("NL",col.First().Code);
Assert.AreEqual("NL", col.Last().Code);
 
foreach (Country country in col)
{}

-La configuración también ha cambiado, como en cada versión están sacando cosas nuevas era inmantenible, la he cambiado para definir una Url con todas las configuraciones, ahora queda una cosa así:

<MongoMapperConfig>
    <Server Url="mongodb://127.0.0.1" />
    <Database Name="TestDotNET" />
    <Context Generated="true" MaxDocumentSize="8" ExceptionOnDuplicateKey="true" EnableOriginalObject="true"
             UseIncrementalId="true" UseChidlsIncrementalId="false" />
    <CollectionConfig>
      <add Name="TestConf1">
        <Server Url="mongodb://host1:27017,host2:27017,host3:1234/?readPreference=primaryPreferred;w=2" />
        <Database Name="Conf1" />
        <Context Generated="true" MaxDocumentSize="8" ExceptionOnDuplicateKey="true" EnableOriginalObject="true"
                 UseIncrementalId="false" UseChidlsIncrementalId="true" />
      </add>
      <add Name="Person">
        <Server Url="mongodb://127.0.0.1" />
        <Database Name="TestDotNETPerson" />
        <Context Generated="true" MaxDocumentSize="8" ExceptionOnDuplicateKey="true" EnableOriginalObject="true"
                 UseIncrementalId="true" UseChidlsIncrementalId="false" />
      </add>
    </CollectionConfig>
  </MongoMapperConfig>

- He cambiado el nombre al campo que controla la versión del Documento de MongoMapperDocumentVersion a m_dv y el MongoMapper_Id a m_id, el Id no pasa nada ya que internamente se guarda como _id,  pero el otro si, para colecciones con datos tendrás que usar el rename:

db.collection_name.update ( {}, { $rename : { "MongoMapperDocumentVersion" : "m_dv" }, false, true } );

Ademas necesita la versión >= 1.7 del Driver, ya que ellos también han hecho muchos cambios.

Otros cambios son:

  • Implementado ISupportInitialize para el tema de OriginalObject, ya no es necesario usar la versión modificada del Driver para esto
  • Posibilidad de susbcribise a eventos en el BeginInit y EndInit del ISupportInitialize, son OnObjectInit y OnObjectComplete
  • Añadida propiedad “ExtraElements” donde se recogerán los valores de los propiedades que no estén definidas en la clase.
  • Eliminado el <T> en todos los métodos no estáticos de la clase base, ahora queda mejor el código.
  • Eliminados todos los métodos de búsqueda que recibían una expresión, como expone la colección se puede usar el LINQ del Driver.
  • Update a la versión 1.7 del Driver, MongoClient, WriteConcern y todos esos cambios.

Esta versión esta ahora en master y en Producción.

https://github.com/emiliotorrens/MongoMapper.NET

Las 5 áreas para superar la competencia

Filed in Uncategorized Comments Off

Creemos que para superar la competencia en el nuevo año turístico 2013, hay que focalizar los esfuerzos en cinco áreas muy concretas.

Centrándonos en los datos del cuarto trimestre a nivel global, auguran un prometedor nuevo año viajes, Diciembre cerró 2012 con una nota positiva general para ocio y viajes de negocios y con un potencial de venta futura muy significativo. Vuelve con fuerza la reserva corporativa a través de GDS mientras que las tarifas continúan una cierta presión al alza. Por otra parte el turismo de ocio, muestra algunos datos dispares, analizados regionalmente. Sea como sea, el volumen de turismo vacacional será superior al del año pasado y sobre unas tarifas sólidas.

Si nos basamos en los modelos estadísticos y en las previsiones, se continuará con una fuerte demanda a pesar de un lento y desigual crecimiento incremental. Los datos electrónicos también subrayan cómo la tecnología está cambiando la fisonomía del viaje. Cada vez más hoteleros e intermediarios de viajes se centran en las tendencias de la distribución y reserva electrónica. Con un número cada vez mayor de viajeros de negocios y ocio confiando en la tecnología en todo su ciclo vital es decir el antes, el durante y el después. Para estar a la vanguardia de esta tendencia creciente y sobre todo estar presente en la mente de los viajeros durante el 2013 y más allá, será prioritario focalizar esfuerzos en las siguientes 5 áreas:

• Móvil

Ya no hablamos sólo de “smartphones”, la movilidad abarca tabletas, ordenadores portátiles y hasta “phablets”, todo el mundo los utiliza para

Investigar, buscar, planificar y reservar su viaje, haciendo acopio de una cantidad de información enorme. La movilidad a través de sus dispositivos trata de hacer la Experiencia realizable y evitar el riesgo de desgaste, en el proceso de reserva. Según una reciente encuesta de “PhoCusWright”, más de las tres cuartas partes de los viajeros se sienten de alguna forma cómodos, investigando y buscando su viaje sobre un dispositivo móvil, pero sólo el 40% dijo que sentirse realmente cómodos comprando el producto. La pregunta que lanzamos es; ¿está su sitio web optimizado para crear una experiencia confortable de reserva para el visitante móvil y convertirla en una reserva?

• Internet Marketing

Todo el mundo empieza a tener bastante claro que no se puede esperar a que los consumidores le encuentren. Se debe evolucionar hacia una actitud pro activa y empezar de alguna forma a dirigir el tráfico hacia su sitio Web, que sirva para convertirlo en valiosas ventas directas. Optimización para buscadores, “pay-per-click” y social media deben ser aspectos primarios de su estrategia online. Aproveche los últimos avances en el análisis de contenido, frases y palabras clave para gestionar activamente su presencia en las redes sociales, lo que complementa el proceso de reserva existente en la actualidad. Adicionalmente complemente este contacto regular con sus clientes a través de folletos electrónicos y e-cards para maximizar su estrategia de marketing.

• Gestión de los canales de distribución

Lo primero, conectar a los canales utilizados por su mercado objetivo. Entonces, administrar esos canales por conceptos de coste y beneficio de cada uno para su hotel y el análisis de su rendimiento. Entender el “role” de cada canal, para decidir cuánto volumen de inventario le quieren asignar y vender, idealmente a través de cada uno.

• Sistema de central de reservas (CRS)

Los CRS debe ser capaces de ofrecer venta de habitaciones a través de cualquier canal, en cualquier mercado, en cualquier momento.

Hoy en día una CRS necesita conseguir que el hotel esté listo para reservar de forma consistente múltiples fuentes de negocios incluyendo GDS, canales online, tu escritorio, sitios web móviles y call center. Además, hay que centrar los esfuerzos en encontrar una solución que permita la reducción de costes, facilitando la gestión central de contenido, tarifas e inventarios; y dirigir el incremento de unidades en oportunidades de ingresos hacia el punto de venta. Sin un CRS con estas características, no se será capaz de satisfacer y mucho menos de superar expectativas de sus clientes.

• Business Intelligence

Aprovechar los activos, en forma desde diferentes sistemas, CRS, sistema de gestión de la propiedad (PMS) y sistema de gestión de relaciones (CRM), todo ello unido sirve para entender quiénes son sus clientes, cuales son más rentables y cuáles son sus preferencias. El siguiente nivel implica entender su mercado, cuáles son las tendencias en el mismo, sus fuentes suministradoras o alimentadoras y cómo comparación tendencias en su mercado, su mercado fuente o “alimentador” y comparar mercados circundantes que puedan actuar en contra y que afectan al rendimiento de su hotel. Esto nos lleva a un alto nivel de comprensión, permitiendo la toma de decisiones de negocios mucho más razonada y más efectiva, que en definitiva, mejorará la rentabilidad.

TOP