Libro: “C#. Manual de referencia”
No es el primer libro que leo de este autor puesto que ha escrito para una infinidad de lenguajes de programación distintos y, en general, tengo muy buena opinión de todos ellos. Los datos específicos de este libro son los siguientes:
- Título: C#. Manual de referencia.
- Autor: Herbert Schildt.
- ISBN: 0-07-213485-2
- Editorial: McGraw Hill.
El libro está destinado a todos los niveles ya que abarca desde los temas introductorios más elementales hasta algunos más avanzados como la programación multiproceso y la programación de red. Los contenidos teóricos se ajustan, por tanto, a todos los niveles y la traducción que se ha realizado me parece bastante correcta. Por poner alguna pega, se podrían haber tratado varios temas que no aparecen, como pueden ser: interoperatividad con otros lenguajes (Common Language Specification, CLS), sistema de tipos común (Common Type System, CTS) y los metadatos.
Los contenidos prácticos son bastante correctos y adecuados para los conceptos que se están estudiando en cada momento. Además dispone de varios ejemplos avanzados más extensos.
En general, se trata de un libro de bastante calidad recomendable tanto para quienes desean introducirse en este lenguaje, como para aquellos que quieran tener a mano una buena referencia del lenguaje.
Jolt Awards
Hace unos días se entregaron los premios Jolt Awards que vienen a ser para los informáticos algo así como los oscars para los actores. Básicamente se supone que los ganadores son los productos de software, libros y sitios de internet que cualquier desarrollador debería estar usando actualmente.
Esta es la lista de ganadores:
1. Books General
Jolt Winner:
Agile Software Development by Alistair Cockburn (Addison-Wesley Professional)
Productivity Winners:
Catastrophe Disentanglement by E. M. Bennatan (Addison-Wesley Professional)
Practices of an Agile Developer by V. Subramaniam and A. Hunt (Pragmatic Bookshelf)
Software Estimation Demystifying the Black Art by Steve McConnell (Microsoft Press)2. Books Technical
Jolt Winner:
Head First Object-Oriented Analysis & Design by B. McLaughlin, G. Pollice, and D. West (O’Reilly Media)
Productivity Winners:
Code Quality by Diomidis Spinellis (Addison-Wesley Professional)
Refactoring Databases by Scott W. Ambler and P. J. Sadalage (Addison-Wesley Professional)
CSS: The Missing Manual by David Sawyer McFarland (O’Reilly Media)3. Change and Configuration Management
Jolt Winner:
AccuRev 4.5 with AccuWorkflow (AccuRev)
Productivity Winners:
AnthillPro3 (Urbancode)
Perforce SCM (Perforce)
Team Foundation Server (Microsoft)4. Collaboration Tools
Jolt Winner:
Confluence (Atlassian Software Systems)
Productivity Winners:
Adobe Acrobat Connect Professional (Adobe Systems)
NetBeans IDE (Sun Microsystems)
TeamCity (JetBrains)5. Database Engines and Data Tools
Jolt Winner:
Visual Studio 2005 Team Edition for Database Professionals (Microsoft)
Productivity Winners:
Coral8 Engine (Coral8)
Dbdeploy (ThoughtWorks)
SQL Refactor (Red Gate Software)6. Design and Modeling Tools
Jolt Winner:
stpBA Storyboarding (stpsoft)
Productivity Winners:
Corticon Business Rules Modeling Studio (Corticon)
MagicDraw UML (No Magic)
Stylus Studio 2007 XML Enterprise Suite (DataDirect Technologies)7. Development Environments
Jolt Winner:
NetBeans IDE (Sun Microsystems)
Productivity Winners:
IntelliJ IDEA (JetBrains)
IronPython (Microsoft)
Wolfram Workbench (Wolfram Research)8. Enterprise Tools
Jolt Winner:
Cape Clear ESB Platform (Cape Clear Software)
Productivity Winners:
Liferay Portal (Liferay
Appistry EAF (Appistry)
Pentaho Open BI Suite (Pentaho)9. Libraries, Frameworks and Components
Jolt Winner:
NetAdvantage for .NET (Infragistics)
Productivity Winners:
JViews (ILOG)
.NET Framework 3.0 (Microsoft)
Intel Threading Building Blocks (Intel)10. Mobile Development Tools
Jolt Winner:
Carbide .c++ Professional Edition (Nokia)
Productivity Winners:
Crossfire (AppForge)
NetBeans Mobility Pack and Sun Java Wireless Tookit (Sun Microsystems)
Qtopia (Trolltech)11. Project Management
Jolt Winner:
Rally Enterprise (Rally Software)
Productivity Winners:
6th Sense Analytics (6th Sense Analytics)
Teamwork (Open Lab)
V1: Agile Enterprise (VersionOne)12. Security
Jolt Winner:
AppScan (Watchfire)
Productivity Winners:
DevInspect (SPI Dynamics)
Fortify Source Code Analysis (Fortify)
Metasploit Framework (Metasploit)13. Testing
Jolt Winner:
AgitarOne (Agitar Software)
Productivity Winners:
Mindreef SOAPscope (Mindreef)
Parasoft SOAtest (Parasoft)
TestComplete (AutomatedQA)14. Bug and Defect Tracking
Jolt Winner:
TestTrack Studio (Seapine Software)
Productivity Winners:
JIRA (Atlassian Software Systems)
OnTime 2007 (Axosoft)
Software Planner Professional (Pragmatic Software)15. Utilities
Jolt Winner:
VMware Lab Manager (VMware)
Productivity Winners:
Adobe Captivate 2 (Adobe)
ElectricCommander (Electric Cloud)
Textmate (MacroMates)16. Web Development
Jolt Winner:
Adobe Flex 2 (Adobe Systems)
Productivity Winners:
IntelliJ IDEA (JetBrains)
Mindreef SOAPscope Server (Mindreef)
NetBeans Visual Web Pack 5.5 (Sun Microsystems)17. Websites and Developer Networks
Jolt Winner:
Sun Developer Network (Sun Microsystems)
Productivity Winners:
CM Crossroads (CMC Media)
Koders.com (Koders)
Krugle (Krugle)HALL OF FAME
IBM developerWorks (IBM)
Saquen sus propias conclusiones. Personalmente me gusta que se reconozca el trabajo de Sun Microsystems con los premios a NetBeans IDE en la categoría de entornos de desarrollo y a Sun Developer Network en la categoría de sitios de internet para desarrolladores.
Libro: “Cómo dominar C# desde el principio”
Hace algún tiempo llegó a mis manos un ejemplar de este libro. En este post os cuento mis impresiones acerca de esta obra. Los datos específicos del libro son:
- Título: Cómo dominar C# desde el principio.
- Autor: Eric Gunnerson.
- ISBN: 1-893115-62-3.
- Editorial: Inforbooks S. L.
Según la contraportada, el nivel del libro es “Intermedio – avanzado”. Bajo mi punto de vista, este es el primer error que comete la editorial, puesto que el nivel es muy básico en la primera mitad del libro. Ni mucho menos estamos ante un libro que llegue al nivel avanzado, sino que como mucho podría tratarse de un nivel medio. Basta decir que el primer capítulo se titula ¿Qué es un objeto?. Ignoro los motivos de la elección de este nivel, pero para mí es claramente erróneo.
Respecto a los contenidos teóricos, puedo decir que los considero adecuados para desarrolladores que desconozcan el lenguaje. Cubre todos los aspectos introductorios necesarios para adentrarse en un nuevo lenguaje. Sin embargo, la traducción la considero muy deficiente. Por poner un ejemplo, a las instrucciones de control o condicionales, las llama sentencias de selección.
Los contenidos prácticos son, a mi juicio, bastante pobres. Cubren lo justo para el concepto teórico que se está estudiando sin profundizar más. Únicamente dispone de un ejemplo de cierta envergadura en sus casi quinientas cincuenta páginas.
Por último, comentar que hay ciertos aspectos que creo que cualquier libro sobre C# y el entorno .NET debería tratar, y que en esta obra no se han cuidado demasiado. Windows Forms no recibe el tratamiento que se merece como principal librería de diseño de interfaces en este lenguaje, apenas toca el tema de los ensamblados y le falta tratar el CTS (sistema de tipos común). Tampoco me gusta el tratamiento que hace del tema de las colecciones y no habla para nada de los metadatos.
Con todo lo expuesto hasta aquí, solo queda concluir que la calificación global del libro es bastante pobre y que merece la pena invertir algún dinero más y obtener una obra de mayor calidad. Próximamente os hablaré de otro libro que tengo de C# y del que sí tengo mejor opinión.
Menú circular en CSS
En este enlace el autor muestra cómo crear un menú circular usando única y exclusivamente CSS. Me parece un menú con una apariencia que se sale de lo habitual y que puede proporcionar buenos resultados en algunas páginas. Sin duda, otro interesante recurso para anotar en la sección de CSS.
Tutorial Ajax
Harry Maugans nos vuelve a obsequiar con un tutorial, en este caso de Ajax. En él explica cómo añadir funcionalidad AJAX a un sitio web en tres sencillos pasos. El ejemplo concreto con el que ilustra esta pequeña introducción es una calculadora muy simple que realiza operaciones de suma, resta, multiplicación y división.
El tutorial nos ilustra en la creación de la inteligencia, la creación del formulario para la interacción con el usuario y la conexión del motor (o inteligencia) con el frontend (o interfaz de usuario). Es un buen punto de partida para desarrolladores que estén empezando a utilizar esta tecnología. Esperemos que H. Maugans siga deleitándonos con sus buenos tutoriales ya que constituyen una forma fácil de introducirnos en las tecnologías que tratan.
Comunidad Java Studio Creator
Existe una comunidad de Java Studio Creator en la que se puede encontrar gran cantidad de recursos para este entorno. Entre otros recursos, nos encontramos con tutoriales, artículos y ejemplos de código. Además, los desarrolladores pueden realizar sus propias aportaciones. Los usuarios de este entorno están de suerte.
10 razones para usar Ajax
En tufuncion.com nos dan diez razones para usar Ajax. Puesto que es inmensa la proyección que está tomando esta tecnología, os dejo aquí un pequeño resumen de estos diez motivos:
- Ajax está basado en estándares abiertos (Javascript, HTML, XML, CSS, etc.).
- Al no tener la necesidad de recargar la página entera se gana en usabilidad.
- Es válido en cualquier plataforma y navegador.
- Ajax beneficia a las aplicaciones web ayudándolas a mejorar y conseguir un mejor resultado de cara al usuario final.
- Normalmente los desarrolladores conocen algunas, sino todas, las tecnologías que usa Ajax.
- Su uso es compatible con el de Flash.
- El uso de Ajax por parte de Google, Yahoo, Amazon o Microsoft, por ejemplo, es la prueba de la fortaleza de Ajax.
- Ajax es parte muy activa del movimiento Web 2.0.
- Es independiente del tipo de tecnología servidor que se utilice.
- Mejora la estética de la web, ya que las interfaces desarrolladas con Ajax se asemejan en muchos casos a las aplicaciones de escritorio.
Muere John W. Backus, creador de Fortran
John W. Backus fue la persona que formó y lideró el equipo de IBM que desarrolló Fortran, el primer lenguaje de programación usado de forma amplia, y el que ayudó a abrir las puertas hacia la informática como hoy día se la conoce. Murió el sábado pasado en su casa a los 82 años. Descanse En Paz.
Doble pulsación de Tab en Visual Studio
Una característica, creo que hasta ahora poco conocida de Visual Studio, cuando se programa en C#, es la “ayuda” con el código al pulsar dos veces la tecla Tab. Basta con escribir una palabra reservada del lenguaje (como un for, por ejemplo) y pulsar dos veces la mencionada tecla, y Visual Studio se encarga de rellenar el “esqueleto” del bucle.
Estos son algunos ejemplos:
- Escribir
ify pulsar dos veces la tecla Tab: el resultado es:
if (true)
{
} - Escribir
switchy pulsar dos veces la tecla Tab: el entorno escribe lo siguiente:
switch (switch_on)
{
default:
} - Escribir
fory pulsar dos veces la tecla Tab: el resultado sería:
for (int j = 0; j < length; j++)
{
} - Escribir
whiley pulsar dos veces la tecla Tab: aparece lo siguiente:
while (true)
{
} - Escribir
doy pulsar dos veces la tecla Tab:
do
{
} while (true);
Posiblemente existan más aplicaciones de esta “técnica” dentro de Visual Studio, pero yo os dejo aquí las que conozco y uso habitualmente. Si alguien tiene alguna más que aportar, a los comentarios por favor.
¿Para qué es bueno XML?
Hace unos días estuve leyendo el artículo What’s XML really good for? (en inglés) y me pareció bastante interesante, por lo que me he decidido a escribir aquí algunas reseñas con lo que me pareció más importante.
Por supuesto, este artículo no pretende ser una guía que marque el uso del XML, puesto que cada desarrollador podrá tener su propia opinión acerca de dónde y cuándo ha de usarse esta tecnología. No obstante, el autor comenta lo siguiente acerca de XML:
Uso de XML para los datos de configuración. Habitualmente, los programadores utilizamos ficheros de configuración propietarios, o ficheros que almacenan pares de nombres/valores, o cualquier otra disposición que se nos ocurra. XML puede sustituir a todas estas técnicas distintas para almacenar datos de configuración.
El principal problema que se plantea con esto es que normalmente el uso de un XML necesitará un mayor espacio de almacenamiento. Por ejemplo, almacenar el nombre y apellidos de una persona, en un fichero de pares nombre/valor, sería:
Nombre=Jose
Apellido1=Martínez
Apellido2=Pérez
En el caso de usar XML, tendríamos lo siguiente:
<xml version="1.0"?>
<configuracion>
<Nombre>Jose</Nombre>
<Apellido1>Martínez</Apellido1>
<Apellido2>Pérez</Apellido2>
</configuracion>
Además de este aumento de espacio, el uso de XML también hace necesario el empleo de algún método para el manejo de la información, que en el caso de los ficheros de configuración habituales es mucho más simple. Pero entonces, ¿qué parte positiva tiene el uso de XML? Pues básicamente la flexibilidad que ofrece y la posibilidad de ofrecer el mismo formato de configuración fácilmente reutilizable en cualquier aplicación que se desarrolle.
Uso de XML para la transferencia de datos. En algunas aplicaciones se está usando el lenguaje XML como medio de comunicación. Incluso, dentro de una misma aplicación se puede usar XML para el envío de información. Sin embargo, el problema que plantea este uso es el mismo que el comentado en el apartado anterior, es decir, la sobrecarga que se introduce al usar XML. Para el autor, sería mejor el uso de datos serializados o incluso los mismos objetos del lenguaje de programación con el que se está trabajando.
En el caso de envío de información entre aplicaciones distintas, se sigue teniendo el problema de la sobrecarga, pero sin embargo la flexibilidad que ofrece este método puede bien merecer la pena. El uso de XML en este caso hace posible la despreocupación acerca de la forma en que se envían los datos. Una aplicación envía un XML, la otra lo recibe, y a partir de ahí puede manejar los datos de dicho XML como necesite, sin ninguna complicación más.
Personalmente, en el lugar donde trabajo hace algún tiempo comenzamos a utilizar XML en diversas partes de nuestro desarrollo. En general, comparto todo lo comentado por este autor en el artículo. Sin embargo, yo voy un paso más allá para comentar que, en algunos casos puntuales, el uso de XML puede introducir una sobrecarga en el rendimiento que puede llegar a convertirse en un serio problema. En nuestro caso, el procesamiento de un número elevado de documentos XML ralentizaba la aplicación y tuvimos que retocar varias cosas hasta que conseguimos que el asunto hilara fino. Pero en definitiva, creo que las ventajas que ofrece XML son superiores a los posibles problemas con los que te puedes encontrar.
