CAMBIOS

Desde que Opera cerro la comunidad de MyOpera deje de escribir y bueno no es que los últimos años escribiera mucho en el blog, pero ahora siento la necesidad de comenzar a escribir nuevamente, han pasado muchas cosas en estos 4 años que no he documentado.

Desde proyectos que he desarrollado, cursos, seminarios… en fin, cosas en las que he dicho 

Eso debería estar en el blog

Y es lo que pienso hacer, de algún modo el escribir ayuda a ordenar mis ideas, así que retomare mi blog, y si uso WordPress es porque MyOpera, dentro de las opciones para respaldar nuestro blog, lo tenia, adicional al blog de en MyOpera tenia uno en Blogger sobre Educación y TI, mismo que ya integré a este blog.

Ahora ya están unificados los blogs que tenia, así que ya puedo escribir sobre temas que me interesan

Anuncios

REALIDAD MACROECONÓMICA LATINOAMERICANA

Me inscribí en un MOOC en Edx sobre macroeconomia y me han llamado fuermente la atención los siguientes enunciados:

El crecimiento económico es el resultado del aumento de los recursos productivos de la economía (capital físico y el capital humano)

Cuando la inversión privada es poco dinámica y de baja calidad, no se adoptan nuevas tecnologías con la suficiente rapidez

Las debilidades de las instituciones públicas son la restricción más importante para la inversión privada en los países de la región

Una pregunta clave es hasta qué punto la inversión provoca aumentos de la productividad

En América Latina la inversión no parece ser el motor de la productividad

En contra de la opinión el bajo crecimiento no puede atribuirse a las bajas tasas de inversión, sino al poco crecimiento de la productividad

La productividad es un concepto sencillo: es la relación entre la cantidad de producto y la cantidad de recursos utilizados

Mientras que, en Estados unidos, el 54% de las firmas tiene diez o menos trabajadores, en Argentina, 84% de las firmas tiene hasta diez, y en México y Bolivia, más de 90% no llega a los diez trabajadores. Esto es un problema, porquelas firmas pequeñas absorben una proporción importante de los recursos de la economía, especialmente de los recursos laborales, que enpromedio tienen muy baja productividad
Una firma latinoamericana de más de 100 empleados puede generar el doble de producto con los recursos de una pequeña empresa. La productividad aumentaría mucho si se reasignaran los recursos de las empresas menos productivas a las más productivas.
¿Qué evita, por tanto, que los recursos se muevan a las firmas más productivas o, dicho de otra forma, cómo pueden sobrevivir tantas firmas, especialmente las muy pequeñas, con una productividad tan baja?
Si bien, no soy un experto en temas de economia, este curso me esta permitiendo entender la realidad que tiene america latina como region.

Syncfusion + Devart

Hace tiempo que no escribo, pero bueno, los ultimos meses he estado escribiendo codigo en Windows usando Lightswitch, pero debido a que algunos de los usuarios aun usan Windows XP debemos de dar soporte a Internet Explorer 8 para que puedan ingresar a la plataforma, el inconveniente es que hay que reescribir algunos modulos en ASP.MVC y es aqui donde nace la idea del post.

El escenario es reescribir algunas pantallas (y planear la migración completa de Lightswitch a ASP) el problema es el tiempo, así que decidimos usar Entity Developer de Devart, ya que nos permite crear código basado en la actual base de datos, ahorrandonos mucho tiempo. ya que nos crea los controladores y la vistas (basadas en Twitter Bootstrap).

Lo primero que hicimos es crear un proyecto usado la plantilla de Syncfusion

Captura

Despues seguimos los pasos descritos en el siguiente link, con esto ya tenemos el proyecto hecho, pero la generación de código no fue adecuada, ya que nos indicaba que existia duplicidad de variables en algunos Controladores y Vistas, según el análisis que se desarrollo concluimos que duplicaba las variables (Id) ya que eran las referencias a otras tablas, por ejemplo:

public ViewResult Index(int? page, ... , global::System.Nullable<int> Id, global::System.Nullable<int> Id)
{
...
}

La variable que esta duplicando es Id, otro inconveniente generado es que en las vistas hacia la misma duplicidad, por lo que no podiamos ejecutar el proyecto, se busco alguna posible solución pero ninguna funcionó, así que lo que se decidio hacer es reescribir los templates desde los cuales se generan los controladores y las vistas, ya que Devar permite hacer eso.

edittemplate

Lo primero que se hizo fue crear templates en blanco (se copia y pega el codigo del template que genera por defecto entity developer), para la Vista y los Controladores, en el Caso de la Vista se eliminó desde la linea 131 a la 286  y se cambio por

@(Html.EJ().Grid<#=model.Name+"."+_class.Name #>>("FlatGrid")
.Datasource((IEnumerable<object>)ViewBag.datasource)
.AllowSorting()
.AllowPaging()
.Columns(col =>
{
<#+
foreach (Property property in _class.Properties)
if (!property.IsAssociation) {
#>
col.Field("<#= property.Name #>").HeaderText("<#= property.Name #>").TextAlign(TextAlign.Right).Add();
<#+
}
#>
}))

Esto producirá código como el que se muestra en el demo de Syncfusion MVC, ahora para el caso de los controladores se borro desde la linea 185 a 311 y se coloco en su lugar lo siguiente:

public ViewResult Index()
{
var query = repository.All().Select(i=> new
{
<#+ foreach (Property prop in _class.Properties) { #&gt;
<#= prop.Name #> = i.<#= prop.Name #>,
<#+ } #>
}).ToList();
ViewBag.datasource = query;
return View();
}

A diferencia del código que se muestra en los demos de Syncfusion, aqui se esta seleccionando datos para avitar algún problema de referencia cruzada con algun elemento de la tabla, una vez que se ejecuta la aplicación la salida es:

syncfusionvista

Con esto se soluciona el problema de la duplicidad en el nombre de variables y podemos apovechar las características de Syncfusion MVC, ahora solo resta determinar que elementos se mostraran y modificar otros posibles elementos de las Vistas para que hagan uso de los que provee Syncfusion.

LIGHTSWITCH

Desde que salí de la uni (2010) he desarrollado proyectos por mi cuenta, principalmente con PHP y C# la magnitud de los proyectos han variado, en algunos casos no es problema desarrollarlos solo pero en algunos casos se requiere que más gente participe.

Y si se le añade que entre el trabajo y otros compromisos, el tiempo que se le destina a  la programación es poco, esto me llevo a cuestionarme si realmente los lenguajes y forma de trabajo realmente es adecuada.

visual_studio_lightswitch_hosting

PHP y C# son lenguajes que me gustan pero aun así dedicaba mucho tiempo a actividades que eran repetitivas. No recuerdo como es que conocí Lightswitch pero sin duda es una herramienta que me permite centrarme en las reglas de negocio y en codificar cosas que realmente son importantes.

En las siguientes publicaciones escribiré sobre mi experiencia, de como se hacen algunas cosas y de los inconvenientes que se me han presentando, pero  mientras les dejo un vídeo en el que se describe de manera general como es que se desarrolla con esta tecnología (en caso de que el vídeo no se pueda ver, el link es este).

Por si alguno se interesa en este link encontrarán una serie de post en la que se describe la funcionalidad básica de Lightswitch, es raro que como una persona que lleva ya 10 años usando y promoviendo el software libre use este tipo de tecnologías, pero realmente me han ayudado mucho y espero que lo que he aprendido le pueda servir a otros.