Foros del Web » Soporte técnico » Ayuda General »

Webservice CRUD

Estas en el tema de Webservice CRUD en el foro de Ayuda General en Foros del Web. Buenas noches, Quería venir a exponer una idea en la cual llevo metido desde hace unos meses. La mayoria de los que estáis aquí os ...
  #1 (permalink)  
Antiguo 18/10/2015, 15:42
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Webservice CRUD

Buenas noches,

Quería venir a exponer una idea en la cual llevo metido desde hace unos meses.

La mayoria de los que estáis aquí os habéis topado con que a la hora de crear cualquier proyecto hay que modelar bases de datos, gestionar la lógica y permisos de la aplicación y programar todo esto para poder hacer de momento lo mínimo. Estoy desarrollando una api rest que gestiona las altas, bajas, modificaciones y listados ahorrando al usuario este paso. En resumen, un CRUD en la nube.

Las ventajas de esta idea son que los desarrolladores podrán alojar todos los datos en una plataforma y de esa manera ahorrarse la programación base, de manera que puedan realizar cualquier operación básica simplemente configurando sus aplicaciones en la plataforma y realizando unas peticiones con dos líneas de código. De esta manera tendrán cubierto:

- Listados: Ordenar, filtrar y listar registros
- Altas: Crear nuevos registros
- Modificaciones: Editar un registro
- Bajas: Eliminar un registro
- Permisos: Sistema de permisos genérico, expandible por el usuario

El usuario definirá unos campos por defecto: texto, numero, email, categoría, imagen, aplicación...etc, con una serie de filtros personalizables. De esta manera se ahorrara módulos para gestionar imágenes y todo el proceso que lleva validar formularios entre muchas otras cosas.

El proyecto lo tengo bastante avanzado, pero antes me gustaría saber de vuestra opinión. ¿Lo veis útil? ¿Que pegas le veis? ¿Alguna sugerencia?

Muchas gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 18/10/2015, 16:22
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Webservice CRUD

Te felicito por tu proyecto, pero me parece que estás tratando de reinventar la rueda.

Todo eso que enumerás lo obtenés por default en ASP.Net MVC / Web API (por ejemplo) usando Scaffolding.

el Scaffolding de MVC incluso te genera vistas en CSHTML sencillas con inputs para los datos del modelo.

No veo qué valor agregado aporta tu proyecto frente a ASP.Net MVC.
  #3 (permalink)  
Antiguo 19/10/2015, 01:47
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Muchas gracias por tu respuesta agleiva,

El objetivo de este hilo es este tipo de comentarios. No había encontrado hasta ahora nada que le fuera parecido.

En mi desarrollo también incluyo una vista en html basada en bootstrap que permite configurar los campos en 1/12 columnas siguiendo el orden que quieras, pero mi idea va mas allá de usarse solamente en proyectos web, dado que podría utilizarse para desarrollos de apps nativas o móviles.

Adicionalmente hay una capa que controla permisos y permite añadir otros personalizados, pudiéndolo integrar en tu desarrollo y evitarte ese desarrollo, asi como su propio sistema de usuarios.

¿Me podrías especificar un poco mas sobre ASP.Net MVC? No lo consigo asemejar a mi idea dado que no veo diferencia entre este y Codeigniter / Symphony por ejemplo. En el servicio que ofreceré facilito al usuario la posibilidad de añadir proyectos y en cada proyecto definir unas aplicaciones con una serie de campos y sus correspondientes propiedades como: longitud, reglas, estilo...etc. Una vez desarrollada la estructura facilito una api rest para gestionar el crud entre otras cosas.

Última edición por 50l3r; 19/10/2015 a las 01:53
  #4 (permalink)  
Antiguo 19/10/2015, 09:26
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Webservice CRUD

Cita:
Iniciado por 50l3r Ver Mensaje
En mi desarrollo también incluyo una vista en html basada en bootstrap que permite configurar los campos en 1/12 columnas siguiendo el orden que quieras
Eso se puede hacer en MVC con Razor. El Scaffolding te genera una versión simple de la vista basada en el Model / ViewModel, y luego uno tiene la libertad de modificarlo como quiera. De hecho, por default, MVC incluye Bootstrap.

Cita:
Iniciado por 50l3r Ver Mensaje
pero mi idea va mas allá de usarse solamente en proyectos web, dado que podría utilizarse para desarrollos de apps nativas o móviles.
Eso se puede hacer en MVC usando Web API, que expone endpoints RESTful en los controllers, desde una aplicación móvil (o desde cualquier lado, realmente) se pueden consumir los servicios REST.

La ventaja que te da .Net con respecto a (por ejemplo) PHP es que PHP es terriblemente limitado, y no se puede utilizar en aplicaciones de escritorio / móviles / etc. Mientras que con C# o F#, en .Net, uno puede crear un único modelo de datos + lógica de negocio en una PCL y utilizar ese código tanto del lado del server como del cliente.


Cita:
Iniciado por 50l3r Ver Mensaje
Adicionalmente hay una capa que controla permisos y permite añadir otros personalizados, pudiéndolo integrar en tu desarrollo y evitarte ese desarrollo, asi como su propio sistema de usuarios.
ASP.Net MVC incluye Identity, que resuelve el tema de autentificación y autorización.

Cita:
Iniciado por 50l3r Ver Mensaje
¿Me podrías especificar un poco mas sobre ASP.Net MVC?
http://www.asp.net/mvc

Cita:
Iniciado por 50l3r Ver Mensaje
No lo consigo asemejar a mi idea
Estás planteando una plataforma en la cuál uno define un par de campos en un modelo, y la plataforma te genera automáticamente los endpoints REST, y las vistas. ésto es exactamente lo que hace el Scaffolding de MVC.

https://youtu.be/kCZLqWYhUCk?t=374

Cita:
Iniciado por 50l3r Ver Mensaje
no veo diferencia entre este y Codeigniter / Symphony
No conozco estos frameworks, pero en mi experiencia PHP es un lenguaje / plataforma extremadamente limitado y lleno de problemas, inconsistencias, y atado con alambre por todos lados en lugar de estar diseñado correctamente por profesionales. Sin mencionar que como PHP ni siquiera tiene un compilador, es terriblemente lento comparado con plataformas serias como .Net o la JVM.

Yo no lo recomendaría para crear aplicaciones datacéntricas, si no sólamente para páginas web sencillas.

ASP.Net, por ejemplo, me permite usar Entity Framework, un ORM que me permite acceder a los datos de la base de datos usando un modelo de datos fuertemente tipado, y utiliza árboles de expresiones para crear el SQL a partir del código C#. La última vez que miré, PHP lo único que hace es concatenar strings para lograr lo mismo, con lo cuál es mucho menos eficiente, mucho más propenso a errores, y mucho más inseguro.
Además, Entity Framework tiene una funcionalidad llamada Migrations, que actualiza de manera automática el esquema de la base de datos a partir del modelo de datos, simplemente ejecutando una instrucción en una consola, evitando el mantenimiento del esquema mediante SQL, que es infernalmente tedioso y propenso a errores.

Yo en este momento estoy reescribiendo un proyecto que hice hace tiempo en PHP, esta vez en ASP.Net MVC usando C#, F#, Entity Framework, Migrations, y Umbraco, y la verdad da risa mirar el código PHP y compararlo con F#. PHP es un lenguaje de juguete.

Cita:
Iniciado por 50l3r Ver Mensaje
En el servicio que ofreceré facilito al usuario la posibilidad de añadir proyectos y en cada proyecto definir unas aplicaciones con una serie de campos y sus correspondientes propiedades como: longitud, reglas, estilo...etc. Una vez desarrollada la estructura facilito una api rest para gestionar el crud entre otras cosas.
O sea, vas a ofrecer un CRUD-As-a-service.

Suena interesante, pero también muy limitado. Qué pasa si yo ante una acción determinada (por ejemplo en uno de los endpoints REST) necesito consumir un servicio de terceros (por ejemplo un Web Service SOAP)? Justamente ese es uno de los requerimientos de mi proyecto actual, y de nuevo, da risa ver como en PHP tuve que construir el XML manualmente concatenando strings (incluyendo el SOAP envelope), y en cambio .Net me expone el web service mediante una clase fuertemente tipada, con métodos que representan los SOAP actions, y reciben los parámetros de los tipos apropiados.

Yo sinceramente no perdería tiempo con PHP, que la verdad no ofrece ninguna ventaja, cuando hay plataformas muchísimo más adecuadas para crear aplicaciones datacéntricas.
  #5 (permalink)  
Antiguo 21/10/2015, 02:44
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Cita:
Iniciado por agleiva Ver Mensaje
Suena interesante, pero también muy limitado. Qué pasa si yo ante una acción determinada (por ejemplo en uno de los endpoints REST) necesito consumir un servicio de terceros (por ejemplo un Web Service SOAP)? Justamente ese es uno de los requerimientos de mi proyecto actual, y de nuevo, da risa ver como en PHP tuve que construir el XML manualmente concatenando strings (incluyendo el SOAP envelope), y en cambio .Net me expone el web service mediante una clase fuertemente tipada, con métodos que representan los SOAP actions, y reciben los parámetros de los tipos apropiados.

Yo sinceramente no perdería tiempo con PHP, que la verdad no ofrece ninguna ventaja, cuando hay plataformas muchísimo más adecuadas para crear aplicaciones datacéntricas.
Yo lo que facilito al usuario es una libreria que conecta con todo el servicio de crud, gestion de permisos...etc. Luego el es libre de conectar mediante su desarrollo a otros servicios de terceros desde su código.

El sistema que utilizo usa Rest Server (https://github.com/chriskacerguis/co...ter-restserver) y ya te facilita los datos en json o xml, pudiendo extenderlo e implementando otros muchos.
  #6 (permalink)  
Antiguo 21/10/2015, 05:32
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Webservice CRUD

Buenas,

Yo no acabo de entender que aporta tu proyecto respecto a un servicio database-as-a-service. Por ejemplo: https://mongolab.com/
http://docs.mongolab.com/

En esos casos puedes crear facilemente tambien tu base de datos (crud en json, filtros, listas...) sin ningun tipo de limitacion (en tu caso hablas de un limite de 12 columnas y no comentas si has implementado algun sistema para la importacion de fuentes de datos).

Tampoco comentas si tu proyecto ya es publico y se pueden consultar mas detalles o si lo vas a hacer open source.


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #7 (permalink)  
Antiguo 21/10/2015, 07:25
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Yo no acabo de entender que aporta tu proyecto respecto a un servicio database-as-a-service. Por ejemplo: https://mongolab.com/
http://docs.mongolab.com/

En esos casos puedes crear facilemente tambien tu base de datos (crud en json, filtros, listas...) sin ningun tipo de limitacion (en tu caso hablas de un limite de 12 columnas y no comentas si has implementado algun sistema para la importacion de fuentes de datos).

Tampoco comentas si tu proyecto ya es publico y se pueden consultar mas detalles o si lo vas a hacer open source.


Un saludo
Nose si mongodb tiene la posibilidad de definir tipos de campo: texto, archivo, imagen, numero, email por ejemplo, y poder crear los tuyos propios con expresiones regulares y pareseo de datos. Me informo y te digo diferencias.

El limite de columnas es a nivel de maquetación (http://getbootstrap.com/css/#grid), esto lo comente hablando antes del scaffolding. Este tema me preocupa menos dado que lo que me importa es el tratamiento de los datos y no como se pinten.

El sistema tendrá un panel de control donde podrás gestionar los datos directamente, exportar e importar, y evidentemente el usuario podrá realizar las operaciones de manejo de datos a trabes de la api y una librería que facilitaré.

De momento el proyecto no es público dado que me falta desarrollar la librería de cliente y el backend para la gestión de datos (importacion,exportacion...)
  #8 (permalink)  
Antiguo 21/10/2015, 13:18
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Webservice CRUD

Buenas,

En MongoDB tienes los siguientes tipos: https://docs.mongodb.org/manual/reference/bson-types/
Como veras en la misma pagina tambien permite la inclusion de expresiones regulares siguiendo la especificacion de Perl (que es la mas completa que conozco).

Bueno, cuando lo tengas mas perfilado ya nos mostraras una demo. Mucha suerte con tu proyecto!

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #9 (permalink)  
Antiguo 21/10/2015, 16:40
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Webservice CRUD

Más bien eso sería un Backend as a Service, como por ejemplo:

https://www.parse.com/
http://www.kumulos.com/

Saludos
__________________
Grupo Telegram Docker en Español
  #10 (permalink)  
Antiguo 22/10/2015, 01:15
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Cita:
Iniciado por Carlangueitor Ver Mensaje
Más bien eso sería un Backend as a Service, como por ejemplo:

https://www.parse.com/
http://www.kumulos.com/

Saludos
Esto se acerca mas a mi idea si.

1: Creas un proyecto
2: Construyes sus tablas/aplicaciones y defines sus campos
3: Conectas tu desarrollo con la api
4: Empiezas a gestionar tus datos remotamente

Te permite evitar tener bases de datos locales y de esta manera tienes una base de datos en la nube totalmente centralizada. Un problema común para mi es que mis desarrollos en local se sincronizan con dropbox/mega, pero no las bases de datos y cuando me desplazo tengo que hacer una copia y actualizarla.

Evita tener que crear tu propio sistema de usuarios. El sistema te aporta uno propio con sus permisos y la posibilidad de extener estos ultimos.

Te ofrece un backend para poder gestionar los datos directamente sin pasar por tu aplicación. De esta manera puedes importar y exportar datos rapidamente y tener tus datos al día.
  #11 (permalink)  
Antiguo 22/10/2015, 07:44
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Webservice CRUD

Cita:
Iniciado por 50l3r Ver Mensaje
1: Creas un proyecto
2: Construyes sus tablas/aplicaciones y defines sus campos
3: Conectas tu desarrollo con la api
4: Empiezas a gestionar tus datos remotamente
Te comento cuál es mi workflow actual:

1 - Creo un proyecto
2 - Creo un modelo de datos fuertemente tipado sobre el cuál luego construiré la lógica de negocio.
3 - Agrego al proyecto las dependencias para poder utilizar Entity Framework y SQL Compact 4.0
4 - Ejecuto 3 comandos en una consola que generan la base de datos automáticamente según el modelo de datos.
5 - Commiteo el proyecto a Git.
6 - Los otros desarrolladores del equipo hacen pull del proyecto desde Git y ejecutan los mismos 3 comandos para crear cada uno su base de datos.
7 - Cuando hay un cambio en el modelo, EF me genera automáticamente los scripts de "Up" y "Down" para "subir" o "bajar" la versión de la base de datos. Estos también van al source control para que los demás puedan correrlo
8 - Cuando el proyecto está listo para pasar a testing/producción, cambio una sola línea de código y el connection string, y paso a usar MySQL (o bien SQL Server Express, dependiendo del proyecto), luego click derecho -> Deploy me sube el proyecto al servidor, junto con la base de datos.

Todo esto lo hago desde la comodidad de Visual Studio y no tengo que recurrir a ninguna herramienta externa, jamás. No dependo de servicios externos, excepto por el control de código que de cualquier manera es gratuito porque somos una empresa pequeña.

Cita:
Iniciado por 50l3r Ver Mensaje
Te permite evitar tener bases de datos locales y de esta manera tienes una base de datos en la nube totalmente centralizada. Un problema común para mi es que mis desarrollos en local se sincronizan con dropbox/mega, pero no las bases de datos y cuando me desplazo tengo que hacer una copia y actualizarla.
Como te comenté, esto lo resuelvo con EF. Además, la manera profesional de trabajar es usar control de código. Ni DropBox ni Mega son herramientas adecuadas para alojar código. Profesionalmente se usan herramientas como Git, TFS, Mercurial, y otros, que están diseñados específicamente para tal fin.

Cita:
Iniciado por 50l3r Ver Mensaje
Evita tener que crear tu propio sistema de usuarios. El sistema te aporta uno propio con sus permisos y la posibilidad de extener estos ultimos.
Como te comenté, esto lo resuelvo con Identity.

Cita:
Iniciado por 50l3r Ver Mensaje
Te ofrece un backend para poder gestionar los datos directamente sin pasar por tu aplicación. De esta manera puedes importar y exportar datos rapidamente y tener tus datos al día.
Esto lo hago con las herramientas de administración de SQL CE o SQL Server, otra vez, sin necesidad de servicios externos.

En fin, aunque suena interesante tu proyecto, no creo que sea muy aplicable para equipos de desarrollo que usan tecnologías modernas.
  #12 (permalink)  
Antiguo 22/10/2015, 09:11
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Cita:
Iniciado por agleiva Ver Mensaje
Te comento cuál es mi workflow actual:

1 - Creo un proyecto
2 - Creo un modelo de datos fuertemente tipado sobre el cuál luego construiré la lógica de negocio.
3 - Agrego al proyecto las dependencias para poder utilizar Entity Framework y SQL Compact 4.0
4 - Ejecuto 3 comandos en una consola que generan la base de datos automáticamente según el modelo de datos.
5 - Commiteo el proyecto a Git.
6 - Los otros desarrolladores del equipo hacen pull del proyecto desde Git y ejecutan los mismos 3 comandos para crear cada uno su base de datos.
7 - Cuando hay un cambio en el modelo, EF me genera automáticamente los scripts de "Up" y "Down" para "subir" o "bajar" la versión de la base de datos. Estos también van al source control para que los demás puedan correrlo
8 - Cuando el proyecto está listo para pasar a testing/producción, cambio una sola línea de código y el connection string, y paso a usar MySQL (o bien SQL Server Express, dependiendo del proyecto), luego click derecho -> Deploy me sube el proyecto al servidor, junto con la base de datos.

Todo esto lo hago desde la comodidad de Visual Studio y no tengo que recurrir a ninguna herramienta externa, jamás. No dependo de servicios externos, excepto por el control de código que de cualquier manera es gratuito porque somos una empresa pequeña.



Como te comenté, esto lo resuelvo con EF. Además, la manera profesional de trabajar es usar control de código. Ni DropBox ni Mega son herramientas adecuadas para alojar código. Profesionalmente se usan herramientas como Git, TFS, Mercurial, y otros, que están diseñados específicamente para tal fin.



Como te comenté, esto lo resuelvo con Identity.



Esto lo hago con las herramientas de administración de SQL CE o SQL Server, otra vez, sin necesidad de servicios externos.

En fin, aunque suena interesante tu proyecto, no creo que sea muy aplicable para equipos de desarrollo que usan tecnologías modernas.
Me parecen demasiadas operaciones para el resultado final, incluso sin llegar a utilizar ningun webservice y desarrollando de manera estandar.

Git, subversion... perfecto para controlar versiones y trabajar en equipo. No es mi caso dado que siempre trabajo solo y en local hasta ahora.

No soy partidario de la tecnología de Microsoft en cuanto a herramientas de desarrollo. He trabajado en basic, c# y asp y tanto vb6 cono visual studio me parecen sdks muy cargados de opciones que nunca vas a utilizar. Con un sublime text me viene bien.

Otra idea que se me ocurre es implementar un sistema de forks de bases de datos. Tener una opcion de que una tabla tuya pueda ser pública y que otras personas puedan hacer forks de ellas, de manera que puedan disponer de tablas de municipios, paises u otro tipo de entidades de manera libre.


El mejor sitio que define mi idea es Podio (https://podio.com/), en el creas tu organizacion, tus aplicaciones y defines tus campos. Puedes importar y exportar datos. Aquí la falla está en que no tienen una api rest que te de la posibilidad de usar los datos de podio en tus proyectos.

Última edición por 50l3r; 22/10/2015 a las 09:50
  #13 (permalink)  
Antiguo 22/10/2015, 10:50
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Webservice CRUD

Personalmente no creo que sea necesario mover datos de una base a otra en todo momento, y menos desarrollaría con la base de datos de producción.

Mientras los schemas de la base de datos coincidan (para eso usas migraciones) no veo el problema, si necesitas datos para que no esté vacío puedes usar fixtures para llenarlos.

Igual en los casos que sea necesario usar la base de producción, pues haces un backup y usas eso. Si te da mucha bola hacerlo a mano pues te haces un script.

En cuanto lo de los usuarios, quizá necesites usar un framework que te proveea de eso si creas muchos proyectos genericos. En mi caso actual hago cosas muy custom como para requerir algo así.

PD: En el 98% de los casos guardar imágenes en la base de datos es una cochinada tremenda.

Saludos
__________________
Grupo Telegram Docker en Español
  #14 (permalink)  
Antiguo 22/10/2015, 11:10
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Cita:
Iniciado por Carlangueitor Ver Mensaje
Personalmente no creo que sea necesario mover datos de una base a otra en todo momento, y menos desarrollaría con la base de datos de producción.

Mientras los schemas de la base de datos coincidan (para eso usas migraciones) no veo el problema, si necesitas datos para que no esté vacío puedes usar fixtures para llenarlos.

Igual en los casos que sea necesario usar la base de producción, pues haces un backup y usas eso. Si te da mucha bola hacerlo a mano pues te haces un script.

En cuanto lo de los usuarios, quizá necesites usar un framework que te proveea de eso si creas muchos proyectos genericos. En mi caso actual hago cosas muy custom como para requerir algo así.

PD: En el 98% de los casos guardar imágenes en la base de datos es una cochinada tremenda.

Saludos
No me refiero a trabajar en producción, sino a tener una copia en todo momento de un proyecto (desarrollo + produccion) online y poder trabajar en cualquier sitio sin tener que hacer copias de la base de datos. Para mi esto es muy cómodo dado que no siempre trabajo en el mismo sitio y si he realizado cambios en la estructura de la base de datos quizás en casa no tenga la misma estructura o datos introducidos por ejemplo. Utilicé dropbox para hacer el apaño de sincronizar todos los archivos de la carpeta "data" de mysql y funciona pero no os lo recomiendo dado que puede dar errores y dejar tablas inservibles.

Actualmente, un mismo usuario puede tener distintos proyectos/databases y dar acceso a otros usuarios a distintas aplicaciones/tablas o también en su totalidad.

Las imágenes no se guardan con campos tipo blob ni nada por el estilo. Son hosteadas en los servidores online y lo unico alojado en la base de datos son los nombres de la misma.
  #15 (permalink)  
Antiguo 22/10/2015, 11:46
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Webservice CRUD

Cita:
Iniciado por 50l3r Ver Mensaje
No me refiero a trabajar en producción, sino a tener una copia en todo momento de un proyecto (desarrollo + produccion) online y poder trabajar en cualquier sitio sin tener que hacer copias de la base de datos.
Es que no veo cual es el problema en que uses fixtures para los datos (y actualizarlos conforme se vayan usando).

Cita:
Iniciado por 50l3r Ver Mensaje
Para mi esto es muy cómodo dado que no siempre trabajo en el mismo sitio y si he realizado cambios en la estructura de la base de datos quizás en casa no tenga la misma estructura o datos introducidos por ejemplo.
Y la estructura, para eso son las migraciones

Cita:
Iniciado por 50l3r Ver Mensaje
Utilicé dropbox para hacer el apaño de sincronizar todos los archivos de la carpeta "data" de mysql y funciona pero no os lo recomiendo dado que puede dar errores y dejar tablas inservibles.
Justamente por eso no deberías hacer eso.


Adicionalmente si no te convence nada de nada no veo el problema con que montes una DB en un server cualquiera y te conectas a esa DB sin problemas como los de dropbox.

Saludos
__________________
Grupo Telegram Docker en Español
  #16 (permalink)  
Antiguo 22/10/2015, 12:24
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Webservice CRUD

Cita:
Iniciado por 50l3r Ver Mensaje
Git, subversion... perfecto para controlar versiones y trabajar en equipo. No es mi caso dado que siempre trabajo solo y en local hasta ahora.
Pero alma de cantaro, tu sabes que es un control de versiones y sabes para que se usa? Yo tengo proyectos personales y ni se me pasa por la cabeza estar sin control de versiones.

Cita:
Iniciado por 50l3r Ver Mensaje
No soy partidario de la tecnología de Microsoft en cuanto a herramientas de desarrollo. He trabajado en basic, c# y asp y tanto vb6 cono visual studio me parecen sdks muy cargados de opciones que nunca vas a utilizar.
Que tengas un sdk amplio y herramientas con muchas opciones no es precisamente algo malo. Quizás si las supieses usar correctamente le sacarías todo el provecho. En cualquier caso, el tener un lenguaje "rico" es más bien una ventaja y ayuda a desarrollar de forma muy rápida (si sabes aprovecharlo, claro).
__________________
Aviso: No se resuelven dudas por MP!
  #17 (permalink)  
Antiguo 22/10/2015, 12:30
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Webservice CRUD

Cita:
Iniciado por 50l3r Ver Mensaje
Me parecen demasiadas operaciones para el resultado final, incluso sin llegar a utilizar ningun webservice y desarrollando de manera estandar.
Nótese que estoy describiendo un workflow que sirve para trabajar en equipo. Si así no fuera, sería más sencillo. Además, no veo cómo son "demasiadas operaciones", comparado (por ejemplo) con PHP, que ni siquiera tiene un compilador adecuado y los frameworks y librerías necesarias para crear aplicaciones datacéntricas de manera profesional, y en lugar de eso te obliga a estar lidiando con herramientas deficientes.

Cita:
Iniciado por 50l3r Ver Mensaje
Git, subversion... perfecto para controlar versiones y trabajar en equipo. No es mi caso dado que siempre trabajo solo y en local hasta ahora.
Yo hace poco que sumé gente a mi equipo. Antes de eso siempre trabajé solo, y aún así use control de código para mantener un órden. Te guste o no, es la forma profesional de trabajar. Podés buscar excusas para no hacerlo, pero no cambia el hecho de que si querés que te tomen en serio tenés que trabajar profesionalmente.

Cita:
Iniciado por 50l3r Ver Mensaje
No soy partidario de la tecnología de Microsoft en cuanto a herramientas de desarrollo.
No, claro. Seguramente es "mejor" usar una tecnología como PHP, que todo el mundo sabe que está llena de deficiencias, inconsistencias, y no provee las herramientas adecuadas (por ejemplo no tiene un compliador que provea verificación de tipos)

Cita:
Iniciado por 50l3r Ver Mensaje
tanto vb6 cono visual studio me parecen sdks muy cargados de opciones que nunca vas a utilizar.
Claro, seguramente es "mejor" reinventar la rueda como lo estás haciendo ahora, en lugar de utilizar las herramientas que ya fueron construidas por profesionales. Claramente tu desarrollo (en PHP) va a superar en calidad, performance, escalabilidad y flexibilidad a ASP.Net MVC.

Cita:
Iniciado por 50l3r Ver Mensaje
Otra idea que se me ocurre es implementar un sistema de forks de bases de datos. Tener una opcion de que una tabla tuya pueda ser pública y que otras personas puedan hacer forks de ellas, de manera que puedan disponer de tablas de municipios, paises u otro tipo de entidades de manera libre.
Yo para ese tipo de cosas utilizo un Type Provider de F# que me permite consumir datos de World Bank, con una sola línea de código. Pero bueno.

Cita:
Iniciado por 50l3r Ver Mensaje
El mejor sitio que define mi idea es Podio (https://podio.com/), en el creas tu organizacion, tus aplicaciones y defines tus campos. Puedes importar y exportar datos. Aquí la falla está en que no tienen una api rest que te de la posibilidad de usar los datos de podio en tus proyectos.
O sea... lo mismo que hago con MVC, gratuitamente y desde la comodidad del IDE, vos estas proponiendo que lo haga con un servicio de terceros, seguramente pago, y con la desventaja de tener que adaptar mi código de acceso a datos a una eventual API genérica de terceros, que seguramente no se va a ajustar a mis necesidades de acceso a datos.

Me parece una idea genial, sinceramente. (</s>)
  #18 (permalink)  
Antiguo 22/10/2015, 12:35
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Webservice CRUD

Cita:
Iniciado por 50l3r Ver Mensaje
Utilicé dropbox para hacer el apaño de sincronizar todos los archivos de la carpeta "data" de mysql y funciona pero no os lo recomiendo dado que puede dar errores y dejar tablas inservibles.
Si usaras herramientas profesionales, como las que te he comentado, no tendrías ninguno de estos problemas.
  #19 (permalink)  
Antiguo 22/10/2015, 14:04
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Cita:
Iniciado por Carlangueitor Ver Mensaje
Es que no veo cual es el problema en que uses fixtures para los datos (y actualizarlos conforme se vayan usando).
Sigo sin entender porque cargar los datos una y otra vez en distintas bases de datos de local es mas rápido que tenerlos unificados en una misma base de datos.

Cita:
Iniciado por Carlangueitor Ver Mensaje
Y la estructura, para eso son las migraciones
Lo mismo, no entiendo porque voy a tener que realizar migraciones cada dos por tres.


Cita:
Iniciado por Malenko Ver Mensaje
Pero alma de cantaro, tu sabes que es un control de versiones y sabes para que se usa? Yo tengo proyectos personales y ni se me pasa por la cabeza estar sin control de versiones.
He usado subversion y git en servidores dedicados cuando tenia desarrollos que necesitaba versionar. Sinceramente nunca he tenido que hacer rollbacks grandes y solamente realizaba commits. Ojo que no tenga nada en contra de estas aplicaciones dado que las he usado y las seguiré usando.

Con un software como dropbox, drive, megao cualquier similar me basta. Cada uno es libre de gestionarse como quiera. En mi opinión como he dicho, los controles de versiones los veo más para trabajar en grupo.

Cita:
Iniciado por Malenko Ver Mensaje
Que tengas un sdk amplio y herramientas con muchas opciones no es precisamente algo malo. Quizás si las supieses usar correctamente le sacarías todo el provecho. En cualquier caso, el tener un lenguaje "rico" es más bien una ventaja y ayuda a desarrollar de forma muy rápida (si sabes aprovecharlo, claro).
En ningun momento he dicho que tener un lenguaje rico sea una desventaja. Me aseguro a que ninguno de este hilo ha utilizado al 100% el sdk de visual studio por completo. Transformando el tema en una analogía, prefiero un coche que corra lo que necesito a un formula 1 que voy a llevar a 120 km/h por la autovia.


Cita:
Iniciado por agleiva Ver Mensaje
Nótese que estoy describiendo un workflow que sirve para trabajar en equipo. Si así no fuera, sería más sencillo. Además, no veo cómo son "demasiadas operaciones", comparado (por ejemplo) con PHP, que ni siquiera tiene un compilador adecuado y los frameworks y librerías necesarias para crear aplicaciones datacéntricas de manera profesional, y en lugar de eso te obliga a estar lidiando con herramientas deficientes.
Desconozco la carga que lleva tu herramienta, pero he mantenido servicios basados en php con 10.000 usuarios simultaneos y todo ha ido como la seda. Suelo estar al tanto de varios sitios que hablan de desarrollo de software y no me he topado con ninguno que menosprecie tanto php como lo haces tu (esto no quiere decir que no los haya).


Cita:
Iniciado por agleiva Ver Mensaje
Yo hace poco que sumé gente a mi equipo. Antes de eso siempre trabajé solo, y aún así use control de código para mantener un órden. Te guste o no, es la forma profesional de trabajar. Podés buscar excusas para no hacerlo, pero no cambia el hecho de que si querés que te tomen en serio tenés que trabajar profesionalmente.
No utilizo actualmente ningun software de control de versiones y tengo mi codigo perfectamente catalogado y ordenado. Que otras personas te dicten que aplicativos debes utilizar para gestionar tus desarrollos no me parece una excusa con fundamento para instarme a utilizarlo. Te recuerdo que de esto no va el tema.


Cita:
Iniciado por agleiva Ver Mensaje
Claro, seguramente es "mejor" reinventar la rueda como lo estás haciendo ahora, en lugar de utilizar las herramientas que ya fueron construidas por profesionales. Claramente tu desarrollo (en PHP) va a superar en calidad, performance, escalabilidad y flexibilidad a ASP.Net MVC.
Porque el 100% las ideas fructiferas han sido cosas que no existían... Pepsi tiene que estar tirándose de los pelos.


Cita:
Iniciado por agleiva Ver Mensaje
Yo para ese tipo de cosas utilizo un Type Provider de F# que me permite consumir datos de World Bank, con una sola línea de código. Pero bueno.
Desconozco la existencia de estos pero ¿sirven para todo tipo de datos? Mi propuesta es que en una unica plataforma puedas recoger aplicaciones/tablas de otras personas como por ejemplo todas las marcas de coches, los modelos de cada marca...etc.

Cita:
Iniciado por agleiva Ver Mensaje
O sea... lo mismo que hago con MVC, gratuitamente y desde la comodidad del IDE, vos estas proponiendo que lo haga con un servicio de terceros, seguramente pago, y con la desventaja de tener que adaptar mi código de acceso a datos a una eventual API genérica de terceros, que seguramente no se va a ajustar a mis necesidades de acceso a datos.

Me parece una idea genial, sinceramente. (</s>)
Será una idea disparatada segun tu criterio, pero no creo que a todos los trabajadores de podio se les pague con abrazos: https://podio.com/site/es/about/meet-the-podios

El auge de la nube, chromebooks y demases son la prueba de que se trabaja mas en online que offline, aunque cada uno con sus gustos.

Cita:
Iniciado por agleiva Ver Mensaje
Si usaras herramientas profesionales, como las que te he comentado, no tendrías ninguno de estos problemas.
Estas sacando las cosas fuera de contexto. Esto lo planteo como una experiencia que he tenido y no una practica que haya inculcado en mi dia a dia. Que lo haya probado para ver que pudiera ocurrir no es un argumento que puedas usar para menospreciar mi forma de trabajar.


Sinceramente no creo que haya sido muy productivo haber abierto este hilo. Muchos menosprecios y solamente se esta hablando de las herramientas que se utiliza para desarrollar y no de la idea. Lo único que me ha servido de algo:

Cita:
Iniciado por Carlangueitor Ver Mensaje
Más bien eso sería un Backend as a Service, como por ejemplo:

https://www.parse.com/
http://www.kumulos.com/

Saludos
Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

En MongoDB tienes los siguientes tipos: https://docs.mongodb.org/manual/reference/bson-types/
Como veras en la misma pagina tambien permite la inclusion de expresiones regulares siguiendo la especificacion de Perl (que es la mas completa que conozco).

Bueno, cuando lo tengas mas perfilado ya nos mostraras una demo. Mucha suerte con tu proyecto!

Un saludo
Cerrar el hilo porque me estoy cabreando.
  #20 (permalink)  
Antiguo 22/10/2015, 14:08
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Webservice CRUD

Entonces lo pondré de otra forma:

Qué ventaja tiene tu propuesta con respecto a usar ASP.Net MVC + Entity Framework + Migrations + MySQL o SQL Server?

Otra cosa:

Cita:
Mi propuesta es que en una unica plataforma puedas recoger aplicaciones/tablas de otras personas como por ejemplo todas las marcas de coches, los modelos de cada marca...etc.
Entonces los datos de mi aplicación van a depender de terceros? quién se encarga de mantener los datos? que pasa si a un usuario se le da por llenar la tabla con datos basura y mi aplicación se ve perjudicada por esto? Prefiero usar datos oficiales realmente (como lo que te mencioné de World Bank), o mantener mis propias tablas y en cualquier caso si un usuario necesita algo que no está lo agregaré.

Otra cosa más:

El "SDK de Visual Studio" es un SDK para crear plugins o adiciones a Visual Studio en si mismo. Si te estás refiriendo al .Net Framework, deberías usar el nombre correcto. Adicionalmente, el .Net Framework es totalmente modular, y cada uno agrega o quita de sus proyectos los componentes que va a usar o no. No es una bolsa de gatos como la mayoría del código PHP (que he visto hasta ahora). Con lo cuál si bien el .Net Framework es ENORME, y nadie lo usa al 100%, no veo por qué eso sea una razón válida para desmerecerlo y en su lugar usar una plataforma / lenguaje de JUGUETE como PHP.

Otra cosa más:

El "auge" de la chromebook tiene 0.32% de market share global. Mientras que Windows tiene 95~98%. Windows 7 solo tiene 60%. En mi país usamos la expresión "Alto [X]!" cuando decimos que algo es muy grande o, de forma sarcástica, cuando decimos que algo es demasiado pequeño.

Alto auge.

Otra cosa más:

Estás hablando de podio, pero no entiendo qué tiene que ver ese sitio con el desarrollo de software? parece una herramienta de management, no veo donde tiene algo relacionado al desarrollo. No entiendo tu comparación.

Otra cosa más:

Cita:
Transformando el tema en una analogía, prefiero un coche que corra lo que necesito a un formula 1 que voy a llevar a 120 km/h por la autovia.
Pero estás comentando tu forma de trabajar y varias otras personas (no solo yo) te han comentado que hay deficiencias en tu workflow. Un "coche que corra a lo que necesito" difícilmente sea una plataforma como PHP que está pensada para hacer sitios web comerciales, y no aplicaciones datacéntricas. Sin mencionar que por definición PHP es más lento que un lenguaje compilado como C# o java.

Última edición por agleiva; 22/10/2015 a las 14:35
  #21 (permalink)  
Antiguo 22/10/2015, 15:02
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Cita:
Iniciado por agleiva Ver Mensaje
Entonces lo pondré de otra forma:

Qué ventaja tiene tu propuesta con respecto a usar ASP.Net MVC + Entity Framework + Migrations + MySQL o SQL Server?
Compartir aplicaciones, trabajar de manera online y poder trabajar con tecnologias diferentes a las que mencionas.


Cita:
Iniciado por agleiva Ver Mensaje
Entonces los datos de mi aplicación van a depender de terceros? quién se encarga de mantener los datos? que pasa si a un usuario se le da por llenar la tabla con datos basura y mi aplicación se ve perjudicada por esto? Prefiero usar datos oficiales realmente (como lo que te mencioné de World Bank), o mantener mis propias tablas y en cualquier caso si un usuario necesita algo que no está lo agregaré.
Antes hacia alusion a un fork de datos (https://es.wikipedia.org/wiki/Bifurc...lo_de_software)). Pones pegas donde no las hay.

Cita:
Iniciado por agleiva Ver Mensaje
El "SDK de Visual Studio" es un SDK para crear plugins o adiciones a Visual Studio en si mismo. Si te estás refiriendo al .Net Framework, deberías usar el nombre correcto. Adicionalmente, el .Net Framework es totalmente modular, y cada uno agrega o quita de sus proyectos los componentes que va a usar o no. No es una bolsa de gatos como la mayoría del código PHP (que he visto hasta ahora). Con lo cuál si bien el .Net Framework es ENORME, y nadie lo usa al 100%, no veo por qué eso sea una razón válida para desmerecerlo y en su lugar usar una plataforma / lenguaje de JUGUETE como PHP.
Dejamos este tema que no va a llegar a ninguna parte aparcado con tu gran desprecio hacia php

Cita:
Iniciado por agleiva Ver Mensaje
El "auge" de la chromebook tiene 0.32% de market share global. Mientras que Windows tiene 95~98%. Windows 7 solo tiene 60%. En mi país usamos la expresión "Alto [X]!" cuando decimos que algo es muy grande o, de forma sarcástica, cuando decimos que algo es demasiado pequeño.

Alto auge.
La nube son los padres, nadie la usa y esto todo una farsa . Mi abuela, exenta de informacion en el ambito tecnologico también sabe que windows es la plataforma que mas se usa.


Cita:
Iniciado por agleiva Ver Mensaje
Estás hablando de podio, pero no entiendo qué tiene que ver ese sitio con el desarrollo de software? parece una herramienta de management, no veo donde tiene algo relacionado al desarrollo. No entiendo tu comparación.
Entonces es que no has entendido mi idea todavia, y crees que voy a desarrollar una aplicacion nativa.

Coge la idea de podio e incluyela una api rest. Quizas no me explique bien claro.

Cita:
Iniciado por agleiva Ver Mensaje
Pero estás comentando tu forma de trabajar y varias otras personas (no solo yo) te han comentado que hay deficiencias en tu workflow. Un "coche que corra a lo que necesito" difícilmente sea una plataforma como PHP que está pensada para hacer sitios web comerciales, y no aplicaciones datacéntricas. Sin mencionar que por definición PHP es más lento que un lenguaje compilado como C# o java.
http://www.genbetadev.com/sistemas-d...l-de-versiones

http://hipertextual.com/archivo/2014...rol-versiones/

Sigo sin ver nada que haya mencionado yo anteriormente. Se las bondades del software para control de versiones y sigo sin utilizarlo a dia de hoy. Mi workflow es mio y me lo fo**o cuando quiero
  #22 (permalink)  
Antiguo 22/10/2015, 15:29
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Webservice CRUD

Primero dos cosas:

@50l3r: Pusiste esto al inicio:

Cita:
¿Lo veis útil? ¿Que pegas le veis? ¿Alguna sugerencia?
Así que no te quejes de que no creamos lo mismo que tú de tu proyecto.

Luego, @agleiva: No hagas este post otra discusión inútil de .NET vs [TECNOLOGÍA DEL POST], aviso de Moderador.



Ahora, volviendo al tema:
Cita:
Iniciado por 50l3r Ver Mensaje
Sigo sin entender porque cargar los datos una y otra vez en distintas bases de datos de local es mas rápido que tenerlos unificados en una misma base de datos.
Es que son pocos los casos en que necesitas todos los datos, fixtures suficientes se pueden cargar rápidamente.

Cita:
Iniciado por 50l3r Ver Mensaje
Lo mismo, no entiendo porque voy a tener que realizar migraciones cada dos por tres.
Para mantener consistencia en las bases de datos, incluso no solo en desarrollo, si no en otros entornos como testing/qa o staging

Cita:
Iniciado por 50l3r Ver Mensaje
He usado subversion y git en servidores dedicados cuando tenia desarrollos que necesitaba versionar. Sinceramente nunca he tenido que hacer rollbacks grandes y solamente realizaba commits. Ojo que no tenga nada en contra de estas aplicaciones dado que las he usado y las seguiré usando.

Con un software como dropbox, drive, megao cualquier similar me basta. Cada uno es libre de gestionarse como quiera. En mi opinión como he dicho, los controles de versiones los veo más para trabajar en grupo.
Es que el control de versiones no tiene que ver (directamente con servidores) y versionar como tal (hacer una versión concreta de un software) es solo un parte de estas herramientas.

Según comentabas tu problema es que estás en distintos sitios con distintos equipos físicos desarrollando, creeme que el control de versiones y migraciones y fixtures son cosas que ayudan mucho. ¿Que tal si un día arruinas la base de datos? Bueno supongo que lo que haces ahora es cargar un nuevo backup, con flujos de trabajo más eficientes minimizas esos problemas. Y aunque sistemas como Git y mercurial son sistemas distribuidos, manejarlos individualmente no es desperdicio (yo soy el unico desarrollador backend en la empresa donde trabajo).

Ahh, ya te dije, que si no te convence, todo eso, entonces usa una base de datos remota y listo, no hay más complicación.

Cita:
Iniciado por 50l3r Ver Mensaje
En ningun momento he dicho que tener un lenguaje rico sea una desventaja. Me aseguro a que ninguno de este hilo ha utilizado al 100% el sdk de visual studio por completo. Transformando el tema en una analogía, prefiero un coche que corra lo que necesito a un formula 1 que voy a llevar a 120 km/h por la autovia.
Te aseguro que tu no has usado el API de PHP al 100%.


Saludos!
__________________
Grupo Telegram Docker en Español
  #23 (permalink)  
Antiguo 22/10/2015, 15:32
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Webservice CRUD

Cita:
Iniciado por 50l3r Ver Mensaje
Compartir aplicaciones
Compartir con quién? a qué le llamas exactamente "aplicaciones"? para mí, que soy desarrollador, una "aplicación" es el resultado de compilar el código que previamente escribí, y que está definido por una serie de requerimientos que tiene el cliente, para los cuales mi "aplicación" provee una solución.

Cita:
Iniciado por 50l3r Ver Mensaje
trabajar de manera online
Trabajar de manera online? A qué te referís exactamente con esto? O sea, yo creo un proyecto de ASP.Net y luego lo pusheo a Git y puedo "trabajar de manera online" con otros desarrolladores del equipo, pero la diferencia es que mi desarrollo no está sujeto al dise*ño de una API hecha por terceros... O sea yo tengo el control del acceso a datos, y cada aplicación que creo tiene una capa de acceso a datos específica porque cada aplicación tiene una necesidad diferente. Si quisiera tener una base de datos única para todos (cosa que no hay razon real para hacer), puedo meterla en un server de los que tenemos para testing, y me conecto por TCP.

Cita:
Iniciado por 50l3r Ver Mensaje
poder trabajar con tecnologias diferentes a las que mencionas.
Para qué? para qué voy a usar una tecnología terriblemente PROBLEMATICA si puedo usar algo mucho más cómodo, escalable, rápido, consistente, eficiente, etc. etc.??

Tratá de convencer a alguien que use java o .Net de que debería usar PHP... con razones técnicas???

Cita:
Iniciado por 50l3r Ver Mensaje
tu gran desprecio hacia php
Yo no "desprecio" nada. Simplemente estoy afirmando que PHP no es una plataforma adecuada para aplicaciones datacéntricas, si no para páginas web comerciales, simples. Nada más. Eso es indiscutible, y si te parece lo contrario, te pido que me des argumentos TECNICOS que muestren que PHP es una plataforma igual o superior a .Net o la JVM para hacer desarrollos complejos.


Cita:
Iniciado por 50l3r Ver Mensaje
La nube son los padres, nadie la usa y esto todo una farsa . Mi abuela, exenta de informacion en el ambito tecnologico también sabe que windows es la plataforma que mas se usa.
No entiendo como eso desacredita mi afirmación del 0.36% de market share global.

Cita:
Iniciado por 50l3r Ver Mensaje
Entonces es que no has entendido mi idea todavia, y crees que voy a desarrollar una aplicacion nativa.
Nadie dijo nada jamás en este thread sobre aplicaciones nativas. O sí, yo te dije que .Net es mejor que PHP porque se puede reusar el codigo del modelo de datos de una aplicacion Web y utilizarlo para aplicaciones de escritorio o móviles.

No veo qué tiene que ver esto con lo que estamos hablando.

Cita:
Iniciado por 50l3r Ver Mensaje
Coge la idea de podio e incluyela una api rest. Quizas no me explique bien claro.
Si... Y? Qué ventajas tiene usar tu producto versus simplemente crear las entidades con F# y usar Code First para armar la base de datos y no depender de una API que se entromete invasivamente entre mi aplicacion y mis datos?
O sea... vendémelo.. hacé de cuenta que yo soy un potencial cliente y convenceme de que necesito tu producto?

Última edición por agleiva; 22/10/2015 a las 15:39
  #24 (permalink)  
Antiguo 23/10/2015, 06:48
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Cita:
Iniciado por Carlangueitor Ver Mensaje
Primero dos cosas:

@50l3r: Pusiste esto al inicio:

Así que no te quejes de que no creamos lo mismo que tú de tu proyecto.
Puedo asimilar perfectamente vuestras criticas dado que cada uno tenemos una manera de pensar y funcionamos de diferente forma. Simplemente me molesta que el tema se desvirtue hacia la forma de trabajar de cada uno y la tecnologia que usa. Ese no es el objetivo.

Cita:
Iniciado por Carlangueitor Ver Mensaje
Es que el control de versiones no tiene que ver (directamente con servidores) y versionar como tal (hacer una versión concreta de un software) es solo un parte de estas herramientas.

Según comentabas tu problema es que estás en distintos sitios con distintos equipos físicos desarrollando, creeme que el control de versiones y migraciones y fixtures son cosas que ayudan mucho. ¿Que tal si un día arruinas la base de datos? Bueno supongo que lo que haces ahora es cargar un nuevo backup, con flujos de trabajo más eficientes minimizas esos problemas. Y aunque sistemas como Git y mercurial son sistemas distribuidos, manejarlos individualmente no es desperdicio (yo soy el unico desarrollador backend en la empresa donde trabajo).

Ahh, ya te dije, que si no te convence, todo eso, entonces usa una base de datos remota y listo, no hay más complicación.
He utilizado svn mas que nada, y actualmente tengo algún que otro proyecto subido a github (https://github.com/50l3r), estoy seguro que dentro de no mucho tiempo tendré que usar alguno de los mencionados.

Evidentemente, hago backups diarios por si las moscas.

Respecto a las bases de datos remotas es en mi opinion lo mas eficiente, tienes razon. Mi herramienta podría resolver el problema a algun estudiante o persona que se inicia en el mundo del desarrollo y que no tuviera la suerte de poder disponer de un servidor remoto donde alojar una base de datos por ejemplo.


Cita:
Iniciado por Carlangueitor Ver Mensaje
Te aseguro que tu no has usado el API de PHP al 100%.
Efectivamente, pero en este caso estamos hablando del sdk o herramienta de desarrollo. Utilizo sublime text para desarrollar y este si que le controlo en su totalidad. Mi intención no es menospreciar el sdk de visual studio.

Cita:
Iniciado por agleiva Ver Mensaje
Compartir con quién? a qué le llamas exactamente "aplicaciones"? para mí, que soy desarrollador, una "aplicación" es el resultado de compilar el código que previamente escribí, y que está definido por una serie de requerimientos que tiene el cliente, para los cuales mi "aplicación" provee una solución.
Ya te lo expliqué anteriormente a que llamo aplicación:

Cita:
Iniciado por 50l3r Ver Mensaje
1: Creas un proyecto
2: Construyes sus tablas/aplicaciones y defines sus campos
3: Conectas tu desarrollo con la api
4: Empiezas a gestionar tus datos remotamente
En podio se llaman aplicaciones a las tablas, defines los campos y empiezas a introducir y gestionar el contenido de ellas.



Cita:
Iniciado por agleiva Ver Mensaje
Trabajar de manera online? A qué te referís exactamente con esto? O sea, yo creo un proyecto de ASP.Net y luego lo pusheo a Git y puedo "trabajar de manera online" con otros desarrolladores del equipo, pero la diferencia es que mi desarrollo no está sujeto al dise*ño de una API hecha por terceros... O sea yo tengo el control del acceso a datos, y cada aplicación que creo tiene una capa de acceso a datos específica porque cada aplicación tiene una necesidad diferente. Si quisiera tener una base de datos única para todos (cosa que no hay razon real para hacer), puedo meterla en un server de los que tenemos para testing, y me conecto por TCP.
Trabajas de manera online con tu código, pero hay algo que aún no has entendido y es que esta idea esta basada generalmente en operaciones contra bases de datos. No usas tu control de versiones para tus DBs.

El unico diseño que no controlas en mi proyecto es el modelo de base de datos, pero esque para eso existe esta idea. Se trata de que un desarrollador pueda dedicar mas tiempo a otras operaciones evitando la gestion con la base de datos y que con una linea de código pueda listar, añadir, editar y eliminar. En cuanto al diseño y maquetación de la web, así como la lógica de su herramienta, la puede moldear como quiera. Puede usar los datos que recoge de la api como quiera.


Cita:
Iniciado por agleiva Ver Mensaje
Para qué? para qué voy a usar una tecnología terriblemente PROBLEMATICA si puedo usar algo mucho más cómodo, escalable, rápido, consistente, eficiente, etc. etc.??

Tratá de convencer a alguien que use java o .Net de que debería usar PHP... con razones técnicas???


Yo no "desprecio" nada. Simplemente estoy afirmando que PHP no es una plataforma adecuada para aplicaciones datacéntricas, si no para páginas web comerciales, simples. Nada más. Eso es indiscutible, y si te parece lo contrario, te pido que me des argumentos TECNICOS que muestren que PHP es una plataforma igual o superior a .Net o la JVM para hacer desarrollos complejos.
Tu no desprecias nada:

Cita:
Iniciado por agleiva
La ventaja que te da .Net con respecto a (por ejemplo) PHP es que PHP es terriblemente limitado, y no se puede utilizar en aplicaciones de escritorio / móviles / etc
Cita:
Iniciado por agleiva
No conozco estos frameworks, pero en mi experiencia PHP es un lenguaje / plataforma extremadamente limitado y lleno de problemas, inconsistencias, y atado con alambre por todos lados en lugar de estar diseñado correctamente por profesionales. Sin mencionar que como PHP ni siquiera tiene un compilador, es terriblemente lento comparado con plataformas serias como .Net o la JVM.
Cita:
Iniciado por agleiva
Yo en este momento estoy reescribiendo un proyecto que hice hace tiempo en PHP, esta vez en ASP.Net MVC usando C#, F#, Entity Framework, Migrations, y Umbraco, y la verdad da risa mirar el código PHP y compararlo con F#. PHP es un lenguaje de juguete.
Cita:
Iniciado por agleiva
Además, no veo cómo son "demasiadas operaciones", comparado (por ejemplo) con PHP, que ni siquiera tiene un compilador adecuado y los frameworks y librerías necesarias para crear aplicaciones datacéntricas de manera profesional, y en lugar de eso te obliga a estar lidiando con herramientas deficientes.
Cita:
Iniciado por agleiva
No, claro. Seguramente es "mejor" usar una tecnología como PHP, que todo el mundo sabe que está llena de deficiencias, inconsistencias, y no provee las herramientas adecuadas (por ejemplo no tiene un compliador que provea verificación de tipos)
Cita:
Iniciado por agleiva
Claramente tu desarrollo (en PHP) va a superar en calidad, performance, escalabilidad y flexibilidad a ASP.Net MVC.
Cita:
Iniciado por agleiva
No es una bolsa de gatos como la mayoría del código PHP (que he visto hasta ahora). Con lo cuál si bien el .Net Framework es ENORME, y nadie lo usa al 100%, no veo por qué eso sea una razón válida para desmerecerlo y en su lugar usar una plataforma / lenguaje de JUGUETE como PHP.

Vas a tener mucho trabajo para decirle a todo el mundo que usa PHP para algo más que una página de presencia que lo deje de hacer. Te adjunto dos listas sobre los lenguajes mas usados.

Código:
GitHut es una fuente de datos relativamente nueva que analiza 2,2 millones de repositorios activos en GitHub. Su top ten es el siguiente:

1. JavaScript
2. Java
3. Python
4. CSS
5. PHP
6. Ruby
7. C ++
8. C
9. Shell
10. C #
Código:
RedMonk clasifica los lenguajes de programación midiendo su popularidad mediante el análisis de la actividad en GitHub y StackOverflow. Sus resultados son los siguientes:

1. JavaScript
2. Java
3. PHP
4. Phyton
5. C #
6. C ++
7. Ruby
8. CSS
9. C
10. Objective-C
No voy a perder el tiempo argumentandote nada, si lo deseas abre un hilo e intenta convencer a otros.

Cita:
Iniciado por agleiva Ver Mensaje
Si... Y? Qué ventajas tiene usar tu producto versus simplemente crear las entidades con F# y usar Code First para armar la base de datos y no depender de una API que se entromete invasivamente entre mi aplicacion y mis datos?
O sea... vendémelo.. hacé de cuenta que yo soy un potencial cliente y convenceme de que necesito tu producto?
Armas tu base de datos pero sigues gestionándola tu mismo. No acabas de comprender que no todo el mundo quiere/puede gestionar todas las ramas de su aplicativo y que esta solución se nutre de la necesidad de personas que quieren montar aplicaciones que controlan datos, sin precisar de conocimientos en bases de datos.

En mi empresa no vendemos peines a calvos. Esta herramienta no sería para ti así que no entiendo porque debería venderte algo que no necesitas. Simplemente sigues pensando que como a tí no te sirve, no usa tu tecnología y no se adapta a tí es una mala idea, pero obvias el resto del mercado.

Quizás no te paraste a pensar que la herramienta puede servir para mucho más que aplicaciones de gestión con mucho control de datos. Puede servir simplemente para crear un sistema de usuarios, un listado de países, coches, lo que se te ocurra.
  #25 (permalink)  
Antiguo 23/10/2015, 07:21
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Webservice CRUD

Cita:
Iniciado por 50l3r Ver Mensaje
La mayoria de los que estáis aquí os habéis topado con que a la hora de crear cualquier proyecto hay que modelar bases de datos, gestionar la lógica y permisos de la aplicación y programar todo esto para poder hacer de momento lo mínimo. Estoy desarrollando una api rest que gestiona las altas, bajas, modificaciones y listados ahorrando al usuario este paso. En resumen, un CRUD en la nube.
Primero dices que la gente tiene problemas porque tiene que modelar las tablas y lidiar con los permisos pero ...

Cita:
Iniciado por 50l3r Ver Mensaje
Las ventajas de esta idea son que los desarrolladores podrán alojar todos los datos en una plataforma y de esa manera ahorrarse la programación base, de manera que puedan realizar cualquier operación básica simplemente configurando sus aplicaciones en la plataforma y realizando unas peticiones con dos líneas de código. De esta manera tendrán cubierto:

- Listados: Ordenar, filtrar y listar registros
- Altas: Crear nuevos registros
- Modificaciones: Editar un registro
- Bajas: Eliminar un registro
- Permisos: Sistema de permisos genérico, expandible por el usuario
Luego dices que tienes que hacer precisamente eso pero en tu sistema. Es decir, porque no usar una interfaz como phpMyAdmin que hace de frontend web para la BBDD y usar tu sistema? Porque de entrada no veo nada que no se pueda hacer con phpMyAdmin. Además de agregar una latencia innecesaria cuando puedo tener el servidor web y el servidor de BBDD en la misma red (o en la misma máquina) y así no meter más latencia de la necesaria.


Cita:
Iniciado por 50l3r Ver Mensaje
El proyecto lo tengo bastante avanzado, pero antes me gustaría saber de vuestra opinión. ¿Lo veis útil? ¿Que pegas le veis? ¿Alguna sugerencia?
Muchas gracias por vuestro tiempo.
Tu proyecto no aporta nada más que la API Rest. Pero como decía antes, en un entorno real quieres tener el servidor web y la bbdd en la misma red e intentar acceder a la BBDD lo más directamente posible (con un ORM por ejemplo).


Cita:
Iniciado por 50l3r Ver Mensaje
Vas a tener mucho trabajo para decirle a todo el mundo que usa PHP para algo más que una página de presencia que lo deje de hacer. Te adjunto dos listas sobre los lenguajes mas usados.
Has publicado los lenguajes más usados en Github. Seguro que si buscas aplicaciones empresariales la lista puede ser muy diferente... por ejemplo esta:

http://spectrum.ieee.org/computing/s...ming-languages
__________________
Aviso: No se resuelven dudas por MP!

Última edición por Malenko; 23/10/2015 a las 07:27
  #26 (permalink)  
Antiguo 23/10/2015, 08:35
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Webservice CRUD

Cita:
Iniciado por 50l3r Ver Mensaje
Trabajas de manera online con tu código, pero hay algo que aún no has entendido y es que esta idea esta basada generalmente en operaciones contra bases de datos. No usas tu control de versiones para tus DBs.
Como te comenté antes, SI tengo la base de datos en control de código, ya que el esquema lo armo con Code First + Migrations (que es código F# y C#), y los datos "semilla" también los armo con Migrations. Luego, también está la posibilidad de usar SQL CE, en el cuál la base de datos es un archivito solo, y también lo puedo meter en source control.

Cita:
Iniciado por 50l3r Ver Mensaje
Se trata de que un desarrollador pueda dedicar mas tiempo a otras operaciones evitando la gestion con la base de datos y que con una linea de código pueda listar, añadir, editar y eliminar.
Parece que no sabés lo que es un ORM. No me extraña, ya que usás PHP... pero te recomendaría que leas al respecto. Estás tratando de inventar una solución para un problema que ya está resuelto hace mucho tiempo. O al menos es un problema resuelto en plataformas serias.

Con EF, no solamente puedo listar, añadir, editar y eliminar con una sola línea de código, sino que además EF (como cualquier otro ORM) me mapea automáticamente los datos de las tablas de la base a entidades del modelo de datos fuertemente tipado. Claro que en PHP no existe tal cosa, ya que ni siquiera tiene un sistema de tipos adecuado, pero en el desarrollo profesional moderno se usan ese tipo de herramientas.

Cita:
Iniciado por 50l3r Ver Mensaje
Armas tu base de datos pero sigues gestionándola tu mismo. No acabas de comprender que no todo el mundo quiere/puede gestionar todas las ramas de su aplicativo y que esta solución se nutre de la necesidad de personas que quieren montar aplicaciones que controlan datos, sin precisar de conocimientos en bases de datos.
En otras palabras, estás haciendo una plataforma para que puedan "programar" los que no saben programar. Es genial, va como anillo al dedo para el mercado al que estás apuntando.


Cita:
Iniciado por 50l3r Ver Mensaje
Quizás no te paraste a pensar que la herramienta puede servir para mucho más que aplicaciones de gestión con mucho control de datos. Puede servir simplemente para crear un sistema de usuarios, un listado de países, coches, lo que se te ocurra.
Como te dije antes, si necesito un sistema de usuarios uso alguno de los muchos que están disponibles, y lo customizo hasta donde sea necesario.

Si necesito un listado de paises voy contra World Bank que es información oficial.

Si necesito un listado de cualquier otra cosa, voy a tratar primero que nada de conseguir una fuente oficial, y de no encontrarla voy a crear mi propia tablita con los datos más actualizados que encuentre, sin necesidad de recurrir a ningún sistema externo. Si los datos son suficientemente estáticos (una lista que se sabe que no va a cambiar en el tiempo), uso un T4 para generar código ejecutable a partir de la lista, de manera tal que ni siquiera necesito leer los datos haciendo una query contra una base o un sistema externo, sino que la lista es parte del código compilado ejecutable de mi sistema, con lo cuál es muchísimo más rápido el acceso.

Además, si querés armar un sistemita para "forkear" tablas, estás reinventando la rueda otra vez. Simplemente meté la tabla en un CSV y el CSV lo metés en un repositorio en GitHub. Fin del asunto. La gente puede clonar, forkear, hacer pull request, etc, etc, etc.

Última edición por agleiva; 23/10/2015 a las 08:50
  #27 (permalink)  
Antiguo 23/10/2015, 18:29
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Webservice CRUD

Cita:
Iniciado por agleiva Ver Mensaje
Como te comenté antes, SI tengo la base de datos en control de código, ya que el esquema lo armo con Code First + Migrations (que es código F# y C#), y los datos "semilla" también los armo con Migrations. Luego, también está la posibilidad de usar SQL CE, en el cuál la base de datos es un archivito solo, y también lo puedo meter en source control.



Parece que no sabés lo que es un ORM. No me extraña, ya que usás PHP... pero te recomendaría que leas al respecto. Estás tratando de inventar una solución para un problema que ya está resuelto hace mucho tiempo. O al menos es un problema resuelto en plataformas serias.

Con EF, no solamente puedo listar, añadir, editar y eliminar con una sola línea de código, sino que además EF (como cualquier otro ORM) me mapea automáticamente los datos de las tablas de la base a entidades del modelo de datos fuertemente tipado. Claro que en PHP no existe tal cosa, ya que ni siquiera tiene un sistema de tipos adecuado, pero en el desarrollo profesional moderno se usan ese tipo de herramientas.



En otras palabras, estás haciendo una plataforma para que puedan "programar" los que no saben programar. Es genial, va como anillo al dedo para el mercado al que estás apuntando.




Como te dije antes, si necesito un sistema de usuarios uso alguno de los muchos que están disponibles, y lo customizo hasta donde sea necesario.

Si necesito un listado de paises voy contra World Bank que es información oficial.

Si necesito un listado de cualquier otra cosa, voy a tratar primero que nada de conseguir una fuente oficial, y de no encontrarla voy a crear mi propia tablita con los datos más actualizados que encuentre, sin necesidad de recurrir a ningún sistema externo. Si los datos son suficientemente estáticos (una lista que se sabe que no va a cambiar en el tiempo), uso un T4 para generar código ejecutable a partir de la lista, de manera tal que ni siquiera necesito leer los datos haciendo una query contra una base o un sistema externo, sino que la lista es parte del código compilado ejecutable de mi sistema, con lo cuál es muchísimo más rápido el acceso.

Además, si querés armar un sistemita para "forkear" tablas, estás reinventando la rueda otra vez. Simplemente meté la tabla en un CSV y el CSV lo metés en un repositorio en GitHub. Fin del asunto. La gente puede clonar, forkear, hacer pull request, etc, etc, etc.
Vamos a hacer una cosa. Sigue con tus proyectos y yo con los mios. No creo que tus opiniones y criticas me vayan a servir de nada. Tampoco quiero perder tiempo respondiendote paso por paso.
  #28 (permalink)  
Antiguo 23/10/2015, 19:57
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Webservice CRUD

Averiguá lo que es un ORM. Después me contás.

De onda te lo digo.

Etiquetas: crud, webservice
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:53.