|
|
-
Technight en Córdoba
Día y hora: Martes 11 de Diciembre de 2007, de 18.00 a 21.00 hs.
Conoce Windows 2008
En pocos tiempo será liberado Windows 2008, el nuevo sistema operativo de servidor de Microsoft. En esta presentación veremos las nuevas características del mismo, como por ejemplo:
Virtualización Cierre limpio de servicios Windows Hardware Error Architecture Entre muchos otros...
Duración: 90 minutos. Orador: Enrique Dutra - Microsoft MVP - Punto Net Soluciones
Mejores prácticas de acceso a datos en .NET
En esta disertación se verán soluciones a problemas comunes de acceso a bases de datos relacionados con el performance, concurrencia y seguridad. La modalidad de este evento será abierta, es decir que los asistentes podrán hacer preguntas y plantear inquietudes. Se abordarán los siguientes temas:
Comparación entre Dataset, Datareader y LINQ Conversiones de datos Comparaciones entre sentencias SQL y procedimientos almacenados Optimización de Queries Cacheo de datos SQL Injection Transacciones Bloqueos y Niveles de aislamiento
Duración: 90 minutos. Orador: Ing. Marcos Mellibosky - ArSoft.
Lugar: Universidad Tecnológica Nacional (UTN) - Aula Magna Maestro M. López esq. Cruz Roja Argentina Ciudad Universitaria Cordoba, Argentina.
Para registrarse a este evento, haga click aqui.
Evento del Grupo de Usuarios de Mícrosoft en Córdoba
Día y hora: Jueves 13 de Diciembre de 2007, de 18.30 a 21.30 hs.
Presentación Web con Silverlight
Evento gratuito que cierra la Gira Nacional del MUG 2007. Organizado en conjunto con la Institución Cervantes. Silverlight es una nueva tecnología de presentación web creada por Microsoft para su ejecución en distintos navegadores y plataformas. Hace posible la creación de aplicaciones más completas, atractivas e interactivas, y se puede ejecutar en múltiples dispositivos y sistemas operativos de escritorio. Es, en escencia, una versión liviana del CLR, que permite utilizar lenguajes .Net en el lado del cliente. Además, como se verá en la presentación, se puede integrar fácilmente con Javascript y AJAX.
Lugar: Institución Cervantes Santa Rosa 1793, Barrio Alberdi, Córdoba Capital
Orador: Eugenio Serrano - Microsoft MVP - Solid Quality Mentors
Para registrarse a este evento, haga click aqui. (Por favor, ignore la pregunta sobre forma de pago. El evento es gratuito.)
Informes e Inscripción en Córdoba: Institución Cervantes, Telefónicamente: (0351) 489-0008 interno 110 ó por mail a extension@cervantes.edu.ar indicando: Empresa, Apellido y Nombre, Dirección, Teléfono, Mail y DNI.
Los asistentes al evento recibirán un CD con software instalable. Solicitamos a los asistentes llevar, de serles posible, un alimento no perecedero. Lo reunido será entregado en las distintas campañas sociales en que participa la Institución Cervantes.
|
-
Día y hora: Lunes 26 de Noviembre de 2007, 18.00 hs.
ADO.Net Entity Framework
El nuevo ADO.Net Entity Framework permite manipular datos usando un modelo de objetos. Aprenda sobre esta nueva tecnología de Microsoft que cambia la forma en que se piensa acerca de los datos. Algunos de los temas que veremos son: Introducción a los ORM Arquitectura de ADO.Net Entity Framework Modelado con Entity Framework Consulta de datos con Entity SQL Consulta de datos con Linq To Entities Entity Data Model Tools Actualizacion de datos Linq versus Entity Framework Arquitectura de las nuevas aplicaciones Duración: 180 minutos.
Oradores: Eugenio Serrano - Microsoft MVP - Solid Quality Mentors Ing. Marcos Mellibosky - ARSoft
Lugar: Universidad Tecnológica Nacional (UTN) - Aula Magna Maestro M. López esq. Cruz Roja Argentina Ciudad Universitaria Cordoba, Argentina.
Para registrarse a este evento, haga click aqui.
|
-
Continuando con el post de Martín Melchior (que asegura que Diego Torres se paece a él..), aqui traigo otra joyita si de comentarios de código hablamos. Ahora bien, como me considero una buena persona no puedo mandar al frente quien escribió eso ni donde. Solo pondré una serie de opciones (links) de donde pudo haber salido que con suerte, tiempo y dedicación alguien podrá deducir. Opciones Google.comYahoo.comGosur.comUN POST DEL BLOG DE LUCAS ONTIVEROSuerte!!!
|
-
El pasado Miercoles 20 de Diciembre se realizó el último Technight del año 2006, y a continuación las respectivas fotos (click para ampliar): El evento habia empezado. Se empezaron a poner papitas, palitos y algun desubicado ya le entró a una cerveza.. Matias Iacono estaba hablando de SQLServer CE Ahora sí.. una mezcla de Quilmes, Budweisser, Brahma.. 7up y Pepsi para los no alcoholicos. También hubo una Schneider (puaj) culpa del fanático de la misma, Martin Melchior. Algún despistado, se la tomó. Al igual que en el último Technight "hosteado" en Microsoft, aparece aquí una foto de ex compañeros de Harriague tomando unas cervezas en este caso reincide Andrés Reynoso ( Lucas Ontivero a la izq y yo a la derecha). Pablo Abian tambien estuvo, pero no aguantó 2 charlas en un mismo día (los que lo conocen saben que se duerme en las mismas). Que se viene para la temporada 2007? por ahora se sabe que Bruno Capuano mostrará en Enero robotitos manejados con tecnología Microsoft (MS Robotics). Apenas tenga el link para poder registrarse, edito este post y lo agrego. EDITADO: Aquí está el link:http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032323225&Culture=es-AR
|
-
Porqué especifico que es en Córdoba, Argentina? Porque los posts de mi blog también salen publicados en la comunidad de Geeks.ms
En el siguiente email que me imagino que cualquier desarrollador involucrado en tecnologías Microsoft ha recibido, figura uno de los 2 technights de Diciembre pero con la dirección equivocada (click para ampliar):

La dirección correcta es la siguiente (es en Raona):
Avellaneda 240 B° Alberdi Norte X5000KFB Córdoba, Argentina Telf. +54 351 4262147 +54 351 5688957 +54 11 52748319
Los oradores son Damian Galletini y Ramón Bosch. El tema del evento "Diseño y Desarrollo de Experiencias de Usuario para Windows Vista con WPF" parece muy interesante ;) y el link para registrarse es el siguiente: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032318786&Culture=es-AR
El otro Technight es el 20 de Diciembre y el tema según tengo entendido es SQL Server CE. Cuando tenga mas datos los publicaré.
Respetando la tradición de los Technights, al final habrá cerveza y papitas, palitos.. ese tipo de cosas. Intentaré que haya Fernet (branca, obvio) pero no se.. veremos...
|
-
-
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJOTU4MjMyMzI1DxYCHgRob2xhBQVtdW5kb2Rk0TeQYE/t2A4VPFBDnmXKxAU3Ndo=" />
A primera vista, el valor del Viewstate parece encriptado. Sin embargo está muy lejos de estarlo, sólo está codificado en Base64. Con el siguiente código:
byte[] bytes = Convert.FromBase64String("/wEPDwUJOTU4MjMyMzI1DxYCHgRob2xhBQVtdW5kb2Rk0TeQYE/t2A4VPFBDnmXKxAU3Ndo="); string decoded = System.Text.Encoding.ASCII.GetString(bytes); Response.Write(decoded);
Se obtiene el siguiente resultado:
? 958232325holamundodd?7?`O??
No todo es totalmente entendible, pero si en vez de "hola" o "mundo" teníamos el número de tarjeta de un cliente.. se leería fácilmente. Para securizar el Viewstate podemos utilizar un hash code y asegurarnos que nadie nos descifre (con el ejemplo de arriba) nuestro viewstate y nos lo modifique en nuestra página (utilizando tantas herramientas existentes como add-ins de IE (ej: iedevtoolbar), FF, etc). Para esto tenemos que habilitar el atributo EnableViewStateMAC en @Page o en <pages> dentro del Web.Config
Ej: <%@ Page EnableViewStateMac="true" %>
No voy a entrar en detalles de cómo ASP.NET se encarga de asegurarse que el Viewstate no fue modificado por nadie, simplemente decir que así sucede. Y si alguien lo hubiera modificado, ASP.NET no continúa con el Postback de la página sino que devuelve un error como:
The state information is invalid for this page and might be corrupted
Bien. Ahora estamos totalmente seguros? No todavía. Nuestro Viewstate esta hasheado, pero aún podría ser leído. Lo siguiente es habilitar la Encripción (de nuevo, a nivel de página o de sitio web)
<%@ Page ViewStateEncryptionMode="Always|Never|Auto" %>
Tres valores posibles para la propiedad, los cuales son: Always: siempre encripta Never: nunca encripta Auto: es algo así como un "on demand" ya que si una página requiere que el Viewstate se encripte deberemos llamar a Page.RegisterRequiresViewStateEncryption(). Si nadie lo llama, la encriptación no procede ya que significa que no fue necesaria.
Cuando se produce el hashing o el encriptado, ASP.NET utiliza la información de clave y algoritmo de encriptación especificado en <machineKey> del Web.Config al que tendremos que agregarlo nosotros o del Machine.Config donde ya viene configurado por defecto. Para más información del <machineKey> y su configuración entrar aquí.
A tener en cuenta, la encripción tiene un pequeño impacto en la performance ya que ASP.NET se encarga de encriptar y desencriptar el Viewstate.
Espero que haya quedado claro y sepamos que a veces agregarle seguridad a nuestras aplicaciones web es cosa de segundos.
|
-
-
Hace poco leí en el blog de Scott Guthrie que ASP.NET AJAX iba a pasar por Beta, RC y RTM. Hoy salió la version 1.0 BETA, y se puede descargar de aquí. También, hay controles que en esta release quedaron fuera del "Core" como el UpdateProgress, pero que se pueden agregar bajando ASP.NET AJAX CTP Beta que viene a ser algo así como un add-on de ASP.NET AJAX. Dicen que en la próxima release UpdateProgress será parte del Core.
Si alguien venía trabajando con la versión anterior (CTP de Julio) han hecho una Guia de Migración donde se explica como modificar el Web.Config, los cambios en el ScriptManager/Proxy, UpdatePanel y otros controles donde algunos han cambiado de nombre, otros de propiedades, etc. Para conocer los cambios con mucho detalle tambien han hecho un whitepaper documentando los cambios de ATLAS July CTP a ASP.NET AJAX 1.0 beta.
También se actualizó el AJAX Control Toolkit para que funcione con ASP.NET AJAX 1.0 beta, incluyendo 3 nuevos controles: DropDown MutuallyExclusiveCheckbox ValidatorCallout
Aprovecho este post para saludar a la comunidad de Geeks.ms, a la cual he sido invitado y mis posts saldrán tanto en http://www.carloszanini.com.ar como en http://geeks.ms/blogs/carloszanini (cross-posting :) ) Geeks.ms es una comunidad que he visto crecer muy rápidamente estos ultimos meses y es promovida por MVPs, MCTs y personas influyentes de la comunidad sobre tecnología Microsoft.
Saludos desde Córdoba, Argentina.
|
-
-
SEMINARIO GRATUITO EN CORDOBA: “Microsoft AJAX Library y ASP.NET 2.0 AJAX Extensions”
Fecha y hora: Miércoles 11 de Octubre, de 18:30 a 21:30 Hs Lugar: Instituto Cervantes - Santa Rosa 1793 - Barrio Alberdi - Córdoba Capital
Orador: Carlos Zanini, Senior Engineer de Raona. MCTS.
Detalle de contenidos: Microsoft le ha dado el nombre definitivo a su framework AJAX anteriormente conocido como ATLAS. Se trata de Microsoft AJAX Library y de ASP.NET 2.0 AJAX Extensions. En la conferencia se verá la simplicidad de uso del framework, su configuración, y las posibilidades que brinda al desarrollador de evolucionar a la siguiente generación de aplicaciones web, mejorando de esta manera la experiencia del usuario. La presentación está orientada a desarrolladores con conocimientos en ASP.NET que quieran mejorar sus aplicaciones implementando el nuevo framework AJAX de Microsoft. Primero veremos una introducción a la tecnología, sus características más importantes para luego pasar de lleno a ejemplos de su aplicación en distintos escenarios.
Info para registrarse en el evento, aquí. (ignorar lo de forma de pago, ya que es GRATUITO)
Otros eventos del MUG

|
-
Bueno primero que nada, Microsoft le cambió el nombre. ATLAS era el "codename" tal como Whidbey fue para Visual Studio 2005, AVALON para WPF, INDIGO para WCF, entre otros. En este caso quedó así (mas info aquí):
Microsoft AJAX Library será el nombre final para la parte client-side javascript y según dicen en la versión 1.0 se ejecutará correctamente en IE, Firefox, Safari y con suerte en Opera. ASP.NET 2.0 AJAX Extensions será el nombre (no se quedaron cortos?) para la parte del servidor que se integrará porsupuesto a ASP.NET 2.0 ASP.NET 2.0 AJAX Control Toolkit será el nombre de una importante cantidad de controles que se pueden descargar aquí y de los cuales se puede bajar tambien el código fuente. (de ATLAS no había código fuente pero siempre existe la opción de utilizar Reflector)
Para los que ya estamos desarrollando con ATLAS y al ser éste el nombre viejo sufriremos el cambio de tags de <atlas:> a <asp:>, pero una buena noticia es que los scripts que se bajarán automáticamente al cliente pesaran alrededor de 6k contra los 230k actuales, eso si, con debug=true en el Web.Config lo que provoca que no estén optimizados.
La versión 1.0 de todo esto saldrá despues de la versión 3.0 del Framework .NET (es decir la que viene con WPF,WCF,WF y WCS).
Otra cosa interesante es que Nikhil Kothari escribió una implementación del "Back button" del browser que puede ser utilizada en los UpdatePanels de ATLAS. Esto hacía mucha falta debido a que cualquier usuario de internet está acostumbrado a navegar con el Back y Forward button.
Por último, en Octubre habrá una charla en Córdoba sobre ASP.NET 2.0 y ATLAS. En cuanto tenga fecha y hora lo publicaré.
PD: Las siglas de Microsoft AJAX Library me suenan MAL.... uhh terrible chiste
|
-
Una de las cosas mas importantes que particularmente valoro de otros desarrolladores es que sepan utilizar una de las mejores herramientas existentes: Google. Cuando digo "sepan utilizar" es que realmente sepan encontrar resultados productivos en la primer página devuelta. Dando vuelta por distintos foros de discusión o listas de correo se encuentra una gran cantidad de gente que hace preguntas que se reponden con una sencilla búsqueda en google.
No sólo me refiero a buscar cuando se nos presenta un error o Exception, sino también cuando estamos haciendo algo rutinario, como escribir código para enviar un email desde ASP.NET. Quizás ya lo hemos hecho antes (o sólo lo leimos) y recordamos que existe una clase MailMessage, pero, vamos a ponernos a probar si el intellisense de Visual Studio 2005 nos ayuda? naa google de una.. ingresamos la siguiente búsqueda y listo: send email .net 2.0 c# (ejemplo)
O quizás antes teníamos código fuente de envío de email y ahora sólo necesitamos hacer lo mismo pero agregando un attach.. bueno es casi seguro que MailMessage tenga algún método o propiedad para manejar los attachs, de nuevo que hacemos probamos a ver si nos sale (en este ejemplo tonto puede convenir hacer esto, pero supongamos que necesitábamos algo un poco mas avanzado) o le damos a la siguiente búsqueda?: send email attach .net 2.0 c# (ejemplo)
Noten que en mis búsquedas siempre aclaro la versión del framework del código que estoy buscando (.net 2.0) y también el lenguaje (c#) simplemente porque no quiero leer nada de vb.net. Por ejemplo, si la búsqueda era: send email .net 2.0 (ejemplo) es decir sin especificar el lenguaje el primer resultado era código vb.net y si además dejo de especificar el "2.0" (ejemplo) el primer resultado es la página de 4guysfromrolla hablándome de cómo enviar un mail desde ASP.NET 1.x Aclaro que mis búsquedas siempre son utilizando google.com y no google.com.ar, el cual puede variar los resultados ya que tiene preferencia por contenido en español.
Consejos para ser un developer google-enabled: * Las busquedas siempre deberían ser hechas con palabras en inglés Hay mucha más información en la web en este idioma. Nunca se deberían mezclar palabras en distintos idiomas, sino vean la diferencia en calidad de información de ésta búsqueda: threading .net como funciona (ejemplo) con la siguiente: threading .net how it works (ejemplo) * Si siguen el consejo 1, entonces el software que instalemos en nuestra PC deberá estar completamente en inglés (nuestro SO también!!) Porque sino, tenemos doble trabajo por ejemplo al encontrar una excepción ya que la tendremos que traducir al inglés para despues buscarla. Sino, miren la diferencia de buscar: "System.InvalidOperationException: Error al generar el documento XML" (ejemplo, aprox. 4 resultados) versus: "System.InvalidOperationException: There was an error generating the XML document" (ejemplo, aprox. 150 resultados) * Aprender las wilcards de google (muchas son genéricas entre buscadores): las "", el signo +, el signo - son bastante conocidos pero si estamos necesitando una PPT de Biztalk 2006 porque queremos dar una capacitación interna y no tenemos ganas de hacer slide por slide nosotros mismos? en google se puede utilizar el filetype: de la siguiente manera: filetype:ppt "Team Foundation Server" (ejemplo) Un buen libro para aprender mucho de wildcards y mejorar nuestras búsquedas es Google Hacks (third edition)
En qué nos ayuda todo esto? principalmente en que ganamos mucho tiempo lo cual representa una mejora de nuestra productividad, por otro lado en el mismo tiempo en que podemos probar si nos "sale" algo podríamos estar copiando código y aprendiendo algo del mismo.
Como dice Jeff Atwood en un post: "Never design what you can steal" ó también: "good programmers write good code; great programmers steal great code" que es de donde saqué el titulo a este post :)
Por último: debe IMPERAR el sentido común. No se trata de copiar lo primero que encontremos y pensar que está bien sólo porque estaba en la Web. Hace pocos días en una lista de correo alguien pregunto como podía desde .NET obtener el nombre de una PC a partir de una dirección IP. Otra persona le respondió con un proyecto WinForms que contenía el siguiente código fuente:
private string GetComputerName(string strIP) { SqlConnection cn = new SqlConnection("Data Source=localhost;Integrated Security=True"); SqlDataAdapter da = new SqlDataAdapter(string.Format("xp_cmdshell 'ping -a {0}'", strIP), cn); DataSet ds = new DataSet(); da.Fill(ds); cn.Close(); return ds.Tables[0].Rows[1][0].ToString().Split(' ')[1].ToString(); }
Ideal para The Daily WTF :)
|
-
Un shell extension de Windows Explorer que últimamente utilizo mucho cuando quiero probar rápidamente un sitio ASP.NET 2.0 sin necesidad de utilizar el IIS es el que hizo Robert McLaws.
Cómo funciona? .NET en la version 2.0 trae un Web Server embebido (una evolución del cassini web server) y el siguiente shell extension invoca a ese web server enviándole como parámetro la carpeta donde estamos parados. Además queda hard-coded el número de puerto (en el ejemplo el 8080, pero podemos ponerle el que querramos).
De esta manera una vez ejecutado, abrimos un browser y ponemos http://localhost:8080/ y voilá.. navegamos por el sitio.
Para agregar este shell extension, copiar y pegar lo siguiente en un archivo con extension .reg:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\VS2005 WebServer] @="ASP.NET 2.0 Web Server Here"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\VS2005 WebServer\command] @="C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\Webdev.WebServer.exe /port:8080 /path:\"%1\""
O pueden bajárselo de >> aquí <<.
|
-
Bueno, hoy me llegó el email (al igual que a otros 299 en latinoamérica) avisando que soy acreedor de un Voucher para rendir un exámen de certificación de Microsoft. Se puede utilizar para rendir cualquiera de los exámenes de la nueva generación. Ahora.. a estudiar.
|
|
|