tag:blogger.com,1999:blog-33296206933360869592024-03-05T16:13:27.156-08:00JAVA ProgrammingJAVA Programming and technologies related ...Unknownnoreply@blogger.comBlogger12125tag:blogger.com,1999:blog-3329620693336086959.post-42786146098711078572016-08-08T11:32:00.004-07:002016-08-08T11:32:47.500-07:00Generacion de Vistas en Play Framework<h2>
Vistas en Play Framework</h2>
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/f1VUFa-lbLs/0.jpg" src="https://www.youtube.com/embed/f1VUFa-lbLs?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
<h3>
El motor de plantillas</h3>
<br />
El motor de plantillas esta basado en <a href="http://www.scala-lang.org/" target="_blank">Scala</a>.<br />
<a href="https://www.playframework.com/documentation/2.5.x/JavaTemplates" target="_blank">Play</a> viene con <a href="https://www.playframework.com/documentation/2.5.x/JavaTemplates" target="_blank">Twirl</a>, un poderoso motor de plantillas basado en Scala, el cual fue elaborado en base a Razor de ASP.<br />
<br />
<a name='more'></a><br /><br />
<h3>
Twirl</h3>
<br />
<b><a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">Compacto</a>, expresivo y fluido</b>: minimiza el numero de caracteres y tecleado requeridas en un archivo y habilita todo de modo rapido y fluido para el flujo de trabajo.<br />
En la mayoria de sintaxis de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantillas</a>, no se necesita interrumpir tu codificacion para denotar explicitamente los bloques de codigo servidor en el HTML.<br />
El parser es <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">suficientemente</a> habil para inferir esto del codigo. De modo que se habilita una sintaxis compacta y expresiva la cual es limpia, rapido y divertido de tipear.<br />
<br />
<b>Facil de Aprender</b>: te permite llegar a ser rapidamente productivo, con un minimo de conceptos. Se usa los constructores de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">Scala</a> de modo simple, y todas las habilidades sobre <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">HTML</a>.<br />
<br />
<b>No un nuevo lenguaje</b>: se creo concienzudamente para generar un nuevo lenguaje.<br />
En vez de querer para habilitar <a href="http://www.scala-lang.org/" target="_blank">Scala</a> para los desarrolladores para usar sus habilidades existentes de <a href="http://www.scala-lang.org/" target="_blank">Scala</a>, y entregar un nuevo lenguaje de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">sintaxis</a> de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">marcado</a> que habilita un flujo de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">trabajo</a> de contruccion de HTML.<br />
<br />
<b>Editable en cualquier <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">editor</a></b>: no se requiere una <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">herramienta</a> especifica que ayude a ser productivo se puede hacer edicion del codigo en un editor de textos antiguo.<br />
<br />
Nota.- aun cuando el motor de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantillas</a> usa Scala como lenguaje de expresiones, es no es un problema para el desarrollo con java. Se puede usar casi cualquier lenguaje de programacion con el sistema de plantillas.<br />
<br />
Hay que tomar en cuenta que una plantilla no es un lugar para escribir logica compleja. No se puede escribir complicador codigos de <a href="http://www.scala-lang.org/" target="_blank">Scala</a> en una <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantilla</a>.<br />
La mayoria de las veces se debe acceder a datos de un objeto u modelo de datos:<br />
<br />
<b>myUser.getProfile().getUsername()</b><br />
<br />
Los tipos de parametros son especificados usando la <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">sintaxis</a> de sufijo. los tipos genericos son especificados usando los simbolos [] en ves de los usuarios <> de la sintaxis de java. <br />
<br />
<b>List[String] -> List<String> </b><br />
<br />
<h3>
Revision </h3>
<br />
Una <a href="https://www.playframework.com/documentation/2.5.x/JavaTemplates" target="_blank">plantilla</a> de <a href="http://www.scala-lang.org/" target="_blank">scala</a> es un simple texto que contiene pequeños <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">bloques</a> de codigo de scala.<br />
Las plantillas pueden generar un formato texto, como es<a href="https://www.playframework.com/documentation/2.5.x/JavaTemplates" target="_blank"> HTML, XML, o csv</a>.<br />
El sistema de plantillas ha sido diseñado para sentirse confortable con lo que usualmentese trabaja en <a href="https://www.playframework.com/documentation/2.5.x/JavaTemplates" target="_blank">HTML,</a> permitiendo a los desarrolladores frontend facilmente trabajar con las plantillas.<br />
<br />
Las plantillas son compiladas como funciones estandard de <a href="http://www.scala-lang.org/" target="_blank">scala</a>, siguiendo una convencion de nombres. Si se crea la <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantilla</a> views/Application/index.scala.html, se generara una clase views.html.Application.index con un metodo render.<br />
<br />
@(customer: Customer, orders: List[Order])<br />
<br />
<h1>Welcome @customer.name!</h1><br />
<br />
<ul><br />
@for(order <- orders) {<br />
<li>@order.getTitle()</li><br />
}<br />
</ul><br />
<br />
Luego esto se puede llamar como cualquier <a href="https://www.playframework.com/documentation/2.5.x/JavaTemplates" target="_blank">codigo de java</a> normalmente por metodo como en la clase:<br />
<br />
Content html = views.html.Application.index.render(customer, orders);<br />
<br />
>Sintaxis: el caracter magico ‘@’ <br />
La plantilla de scala usa @ como un simple caracter especial, Cada vez que el caracter es encontrado, se indica el comienzo de una statement <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">dinamica</a>.<br />
No se requiere cerra el codigo de bloque explicitamente:<br />
<br />
Hello @customer.getName()!<br />
^^^^^^^^^^^^^^^^^^<br />
Codigo dinamico<br />
<br />
Por medio del motor de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantillas</a> automaticamente se detecta el fin de un bloque de codigo por medio del analisis de codigo, la sintaxis solo soporta una sentencia simple. si se desea inserta una <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">expresion</a> mas compleja se debe hacer uso de parentesis:<br />
<br />
Hello @(customer.getFirstName() + customer.getLastName())!<br />
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br />
Codigo dinamico<br />
<br />
Tambien se puede usar llaves para escribir expresiones complejas<br />
<br />
Hello @{val name = customer.getFirstName() + customer.getLastName(); name}!<br />
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br />
Codigo dinamico<br />
<br />
Tomando en cuenta que @ es un caracter especial, se necesitara escaparlo en algunos casos usando @@:<br />
<br />
My email is bob@@example.com<br />
<br />
<h3>
Parametros de plantilla</h3>
Una <a href="https://www.playframework.com/documentation/2.5.x/JavaTemplates" target="_blank">plantilla</a> es como una <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">funcion</a>, asi de este modo los <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">parametros</a>, los cuales deben ser declarados encima del archivo de la <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantilla</a>:<br />
<br />
@(customer: models.Customer, orders: List[models.Order])<br />
<br />
Se puede tambien usar valores por defecto en los parametros:<br />
<br />
@(title: String = "Home")<br />
<br />
O aun asi tambien parametros agrupados:<br />
<br />
@(title:String)(body: Html)<br />
<br />
<h3>
Iteracion</h3>
<br />
se puede usar la palabra "for", para iterar elementos en la <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantilla</a>:<br />
<br />
<ul><br />
@for(p <- products) {<br />
<li>@p.getName() ($@p.getPrice())</li><br />
}<br />
</ul><br />
<br />
Nota.- hay que asegurarse que "{" es en la misma linea en la cual se indica el uso de "for" y la <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">expresion</a> debe continuar en la siguiente linea:<br />
<br />
<h3>
Bloque If</h3>
Los <a href="https://www.playframework.com/" target="_blank">bloques</a> if no son nada especial. Simplemente son usados en <a href="https://www.playframework.com/documentation/2.5.x/JavaTemplates" target="_blank">Scala</a> como expresiones estandard:<br />
<br />
@if(items.isEmpty()) {<br />
<h1>Nothing to display</h1><br />
} else {<br />
<h1>@items.size() items!</h1><br />
}<br />
<br />
<h3>
Declarando bloques reusables</h3>
Se puede crear bloques de <a href="http://www.scala-lang.org/" target="_blank">codigo reusable:</a><br />
<br />
@display(product: models.Product) = {<br />
@product.getName() ($@product.getPrice())<br />
}<br />
<br />
<ul><br />
@for(product <- products) {<br />
@display(product)<br />
}<br />
</ul><br />
<br />
Nota que se puede declarar <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">bloques</a> de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">codigo reusable</a> puros:<br />
<br />
@title(text: String) = @{<br />
text.split(' ').map(_.capitalize).mkString(" ")<br />
}<br />
<br />
<h1>@title("hello world")</h1><br />
<br />
<b>Nota.-</b> cuando se declara un bloque de <a href="http://www.scala-lang.org/" target="_blank">codigo puro</a> de esta forma la plantilla puede ser util pero guardando en mente que la plantilla no es el mejor lugar para escribir logica compleja. esto es a menudo mejor que externalizar esa clase de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">codigo</a> en una clase <a href="https://www.playframework.com/" target="_blank">java</a> (que puede estar almacenando bajo las <a href="https://www.playframework.com/" target="_blank">vistas</a> un paquete que sea util).<br />
Por convencion un <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">bloque</a> reusable define con un nombre el comienzo de un modo implicito:<br />
<br />
@implicitFieldConstructor = @{ MyFieldConstructor() }<br />
Declaring reusable values<br />
You can define scoped values using the defining helper:<br />
<br />
@defining(user.getFirstName() + " " + user.getLastName()) { fullName =><br />
<div>Hello @fullName</div><br />
}<br />
<br />
<h3>
Importar expresiones</h3>
Se puede importar cualquier cosa que se desee en el comienzo de tu <a href="https://www.playframework.com/" target="_blank">plantilla</a> (o sub-plantilla):<br />
<br />
@(customer: models.Customer, orders: List[models.Order])<br />
<br />
@import utils._<br />
<br />
...<br />
<br />
Para hacer una resolucion absoluta, se usa el prefijo <a href="https://www.playframework.com/" target="_blank">raiz</a> en la expresion de import.<br />
<br />
@import _root_.company.product.core._<br />
Si se tiene importa comunes, los cuales sean necesarios para todas las <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantillas</a>, se puede declarar en build.sbt<br />
<br />
TwirlKeys.templateImports += "org.abc.backend._"<br />
<h3>
Comentarios</h3>
<br />
se puede escribir un bloque de comentario en las <a href="https://www.playframework.com/" target="_blank">plantillas</a> usando @* *@:<br />
<br />
@*********************<br />
* This is a comment *<br />
*********************@<br />
<br />
Se puede poner un <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">comentario</a> en la primera linea para documentar tu <a href="https://www.playframework.com/" target="_blank">plantilla</a> en la documentacion de scala:<br />
<br />
@*************************************<br />
* Home page. *<br />
* *<br />
* @param msg The message to display *<br />
*************************************@<br />
@(msg: String)<br />
<br />
<h1>@msg</h1><br />
<br />
<h3>
Escape de caracteres</h3>
Por defecto, los contenidos dinamicos con escapados en funcion al tipo de <a href="http://www.scala-lang.org/" target="_blank">plantilla</a> (HTML o XML). Si se desea una salida en contenido raw, se puede poner una tipo de content type explicito.<br />
<br />
<p><br />
@Html(article.content)<br />
</p><br />
<br />
<br />
<h3>
Casos de uso de plantillas</h3>
<br />
Las <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantillas</a>, son simples <a href="https://www.playframework.com/" target="_blank">funciones</a>, que pueden estar compuestas en muchas formas que se desee. <br />
<h3>
Diseño</h3>
Se puede declarar un plantilla views/main.<a href="http://scala./">scala.</a>html que actuara como una <a href="https://www.playframework.com/" target="_blank">plantilla</a> de diseño base:<br />
<br />
@(title: String)(content: Html)<br />
<!DOCTYPE html><br />
<html><br />
<head><br />
<title>@title</title><br />
</head><br />
<body><br />
<section class="content">@content</section><br />
</body><br />
</html><br />
<br />
Como se puede ver, esta <a href="https://www.playframework.com/" target="_blank">plantilla</a> puede tomar dos <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">parametros</a>: un titulo y un bloque de html. Ahorase puede usar esto desde otra vista plantilla views/Application/index.scala.html <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">template</a>:<br />
<br />
@main(title = "Home") {<br />
<br />
<h1>Home page</h1><br />
<br />
}<br />
<b>Nota.- </b>Se debe usar ambos parametros ( como <a href="https://www.playframework.com/" target="_blank">parametros</a> posicionados @main(title = "Home") o @main("Home"). Hay que escoger cualquier forma en que se vea mas claro el contexto que se desea usar.<br />
<br />
En algunos casos se necesita un segundo bloque de <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">contenidos</a> para otro tipo de contenidos y eso se puede obtener de la siguiente forma:<br />
<br />
@(title: String)(sidebar: Html)(content: Html)<br />
<!DOCTYPE html><br />
<html><br />
<head><br />
<title>@title</title><br />
</head><br />
<body><br />
<section class="content">@content</section><br />
<section class="sidebar">@sidebar</section><br />
</body><br />
</html><br />
<br />
Usando esto desde tu <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">plantilla</a> "index", se puede obtener lo siguiente:<br />
<br />
@main("Home") {<br />
<h1>Sidebar</h1><br />
<br />
} {<br />
<h1>Home page</h1><br />
<br />
}<br />
<br />
Alternativamente se puede declarar el <a href="https://www.playframework.com/" target="_blank">sidebar</a> en un bloque separado:<br />
<br />
@sidebar = {<br />
<h1>Sidebar</h1><br />
}<br />
<br />
@main("Home")(sidebar) {<br />
<h1>Home page</h1><br />
<br />
}<br />
<br />
<h3>
Tags </h3>
Se puede escribir un tag simple views/tags/notice.scala.html que muestre una nota en <a href="https://www.youtube.com/watch?v=f1VUFa-lbLs" target="_blank">HTML</a><br />
<br />
@(level: String = "error")(body: (String) => Html)<br />
<br />
@level match {<br />
<br />
case "success" => {<br />
<p class="success"><br />
@body("green")<br />
</p><br />
}<br />
<br />
case "warning" => {<br />
<p class="warning"><br />
@body("orange")<br />
</p><br />
}<br />
<br />
case "error" => {<br />
<p class="error"><br />
@body("red")<br />
</p><br />
}<br />
<br />
}<br />
<br />
Y ahora se puede usar desde otra plantilla:<br />
<br />
@import tags._<br />
<br />
@notice("error") { color =><br />
Oops, something is <span style="color:@color">wrong</span><br />
}<br />
<br />
<br />
<h3>
Includes</h3>
De nuevo no hay nada especial en esto.<br />
Se puede solo llamar a alguna otra <a href="https://www.playframework.com/" target="_blank">plantilla</a> que se desee ( o de hecho a cualquier otra <a href="https://www.playframework.com/" target="_blank">funcion</a>, donde sea que este definida):<br />
<br />
<h1>Home</h1><br />
<br />
<div id="side"><br />
@common.sideBar()<br />
</div><br />
<br />
Se puede definir una variable en la <a href="https://www.playframework.com/" target="_blank">plantilla</a> principal de esta forma:<br />
<br />
@(title: String, scripts: Html = Html(""))(content: Html)<br />
<br />
<!DOCTYPE html><br />
<br />
<html><br />
<head><br />
<title>@title</title><br />
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")"><br />
<link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")"><br />
<script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script><br />
@scripts<br />
</head><br />
<body><br />
<div class="navbar navbar-fixed-top"><br />
<div class="navbar-inner"><br />
<div class="container"><br />
<a class="brand" href="#">Movies</a><br />
</div><br />
</div><br />
</div><br />
<div class="container"><br />
@content<br />
</div><br />
</body><br />
</html><br />
<br />
Y se puede extender la <a href="https://www.playframework.com/" target="_blank">plantilla</a> tal como se necesita en un <a href="https://www.playframework.com/" target="_blank">script</a> extra:<br />
<br />
@scripts = {<br />
<script type="text/javascript">alert("hello !");</script><br />
}<br />
<br />
@main("Title",scripts){<br />
<br />
Html content here ...<br />
<br />
}<br />
<br />
Y se extiende una <a href="https://www.playframework.com/" target="_blank">plantilla</a> cuando no se necesita un script extra, justo asi:<br />
<br />
@main("Title"){<br />
Html content here ...<br />
}<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/lOzQxyyozY0BBB" style="border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;" width="595"> </iframe> <br />
<div style="margin-bottom: 5px;">
<b> <a href="https://www.slideshare.net/xhrist14n/05-generacion-de-vista-con-plantillas-twirl-en-play-framework" target="_blank" title="05 . generacion de vista con plantillas twirl en play framework">05 . generacion de vista con plantillas twirl en play framework</a> </b> from <b><a href="https://www.slideshare.net/xhrist14n" target="_blank">christian enrique portilla pauca</a></b> </div>
<br />
<br />
Escrito por <a href="http://www.christianportilla.com/" target="_blank">Christian Portilla Pauca</a><br />
Site: <a href="http://christianportilla.com/">christianportilla.com</a><a href="http://www.christianportilla.com/" target="_blank">www.christianportilla.com</a><br />
<br />
<a href="https://www.facebook.com/permalink.php?story_fbid=1624516427858719&id=1592887711021591">https://www.facebook.com/permalink.php?story_fbid=1624516427858719&id=1592887711021591</a><br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/09655973238664942686noreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-83755137528852857542016-05-20T12:26:00.003-07:002016-05-20T12:26:38.846-07:00Play Framework Utilizando LightBend Activator<h2>
Utilizando la Consola de Play Framework </h2>
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/zvb-2JAYe-M/0.jpg" src="https://www.youtube.com/embed/zvb-2JAYe-M?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
<h3>
Lanzando la consola</h3>
<br />
La consola de <a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank"><b>Play</b></a> es una consola de <a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank">desarrollo</a> basada en sbt que permite que usted maneje el ciclo de <a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank">desarrollo</a> completo de la aplicación de <b><a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank">Play</a>.</b><br />
<br />
Para lanzar la consola de <a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank"><b>Play</b></a>, cambie al directorio de su proyecto y dirija <b><a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank">Activator</a>:</b><br />
<b><br />$ cd my-first-app<br />$ activator</b><br />
<br />
<a name='more'></a><br /><br />
<h3>
Leer ayuda</h3>
<br />
Use la orden de ayuda de conseguir la ayuda básica sobre las <a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank">órdenes</a> disponibles. <br />
También puede usar esto con una orden específica de conseguir la información sobre esa orden:<br />
<br />
<b>[my-first-app] $ help run</b><br />
<br />
<h3>
Ejecutando el <a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank">servidor</a> en modo desarrollo</h3>
<br />
Para ejecutar la<a href="https://www.playframework.com/" target="_blank"> aplicacion</a> actual en modo de desarrollo, se usa el comando run:<br />
<br />
<b>[my-first-app] $ run</b><br />
<br />
En este modo, el servidor se lanzará con el rasgo autorecargar, significando que para cada solicitud de Play Framework comprobará su proyecto y compilará de nuevo fuentes requeridas. De ser necesario la aplicación se reactivará automáticamente.<br />
<br />
Si hay algún error de la compilación verá el resultado de la compilación directamente en su navegador:<br />
<br />
Para parar el servidor, escriba a máquina las teclas Crtl+D, y se devolverá a la consola de <a href="https://www.playframework.com/" target="_blank"><b>Play</b></a>.<br />
<br />
<h4>
Compilación</h4>
<br />
En Play también puede compilar su <a href="https://www.playframework.com/" target="_blank">aplicación</a> sin dirigir el servidor. Sólo use la orden compile:<br />
<br />
<b>[my-first-app] $ compile</b><br />
<br />
<h3>
Ejecutando los tests</h3>
<br />
Como el comando de abajo, se puede ejecutar tests sin ejecutar el <a href="https://www.playframework.com/" target="_blank">servidor</a>. Solo se usa el comando para evaluar:<br />
<br />
<b>[my-first-app] $ test</b><br />
<br />
<h3>
Lanzando consola interactiva</h3>
<br />
Se tipea en la consola para entrar en la consola Scala interactivo, lo cual permite testear el codigo de modo interactivo:<br />
<br />
<b>[my-first-app] $ console</b><br />
<br />
Para iniciar la <a href="https://www.playframework.com/" target="_blank">aplicacion</a> dentro de la consola de scala (ejm. acceder a la base de datos):<br />
<br />
<i>import play.api._<br />val env = Environment(new java.io.File("."), this.getClass.getClassLoader, Mode.Dev)<br />val context = ApplicationLoader.createContext(env)<br />val loader = ApplicationLoader(context)<br />val app = loader.load(context)<br />Play.start(app)</i><br />
<br />
<h3>
Debugging</h3>
<br />
Puede pedir que el <a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank">Play</a> comience un puerto de debug de JPDA comenzando la consola. <br />
Puede conectar entonces la utilización de depuración de Java. <br />
Use la orden activator - jvm-debug <puerto> hacer esto:<br />
<br />
<b>$ activator -jvm-debug 9999</b><br />
<br />
Cuando el puerto JPDA esta disponible, el JVM imprimira en el log esta linea durante el boot:<br />
<br />
Listening for transport dt_socket at address: 9999<br />
<br />
<h3>
Usando caracteristicas de sbt</h3>
La <a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank">consola Play</a> es solo una consola sbt normal, ademas se puede usar caracteristicas de sbt tal como se lanzan en ejecucion.<br />
<br />
Por ejemplo, usando compile:<br />
<br />
<b>[my-first-app] $ ~ compile</b><br />
<br />
La compilacion lanzara un evento cada vez que se cargue un archivo fuente.<br />
<br />
Si se usa run:<br />
<br />
<b>[my-first-app] $ ~ run</b><br />
<br />
La<a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank"> compilacion</a> se lanzara estando habilitado mientras el servidor de desarrollo este ejecutando.<br />
Pasa lo mismo si hacemos test.<br />
<br />
<b>[my-first-app] $ ~ test</b><br />
<br />
<h3>
Usando comandos de play directamente </h3>
<br />
Se puede ejecutar comandos directamente sin entrar en la consola de Play. por ejm escribiendo activator run:<br />
<br />
<b>$ activator run</b><br />
<br />
[info] Loading project definition from /Users/jroper/tmp/my-first-app/project<br />
[info] Set current project to my-first-app (in build file:/Users/jroper/tmp/my-first-app/)<br />
<br />
<i>--- (Running the application from SBT, auto-reloading is enabled) ---<br /><br />[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000<br /><br />(Server started, use Ctrl+D to stop and go back to the console...)</i><br />
La aplicacion comienza directamente, cuando se introduce CTRL + D, se sale del prompt, A proposito la <a href="https://www.youtube.com/watch?v=zvb-2JAYe-M" target="_blank">ejecucion</a> lanzada esta disponible aqui como se ve:<br />
<br />
<b>$ activator ~run</b><br />
<br />
<iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//es.slideshare.net/slideshow/embed_code/key/5zgXFcXrdo3y5" style="border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;" width="595"> </iframe> <br />
<div style="margin-bottom: 5px;">
<b> <a href="https://es.slideshare.net/xhrist14n/04-utilizando-la-consola-de-play-framework" target="_blank" title="04 . utilizando la consola de play framework">04 . utilizando la consola de play framework</a> </b> from <b><a href="https://es.slideshare.net/xhrist14n" target="_blank">christian enrique portilla pauca</a></b> </div>
<br />
<br />
<b>Escrito por <a href="http://www.christianportilla.com/" target="_blank">Christian Portilla Pauca </a></b>Anonymoushttp://www.blogger.com/profile/09655973238664942686noreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-61972120362618694472016-05-02T11:02:00.000-07:002016-05-02T11:02:38.526-07:00Creando una aplicacion inicial con Play Framework<h2>
<b>Creando una nueva aplicacion usando activator</b></h2>
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/SIP0koVYqoI/0.jpg" src="https://www.youtube.com/embed/SIP0koVYqoI?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<b> </b><br />
<a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">Activator </a>puede ser usado para crear una nueva <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">aplicacion</a>. Activator permite seleccionar la plantilla a usar para la creacion de una <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">nueva aplicacion. </a><br />
<br />
<div style="text-align: justify;">
Para proyectos de <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">Play</a>, el nombre de la plantilla base de java es play-java.<br /><br />Nota escogiendo una <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">plantilla para java </a>en este punto no implica que no se pueda cambiar el lenguaje de desarrollo despues. Por ejm, se puede crear una nueva <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">aplicacion</a> usando por defecto una <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">Aplicacion web de Java</a> y despues se puede escribir codigo en scala por donde se desee.<br /><br />Para crear una nueva Aplicacion Play de Java, se ejecuta: <br /><br />$ <b>activator new my-first-app play-java</b><br /><br />En cualquier caso, se puede reemplazar my-first-app con cualquier nombre que uno desee para usar con la <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">aplicacion</a>. Activator usara esto como el nombre de directorio base de la <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">aplicacion</a>. Se puede cambiar este nombre despues si se desea.<br /><br />Si se desea usar otras <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">plantillas de Activator</a>, se puede hacer esto corriendo activator new. Este sera escrito como nombre de aplicacion, y luego se da una opcion para navegar y seleccionar la plantilla apropiada.<br /><br />Una vez la aplicacion ha sido creada se puede usar el <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">comando activator</a> de nuevo para entrar a la <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">consola de play.</a><br /><br />$ cd my-first-app<br />$ activator</div>
<div style="text-align: justify;">
</div>
<a name='more'></a><br /><br />
<h3 style="text-align: justify;">
Anatomia de una Aplicacion Play</h3>
<h3 style="text-align: justify;">
</h3>
<h4>
Layout de Aplicacion Play</h4>
El layout de una aplicacion es estandarizado para guardar cosas lo mas simples posible.<br />
<br />app → Application sources<br />
└ assets → Compiled asset sources<br />
└ stylesheets → Typically LESS CSS sources<br />
└ javascripts → Typically CoffeeScript sources<br />
└ controllers → Application controllers<br />
└ models → Application business layer<br />
└ views → Templates<br />
build.sbt → Application build script<br />
conf → Configurations files and other non-compiled resources (on classpath)<br />
└ application.conf → Main configuration file<br />
└ routes → Routes definition<br />
dist → Arbitrary files to be included in your projects distribution<br />
public → Public assets<br />
└ stylesheets → CSS files<br />
└ javascripts → Javascript files<br />
└ images → Image files<br />
project → sbt configuration files<br />
└ build.properties → Marker for sbt project<br />
└ plugins.sbt → sbt plugins including the declaration for Play itself<br />
lib → Unmanaged libraries dependencies<br />
logs → Logs folder<br />
└ application.log → Default log file<br />
target → Generated stuff<br />
└ resolution-cache → Info about dependencies<br />
└ scala-2.11<br />
└ api → Generated API docs<br />
└ classes → Compiled class files<br />
└ routes → Sources generated from routes<br />
└ twirl → Sources generated from templates<br />
└ universal → Application packaging<br />
└ web → Compiled web assets<br />
test → source folder for unit or functional tests<br />
<br />
<h3>
directorio app/ </h3>
El directorio app/ contiene los artefactos ejecutables (fuentes java, plantillas, y recursos de aplicacion web).<br /><br />Hay tres paquetes basicos que son de la <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">arquitectura MVC</a>:<br /><br /> app/controllers<br /> app/models<br /> app/views<br /><br />Y tambien se puede crear paquetes propios segun las necesidades.<br /><br />Nota en play, el <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">patron MVC</a> puede variar un poco segun nuestras necesidades de programacion.<br />
<br />
<h3>
directorio public/ </h3>
<h3>
</h3>
Los <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">recursos</a> son almacenados en el directorio public como <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">recursos estaticos</a> y servidos directamente desde el servidor.<br />
<br />Este directorio se divide en tres subdirectorios para archivos de imagenes, css y javascript. se deberia organizar los elementos estaticos de esa forma para que nuestras aplicaciones de <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">play</a> sean consistentes.<br />
<br />En una nueva <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">aplicacion</a> recien creada, el directorio public es mapeado como el directorio /assets del path, pero se puede cambiar con facilidad eso aun en un uso severo de directorios para recursos estaticos.<br />
<br />
<h3>
directorio conf/ </h3>
<div style="text-align: justify;">
El directorio conf contiene los archivos de <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">configuracion de la aplicacion</a>. Hay dos archivos de configuraciones principales:<br /><br /> application.conf, este archivo es el principal en la configuracion de la aplicacion, pues contiene los parametros base de configuracion routes, este archivo contiene la definicion rutas web de la aplicacion.</div>
<div style="text-align: justify;">
Si se necesita añadir opciones de configuracion que son especificas de nuestra aplicacion, es bueno añadir las opciones deconfiguracion nuevas en el archivo application.conf.<br /><br />Si una libreria necesita un archivo de configuracion especifico, se debe tratar de colocar bajo el directorio conf/.</div>
<br />
<h3>
directorio lib/ </h3>
El directorio lib/ es opcional y contiene librerias y dependencias no clasicas de play, como pueden ser <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">archivos JAR</a> que uno desee administrar directamente fuera del sistema de construccion de Play Framework. Solo dejamos los archivos JAR alli y se añadiran automaticamente al path de la aplicacion.<br />
<br />
<h3>
directorio project/ </h3>
el directorio project/ contiene las definiciones de construccion de <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">proyecto sbt.</a><br /><br /> plugins.sbt define los plugins de sbt usados por el proyecto<br /> build.properties contiene la version sbt a usar para la construccion del aplicativo.<br />
<br />
<h3>
directorio target/ </h3>
<br />el directorio target/ contiene todo lo generado por el sistema de construccion. Puede ser util saber que es generado alli.<br /><br /> classes/ contiene todas las clases compiladas.<br /> classes_managed/ contiene solo las clases que son administradas por el framework (como puede ser clases generaadas por el ruteador o el sistema de plantillas). Este puede ser util para añadir este folder de clases como un folder de clases externo en el IDE del proyecto.<br /> resource_managed/ contiene recursos generados , tipicamente recursos compilados tales como CSS resultado de Less y resultados de compilacion de CoffeeScript.<br /> src_managed/ contiene fuentes generados, tales como los fuentes de Scala generados en funcion del sistema de plantillas de <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">Play Framework.</a><br /> web/ contiene recursos web procesados por el sbt-web tales como los recursos de app (app/assets) y la carpeta ṕublic/.<br />
<br />
<h3>
Archivo build.sbt</h3>
Las declaraciones de construccion base del <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">proyecto</a> son generalmente encontradas en <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">build.sbt</a><a href="https://www.blogger.com/null"> </a>en la raiz de directorios del proyecto. Algunos archivos de extension .scala pueden ser usados para declarar opciones de construccion de nuestro <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">proyecto</a> y pueden ser ubicados en la carpeta <a href="https://www.youtube.com/watch?v=SIP0koVYqoI" target="_blank">project</a>/. <br />
<br />
<a href="http://www.christianportilla.com/" target="_blank">Escrito Por Christian Portilla Pauca </a><br />
<h3 style="text-align: justify;">
</h3>
Anonymoushttp://www.blogger.com/profile/09655973238664942686noreply@blogger.com1tag:blogger.com,1999:blog-3329620693336086959.post-54708688432208356842016-04-12T14:47:00.001-07:002016-04-12T14:47:10.841-07:00Configuracion de entorno de trabajo para Play Framework<br />
<h2>
Instalando Play Requisitos</h2>
<br />
Java 1.8 JDK<br />
<br />
Podemos hacer una revision de la version de java por medio de :<br />
<br />
java -version<br />
<br />
Las opciones de instalacion se pueden ver en la pagina:<br />
<a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">http://www.oracle.com/technetwork/java/javase/downloads/index.html</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/CfDtgoSFBbY/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/CfDtgoSFBbY?feature=player_embedded" width="320"></iframe></div>
<br />
<h2>
Play Framework </h2>
<br />
Las opciones de <a href="https://www.youtube.com/watch?v=CfDtgoSFBbY&feature=youtu.be" target="_blank">instalacion</a> son las siguientes:<br />
<br />
Maven: http://mvnrepository.com/artifact/com.typesafe.play<br />
<br />
LightBend: https://www.lightbend.com/activator/docs<br />
<br />
Plantillas de LightBend: https://www.lightbend.com/activator/templates<br />
<br />
La opcion que haremos uso es Activator:<br />
<br />
Activator: https://www.playframework.com/download<br />
<br />
<a name='more'></a><br />
<iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/4rgd6PSn2iDOwT" style="border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;" width="595"> </iframe> <br />
<div style="margin-bottom: 5px;">
<b> <a href="https://www.slideshare.net/xhrist14n/02-configurando-nuestro-entorno-de-trabajo" target="_blank" title="02 . configurando nuestro entorno de trabajo">02 . configurando nuestro entorno de trabajo</a> </b> from <b><a href="https://www.slideshare.net/xhrist14n" target="_blank">christian enrique portilla pauca</a></b> </div>
<br />
<h2>
Descargar Activator:</h2>
<br />
Lo primero que hacemos en este punto es <a href="https://www.youtube.com/watch?v=CfDtgoSFBbY&feature=youtu.be" target="_blank">descargar activator</a>:<br />
<a href="https://playframework.com/download" target="_blank">https://playframework.com/download</a><br />
<br />
La <a href="https://www.youtube.com/watch?v=CfDtgoSFBbY&feature=youtu.be" target="_blank">version offline </a>es la version que escogemos.<br />
<br />
<h2>
Extraer Activator:</h2>
<br />
De preferencia debemos descomprimir en una ruta con permisos de ejecucion para el perfil de usuario que tengamos en uso.<br />
<br />
<h2>
Añadir activator al path de nuestro sistema.</h2>
<br />
<h3>
-En sistemas UNIX/LINUX:</h3>
<br />
en $HOME/.profile debemos editar este archivo y colocar el path:<br />
<br />
export PATH=/path/to/activator-x.x.x:$PATH<br />
<br />
Nota.- no debemos olvidar de activar los permisos de <a href="https://www.youtube.com/watch?v=CfDtgoSFBbY&feature=youtu.be" target="_blank">ejecucion</a> de activator usando el comando:<br />
<br />
chmod u+x /path/to/activator-x.x.x/activator<br />
<br />
<h3>
-En sistemas Windows:</h3>
<br />
Usando el command prompt de windows podemos hacer uso del comando:<br />
<br />
setx PATH=%PATH%;"C:\path\to\activator-x.x.x"<br />
<br />
Nota.- en versiones anteriores a win 8 debemos hacerlo por medio del dialogo de propiedades de sistema.<br />
<br />
<br />
<h2>
Probando Play Framework:</h2>
<br />
Para probar<a href="https://www.youtube.com/watch?v=CfDtgoSFBbY&feature=youtu.be" target="_blank"> play framework </a>hacemos uso de linea de comandos pues es la forma de mas rapida ejecucion, debemos usar el comando activator:<br />
<br />
<b>$ activator [enter]</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvUgQRB4nDnkmXo_UV3zQy1vQRdnR9UgatM97D-RNuF_wWvTbM5odQOncV6DWvey3T-u-VLip_RrFZD8o4ymVtpUlvvh5mtI0g_r4H1DUmAyrZi_Eq_wPbvv92I01PMWmiPEF7Tx2JYUrY/s1600/terminal.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvUgQRB4nDnkmXo_UV3zQy1vQRdnR9UgatM97D-RNuF_wWvTbM5odQOncV6DWvey3T-u-VLip_RrFZD8o4ymVtpUlvvh5mtI0g_r4H1DUmAyrZi_Eq_wPbvv92I01PMWmiPEF7Tx2JYUrY/s640/terminal.png" width="640" /></a></div>
<br />
<br />
<br />
Nota.- para mas detalles del uso de <a href="https://www.youtube.com/watch?v=CfDtgoSFBbY&feature=youtu.be" target="_blank">activator</a> ver: <br />
<a href="https://www.playframework.com/documentation/2.5.x/PlayConsole" target="_blank">https://www.playframework.com/documentation/2.5.x/PlayConsole</a><br />
<br />
Escrito por <a href="http://www.christianportilla.com/" target="_blank">Christian Portilla Pauca </a><br />
<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/09655973238664942686noreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-59725441786100783692016-03-15T00:06:00.000-07:002016-03-15T00:06:07.101-07:00Play Framework Instalacion y usos<h2 style="text-align: justify;">
Play Framework</h2>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/CGh0Br-TFOA/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/CGh0Br-TFOA?feature=player_embedded" width="320"></iframe></div>
<h2 style="text-align: justify;">
</h2>
<h3 style="text-align: justify;">
Introduccion</h3>
<div style="text-align: justify;">
<a href="https://www.youtube.com/watch?v=CGh0Br-TFOA&feature=youtu.be" target="_blank">Play Framework</a> es un framework basado en <a href="https://www.youtube.com/watch?v=CGh0Br-TFOA&feature=youtu.be" target="_blank">Java y Scala</a> para aplicaciones web de alta productividad que integra componentes y APIs que uno necesita para el desarrollo de aplicaciones web modernas.<br />
Play esta basado en <a href="https://www.youtube.com/watch?v=CGh0Br-TFOA&feature=youtu.be" target="_blank">arquitecturas</a> de peso ligero, sin estado, y amigables en web ademas de caracteristicas de prediccion y minimo consumo de recursos (CPU, memoria, threads) para aplicaciones de alta escalabilidad para aplicaciones gracias a su modelo reactivo, basado en Akka Streams.<br />
<a href="https://www.youtube.com/watch?v=CGh0Br-TFOA&feature=youtu.be" target="_blank">Play framework</a> hace facil construir aplicaciones basadas en<a href="https://www.youtube.com/watch?v=CGh0Br-TFOA&feature=youtu.be" target="_blank"> Java y Scala</a>.</div>
<div style="text-align: justify;">
<br /></div>
<a name='more'></a><br />
<h3 style="text-align: justify;">
Requisitos</h3>
<div style="text-align: justify;">
Para poder hacer uso de <a href="https://www.youtube.com/watch?v=CGh0Br-TFOA&feature=youtu.be" target="_blank">Play Framework</a> es necesario en las ultimas versiones hacer uso del JDK 1.8, para esto se puede revisar la version de java por medio de:<br />
<br />
<i><b>#java -version</b></i><br />
<br />
Si no esta instalado java en tu equipo se debe instalar para poder usar Play Framework.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Instalando Play</b></div>
<div style="text-align: justify;">
La instalacion de <a href="http://es.slideshare.net/xhrist14n/01-play-framework-instalacion" target="_blank">play framework</a> es un proceso sencillo, solo se debe hacer la descarga de play framework en su ultima version, de la direccion web: https://playframework.com/download </div>
<div style="text-align: justify;">
Seguidamente se descomprime en un directorio que tenga acceso de escritura y luego se coloca en el path del sistema la ruta base de play framework.</div>
<div style="text-align: justify;">
Luego en linea de comandos probamos el comando:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
>activator</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Y con esto se lanzara un proceso de descarga de dependencias de <a href="https://www.youtube.com/watch?v=CGh0Br-TFOA&feature=youtu.be" target="_blank">play framework</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una vez tengamos todo eso acabado y listo podemos hacer uso de la linea de comandos de <a href="http://es.slideshare.net/xhrist14n/01-play-framework-instalacion" target="_blank">play framework</a>.</div>
<div style="text-align: justify;">
Para crear un <a href="http://es.slideshare.net/xhrist14n/01-play-framework-instalacion" target="_blank">proyecto minimo</a> solo debemos hacer uso del comando:</div>
<div style="text-align: justify;">
>activator new</div>
<div style="text-align: justify;">
Luego seguimos lo que nos indica el asistente y nos creara un directorio con el proyecto listo para usarse.</div>
<div style="text-align: justify;">
Seguidamente podemos ingresar por linea de comandos al directorio del proyecto y desde ahi podemos <a href="http://es.slideshare.net/xhrist14n/01-play-framework-instalacion" target="_blank">ejecutar</a> el comando:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
>activator run</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
y ya estara corriendo el proyecto base.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//es.slideshare.net/slideshow/embed_code/key/vrT346wkuIgVvf" style="border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;" width="595"> </iframe> </div>
<div style="margin-bottom: 5px;">
<b> <a href="https://es.slideshare.net/xhrist14n/01-play-framework-instalacion" target="_blank" title="01 . play framework - instalacion">01 . play framework - instalacion</a> </b> from <b><a href="https://es.slideshare.net/xhrist14n" target="_blank">christian enrique portilla pauca</a></b><br />
<b> </b> </div>
<div style="text-align: justify;">
Escrito Por <a href="http://www.christianportilla.com/" target="_blank">Christian Portilla Pauca </a></div>
Anonymoushttp://www.blogger.com/profile/09655973238664942686noreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-3827360145874981262012-04-19T16:26:00.002-07:002012-04-25T11:25:38.055-07:00Magnolia CMS Comunity Edition<div dir="ltr" style="text-align: left;" trbidi="on">
Site:<a href="http://www.magnolia-cms.com/magnolia-cms/evaluation/editions/community-edition.html" target="_blank"> <b>http://www.magnolia-cms.com/magnolia-cms/evaluation/editions/community-edition.html</b></a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH57aYHUCrAMM4vpyDMHDpAkGyP1UP5iowlY99ty8vnkB3URRsQlKsjdAS9e8FGpylRepqqx6fM6Z_DBUl-P0_mtduRVU3Ho10N1DpMnZ1man7sRYTOuxN1UEjaUtAHfjS95EVTjBQ0tQ/s1600/magnolia_home.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH57aYHUCrAMM4vpyDMHDpAkGyP1UP5iowlY99ty8vnkB3URRsQlKsjdAS9e8FGpylRepqqx6fM6Z_DBUl-P0_mtduRVU3Ho10N1DpMnZ1man7sRYTOuxN1UEjaUtAHfjS95EVTjBQ0tQ/s320/magnolia_home.png" width="320" /></a></div>
<br />
La pregunta latente que cae por su propio peso es que es magnolia CMS, pues es un sistema de administracion de contenidos simple y facil de usar elaborado ampliamente en Java. Actualmente dentro del mundo Java para web es uno de los mas usados por instituciones de gobierno tanto como por intituciones privadas. <span class="" id="result_box" lang="es"> <span class="hps">Magnolia</span> <span class="hps">contiene lo mejor</span> <span class="hps">de su clase en</span> <span class="hps">la tecnología Java</span> <span class="hps">basada en estándares abiertos</span> <span class="hps">para permitir</span> <span class="hps">soluciones a medida</span>. <span class="hps">De nivel empresarial</span> <span class="hps">de apoyo y</span> <span class="hps">los servicios están disponibles</span> <span class="hps">por el proveedor</span> <span class="hps">y sus socios</span> <span class="hps">en todo el mundo</span><span class="">. No solo es lo mejor del mundo Java tambien tiene esta version comunity edition la cual puede ser usada de forma gratuita por todos aquellos entusiastas del desarrollo en base a Java.</span></span><br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq49W6mYRJkRk7iQw78Uxcnb0-WUR5qQgeKmLwKkCRtJcb28Gq0MTvRmval9xLhjazok7uAQVJhp23yBbZysKmTWIiE35PITKhsS0hFNQij24SWt-JJ1KDBish60LDyRM3wVuDVBURTqM/s1600/magnolia_about.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq49W6mYRJkRk7iQw78Uxcnb0-WUR5qQgeKmLwKkCRtJcb28Gq0MTvRmval9xLhjazok7uAQVJhp23yBbZysKmTWIiE35PITKhsS0hFNQij24SWt-JJ1KDBish60LDyRM3wVuDVBURTqM/s400/magnolia_about.png" width="400" /></a></div>
<br />
<span class="" id="result_box" lang="es"><span class=""><br /></span></span><br />
<span class="" id="result_box" lang="es"><span class="hps">Magnolia</span> <span class="hps">Community Edition</span> <span class="hps">es una version de sistema libre</span>, fácil <span class="hps">de usar</span> para administracion de <span class="hps">contenido empresarial</span> <span class="hps">de gestión</span>. <span class="hps">Está disponible bajo</span> <span class="hps">una licencia Open Source</span>, la <span class="hps">versión de la GPL</span> <span class="hps">3.</span> <span class="hps">Magnolia</span> <span class="hps">Community Edition</span> <span class="hps">incluye una</span> <span class="hps">AJAX</span> <span class="hps">intuitiva</span> <span class="hps">interfaz de navegador web</span>, <span class="hps">una clara</span> <span class="hps">programación Java</span> <span class="hps">API</span> <span class="hps">y una biblioteca de</span> <span class="hps">utilidad</span> <span class="hps">etiqueta personalizada</span> <span class="hps">para facilitar</span> <span class="hps">plantillas</span> <span class="hps">en JSP</span> <span class="hps">y Servlets</span>. <span class="hps">Se</span> <span class="hps">puede utilizar cualquier</span> <span class="hps">JSR</span>-283 <span class="hps">repositorio de contenido</span> <span class="hps">compatible</span>. </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAANPRw4ePrFez3dMqPN0a73ErtjxGbGUosdo8Fxg_ND4P4hq1nlCnL9ALh4axykKSWWgK8YIa4myZnG_u3XNdjpRg-cKC7ZvlqpwzUFlMLaSJSHaVeMwP2e6XpljvJ5yANfoycPzbdos/s1600/magnolia_login.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAANPRw4ePrFez3dMqPN0a73ErtjxGbGUosdo8Fxg_ND4P4hq1nlCnL9ALh4axykKSWWgK8YIa4myZnG_u3XNdjpRg-cKC7ZvlqpwzUFlMLaSJSHaVeMwP2e6XpljvJ5yANfoycPzbdos/s400/magnolia_login.png" width="400" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGpu7HrylBd3WvikT9gP1xNHxN7q9BlTq7u4DDg8UFjxg10sbZX2sfbR41a0A6ULf-me497MrrUIK7drzird9i7FNGyei_8mVQi97WcEwpuBiH1bYfXxGGxo0F36iBn9gwgaGk0TSa52A/s1600/magnolia_admin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGpu7HrylBd3WvikT9gP1xNHxN7q9BlTq7u4DDg8UFjxg10sbZX2sfbR41a0A6ULf-me497MrrUIK7drzird9i7FNGyei_8mVQi97WcEwpuBiH1bYfXxGGxo0F36iBn9gwgaGk0TSa52A/s400/magnolia_admin.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<span class="" id="result_box" lang="es"><span class="hps"><b>Beneficios </b></span></span><br />
<h2>
<span class="cufon cufon-canvas" style="height: 17px; width: 65px;"><span class="cufon-alt"></span></span></h2>
Magnolia Community Edition provee los mejores beneficios de los sistemas de administracion de contenidos:<br />
<ul class="fckList">
<li>Facilidad de uso</li>
<li>Extensible</li>
<li>Basado en estandares</li>
<li>Escalable</li>
<li>Ampliamente testeado</li>
<li>Open Source</li>
</ul>
<div style="text-align: left;">
<b><span class="cufon cufon-canvas" style="height: 17px; width: 64px;"><span class="cufon-alt">Caracteristicas sobresalientes</span></span><span class="cufon cufon-canvas" style="height: 17px; width: 77px;"><span class="cufon-alt"></span></span></b></div>
Magnolia Community Edition provee toda la funcionalidad necesaria e acuerdo a las necesidades de subir contenidos a un sitio de manera veloz y productiva, asegurando que sea facil mantener un website.<br />
<ul class="fckList">
<li>Edicion online</li>
<li>Web-based user interface runs with any browser</li>
<li>Move, copy, re-order by drag and drop</li>
<li>URLs amigables</li>
<li>Versionamiento</li>
<li>Digital asset management</li>
<li>Role-based user management</li>
<li>Access-controlled full-text or meta-data search</li>
<li>Multilingual user interface and content</li>
<li>Time-based publishing</li>
<li>100% Java/J2EE compliance</li>
<li>Workflows</li>
<li>Clustering and load balancing</li>
<li>Sistema de cacheo de alto desempeño.</li>
</ul>
Escrito por: <a href="http://xhrist14n.co.cc/" target="_blank">Christian Portilla Pauca</a> </div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-16875941158938127912012-04-03T22:00:00.000-07:002012-04-14T16:43:35.328-07:00Frameworks web para Java<div dir="ltr" style="text-align: left;" trbidi="on">
<ul style="font-family: Georgia,"Times New Roman",serif; text-align: left;">
<li><h3 style="text-align: justify;">
<span style="font-size: large;"><a href="https://vaadin.com/home">https://vaadin.com/home</a></span></h3>
</li>
</ul>
<div style="text-align: justify;">
Vaadin es una opcion interesante basada en Google Web Toolkit, su codificacion es enteramente en java, asi que esto lo hace mas mantenible por parte de los desarrolladores, aunque su grado de configuracion representa dificultades para programadores no expertos.<br />
<br />
<a name='more'></a> </div>
<ul style="font-family: Georgia,"Times New Roman",serif; text-align: left;">
<li><h3 style="font-weight: normal; text-align: justify;">
<span style="font-size: large;"><b><a href="http://www.web4j.com/Java_Web_Application_Framework.jsp">http://www.web4j.com/Java_Web_Application_Framework.jsp</a></b></span></h3>
</li>
</ul>
<div style="text-align: justify;">
Framework simple para desarrollo basado en jsp y servlets<b> </b>es simple su uso y ofrece a los desarrolladores noveles un buen framework para los comienzos en programacion.</div>
<ul style="font-family: Georgia,"Times New Roman",serif; text-align: left;">
<li><h3 style="text-align: justify;">
<span style="font-size: large;"><a href="http://www.stripesframework.org/display/stripes/Home">http://www.stripesframework.org/display/stripes/Home</a></span></h3>
</li>
</ul>
<div style="text-align: justify;">
Un framework que ofrece integracion con multiples tecnologias actuales de Java. Ademas de todo es facil para la programacion con la menor configuracion posible.</div>
<ul style="font-family: Georgia,"Times New Roman",serif; text-align: left;">
<li><h3 style="text-align: justify;">
<span style="font-size: large;"><a href="http://www.seamframework.org/">http://www.seamframework.org/</a></span></h3>
</li>
</ul>
<div style="text-align: justify;">
Tiene multiples capacidades para actuar con RIA, ademas de obedecer a la programacion MVC que simplifica el desarrollo web en capas para un desarrollo agil y sencillo.<br />
<br />
Escrito por <a href="http://www.xhrist14n.co.cc/" target="_blank"><i><b>Christian Portilla Pauca </b></i></a></div>
<br />
<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-55234565500966713722012-03-28T19:17:00.001-07:002012-03-28T19:17:40.514-07:00Codeanywhere Trailer<iframe allowfullscreen="" frameborder="0" height="270" src="http://www.youtube.com/embed/rnkfM-koQvM?fs=1" width="480"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-82522561480501692142012-03-28T19:03:00.001-07:002012-04-14T16:44:12.992-07:00Editor Online CodeAnywhere<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-rE_1GeFtqFvr3RLct-fee0QboqFCM1kAUAH2a5Q9pt038ZlN8ph_88yqWpO9O9CY6qXUg7GsPBG1deAZUqFzF707a4-EjU64V_WFxfqcSjZMlMzSHCfkWJr5E9W1Fd75DXLEdmu4um0/s1600/codeanywhere.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="197" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-rE_1GeFtqFvr3RLct-fee0QboqFCM1kAUAH2a5Q9pt038ZlN8ph_88yqWpO9O9CY6qXUg7GsPBG1deAZUqFzF707a4-EjU64V_WFxfqcSjZMlMzSHCfkWJr5E9W1Fd75DXLEdmu4um0/s400/codeanywhere.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
Este editor lo podemos usar accediendo a la direccion web : <b><a href="http://codeanywhere.net/editor/#" id="internal-source-marker_0.8258083634036402"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;">http://codeanywhere.net/editor/#</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span></b>, el registro pra poder hacer uso del mismo es gratuito.<br />
<br />
Video de CodeAnywhere :<a href="http://www.youtube.com/watch?feature=player_embedded&v=rnkfM-koQvM"> http://www.youtube.com/watch?feature=player_embedded&v=rnkfM-koQvM</a><br />
<br />
<a name='more'></a><br />
<br />
Para poder aprovechar sus bondades podemos usarlo por medio de una cuenta de almacenamiento online como es <a href="http://dropbox.com/">DropBox.com</a>, este editor nos permite editar directamente en la cuenta de <b>dropbox </b>nuestros archivos de codigo fuente es simple y muy facil de usar, ademas de esta usabilidad tambien se puede confiurar cuentas de <b>FTP </b>para edicion de codigo directamente sobre repositorios de datos <b>FTP</b>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvNLaeaaPABTes7pArOseeLdb2NLqTbW4PHomp7zf64obh4FMriCnwJb2-yKV9omC7x4P8XU06zRFrWAjoiv7cR74htFTVVkyXCcovdIyaLjwwZw17Sv2Yjes-8EAZNeTEyhfHi3WqF6A/s1600/github_auth.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvNLaeaaPABTes7pArOseeLdb2NLqTbW4PHomp7zf64obh4FMriCnwJb2-yKV9omC7x4P8XU06zRFrWAjoiv7cR74htFTVVkyXCcovdIyaLjwwZw17Sv2Yjes-8EAZNeTEyhfHi3WqF6A/s320/github_auth.png" width="320" /></a></div>
<br />
Tambien en caso les fuese necesario hacer uso de una cuenta github pueden acceder de manera directa al repositorio de archivos GitHub, de un modo bastante sencillo, y util para edicion de codigo online ademas de poder hacer uso de este editor en cualquier tipo de navegador por tanto no solo podemos editar en una PC conectada a internet sino tambien en un dispositivo que nos permita nevegar tambien podemos hacer una edicion del codigo fuente.<br />
<br />
Escrito por <b>Christian Portilla Pauca</b> <br />
<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-58491941961064696882012-03-17T10:50:00.001-07:002012-04-14T16:44:45.860-07:00Plataformas Cloud Gratuitas<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-size: large;"><b>Servidores gratuitos con servicio de cloud para Java</b></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL7P7rNrSMX2CG-RxWmfuwx72OJUNIuNQ-sfrDI9ECKvc5M1KOB46WFFdEonM8HPLD-93rGu3Hjz9K4iJUSUfC7ZVGzuSiBNLb82UxB2-cUnXWpJaHFZ9myGi3vLKOFXYzKRVZT56Nq8M/s1600/clouds.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL7P7rNrSMX2CG-RxWmfuwx72OJUNIuNQ-sfrDI9ECKvc5M1KOB46WFFdEonM8HPLD-93rGu3Hjz9K4iJUSUfC7ZVGzuSiBNLb82UxB2-cUnXWpJaHFZ9myGi3vLKOFXYzKRVZT56Nq8M/s400/clouds.png" width="390" /></a></div>
<br />
<a name='more'></a><br /><br />
<br />
Actualmente esta de moda el uso de los servicios sobre la nube y es muy comun poner aplicaciones en la nube, especialmente en el caso de java se pudo encontrar una buena lista de servidores que brindan el servicio de hosting sobre cloud:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/w8qmN.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="http://i.imgur.com/w8qmN.png" width="640" /></a></div>
<br />
<br />
<ul style="text-align: left;">
<li><b>Open Shit</b> <a href="https://openshift.redhat.com/app/express">https://openshift.redhat.com/app/express</a></li>
</ul>
<br />
Este servicio es brindado por redhat y tiene una version express de libre uso con limitaciones.<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/PxXCd.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="http://i.imgur.com/PxXCd.png" width="640" /></a></div>
<br />
<br />
<ul style="text-align: left;">
<li><b>NewRelic<a href="http://www.blogger.com/goog_831552271"> </a></b><a href="https://rpm.newrelic.com/">https://rpm.newrelic.com/</a></li>
</ul>
<br />
Este servicio es de Newrelic nos permite deployar aplicaciones java y cuenta con un software cliente para ayudarnos en el despliegue de aplicaciones java.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/KqOWk.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="http://i.imgur.com/KqOWk.png" width="640" /></a></div>
<br />
<br />
<ul style="text-align: left;">
<li><b>CloudBees </b><a href="http://www.cloudbees.com/">http://www.cloudbees.com/</a></li>
</ul>
<br />
Este servicio nos permite usar java en nuestras aplicaciones web, es libre, y su despliegue de aplicaciones es sencillo basta con subir el archivo war de nuestra aplicacion y esta es desplegada automaticamente.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/Oxcrd.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="http://i.imgur.com/Oxcrd.png" width="640" /></a></div>
<br />
<br />
<ul style="text-align: left;">
<li><b>Jelastic</b> <a href="http://jelastic.com/">http://jelastic.com/</a></li>
</ul>
<br />
Este servicio cuenta con un sencillo administrador web, para el despliegue de aplicaciones y administracion de nuestras aplicaciones web.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/kF54g.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="http://i.imgur.com/kF54g.png" width="640" /></a></div>
<br />
<br />
<ul style="text-align: left;">
<li><b>Heroku </b><a href="http://www.heroku.com/">http://www.heroku.com/</a></li>
</ul>
<br />
Servidor de uso gratuito y pagado cuenta con un software cliente para el despliegue de aplicaciones.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/caXqL.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="http://i.imgur.com/caXqL.png" width="640" /></a></div>
<br />
<br />
<ul style="text-align: left;">
<li><b>AppEngine </b><a href="http://code.google.com/intl/en/appengine/">http://code.google.com/intl/en/appengine/</a></li>
</ul>
<br />
Este servicio de google tiene limitaciones pero brinda servicio gratuito de hosting de aplicaciones web de java, requiere configuraciones especiales y el uso de su sdk.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/rBcee.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="http://i.imgur.com/rBcee.png" width="640" /></a></div>
<br />
<br />
<ul style="text-align: left;">
<li><b>Cloudify<a href="http://www.blogger.com/goog_831552281"> </a></b><a href="http://www.gigaspaces.com/cloudify">http://www.gigaspaces.com/cloudify</a></li>
</ul>
<br />
Interesante servicio gratuito el cual cuenta con un cliente de deployment de aplicaciones.<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/l1rXn.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="http://i.imgur.com/l1rXn.png" width="640" /></a></div>
<br />
<br />
<ul style="text-align: left;">
<li><b>CloudFoundry </b><a href="https://my.cloudfoundry.com/">https://my.cloudfoundry.com/</a></li>
</ul>
<br />
Es un servicio de <b>VMWare</b> cuenta con una comunidad de usuario y permite un deployment mediante un sistema operativo virtual o por medio del uso de herramientas de deployment de <b>spring source</b> .<br />
<br />
<br />
<br />
<br />
<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-30305425294971581422012-03-14T17:13:00.001-07:002012-04-14T16:45:17.342-07:00Java y cloud sobre heroku<div dir="ltr" style="text-align: left;" trbidi="on">
La programacion en java es una servicio que actualmente no se encuentra en los servidores web de forma gratuita pero a pesar de todo esto, hay opciones gratuitas para poder hacer uso de java en web como por ejm <a href="http://heroku.com/">Heroku.com</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/vYOU5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="504" src="http://i.imgur.com/vYOU5.png" width="640" /></a></div>
<br />
La facilidad de uso de heroku es unica, para poder hacer uso de Heroku necesitamos una cuenta de heroku asimismo como el software de heroku (Heroku Belt) que puede ser descargado de la pagina de heroku.<br />
<br />
<a name='more'></a><br />
<br />
Una vez creada la cuenta immediatamente tenemos acceso a la creacion de aplicaciones por linea de comandos en nuestra aplicacion cliente. (Se usa el tipo de aplicacion cedar que es el tipo de aplicacion por defecto para el servicio de aplicaciones que corren en web sobre java).<br />
<br />
Si queremos acceder a ejemplos clasicos de aplicaciones de ejemplo y configuraciones basicas de deployment de aplicaciones java en heroku se puede visitar la pagina http://devcenter.heroku.com/articles/java y http://devcenter.heroku.com/articles/java#write_your_app, en esta pagina hay una descripcion completa de las aplicaciones de ejemplo.<br />
<br />
<b>Escrito por christian portilla pauca.</b></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3329620693336086959.post-1973900230259266372008-04-18T02:00:00.000-07:002012-04-14T16:45:40.557-07:00Netbeans 6.5<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-weight: bold;">.........................................................................................................................................................................</span><br />
<span style="font-size: 180%;"><b style="color: #990000;">.........................................................................................................................................................................</b><br />
<b style="color: #990000;">NetBeans IDE 6.5 Creando un nuevo proyecto </b></span><br />
<b style="color: #990000;">.........................................................................................................................................................................</b><br />
<br />
<span style="font-family: courier new;">Primer Paso abres el Ide NetBeans 6.5</span><br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGmTgZ5l5rOUMFsZhD-IYEL7fxrrL8PQReYpKptk-6lQnKMWefMSDctjYRSkmKbb7E4VRoBtMhZgpGyo6ILTipiq7s2Okfh-MrBeGOwQfHEJXxocfjBXd9KRSv1YTnnznTJgbdZnqHrVE/s1600-h/imagen1.GIF"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5306248322789677490" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGmTgZ5l5rOUMFsZhD-IYEL7fxrrL8PQReYpKptk-6lQnKMWefMSDctjYRSkmKbb7E4VRoBtMhZgpGyo6ILTipiq7s2Okfh-MrBeGOwQfHEJXxocfjBXd9KRSv1YTnnznTJgbdZnqHrVE/s320/imagen1.GIF" style="cursor: pointer; height: 240px; margin: 0pt 10px 10px 0pt; width: 320px;" /></a></div>
<br />
<a name='more'></a><br /><br />
<br />
<br />
Luego procedes a crear un nuevo proyecto haciendo click en el icono de nuevo proyecto<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUm5WAKJyhih1CNQPBEHxk9Jp7WtpOUHn4XCdc_y79SuOxAZKI0doGT49gZq2IfRz9bbjaba74lMVqJsrBcYb-47iKgRZYhpd9_WB7AvslXpq9-JR2lki26OpbhCaOTkhnkaxXIFJwr8o/s1600-h/imagen2.GIF"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5306249859756839554" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUm5WAKJyhih1CNQPBEHxk9Jp7WtpOUHn4XCdc_y79SuOxAZKI0doGT49gZq2IfRz9bbjaba74lMVqJsrBcYb-47iKgRZYhpd9_WB7AvslXpq9-JR2lki26OpbhCaOTkhnkaxXIFJwr8o/s320/imagen2.GIF" style="cursor: pointer; display: block; height: 240px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a><br />
<br />
<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0lgcyQu9qOmo-mZ124oDjP4IrZ0tauVCsjX6jYCkgNsX3Yqrnphihjw-bgSLjMyQreBVG08aHEgSG7gTFeSrhV_t-hY-NqHr9vxUPfRAkZxu5TVU6y48CSsdxk5AOMQp9v2sThyR0hM/s1600-h/imagen3.GIF"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5306249862998376770" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju0lgcyQu9qOmo-mZ124oDjP4IrZ0tauVCsjX6jYCkgNsX3Yqrnphihjw-bgSLjMyQreBVG08aHEgSG7gTFeSrhV_t-hY-NqHr9vxUPfRAkZxu5TVU6y48CSsdxk5AOMQp9v2sThyR0hM/s320/imagen3.GIF" style="cursor: pointer; display: block; height: 240px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a><br />
<br />
<br />
<br />
Luego escogemos el Proyecto a crear en este caso sera Aplicacion java<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge3EPyVBYkDr298IZ8QgS6tqsCrFZ3ORoxrwKc0lrCOigtKAZU01KJNjNhSynCdFfvqqbX5UoZdqozymlcU3JvklWeOKMIAa8x18v_dFTIs_08A3dVYhVi_gmPwJwuAsB9jbQKCdIrjA0/s1600-h/imagen4.GIF"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5306249863797987202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge3EPyVBYkDr298IZ8QgS6tqsCrFZ3ORoxrwKc0lrCOigtKAZU01KJNjNhSynCdFfvqqbX5UoZdqozymlcU3JvklWeOKMIAa8x18v_dFTIs_08A3dVYhVi_gmPwJwuAsB9jbQKCdIrjA0/s320/imagen4.GIF" style="cursor: pointer; display: block; height: 240px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a><br />
<br />
damos Siguiente en la ventana de Creacion de proyectos y luego le ponemos un nombre a nuestro proyecto en este caso sera JMain<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiAWuaKwKmbb8LjPi0V8MTX4TDDwasuc34hwgmNJSN2Pb0TRUYRVGXaxetFYAFCtFCGkkf5qvm9RNOyK8uxtT1-24s9xj4hg2PSNVU602urw5dP2o_GA5M_T7ll1MTtekwT3XOfGGaMAA/s1600-h/imagen5.GIF"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5306249863507900130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiAWuaKwKmbb8LjPi0V8MTX4TDDwasuc34hwgmNJSN2Pb0TRUYRVGXaxetFYAFCtFCGkkf5qvm9RNOyK8uxtT1-24s9xj4hg2PSNVU602urw5dP2o_GA5M_T7ll1MTtekwT3XOfGGaMAA/s320/imagen5.GIF" style="cursor: pointer; display: block; height: 240px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a><br />
<br />
Damos click en terminar y nos genera nuestro proyecto con una clase por defecto sobre la cual se ejecuta nuestro codigo de aplicacion.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimHk680iKdV2kPvTTlea6u5Ln4x4pgWFhCqhpKeQ93P5cw8kz5GNkI9jATldfoeX1v2V6ozDA5E8Sk5DMulZBvzM_ppC7xCmaACYbJrhmTUee9rMlZDqnWlgVhc4DDh4VD2FehEARfSIA/s1600-h/imagen6.GIF"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5306249869664420434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimHk680iKdV2kPvTTlea6u5Ln4x4pgWFhCqhpKeQ93P5cw8kz5GNkI9jATldfoeX1v2V6ozDA5E8Sk5DMulZBvzM_ppC7xCmaACYbJrhmTUee9rMlZDqnWlgVhc4DDh4VD2FehEARfSIA/s320/imagen6.GIF" style="cursor: pointer; display: block; height: 240px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a><br />
<br />
<br />
<br />
<br />
Luego escribimos el codigo necesario para explayar un mensaje de nuestro programa java..<br />
<br />
String Hello="Hello My Planet ...";<br />
System.out.println(Hello);<br />
System.exit(0);<br />
<br />
Algo asi por ejm :<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTx_TNFw6OOqLtCwkyF3m_HLx_0oV16xnQN68mfgX7EbqEQfdFTxcE-Sr9M2sglu8hHd3DN5bsOOnryafaK4-_J0WefQ1PaPO1ePfPzDbr5uCiw5OU7Sb4FCGm8ZtyXwxK25VpIPjOB4/s1600-h/imagen7.GIF"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5306253695737791986" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTx_TNFw6OOqLtCwkyF3m_HLx_0oV16xnQN68mfgX7EbqEQfdFTxcE-Sr9M2sglu8hHd3DN5bsOOnryafaK4-_J0WefQ1PaPO1ePfPzDbr5uCiw5OU7Sb4FCGm8ZtyXwxK25VpIPjOB4/s320/imagen7.GIF" style="cursor: pointer; display: block; height: 240px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a><br />
<br />
<br />
Despues podemos darle a nuestra aplicacion en ejecutar del menu del Ide Netbeans y ejecutar nuestra aplicacion standalone java.<br />
<br />
<br />
La cual nos explayara el mensaje<br />
<br />
<br />
Hello My Planet ...<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlZ9TzF3ypr6DRDc1YNMR1JxuEnEsXSq2tLyHOVEvY-eblwHnu-pjHPT031DSivgIbbzwU1F7EQpSZ_T4ZVcQpt6BaYjx1LZVY0suEf6hVnnEirALD7vrhBiC4WW8Fser-IiotUOKKWR8/s1600-h/imagen8.GIF"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5306256478808308130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlZ9TzF3ypr6DRDc1YNMR1JxuEnEsXSq2tLyHOVEvY-eblwHnu-pjHPT031DSivgIbbzwU1F7EQpSZ_T4ZVcQpt6BaYjx1LZVY0suEf6hVnnEirALD7vrhBiC4WW8Fser-IiotUOKKWR8/s320/imagen8.GIF" style="cursor: pointer; display: block; height: 240px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a><br />
<br />
Este es un buen ejemplo de una primera aplicacion en java ....<br />
<br />
<br />
<br />
<span style="font-weight: bold;">.........................................................................................................................................................................</span><br />
<span style="font-weight: bold;">Christian Portilla Pauca .....</span><br />
.........................................................................................................................................................................<br />
<br />
<span style="font-weight: bold;">Mi Sitio:</span><br />
<br />
<ul>
<li><b><span style="color: #006600;">http://www.xhrist.co.cc</span><a href="http://www.xhrist14n.co.nr/" style="color: blue;"></a></b></li>
</ul>
<span style="color: #006600; font-size: 130%; font-style: italic; font-weight: bold;"> <br />
<span style="color: #333333;">Mis blogs:</span></span><br />
<ul style="color: black; font-style: italic; font-weight: bold;">
<li><a href="http://xhrist14n.blogspot.com/">http://xhrist14n.blogspot.com/</a></li>
</ul>
<span style="font-style: italic; font-weight: bold;">Otros:</span><br />
<a href="http://www.blogger.com/goog_411313126"><br />
</a><br />
<div style="color: blue;">
<span style="font-size: small;"><b><a href="http://www.facebook.com/xhrist14n">http://www.facebook.com/xhrist14n</a></b></span></div>
<span style="font-size: small;"><a href="http://www.youtube.com/xhrist14n" style="font-style: italic; font-weight: bold;">http://www.youtube.com/xhrist14n</a></span><br />
<span style="font-size: small;"><a href="http://xhrist14n.hi5.com/" style="font-style: italic; font-weight: bold;">http://xhrist14n.hi5.com</a></span><br />
<span style="font-size: small;"><a href="http://xhrist14n.blogspot.com/" style="font-weight: bold;">http://xhrist14n.blogspot.com</a></span><br />
<span style="font-size: small;"><a href="http://www.xhrist.co.cc/" style="font-weight: bold;">http://www.xhrist.co.cc</a></span><br />
<br />
<span style="color: #006600; font-size: 130%; font-style: italic; font-weight: bold;"><span style="color: #003333;">Mis Mails:</span><br />
<span style="font-size: small;"><br />
</span><span style="color: #003333; font-size: small;">xhrist14n@gmail.com<br />
xhrist14n@aol.com<br />
</span></span><span style="color: #003333; font-size: small; font-style: italic; font-weight: bold;">xhrist14n@hotmail.com</span><span style="font-size: small;"><br />
</span><span style="color: #003333; font-size: small; font-style: italic; font-weight: bold;">xhrist14n@ymail.com</span><span style="font-size: small;"><br />
</span><span style="color: #003333; font-size: 130%; font-style: italic; font-weight: bold;"><span style="font-size: small;">khrist14n@yahoo.com</span><br />
</span><br />
.........................................................................................................................................................................<br />
.........................................................................................................................................................................</div>Unknownnoreply@blogger.com0