- Se puede construir aplicaciones en 10 minutos.
- 100% programado en java, no es necesario cambiar de lenguaje.
- Eficiencia
- Implementación de las mejores prácticas de spring 3
- Basado en maven 2, jpa (hibérnate) ,
- Incluye soporte para configuración de base de datos
- Incluye test automáticos de jUnit y test web con Selenium
- Aplicación backend basada en RESTfull
- Integración con Spring security
- URL amigables, url RESTfull
- Soporte para Scripting
Translate
sábado, 28 de noviembre de 2009
Spring Roo
Spring Integration
sábado, 21 de noviembre de 2009
Inyección de dependencia
domingo, 15 de noviembre de 2009
JNA
domingo, 8 de noviembre de 2009
¿Quién necesita un arquitecto?
sábado, 7 de noviembre de 2009
Apache Solr
Solr es un servidor de búsquedas basado en Lucene, contiene Apis de comunicación xml/http y JSON. Entre otras características: es liviano, tiene cache, replicable y trae una interfaz web para administrarlo.
El modo de distribución es un war el cual nosotros deployeamos en nuestro web conteiner (jetty, tomcat o otro) y listo!
Vamos al browser y ponemos por ejemplo http://localhost:8080/solr (si lo deployearon como solr) y hay va aparecer la interfaz web para configurarlo.
Solr provee diferentes clientes para casi todas las plataformas:
· Ruby - SolRuby
· PHP - SolPHP
· Java - SolJava
· Python - SolPython
· JSON - SolJSON
· .Net - solrnet
- C#
- Perl
o SolPerl
o Solr.pm
· JavaScript
o AJAX Solr.
Dejo links:
domingo, 1 de noviembre de 2009
RESTEasy
Es un proyecto de jboss que provee una implementación a jsr 311. Este proyecto contiene un conjunto de frameworks que nos facilitan el desarrollo con web services rest.
Jsr 311 nos permite desarrollar y publicar web services rest con anotaciones, vean que fácil es:
@Path("/library")
public class Library {
@GET
@Path("/books")
public String getBooks() {...}
@GET
@Path("/book/{isbn}")
public String getBook(@PathParam("isbn") String id) {
// search my database and get a string representation and return it
}
@PUT
@Path("/book/{isbn}")
public void addBook(@PathParam("isbn") String id, @QueryParam("name") String name) {...}
@DELETE
@Path("/book/{id}")
public void removeBook(@PathParam("id") String id {...}
}
Recuerden que los web services rest no tienen un descriptor wsdl como los soap, sino que lo que describe a los servicios rest en la url y el método por donde se aceden.
@PUT, @DELETE, @GET, etc decimos el método y con @Path indicamos el path donde esta publicado.
RESTeasy puede ejecutarse sobre cualquier contenedor web.
viernes, 30 de octubre de 2009
Las 7 características del código simple
miércoles, 28 de octubre de 2009
Firebug es lo más!!
Firebug Lite es un porte de Firebug a JavaScript que da acceso a una buena parte de la funcionalidad de Firebug desde IE, Safari, Chrome y Opera. Para emplearlo basta con añadir este script a la página que queremos depurar:
<script type='text/javascript' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
domingo, 25 de octubre de 2009
¿Qué son los DSL?
Los DSLs son lenguajes de programación especialmente diseñados para desarrollar software restringido a un dominio determinado. A diferencia de los lenguajes llamados de propósito general como Java, C++ o C#, los DSLs cuentan con un universo limitado de aplicación. No obstante, gracias precisamente a esta especialización, presentan facilidades y ventajas a la hora de abordar los problemas de software para los que fueron diseñados y desarrollados.
Java usa muchos DSL basados en xml, por ejemplo struts usa un dsl para definir el workflow de sus paginas, es mucho más fácil y flexible que hacerlo con java. Los archivos .properties tambien son un ejemplo dsl, con un universo muy limitado pero que resulta mucho más facil que hacerlo con XML o java.
Para definir e implementar lenguajes DSL es posible basarnos en un lenguaje de propósito general que sirva como contenedor, o bien partir de cero, requiriendo en este caso de específicos compiladores o intérpretes. Los DSLs del primer tipo citado suelen denominarse DSLs internos dejando la categoría de externos para los del segundo tipo.
Los Internal DSL: están escritos en el propio lenguaje padre. Son basicamente lo que siempre hemos conocido como “API” aunque utilizando “fluent interface” y atendiendo más a la semántica de los métodos. Un ejemplo en Java sería la generación de SQL por parte de Hibernate:
SQLQuery sql = new SQLQuery();
sql.Select("Id").Select("FirstName").Select("LastName").From("Person").Where("Id = 1").Where("FirstName = 'Chris'").OrderBy("LastName").OrderBy("FirstName");
string strSqlString = sql.ToString();
Los External DSL: No están escritos en el mismo Java. Se utiliza un lenguaje externo. En el caso de Java han triunfado especialmente los External DSL escritos en XML. Un caso sería el MVC de Struts, que se declara así:
<action-mappings >
<action path="/listar" type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="listar" path="lista.aplicaciones"/>
</action>
<action path="/formularioNuevaAplicacion" type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="mostrar" path="nueva.aplicacion"/>
</action>
<action path="/nuevaAyuda" attribute="aplicacionForm" name="aplicacionForm" type="org.springframework.web.struts.DelegatingActionProxy" scope="request" input="nueva.aplicacion">
<forward name="nueva" path="/listar.do"/>
</action>
</action-mappings>
Usamos DSL todo el tiempo y ni sabia :|
sábado, 24 de octubre de 2009
Groovy
def name='World'; println "Hello $name!"
Un "hola mundo" más complicado:
import static org.apache.commons.lang.WordUtils.*
class Greeter {
Greeter(who) { name = capitalize(who) }
def salute() { println "Hello $name!" }
}
new Greeter('world').salute()
Los problemas evolucionan por lo tanto las soluciones también deben evolucionar. La evolución natural de java es Groovy!
lunes, 19 de octubre de 2009
jar with dependencies
maven y netbeans segunda parte
sábado, 17 de octubre de 2009
El disco más vendido de la Argentina
Este regreso post-Rodríguez fue perfecto y diez años después (2007) Alta suciedad sería ubicado en el décimo puesto por 180 músicos y periodistas musicales en lo que serían Los 100 mejores álbumes del rock argentino según Rolling Stone.