Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - DROPTABLE

Páginas: [1]
1
que error te da?

2
General / [ENTREGA] Plataforma Para Colegios - MVC (Capas)
« en: Diciembre 29, 2015, 08:04:54 pm »
Muy buenos días/noches, en esta ocasión les traigo más teoría de cómo vamos ha realizar nuestras apps para conformar una plataforma, esto no es una regla y todos los conceptos van ha estar fundamentados.

Model, Views & Controllers - Wikipedia

Su fundamento es la separación del código en tres capas diferentes, acotadas por su responsabilidad, en lo que se llaman Modelos, Vistas y Controladores, o lo que es lo mismo, Model, Views & Controllers.

MVC fue inventado hace mucho tiempo ya, pero recientemente ha agarrado fuerza por los framework de la programación web, aunque esto se puede aplicar y debería aplicarse a todas las tecnologías de desarrollo. Esto nos permite no tener todos los huevos en una misma cesta, por así decirlo.


Model (Modelos): Esta capa es opcional y se trabaja con ella cuando tenemos la necesidad de almacenar y rescatar información, osea MOTOR DE BASES DE DATOS, a la pregunta ¿Solo con tener una tabla o tablas ya tengo una base de datos? La Respuesta es NO.

El Motor de la base de datos, es capaz de pensar y no solo ejecutando consultas (INSERT, UPDATE, DELETE, SELECT) si no de poder manipular la información que se encuentra dentro de las tablas a que me refiero: TRIGGER, STORE PROCEDURE, FUNCTION por lo tanto debemos de manejar la normalización de bases de datos Wikipedia. Que significa esto, pues es muy sencillo que toda la lógica que podamos pensar de nuestra aplicación si tiene que ver con la manipulación de datos debe de ir en el la base de datos, ¿Por Qué? R// Bueno esto nos va permitir sacarle el jugo al MOTOR y al procesador donde esté instalado nuestro servidor de Base de Datos para que no sea holgazán y poder hacer un cambio en la lógica en un solo lugar. Aunque muchas personas van a diferir de mi concepto, Model está creado exactamente para eso y lo que les puedo decir es que para los gustos existen los colores.

Views (Vistas): Este concepto es muy sencillo de entender, se trata de lo que el usuario va a ver al momento de ejecutar nuestra app ya sea webforms o winforms (Win = Ventana no a Sistema Operativo), con todos sus colores y controles, con lo bonito o lo feo que podamos presentarles, todos los lenguajes de programación orientada a objetos trabajan sus Views en el caso de winforms se crea un código por formulario que le dice al intérprete que propiedades tiene cada uno de los controles que nosotros hemos agregado, en el caso de los webforms se trabaja con CSS3, Frameworks u otros.


Controllers (Controlador): Este es el código de programación que utilizamos para negociar (por eso algunos la llaman capa de negocios), ahora bien quiero dejar algo completamente claro en este punto, los controladores hacen la función de intérprete entre la capa Vista y Modelo. Tienen la capacidad de modificar la apariencia de nuestras vistas y de poder hacer procedimientos para nuestros modelos, pero no es así como se debe de trabajar, el controlador es un traductor.


El concepto generalizado es que todo lo que tenga que ver con la interacción del usuario se quede en la vista, todo lo que tenga que ver con la base de datos debe de ir en el modelo, y la forma de representar en la vistas los datos del modelo y viceversa, algo así.




Muchas Gracias, por acompañarme en este pequeño viaje, los espero en los comentarios.

3
General / [ENTREGA] Plataforma Para Colegios - Requerimientos del Cliente II
« en: Diciembre 26, 2015, 03:51:39 pm »
Muy buen día/noche, en esta continuación por fín vamos a ver las conclusiones de los Requerimientos de nuestro Cliente con respecto a la Plataforma para Colegios. Son conclusiones sacadas de las dos encuestas que he realizado la cual me llevo 32 horas hacerle a todos los empleados, directivos, etc. Bueno vamos al hilo:

1. Diagrama Jerárquico de la Empresa



2. Diagrama de Niveles (Especificados por el Proyecto)



3. Caso de Uso (Ejemplo solo voy a poner uno, pero son varios)



4. Conclusiones de Alcance



Se optara por hacer una programación de 3 Capas en Nivel 2, por lo tanto tendremos una Capa de Base de Datos la cual será MySQL Server Instalado en un servidor que contendrá la lógica de Base de Datos (Lanzadores, Procedimientos y Funciones) y en nuestro lado de los clientes tendremos solamente dos capas, la Capa de Negocio (Dependerá de cada lenguaje, pero los procedimientos serán prácticamente los mismos, solo traducimos) y por la parte de la capa de usuario decidiremos colores y entornos configurables, esto hará un software bonito y rapido. Dejaré un link Aquí por si quieren pasar a leer la Programación por Capas.



5. Conclusiones de Procesos Administrativos

Proceso
Descripción
Responsables
Pre-InscripciónSe debe de llenar los formularios correspondientes.
Se debe de Generar los Recibos de Pagos.
Se debe de Presentar la Papelería Completa.
Padre o Madre de Familia.
Secretaría.
Director Correspondiente al Nivel.
InscripciónPagar en Caja el Recibo de Inscripción.
Entregar Toda la Papelería para la Inscripción.
Realizar la Inscripción en el Sistema.
Asignación de Cursos.
Asignación de Aula.
Padre o Madre de Familia
Caja
Secretaría
Administración de CajaVelar por la parte Financiera.
Pagar y cuadrar todos los gastos del establecimiento.
Caja
Director Correspondiente al Nivel.
Ingreso de NotasDespués de las evaluaciones correspondientes.
Cada Catedrático debe de ingresar notas al sistema.
Catedráticos
Secretaría.


Muchas Gracias, por acompañarme en este pequeño viaje, los espero en los comentarios.

4
General / [ENTREGA] Plataforma Para Colegios - Requerimientos del Cliente I
« en: Diciembre 25, 2015, 11:53:58 pm »
Muy buen día/noche, en esta sección vamos ha intentar entender lo más acertado posible la forma de trabajo y el esquema de la empresa/negocio de nuestro nuevo cliente. Esto lo realizaremos con dos encuestas, la primera es para saber los procesos administrativos que vamos a implementar en la programación y la segunda es para ver qué tipo de programa vamos a desarrollar según lo que el cliente quiere.

Cuestionario para Entender los Proceso Administrativos

Esta encuesta tiene que ser muy minuciosa, deben de tomarse su tiempo con cada una de las partes de la encuesta y anotar todo lo que creen que sea importante tanto para el desarrollo como para el proceso administrativo.

Error Común     
Muchos programadores o desarrolladores no le prestan atención a estas cosas, tampoco se sientan con el cliente para ver a fondo el estado de la empresa y piensan que el programa solo debe de tener una formula A = B + C y los valores de B y C no le interesan, por lo tanto va a funcionar.
Esto Ocasionará que al momento de la implementación tengas que volver a la mesa de trabajo por los diferentes estados que B o C puedan tener en el transcurso del proceso administrativo.

Pero ¿Qué es el Proceso Administrativo?

Un proceso es el conjunto de pasos o etapas necesarias para llevar a cabo una actividad. La administración comprende varias fases, etapas o funciones, cuyo conocimiento exhaustivo es indispensable a fin de aplicar el método, los principios y las técnicas de esta disciplina, correctamente.

En su concepción más sencilla se puede definir el proceso administrativo como la administración en acción, o también como: "El conjunto de fases o etapas sucesivas a través de las cuales se efectúa la administración, mismas que se interrelacionan y forman un proceso integral."

Cuando se administra cualquier empresa,  existen dos fases: una estructural, en la que a partir de uno o más fines se determina la mejor forma de obtenerlos, y otra operativa, en la que se ejecutan todas las actividades necesarias para lograr lo establecido durante el periodo de estructuración. A estas dos fases se les llama: mecánica y dinámica de la administración. La mecánica administrativa es la parte teórica de la administración en la que se establece lo que debe hacerse, y la dinámica se refiere a cómo manejar el organismo social.

Dejo un Link Aqui para que puedan leer algo pequeño del Proceso Administrativo, pero vamos a poner un ejemplo para poder comprender un proceso administrativo y por qué lo complicado (chiste en algunos casos) para que no nos suceda esto:


Antes de citar el ejemplo quiero indicar que los procesos administrativos cambian según la localidad donde te encuentras, por eso debes de educarte en tu entorno cómo se hacen.

Ejemplo 1: Proceso de Compras.

El Director/Gerente/Encargado del departamento de Compras de una empresa explica al desarrollador/programador/developer el requerimiento de esta forma: Necesitamos un programa que nos lleve el control de las compras, también que nos agilice el trámite para que no sea tedioso porque tenemos que cotizar 3 proveedores por lo menos para poder hacer una compra. Tristemente los usuarios explican de esta forma tan sencilla que es lo que necesitan, pero para nosotros es insustancial, por ello tenemos que saber del proceso administrativo, por lo menos para tener una idea de que preguntar que sea único de la empresa, veamos que dice el proceso administrativo de una compra para poder agilizarlo.

Proceso Administrativo del Proceso de compras:
  • Crear la Requisición de la necesidad según el departamento que lo solicite
  • Entregar la Requisición al Departamento de Compras
  • El Departamento de Compras pide autorización para realizar la cotización
    • Sujeto a Revisión del Departamento de Presupuesto
    • Sujeto a Autorización del Gerente General
  • Comprar
  • Pasar a Cuentas por Pagar la Factura

Entonces conociendo el proceso de compra típico (Aquí se explica un proceso más corto) uno debe de entender el por qué las especificaciones de nuestro cliente y para qué sirven. De esta forma podremos encontrar los problemas. Uno de los problemas más típicos con los procesos administrativos es que ni los mismos empleados saben qué hacer, por lo tanto una buena implementación de los procesos nos llevará a un mejor desempeño del trabajo.

La solución al ejemplo anterior puede variar en concepto de programación y del proceso administrativo, eso dependerá de las necesidades del cliente, pero debemos de profundizar en él para poder hacer un buen trabajo. Cuando se comienza a trabajar en todos los procesos y se van uniendo cabos y puede ir descifrando el proceso administrativo de una empresa para poderlo mejorar. Les listaré algunos de los errores más comunes que he encontrado en muchas empresa tanto pequeñas como grandes.

  • Duplicidad de tareas: Dos o más empleados hacen la misma tarea inútilmente ya que su fín es el mismo.
  • Sin Integridad de Datos: Existen varias fuentes de información.
  • Informes mal Estructurados:Problema Típico, Gerencia cree que las cosas están mal porque los informes están mal.

A estos les podemos agregar muchas más.

Entonces en nuestra etapa de investigación debemos de ser muy minuciosos en esto, claro está que el cuestionario es a criterio del desarrollador/programador/developer de turno, yo he creado uno de ejemplo, a mí me ha servido muy bien y los dejo a su criterio.
  • ¿A qué se dedica su Empresa?
  • ¿Cuáles son sus departamentos?
    Por cada departamento mencionado:
    • ¿Cuántos Trabajadores tiene en este departamento?
    • ¿Qué hacen esos trabajadores?
    • ¿Me podría indicar los procesos administrativos? Con cada uno de los trabajadores del departamento
    • ¿Según su experiencia, cuáles son sus Fortalezas Administrativas? Con cada uno de los trabajadores del departamento
    • ¿Según su experiencia, cuáles son sus Debilidades Administrativas? Con cada uno de los trabajadores del departamento
  • ¿Qué desea obtener al implementar una Plataforma?
  • ¿Estaría usted dispuesto a optimizar procesos(mejorar procesos)?
  • ¿Qué procesos desearía optimizar(Mejorar)?
  • ¿Qué procesos considera obsoletos?
  • ¿Estaría dispuesto a optimizar recurso humano si es necesario?
Tal y como están pensando, es un proceso riguroso, tardado, cansado, minucioso pero muy, pero muy eficiente. Llegar a saber la verdad de la empresa puede tomar su tiempo, incluso un mayor tiempo que el desarrollo y la programación, pero vale la pena llenar hojas y hojas de datos necesarios.

Cuestionario para desarrollar Soluciones

Un aspecto muy importante es que el programador/desarrollador/developer intenta darle solución a los inconvenientes con el lenguaje de programación que conoce, por lo tanto es importante conocer más de un lenguaje de programación y no quedarse varado unicamente en un solo lenguaje. Imagina alguien que solo sabe javascript no llegará muy lejos.

Entonces como se que herramienta (lenguaje) utilizar para cada uno de los proyectos. Pues es muy sencillo, al saber el alcance que quiere el cliente podrás determinar que es lo que quiere. Si hay algo que no podamos hacer, se muy etico, profesional y responsable, debes dejar las cosas en claro desde un inicio, si no el cliente esperará de tí algo que no puedes hacer y tu proyecto se te puede caer ya en la fase de implementación.

Si no quieres dejar ir a un cliente y no puedes manejar parte de la tecnología que el necesita, la respuesta es sencilla, busca a alguien (freelance) que te ayude con esa parte del proyecto, se que es algo que a muchos programadores/desarrolladores/developers solitarios no nos gusta, pero es sumamente necesario o si no te tocará regresar al pupitre de clases o ser autodidacta pero esto toma mucho tiempo.

Por lo tanto debes de preparar el cuestionario para medir que tanto sabe el cliente de tecnologías y lo más importante que alcance necesita. Muchos clientes tienen una idea del alcance que necesitan pero menosprecia la tecnología y piensan que el trabajo que se realiza no vale lo que realmente cobramos y creanme hay mucho de eso en el medio. El consejo que te daría para eso, es que si no quiere pagar lo que vale, no trabajes para el, de lo contrario lo estarías amañando y vas a tener problemas seguramente.

Con esta encuesta no te puedo dar un lineamiento a seguir o consejos de que preguntar, es muy pero muy especifica, al momento de entablar una relación con un cliente, lo que si te puedo dar son ideas centrales que te ayudarán a determinar que es lo que quiere, por ejemplo: Saben manejar excel, conocen de tipos de documentos, sabe que es un PDF, sabe que es una red y como trabaja, si quiere tener información móvil, etc. Tienes que hacerte a la idea que la mayor cantidad de veces el usuario no sabe lo que quiere hasta que lo tiene, pero no por eso vas a abusar y si sabes que lo que el necesita puede ser mejor optimizado con un lenguaje que tu no manejas pero deseas hacerlo así porque lo quieres hacer así, tendrás el inconveniente que suele pasar a menudo, Otro vendrá y de tu casa te sacará y al final el que quedará mal visto serás tú.





Muchas Gracias, por acompañarme en este pequeño viaje, los espero en los comentarios.

5
General / [ENTREGA] Plataforma Para Colegios - Índice
« en: Diciembre 25, 2015, 07:08:36 pm »
Muy buen día/noche, esta entrega es más para que todo para llevar un orden de las publicaciones.




Muchas Gracias, por acompañarme en este pequeño viaje, los espero en los comentarios.

6
General / [ENTREGA] Plataforma Para Colegios - Presentación
« en: Diciembre 25, 2015, 07:01:22 pm »
Presentación: Muy buen día/noche, tengan cada uno de ustedes, hace algunos días un amigo propietario de un Colegio me ha pedido que le desarrolle una plataforma y he decidido compartir el día a día (por así decirlo) de la elaboración de dicho proyecto, con todos ustedes. Se estarán preguntando ¿Por Qué?

Citar
Bueno creo que este sitio es una muy buena oportunidad para muchas personas en aprender a desarrollar, además de la resolución de dudas, admiro mucho a sus moderadores con el buen trabajo que han hecho, su lógica es muy buena. Por lo tanto deseo devolver un poco del conocimiento que he adquirido en muchos sitios interesantes de este tipo, así como también de la universidad y mis catedráticos.

Mi idea principal es Compartir la forma en la que yo hago aplicaciones, para lo cual espero críticas constructivas o formas nuevas de hacer los procedimientos, consultas, etc. Espero poder contar con su apoyo y desde ya le pido perdón a Leandro por agarrar su FORO como un BLOG personal pero he decidido hacerlo aquí porque cuenta con los apartados que necesito (Base de Datos, PHP, Visual Basic.NET, etc.)

No soy un experto ni pretendo serlo, tampoco lo sé todo en el proceso de creación de plataformas (Movil, Desktop, Web) únicamente quiero hacerlo y compartirlo si puedo aprender nuevas cosas en el proceso me encantará probar e implementar y sé que con las mentes brillantes que aquí existen será una maravillosa experiencia.



Entregas: Estoy dispuesto a comprometerme de hacer dos entregas por semana como mínimo en la elaboración de la plataforma, para lo cual debo informar que no me dedico profesionalmente a hacer esto, es un trabajo de tiempo libre, mi verdadera fuente de empleo no tiene nada que ver con el desarrollo de aplicaciones. 

Cada una de las "Entregas" tendrá en su título la palabra Entrega entre [] así [ENTREGA], esto es para saber diferenciar entre una pregunta o un post mío y una entrega propia de la plataforma. Estará seguido de la frase "Plataforma para Colegios" lo cual significa el nombre de la plataforma, seguidamente del tipo de entrega que es: "Base de Datos" y por último el nombre propio de la entrega "Creación de Tablas". De esta forma tendremos un nombre compuesto para saber diferenciar una Entrega de otra. Ejemplo:

[ENTREGA] Plataforma Para Colegios - Base de Datos - Creación de Tablas

Todo esto es debido a que nos han pedido una plataforma, la cual se compone de lo siguiente:

  • Base de Datos Cliente Servidor - MySQL
  • App Desktop - VB.NET
  • App Móvil (Androide) - C#.NET Posiblemente
  • App Web - HTML5, PHP, CSS3, no he definido bien el Framework que voy a utilizar

Aquí también porque este foro me queda como anillo al dedo en la elaboración de esta plataforma, ya que cada entrega se ira colgando en su foro correspondiente.

Muchos integrantes del foro y personas fuera de él me sugerirán que por qué no lo hago con HTML5, PHP, CSS3, etc., y creo una aplicación web completamente con todo lo que necesito y mato todo con ello. Bueno la respuesta es simple "No me gusta hacer eso" a mi forma de ver las cosas, es que para cada cosa hay un lugar y existe un lugar para cada cosa.

Todos los lenguajes de programación son muy buenos, pero hay que sacarles el jugo para lo que en verdad están hechos.

Me molestan los fans App desktop que opinan que es mejor trabajar así y que las App webs no están preparadas todavía.

Citar
De qué sirve hacer gastar al cliente en máquinas decentes y una infraestructura de red, con impresoras y demás, o comprar un servidor, contratar una ip publica, si todo esto lo podemos encontrar de pago en la red (a esto se dedica Microsoft ahora con AZURE) y le dejamos la tarea a un servidor que aunque es de pago.

También me molestan los comentarios de muchos fans de las App webs que dicen configura un servidor, actualiza solo una vez y al mismo tiempo todos los clientes se actualizan y que por esta razón son superiores hoy en día.

Citar
  • Aunque no lo creas también las App desktop se pueden actualizar con un servidor (El principio es el mismo)
  • Obtengo una App más rápida utilizando recursos de una maquina local que saturando un servidor

Bueno a que me refiero, hay mucha gente que dice que las App Desktop van a desaparecer en lo que a pymes se trata, pero esto es mentira, cuando se crea una plataforma se deben considerar muchas cosas, y yo lo hago de la siguiente forma:

  • App Desktop: Para los trabajadores, aprovechando los recursos de cada uno de los equipos que tienen para que la experiencia al utilizar el sistema sea amigable y lo más importante, fluida.
  • App Web: Para las personas que necesitan no estar en sus escritorios o hacer consultas de forma remota y que tengan la capacidad de ver el sitio web como una forma cómoda de acceder a su información.
  • App Móvil: Para aquellos que también desean hacer consultas pero que están muy ocupados (o por cualquier motivo) para sentarse enfrente de una computadora o laptop, claro esta presentación es menos que la App web

Un ejemplo claro, es cualquier banco del sistema de cualquier país. Si ven a los cajeros de los bancos, la gran mayoría utilizan aplicaciones desktop para hacer las transacciones, pero el banco tiene un portal web donde puedes hacer tus consultas y gestionar tus cuentas, pero también tienen suelen tener aplicaciones móviles  sencillas fáciles de utilizar para  que puedas hacer lo mismo que en el sitio web pero de forma más sencilla.



Programas: Para esta gran tarea que me he dispuesto a hacer, vamos a necesitar algunas herramientas que nos ayuden a desarrollar dicha plataforma, si ustedes desean seguirme en la elaboración de este proyecto (Los invito a hacerlo) pueden descargar cada uno de los programas que vamos a utilizar, de la siguiente lista:

ProgramaVersiónFunciónLinkObservaciones
MySQLCommunity 5.7Base de DatosDescargarInstalar MySQL Server
Instalar MySQL Workbench
Visual StudioCommunity 2015App DesktopDescargarInstalación Completa C# y VB
WAMPSERVER2.5Servidor Web PHPDescargarSolo Instalar Apache y PHP
Notepad++6.8.8Editor de TextoDescargarInstalar Complemento de PHP
Xamarinfor Visual StudioApp MóvilDescargarSe integra a Visual Studio Community 2015



Todas las Entregas se estarán registrando Aqui. Muchas Gracias desde ya, por acompañarme en este pequeño viaje, los espero en los comentarios.

Páginas: [1]