Ver Mensaje Individual
  #9  
Antiguo 25-10-2006
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
La ventaja de cosas como Ruby On Rails, Django, TurboGears y demas es que son "stacks", o sea, es la integracion de uno o varios frameworks que automatizan cosas. El stack lo componen:

* Esquema MVC
* Un ORM (que mapea objetos a tablas)
* Un sistema de manejo de URLs
* Un sistema de generacion de plantillas / lenguaje de markup
* Un medio de integrar javascript/ajax
* Frameworks de medio y bajo nivel para comprimir la salida, autenticacion, etc...
* Todo alambrado e integrado

Para hacer una idea, es tan productivo como Delphi, solo que:

- De una vez esta en modalidad MVC
- Todo esta especificado (ej: Las clases las pones aqui, las vistas aqui. Por aqui se configura la BD, etc...) que tiene la ventaja que facilita a los nuevos a entrar y a los viejos a integrar.
- El ORM seria similar a Bold/ECO, aunque de todas maneras ECO es mas sofisticado

Por ejemplo, esto es todo lo que necesito en django para hacer CRUD y una interface administrativa automatica (Django tiene - a la fecha - el *mejor* sistema de administracion auto-generado):
Código:
class File(models.Model):
    createdOn   = models.DateTimeField('fecha de creacion',editable=False,blank=False,auto_now_add=True,default=datetime.now())
    modifedOn   = models.DateTimeField('fecha de modificacion',editable=False,blank=False,auto_now=True,default=datetime.now())
    tags        = models.CharField('etiquetas',maxlength=255,blank=False)
    title       = models.CharField('titulo',maxlength=50,blank=False,db_index=True)
    userId      = models.SlugField(prepopulate_from=('title', 'title'),blank=False)
    content     = models.TextField('contenido')
    status      = models.IntegerField('estado',default=1,choices=ESTATUS_CHOICES)
    filePath    = models.FileField('ruta de archivo',upload_to='data//files')
    fileSize    = models.IntegerField('tamaño en Kb',editable=False,default=0)
    
    def __str__(self):
        return '%s (%s)' % (self.name, self.filePath)

    def get_absolute_url(self):
        return "/descargas/%s/" % self.userId

    """ Deduce el tipo de datos MIME para hacer descargas correctas """
    def mimeType(self):
        return mimetypes.guess_type(self.filePath)

    def save(self):
        Content.save(self)
        
    class Admin:
        search_fields = ['filePath','title','tags']
        list_display = ('title', 'filePath','fileSize','tags')


    class Meta:
        verbose_name    = 'archivo'
        db_table        = 'jhonWebFile'
Es en serio, sale muy bien...

Vale la pena mirar la informacion sobre Ruby On Rails y sobre Django y demas. Realmente, si alguien arranca hoy a hacer sitios o aplicaciones web, este seria el mejor camino...
__________________
El malabarista.
Responder Con Cita