<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>net-framework-35 &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/net-framework-35/</link>
	<description>Feed of posts on WordPress.com tagged "net-framework-35"</description>
	<pubDate>Sat, 05 Dec 2009 22:45:24 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[.NET Framework 3.5 Chart Controls: Como consumir los datos de un cubo de Analysis Services!]]></title>
<link>http://jcgonzalezmartin.wordpress.com/2009/09/23/net-framework-3-5-chart-controls-como-consumir-los-datos-de-un-cubo-de-analysis-services/</link>
<pubDate>Wed, 23 Sep 2009 21:38:09 +0000</pubDate>
<dc:creator>Juan Carlos González Martín</dc:creator>
<guid>http://jcgonzalezmartin.wordpress.com/2009/09/23/net-framework-3-5-chart-controls-como-consumir-los-datos-de-un-cubo-de-analysis-services/</guid>
<description><![CDATA[Hace unos meses que tenía pendiente escribir este post sobre como consumir los datos de un cubo de S]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p align="justify">Hace unos meses que tenía pendiente escribir este post sobre como consumir los datos de un cubo de SQL Server Analysis Services (SSAS) dentro de los <a href="http://geeks.ms/blogs/ciin/archive/2008/11/04/liberados-los-microsoft-chart-controls-para-net-framework-3-5.aspx">.NET Framework 3.5 Chart Controls</a>. La verdad es que el tema tiene sus truquillos, aunque por suerte y gracias a alguna ayudita de <a href="http://www.cic-sl.es/">los chic@s de CIC</a>, conseguí hacer una pequeña prueba de como mostrar datos de un cubo de SSAS en un control de tipo gráfico de los Chart Controls…y <a href="http://geeks.ms/blogs/ciin/archive/2009/05/28/wss-3-0-amp-moss-uso-de-los-net-3-5-chart-controls-en-sharepoint.aspx">de aquí a llevarlo a SharePoint coser y cantar <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</a> Básicamente los pasos a seguir de forma resumida son los siguientes:</p>
<ul>
<li>
<div align="justify">En primer lugar, añadir a nuestra capa de presentación un control de tipo Chart. En mi caso, cogí un proyecto de tipo Web.</div>
</li>
<li>
<div align="justify">Añadir a nuestro proyecto una referencia a Microsoft.AnalysisServices.AdmdClient para poder conectaros al cubo y devolver los datos necesarios.</div>
</li>
</ul>
<p align="center"><a href="http://jcgonzalezmartin.files.wordpress.com/2009/09/image27.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://jcgonzalezmartin.files.wordpress.com/2009/09/image_thumb27.png?w=244&#038;h=146" width="244" height="146" /></a> </p>
<ul>
<li>
<div align="justify">En la vista de código de nuestra página ASP.NET añadir las referencias necesarias para configurar por un lado el chart control y acceder por otro al cubo de SSAS.</div>
</li>
</ul>
<table style="border-bottom:medium none;border-left:medium none;border-collapse:collapse;border-top:medium none;border-right:medium none;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border-bottom:black 1pt solid;border-left:black 1pt solid;width:432.2pt;background:#d9d9d9;border-top:black 1pt solid;border-right:black 1pt solid;padding:0 5.4pt;" valign="top" width="576">
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpFirst"><span style="font-size:8pt;" lang="EN-US">using System.Data; </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US">using Microsoft.AnalysisServices.AdomdClient; </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US">using System.Web.UI.DataVisualization; </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US">using System.Web.UI.DataVisualization.Charting; </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpLast"><span style="font-size:8pt;">using System.Drawing; </span>
</p>
</p>
</td>
</tr>
</tbody>
</table>
<ul>
<li>
<div align="justify">Configurar de forma adecuada los distintos parámetros del cubo como escala, tipo de gráfico, etiquetas de los ejes, etc. Como esta parte es un tanto pesada, no os replico el código.</div>
</li>
<li>
<div align="justify">Probar la consulta al cubo SSAS dentro del SQL Server Management Studio para asegurarnos de que los datos que devuelve son los que esperamos. </div>
</li>
</ul>
<p align="center"><a href="http://jcgonzalezmartin.files.wordpress.com/2009/09/image28.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://jcgonzalezmartin.files.wordpress.com/2009/09/image_thumb28.png?w=244&#038;h=155" width="244" height="155" /></a> </p>
<ul>
<li>
<div align="justify">En mi caso, la consulta es:</div>
</li>
</ul>
<table style="border-bottom:medium none;border-left:medium none;border-collapse:collapse;border-top:medium none;border-right:medium none;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border-bottom:black 1pt solid;border-left:black 1pt solid;width:432.2pt;background:#d9d9d9;border-top:black 1pt solid;border-right:black 1pt solid;padding:0 5.4pt;" valign="top" width="576">
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpFirst"><span style="font-size:8pt;" lang="EN-US">SELECT NON EMPTY { [Measures].[Internet Sales Amount] } </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US">ON COLUMNS, NON EMPTY { ([Customer].[Country].[Country].ALLMEMBERS * </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>[Customer].[State-Province].[State-Province].ALLMEMBERS * </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160; </span>[Customer].[City].[City].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160; </span>MEMBER_UNIQUE_NAME ON ROWS FROM [Adventure Works] CELL PROPERTIES VALUE, </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160; </span>BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpLast"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160; </span>FONT_SIZE, FONT_FLAGS</span><span style="font-size:8pt;"> </span>
</p>
</p>
</td>
</tr>
</tbody>
</table>
<ul>
<li>
<div align="justify">Replicar la consulta anterior en un método de la página ASP.NET. En este caso el método tendría que contener al menos el siguiente código:</div>
</li>
</ul>
<table style="border-bottom:medium none;border-left:medium none;border-collapse:collapse;border-top:medium none;border-right:medium none;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border-bottom:black 1pt solid;border-left:black 1pt solid;width:432.2pt;background:#d9d9d9;border-top:black 1pt solid;border-right:black 1pt solid;padding:0 5.4pt;" valign="top" width="576">
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpFirst"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>CadenaConsulta = </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#34;SELECT NON EMPTY { [Measures].[Internet Sales Amount] }&#34;+ </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160; </span>&#34; ON COLUMNS, NON EMPTY { ([Customer].[Country].[Country].ALLMEMBERS *&#34; + </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#34; [Customer].[State-Province].[State-Province].ALLMEMBERS *&#34; + </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#34; [Customer].[City].[City].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION,&#34; + </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#34; MEMBER_UNIQUE_NAME ON ROWS FROM [Adventure Works] CELL PROPERTIES VALUE, BACK_COLOR,&#34; + </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#34; FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS&#34;; </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>CadenaConexion = </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#34;Provider=MSOLAP.4;Data Source=SHAREPOINT-SSRS;Integrated Security=SSPI;&#34; + </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>&#34;Data Source=SHAREPOINT-SSRS;Initial Catalog=Adventure Works DW&#34;; </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"></span>
<p>&#160;</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;">//Nos creamos un objeto de tipo CellSet para guardar los resultados de la consulta: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>CellSet CS_Auxiliar;<span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"></span>
<p>&#160;</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//Establecemos la conexión: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;" lang="EN-US">AdomdConnection ADOM_Conexion = </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>new AdomdConnection(); </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;">ADOM_Conexion = </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>this.Establecer_Conexion(); </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//nos creamos un objeto de tipo ADOMDCommand: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;" lang="EN-US">AdomdCommand ADOM_Control = </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>new AdomdCommand(); </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ADOM_Control = </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>new AdomdCommand(CadenaConsulta, ADOM_Conexion); </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"></span>
<p>&#160;</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;">// Con el método ExecuteCellSet ejecutaremos la consulta que tenemos en ADOMDConsulta. </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// Los resultados se guardarán en un objeto de tipo CellSet: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;" lang="EN-US">CS_Auxiliar = </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ADOM_Control.ExecuteCellSet(); </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"></span>
<p>&#160;</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;">// Cerramos la conexión: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>this.Cerrar_Conexion(ADOM_Conexion); </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"></span>
<p>&#160;</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// Retornamos el objeto CS_Consulta: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpLast"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;" lang="EN-US">return CS_Auxiliar;</span><span style="font-size:8pt;"> </span>
</p>
</p>
</td>
</tr>
</tbody>
</table>
<ul>
<li>
<div align="justify">Cómo se puede observar en el código anterior, simplemente:</div>
<ul>
<li>
<div align="justify">He “pegado” en código la consulta que había probado en el SQL Server Management Studio.</div>
</li>
<li>
<div align="justify">A continuación especifico la cadena de conexión al cubo de SSAS. La clave de esta cadena está en especificar el proveedor adecuado (MSOLAP.4 para SSRS 2008), el servidor, fuente de datos y cubo.</div>
</li>
<li>
<div align="justify">A continuación se declaramos un objeto de tipo CellSet en el que almacenaremos los resultados devueltos al ejecutar la consulta al cubo de SSAS.</div>
</li>
<li>
<div align="justify">Creamos una instancia de AdomdConnection para conectarnos al cubo.</div>
</li>
<li>
<div align="justify">Abrimos la conexión al cubo.</div>
</li>
<li>
<div align="justify">Creamos una instancia de AdomdCommand a partir de la cadena de consulta al cubo y la cadena de conexión al mismo.</div>
</li>
<li>
<div align="justify">A continuación llamamos al método ExecuteCellSet() del objeto anterior para ejecutar la consulta y el resultado lo guardamos en el objeto de tipo CellSet.</div>
</li>
<li>
<div align="justify">Finalmente, cerramos la conexión al cubo.</div>
</li>
<li>
<div align="justify">Devolvemos el objeto CellSet puesto que será el que utilicemos para alimentar el chart control.</div>
</li>
</ul>
</li>
<li>
<div align="justify">Los métodos para abrir y cerrar la conexión al cubo son los siguientes:</div>
</li>
</ul>
<table style="border-bottom:medium none;border-left:medium none;border-collapse:collapse;border-top:medium none;border-right:medium none;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border-bottom:black 1pt solid;border-left:black 1pt solid;width:432.2pt;background:#d9d9d9;border-top:black 1pt solid;border-right:black 1pt solid;padding:0 5.4pt;" valign="top" width="576">
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpFirst"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// Método para abrir la conexión: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>private AdomdConnection Establecer_Conexion() </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{ </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//Con el objto conexión establecemos la conexión a través de la propiedad </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//cadena de conexión que nos ha pasado el usuario: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;" lang="EN-US">AdomdConnection ACon_Conexion=null; </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>try </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{ </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;">ACon_Conexion = </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>new AdomdConnection(CadenaConexion); </span><span style="font-size:8pt;">&#160;</span></p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//Ahora abrimos esa conexión: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;" lang="EN-US">ACon_Conexion.Open(); </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>string version = </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;">ACon_Conexion.ClientVersion; </span><span style="font-size:8pt;">&#160;</span></p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//Retornamos la conexión: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;" lang="EN-US">return ACon_Conexion; </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>catch (Exception<span>&#160; </span>ex) </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;">{ </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>return ACon_Conexion; </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span style="font-size:8pt;">&#160;</span></p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// Método para cerrar la conexión: </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-size:8pt;" lang="EN-US">private void Cerrar_Conexion(AdomdConnection ACon_Conexion) </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{ </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpMiddle"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ACon_Conexion.Close(); </span>
</p>
</p>
<p style="line-height:normal;margin:0;" class="MsoListParagraphCxSpLast"><span style="font-size:8pt;" lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}</span><span style="font-size:8pt;"> </span></p>
</td>
</tr>
</tbody>
</table>
<ul>
<li>
<div align="justify">Finalmente, si visualizamos nuestra página ASP.NET, el resultado que obtendremos es el siguiente:</div>
</li>
</ul>
<p align="center"><a href="http://jcgonzalezmartin.files.wordpress.com/2009/09/image29.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://jcgonzalezmartin.files.wordpress.com/2009/09/image_thumb29.png?w=244&#038;h=155" width="244" height="155" /></a> </p>
<p align="justify">Y hasta aquí llega este ejemplo sobre como mostrar datos de un cubo de SSAS en un chart control. Espero que el post os haya resultado interesante.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ADO.NET Data Services 1.5: Disponible para descarga la CTP2!]]></title>
<link>http://jcgonzalezmartin.wordpress.com/2009/09/01/ado-net-data-services-1-5-disponible-para-descarga-la-ctp2/</link>
<pubDate>Tue, 01 Sep 2009 20:47:56 +0000</pubDate>
<dc:creator>Juan Carlos González Martín</dc:creator>
<guid>http://jcgonzalezmartin.wordpress.com/2009/09/01/ado-net-data-services-1-5-disponible-para-descarga-la-ctp2/</guid>
<description><![CDATA[El equipo de ADO.NET Data Services acaba de anunciar la disponibilidad de la CTP 2 de ADO.NET Data S]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p align="justify">El equipo de ADO.NET Data Services acaba de anunciar la <a href="http://blogs.msdn.com/astoriateam/archive/2009/08/31/ado-net-data-services-v1-5-ctp2-now-available-for-download.aspx">disponibilidad de la CTP 2 de ADO.NET Data Services v1.5</a>. Como novedad de la segunda CTP de ADO.NET Data Services 1.5, descargable a través de <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a71060eb-454e-4475-81a6-e9552b1034fc&#38;displaylang=en">este enlace</a>, comentaros que se asienta sobre .NET Framework 3.5 SP1 y Silverlight 3, si bien las características incluidas formarán parte de la versión final de .NET Framework 4.0. En cuanto a las novedades en sí, os hago un resumen rápido de lo que se comenta en el post que anuncia la disponibilidad de la CTP2:</p>
<ul>
<li>
<div align="justify">Soporte para proyecciones, de manera que el formato URI de ADO.NET Data Services permite trabajar en cliente y servidor con un subconjunto de las propiedades de una entidad. Además, se añade soporte a LINQ y otras capacidades de los lenguajes .NET como tipos anónimos.</div>
</li>
<li>
<div align="justify">El Data Binding se ha extendido para que soporte Two-Way Data Binding.</div>
</li>
<li>
<div align="justify">Mejoras a la hora de conocer el número total de registros para una cierta entidad.</div>
</li>
<li>
<div align="justify">Feeds amigables, a través de extender el número de elementos ATOM que se pueden mapear con propiedades de una entidad.</div>
</li>
<li>
<div align="justify">Soporte para BLOB en el lado del cliente (incluido Silverlight 3).</div>
</li>
<li>
<div align="justify">Se ha introducido una nueva interfaz Data Service Provider para habilitar los Custom Providers que terceros puedan escribir e ir de esta forma más allá de Entity Framework, LINQ To SQL o clases .NET arbitrarias.</div>
</li>
<li>
<div align="justify">…</div>
</li>
</ul>
<p align="justify">Os recomiendo también leer las FAQ que vienen con el post.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[.NET Compact Framework and the .NET Framework, What Are the Difference?]]></title>
<link>http://seekdotnethosting.wordpress.com/2009/08/27/net-compact-framework-and-the-net-framework-what-are-the-difference/</link>
<pubDate>Thu, 27 Aug 2009 13:00:14 +0000</pubDate>
<dc:creator>admin</dc:creator>
<guid>http://seekdotnethosting.wordpress.com/2009/08/27/net-compact-framework-and-the-net-framework-what-are-the-difference/</guid>
<description><![CDATA[Let us looks into few features that differentiate between .NET Compact Framework and the .NET Framew]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Let us looks into few features that differentiate between .NET Compact Framework and the .NET Framework:</p>
<p>1 &#8211; Common Language Runtime</p>
<p>The common language runtimes in both Frameworks benefit from managed code execution, just-in-time (JIT) code compilation, and garbage collection. They support the Common Language Specification (CLS).<br />
Both Frameworks have built-in primitive types as well as other types that you can use and derive from when you build your application.</p>
<p>2 &#8211; Classes and Types</p>
<p>The .NET Compact Framework supports a subset of the .NET Framework class library. This subset is appropriate for applications that are designed to run on resource-constrained devices and is semantically compatible with same-named classes in the .NET Framework.</p>
<p>3 &#8211; Assemblies and Global Assembly Cache</p>
<p>The .NET Compact Framework does not currently support multi-module assemblies, but does support satellite assemblies.</p>
<p>4 &#8211; How about Deploying Applications ?</p>
<p>To deploy an application, you can easily copy the assembly to the target device by using a cable from the desktop computer, its infrared port, or a wireless Internet or intranet connection. In Microsoft Visual Studio 2005, you can deploy directly to the device while debugging.</p>
<p>5 &#8211; ASP.NET Features</p>
<p>The .NET Compact Framework is primarily a rich client platform and does not provide ASP.NET support. To develop Web pages for mobile devices, you can use ASP.NET mobile Web controls. To develop Web pages for personal computers or Web service providers, see your ASP.NET documentation.</p>
<p>To get the latest <a title=".net framework 3.5 hosting" href="http://www.seekdotnet.com/aspnet35hosting.aspx">.NET 3.5 Framework</a> hosting enabled hosting plan and support, log on to SeekDotNet.com to view more information realize how you can deploy your .net Framework application right away.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[New Features in .NET Framework 3.5 - ASP.NET 3.5 Hosting]]></title>
<link>http://seekdotnethosting.wordpress.com/2009/07/16/new-features-in-net-framework-3-5-asp-net-3-5-hosting/</link>
<pubDate>Thu, 16 Jul 2009 08:59:33 +0000</pubDate>
<dc:creator>admin</dc:creator>
<guid>http://seekdotnethosting.wordpress.com/2009/07/16/new-features-in-net-framework-3-5-asp-net-3-5-hosting/</guid>
<description><![CDATA[Some New Features on .NET Framework 3.5 1 &#8211; New .NET Framework 3.5 Setup Bootstrapper for Clie]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://seekdotnethosting.wordpress.com/files/2009/07/asp-net-35.jpg"><img class="aligncenter size-full wp-image-434" title="ASP.NET 3.5" src="http://seekdotnethosting.wordpress.com/files/2009/07/asp-net-35.jpg" alt="ASP.NET 3.5" width="272" height="77" /></a></p>
<h3>Some New Features on .NET Framework 3.5</h3>
<p>1 &#8211; New <a title=".NET framework 3.5 hosting" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&#38;displaylang=en">.NET Framework 3.5</a> Setup Bootstrapper for Client Applications<br />
The bootstrapper component can handle automatically downloading and installing either the .NET Framework Client Profile or the full .NET Framework Setup Package from the Internet if your machine doesn&#8217;t have either of them installed. The boostrapper can also automatically handle upgrading machines that have a previous version of the .NET Framework installed.</p>
<p>2 &#8211; WPF Performance Improvements<br />
SP1 also adds support for better data scalability in WPF. The ListView, ListBox and TreeView controls now support &#8220;item container recycling&#8221; and &#8220;virtualization&#8221; support which allows you to easily achieve a 40% performance improvement with scrolling scenarios. These controls also now optionally support a &#8220;deferred scrolling&#8221; feature which allows you to avoid scrolling in real time and instead wait until a user releases the scroll thumb.</p>
<p>3 &#8211; WPF Data Improvements<br />
# Better handling and conversion support for null values in editable controls<br />
# Item-level validation that applies validation rules to an entire bound item<br />
# MultiSelector support to handle multi-selection and bulk editing scenarios<br />
# IEditableCollectionView support to interface data controls to data sources and enable editing/adding/removing items in a transactional way</p>
<p>4 &#8211; Visual Studio for .NET Framework 3.5<br />
# Events tab support within the property browser<br />
# Ability to sort properties alphabetically in the property browser<br />
# Margin snaplines which makes form layout much quicker<br />
# Better designer support for TabControl, Expander, and Grid</p>
<p>5 &#8211; &#8220;One Click&#8221; Application Deployments<br />
# ClickOnce improvements for generating MSI + ClickOnce application packages<br />
# ClickOnce error dialog boxes now support links to application specific support sites on the Web<br />
# ClickOnce now has design-time support for setting up file associations<br />
# ClickOnce application publishers can now decide to opt out of signing and hashing the ClickOnce manifests as they see appropriate for their scenarios.</p>
<p>Take advantage of the new .NET Framework for your application now by starting to select a <a title="asp.net 3.5 hosting" href="http://www.seekdotnet.com/aspnet35hosting.aspx">ASP.NET 3.5 web hosting</a> compatible plan and supports.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ASP.NET Hosting - Why ASP.NET is Developers Choice for Web Development?]]></title>
<link>http://seekdotnethosting.wordpress.com/2009/07/03/asp-net-hosting-why-asp-net-is-developers-choice-for-web-development/</link>
<pubDate>Fri, 03 Jul 2009 05:01:38 +0000</pubDate>
<dc:creator>admin</dc:creator>
<guid>http://seekdotnethosting.wordpress.com/2009/07/03/asp-net-hosting-why-asp-net-is-developers-choice-for-web-development/</guid>
<description><![CDATA[Top Reasons Why Developers Choose ASP.NET: 1 &#8211; Under ASP.NET web development work, developers ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://seekdotnethosting.wordpress.com/files/2009/07/asp-net-logo.gif"><img class="aligncenter size-full wp-image-417" title="ASP.NET" src="http://seekdotnethosting.wordpress.com/files/2009/07/asp-net-logo.gif" alt="ASP.NET" width="291" height="90" /></a></p>
<h3>Top Reasons Why Developers Choose ASP.NET:</h3>
<p>1 &#8211; Under <a title="asp.net" href="http://www.asp.net" target="_blank">ASP.NET</a> web development work, developers are enabled to perform a variety of web development jobs such as custom software applications, mobile games, web applications, product development, ecommerce shopping cart and database management.</p>
<p>2 &#8211; They enjoy writing very less code for the development of large applications, it offers server-side programming model to make the development work simpler.</p>
<p>3 &#8211; According to the ASP.NET experts it is popularized as latest version of Microsoft&#8217;s Active Server Pages technology (ASP) and widely developers are using this technology for the development of dynamic websites, XML web services and web applications.</p>
<p>4 &#8211; Writing web pages in ASP.NET are easier as it provides source code and HTML together, execution of source code on server provides power &#38; flexibility, fast compilation of source code in first request of page because server saves the compiled version for the next time, more security of application source code.</p>
<p>5 &#8211; ASP.NET technology updates very frequently from time to time. It’s latest in 2008 version 3.5 service pack released with Visual Studio 2008 Service Pack 1. Large ASP.NET developers join the community and share knowledge on this powerful scripts.</p>
<p>6 &#8211; Technology is having power for the development of large sized enterprise applications for the big companies.</p>
<p>What are your reasons of using ASP.NET for developing your own / corporate website? Please post your reviews and feedback here.</p>
<p>Take charge the advantages of ASP.NET today by referring to <a title="asp web hosting" href="http://www.seekdotnet.com">ASP web hosting</a> plan from <a title="asp web hosting seekdotnet" href="http://www.seekdotnet.com">SeekDotNet.com</a> which compatible with the latest ASP.NET technologies!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[MVVM???]]></title>
<link>http://techsavygal.wordpress.com/2009/06/30/mvvm/</link>
<pubDate>Tue, 30 Jun 2009 14:58:03 +0000</pubDate>
<dc:creator>techsavygal</dc:creator>
<guid>http://techsavygal.wordpress.com/2009/06/30/mvvm/</guid>
<description><![CDATA[Recently, i heard one of my colleagues enquire about MVVM model. MVVM stands for Model-View-ViewMode]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Recently, i heard one of my colleagues enquire about MVVM model. MVVM stands for Model-View-ViewModel in WPF framework (also called as Onyx).</p>
<p><a title="Onyx" href="http://wpfonyx.codeplex.com/" target="_blank">Onyx</a> is a framework that aids in the development of WPF applications that follow the Model-View-ViewModel pattern. The biggest reason for following this pattern is to allow you to unit test as much of your presentation logic as possible, without having to resort to fragile and difficult UI automation. What this generally means is that as much of the code as possible should be moved out of the View and it&#8217;s codebehind, and into the ViewModel. Unfortunately, it can often be very difficult to move logic into the ViewModel while not creating a tight coupling to the specific View, or to any UI framework code, which would cause unit testing to become much more difficult. Onyx uses a novel approach based on <em>IServiceProvider</em> which allows the ViewModel to interact with the View in an entirely decoupled and testable manner.</p>
<p><br style="clear:both;" />For more information about how to use Onyx, see the <a style="text-decoration:underline;color:#3e62a6;" href="http://wpfonyx.codeplex.com/Wiki/View.aspx?title=Introduction">Introduction</a>.<br style="clear:both;" /><br style="clear:both;" />To read what others have said, see <a style="text-decoration:underline;color:#3e62a6;" href="http://wpfonyx.codeplex.com/Wiki/View.aspx?title=SeenOnWeb">SeenOnWeb</a>.</p>
<p>Enjoy&#8230;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Invoke &amp; edit your Facebook profile from your web application...]]></title>
<link>http://techsavygal.wordpress.com/2009/06/30/invoke-edit-your-facebook-profile-from-your-web-application/</link>
<pubDate>Tue, 30 Jun 2009 14:53:51 +0000</pubDate>
<dc:creator>techsavygal</dc:creator>
<guid>http://techsavygal.wordpress.com/2009/06/30/invoke-edit-your-facebook-profile-from-your-web-application/</guid>
<description><![CDATA[Facebook.NET provides a .net library for use in developing Facebook applications and accessing Faceb]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>Facebook.NET</strong> provides a .net library for use in developing Facebook applications and accessing Facebook APIs. The library primarily geared around and optimized for developing ASP.NET-based Web applications, both FBML and IFrame-based Facebook applications through an intuitive API and small set of server controls. It does support the use of the Facebook API from desktop applications as well, and will eventually enable Silverlight application usage.<br style="clear:both;" /><br style="clear:both;" />The library is built on .NET 2.0, but should run on future versions of the .NET framework as well. Applications using Facebook.NET can be written in either C# or VB.NET.<br style="clear:both;" /><br style="clear:both;" />The library is still in early form (some APIs haven&#8217;t been implemented yet, there are only a couple server controls: FacebookApplication, and FqlDataSource at the moment, etc.) but the intent is to grow this over the course of building some Facebook applications, and through community usage/feedback as well. Please help improve this project by submitting bugs and feature suggestions through the issues list, or if you have ideas that need more discussion, please submit them on the discussions forum.</p>
<p>Check out more information on this framework from <a title="here" href="http://www.nikhilk.net/FacebookNET.aspx" target="_blank">here</a>!</p>
<p>Steve Trefethen has posted a <a style="text-decoration:underline;color:#3e62a6;" href="http://www.stevetrefethen.com/blog/VSNETStarterKitForNikhilKotharisFacebookNET.aspx">VS Starter Kit</a> for getting started with Facebook development using Facebook.NET.</p>
<p>May be we can get Twitter.net next&#8230;:-)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[An Introduction To Windows Communication Foundation [WCF]]]></title>
<link>http://aktripathi.wordpress.com/2009/06/05/an-introduction-to-windows-communication-foundation-wcf/</link>
<pubDate>Fri, 05 Jun 2009 06:15:08 +0000</pubDate>
<dc:creator>aktripathi</dc:creator>
<guid>http://aktripathi.wordpress.com/2009/06/05/an-introduction-to-windows-communication-foundation-wcf/</guid>
<description><![CDATA[1.0 What Is WCF? WCF stands for Windows Communication Foundations. WCF combines the functionality fr]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>1.0 What Is WCF?</strong></p>
<p>WCF stands for Windows Communication Foundations.</p>
<p>WCF combines the functionality from ASP.NET Web Services, .NET Remoting, Message Queuing and Enterprise Services.<br />
<img class="aligncenter size-full wp-image-165" title="WCFBlock" src="http://aktripathi.wordpress.com/files/2009/06/wcfblock.jpg" alt="WCFBlock" width="295" height="296" /><br />
WCF provides the following features,</p>
<ol>
<li><strong>Hosting For Component &#38; Services</strong><br />
WCF Service can be hosted in ASP.NET Runtime, a Windows Service, a COM+ Component or just a Windows form application for peer-to-peer computing.
</li>
<li><strong>Declarative Behavior</strong><br />
Similar to ASP.NET Web Services, attributes can be used for WCF Services e.g. ServiceContract(), OperationContract, DataContract and DataMember
</li>
<li><strong>Communication Channels</strong><br />
Similar to .NET Remoting WCF Services are flexible in changing the channels. WCF offers multiple channels to communicate using HTTP, TCP or an IPC channel.</li>
<li><strong>Security</strong></li>
<li><strong>Extensibility</strong></li>
</ol>
<p><strong>2.0 Understanding WCF</strong><br />
These days we are creating the software/application which should be capable of communication with other applications as well. Communication with other application simply means either sharing/exchanging the data or the sharing the logic.</p>
<p>Now, this communication may be of two kinds</p>
<ol>
<li>Over Intranet (Same Network/Platform i.e. .NET Application to .NET Application)</li>
<li>Over Internet (Cross Platform may be ASP.NET to J2EE Application)</li>
</ol>
<p>Suppose we are writing a .NET Software with n-tier architecture in which Win Form Client needs to communicate with Server in the same network. In such case we may go for .NET Remoting for communication between Client and Server.</p>
<p>Suppose, once our software mentioned above is ready, we need to expose some business logic to another J2EE application. This J2EE application is supposed to use our .NET Application’s logic over WWW. In such case we will have to write new ASP.NET Web Service to expose the logic.</p>
<p>Picture shown below shows the limitation of .NET Remoting<br />
<img class="aligncenter size-full wp-image-166" title="RemotingLimitation" src="http://aktripathi.wordpress.com/files/2009/06/remotinglimitation.jpg" alt="RemotingLimitation" width="455" height="198" /><br />
WCF helps us to overcome this kind of Scenario, as WCF Service can be used as a .NET Remoting Component and ASP.NET Web Services as well.<br />
<img class="aligncenter size-full wp-image-167" title="WCFAdvantage" src="http://aktripathi.wordpress.com/files/2009/06/wcfadvantage.jpg" alt="WCFAdvantage" width="455" height="195" /><br />
<strong> 3.0 WCF in Real Time Scenario</strong><br />
Suppose a 7 Star hotel has contacted you for software which will help the organization to managing the hotel’s room booking say “Room Booking System”. Apart from its own features software should be capable of</p>
<ol>
<li>Communication with already running software within the hotel’s network for help desk purpose. (.NET Windows Form Application)
</li>
<li>Communication with already running software on Tourism Office for booking of rooms. (A J2EE Application supposed to access the application over WWW)
</li>
</ol>
<p>Off course we are suppose to implement the application using Microsoft.NET Technology.<br />
Now, as we know that in order to communicate with another .NET application within same network .NET Remoting is the best option. But as per our requirement our application should be capable of interaction with another J2EE application over WWW. So we can’t go for .NET Remoting. ASP.NET web services may work fine but the correct option for now would be WCF Service.<br />
<img class="aligncenter size-full wp-image-168" title="WCFRealTime" src="http://aktripathi.wordpress.com/files/2009/06/wcfrealtime.jpg" alt="WCFRealTime" width="455" height="285" /></p>
<p><strong>4.0 WCF Communication Model</strong></p>
<p>WCF follows Client-Server Architecture. Communication between Client and Server are established with the help of Endpoints exposed by the WCF Service. Endpoints are nothing but the locations defined by service through which message can be sent and received. Service may have multiple end points.<br />
<img class="aligncenter size-full wp-image-169" title="WCFCommunicationModel" src="http://aktripathi.wordpress.com/files/2009/06/wcfcommunicationmodel.jpg" alt="WCFCommunicationModel" width="455" height="221" /></p>
<p><strong>5.0 Know some terms/ Kew words</strong></p>
<ol>
<li><strong>ServiceContract</strong><br />
Service contracts describe the operations supported by a service, the message exchange pattern they use, and the format of each message. The service contract may be an interface or class for generating a service description. A service must implement at least one service contract. Interface or class supposed to be exposed as a service should be decorated with ServiceContractAttribute
</li>
<li><strong>OperationContract</strong><br />
Methods in the interface or class which are supposed to be exposed as a service should be decorated with OperationContractAttribute.
</li>
<li><strong>DataContract</strong><br />
Data contracts describe how a CLR type maps to schema. A data contract may be understood as a class or interface which is mapped to database and are supposed to exploit by WCF Service. This class or interface needs to be decorated with DataContract attribute.</li>
<li><strong>DataMember</strong><br />
Properties or database table columns in the DataContract class which are supposed to be used by WCF Service should be decorated with DataMember attribute.</li>
</ol>
<p><strong>6.0 How to Create a Sample WCF Application with VS2008?</strong></p>
<p><strong>6.1 Create/ Manage database</strong></p>
<p>Before proceeding toward the WCF Service Creation, we need to create a database say, “WCF” with one table having following schema</p>
<p><img class="aligncenter size-full wp-image-170" title="DatabaseSchema" src="http://aktripathi.wordpress.com/files/2009/06/databaseschema.jpg" alt="DatabaseSchema" width="276" height="197" /><br />
Where, ReservationId is an auto generated Primary Key column.</p>
<p>Note: You may also restore the backup of the database given along with the sample application.</p>
<p><strong>6.2 Create WCF Service</strong></p>
<p>1.     Open Visual Studio</p>
<p>2.     Go to File à New à Project</p>
<p>3.     From the left panel, select Web node of your language VB.NET/C#.NET</p>
<p>4.     Now among the templates you will see WCF Service Application</p>
<p>5.     Select the same (WCF Service Application)</p>
<p>6.     Give Suitable Name (Say Practice.WCF) and Click on OK button.</p>
<p><img class="aligncenter size-full wp-image-171" title="WCFProjectCreation" src="http://aktripathi.wordpress.com/files/2009/06/wcfprojectcreation.jpg" alt="WCFProjectCreation" width="455" height="331" /></p>
<p>7.     Modify the connection strings section of web.config file of the WCF Service</p>
<p><code> </code></p>
<p>8.     By default Visual Studio would create a Service and an Interface Service1.svc and IService1.cs</p>
<p>9.     Add new class RoomReservationRequest.cs (DataContract)</p>
<p>10.  Import the name space System.Runtime.Serialization; if not imported</p>
<p>11.  Create property with same data type for each columns present into the RoomReservationRequest table. Decorate RoomReservationRequest.cs class with [DataContract] attribute and each property with [DataMember].<br />
<code><br />
namespace Practice.WCF</code></p>
<p><code> </code></p>
<p><code>{<br />
[DataContract]<br />
public class RoomReservationRequest<br />
{<br />
[DataMember]<br />
public int ReservationId<br />
{<br />
get; set;<br />
}</code></p>
<p><code>[DataMember]<br />
public int  NoOfRooms<br />
{<br />
get; set;<br />
}</code></p>
<p><code>[DataMember]<br />
public string TypeOfRoom<br />
{<br />
get; set;<br />
}</p>
<p>[DataMember]<br />
public DateTime FromDate<br />
{<br />
get; set;<br />
}</p>
<p>[DataMember]<br />
public DateTime ToDate<br />
{<br />
get; set;<br />
}</p>
<p>[DataMember]<br />
public string ContactPersonName<br />
{<br />
get; set;<br />
}</p>
<p>[DataMember]<br />
public string ContactPersonMail<br />
{<br />
get; set;<br />
}</p>
<p>[DataMember]<br />
public string ContactPersonMob<br />
{<br />
get; set;<br />
}</p>
<p>[DataMember]<br />
public string Comments<br />
{<br />
get; set;<br />
}</p>
<p>[DataMember]<br />
public string Status<br />
{<br />
get; set;<br />
}</p>
<p></code></p>
<p> </p>
<p> </p>
<p> </p>
<p><code> }<br />
}<br />
</code><br />
12.  Add a new class RoomReservationData.cs and write two methods say ReserveRoom and GeReservations<br />
<code><br />
namespace Practice.WCF<br />
{<br />
internal class RoomReservationData<br />
{<br />
private string connectionString = ConfigurationManager.ConnectionStrings["con"].ConnectionString;<br />
internal bool ReserveRoom(RoomReservationRequest roomReservationReq)<br />
{<br />
SqlConnection connection = GetConnection();<br />
string sqlCommand = "INSERT INTO RoomReservationRequest(NoOfRooms, TypeOfRoom, FromDate, ToDate, ContactPersonName, " +<br />
"ContactPersonMail, ContactPersonMob, Comments, Status) VALUES (" +<br />
"@NoOfRooms, @TypeOfRoom, @FromDate, @ToDate, @ContactPersonName, " +<br />
"@ContactPersonMail, @ContactPersonMob, @Comments, @Status)";<br />
SqlCommand command = connection.CreateCommand();<br />
command.CommandText = sqlCommand;<br />
command.Parameters.Add("@NoOfRooms", System.Data.SqlDbType.Int);<br />
command.Parameters.Add("@TypeOfRoom", System.Data.SqlDbType.NVarChar, 20);<br />
command.Parameters.Add("@FromDate", System.Data.SqlDbType.DateTime );<br />
command.Parameters.Add("@ToDate", System.Data.SqlDbType.DateTime);<br />
command.Parameters.Add("@ContactPersonName", System.Data.SqlDbType.NVarChar, 50);<br />
command.Parameters.Add("@ContactPersonMail", System.Data.SqlDbType.NVarChar, 50);<br />
command.Parameters.Add("@ContactPersonMob", System.Data.SqlDbType.NVarChar, 20);<br />
command.Parameters.Add("@Comments", System.Data.SqlDbType.NVarChar, 200);<br />
command.Parameters.Add("@Status", System.Data.SqlDbType.NVarChar, 200);<br />
command.Parameters["@NoOfRooms"].Value = roomReservationReq.NoOfRooms;<br />
command.Parameters["@TypeOfRoom"].Value = roomReservationReq.TypeOfRoom;<br />
command.Parameters["@FromDate"].Value = roomReservationReq.FromDate;<br />
command.Parameters["@ToDate"].Value = roomReservationReq.ToDate;<br />
command.Parameters["@ContactPersonName"].Value = roomReservationReq.ContactPersonName;<br />
command.Parameters["@ContactPersonMail"].Value = roomReservationReq.ContactPersonMail;<br />
command.Parameters["@ContactPersonMob"].Value = roomReservationReq.ContactPersonMob;<br />
command.Parameters["@Comments"].Value = roomReservationReq.Comments;<br />
command.Parameters["@Status"].Value = roomReservationReq.Status;</code></p>
<p><code> </code></p>
<p><code>int rowsEffected =0;<br />
try<br />
{<br />
rowsEffected = command.ExecuteNonQuery();<br />
}<br />
finally<br />
{<br />
if (connection != null)<br />
{<br />
connection.Close();<br />
connection.Dispose();<br />
}<br />
}<br />
return rowsEffected &#62; 0;<br />
}</code></p>
<p><code>internal RoomReservationRequest[] GetReservations(DateTime fromDate, DateTime toDate)<br />
{<br />
List reservedRooms = new List();<br />
SqlConnection connection = GetConnection();<br />
SqlCommand command = connection.CreateCommand();<br />
command.CommandText = "SELECT ReservationId, NoOfRooms, TypeOfRoom, FromDate" +<br />
",ToDate, ContactPersonName, ContactPersonMail, ContactPersonMob, Comments, Status "+<br />
"FROM RoomReservationRequest "+<br />
"WHERE FromDate &#62; @FromDate AND ToDate&#60;@ToDate";</code></p>
<p><code>command.Parameters.Add("@FromDate", System.Data.SqlDbType.DateTime);<br />
command.Parameters.Add("@ToDate", System.Data.SqlDbType.DateTime);<br />
command.Parameters["@FromDate"].Value = fromDate;<br />
command.Parameters["@ToDate"].Value = toDate;<br />
SqlDataReader reader = null;<br />
try<br />
{<br />
reader = command.ExecuteReader(CommandBehavior.CloseConnection);<br />
while (reader.Read())<br />
{<br />
RoomReservationRequest roomReservationRequest = new RoomReservationRequest();<br />
roomReservationRequest.ReservationId = Convert.ToInt16(reader[0]);<br />
roomReservationRequest.NoOfRooms = Convert.ToInt16(reader[1]);<br />
roomReservationRequest.TypeOfRoom = reader[2].ToString();<br />
roomReservationRequest.FromDate = Convert.ToDateTime(reader[3]);<br />
roomReservationRequest.ToDate = Convert.ToDateTime(reader[4]);<br />
roomReservationRequest.ContactPersonName = reader[5].ToString();<br />
roomReservationRequest.ContactPersonMail = reader[6].ToString();<br />
roomReservationRequest.ContactPersonMob = reader[7].ToString();<br />
roomReservationRequest.Comments = reader[8].ToString();<br />
roomReservationRequest.Status = reader[9].ToString();<br />
reservedRooms.Add(roomReservationRequest);<br />
}<br />
}<br />
finally<br />
{<br />
if (reader != null)<br />
{<br />
reader.Close();<br />
reader.Dispose();<br />
}</p>
<p>if (connection != null)<br />
{<br />
connection.Close();<br />
connection.Dispose();<br />
}<br />
}<br />
return reservedRooms.ToArray();<br />
}<br />
private SqlConnection GetConnection()<br />
{</p>
<p></code></p>
<p> </p>
<p> </p>
<p> </p>
<p><code> SqlConnection connection = new SqlConnection(connectionString);<br />
try<br />
{<br />
connection.Open();<br />
}<br />
finally<br />
{<br />
}<br />
return connection;<br />
}<br />
}<br />
}<br />
</code></p>
<p>13.  Declare two methods to the interface IService1 say ReserveRoom and GetReservations<br />
<code><br />
namespace Practice.WCF<br />
{<br />
[ServiceContract]<br />
public interface IService1<br />
{<br />
[OperationContract]<br />
bool ReserveRoom(RoomReservationRequest reservationRequest);</code></p>
<p><code> </code></p>
<p><code> [OperationContract]<br />
RoomReservationRequest[] GetReservations(DateTime fromDate, DateTime toDate);<br />
}<br />
}<br />
</code></p>
<p>14.  Implement the Interface ISErvice1 in Service1.svc.cs class. Create instance of class RoomReservationData which we implemented in Step-12 and use the same into the implemented methods.<br />
<code><br />
namespace Practice.WCF<br />
{<br />
public class Service1 : IService1<br />
{<br />
#region IService1 Members<br />
private RoomReservationData roomReservationData = new RoomReservationData();</code></p>
<p><code> </code></p>
<p><code>public bool ReserveRoom(RoomReservationRequest reservationRequest)<br />
{<br />
return roomReservationData.ReserveRoom(reservationRequest);<br />
}</code></p>
<p><code> </code></p>
<p> </p>
<p> </p>
<p><code> public RoomReservationRequest[] GetReservations(DateTime fromDate, DateTime toDate)<br />
{<br />
return roomReservationData.GetReservations(fromDate, toDate);<br />
}<br />
#endregion<br />
}<br />
}<br />
</code><br />
15.  Now we are done with the implementation of WCF Service. Set the Service1 as Startup page. Run your WCF Application. Should get the following screen.<br />
<img class="aligncenter size-full wp-image-172" title="WCFRunning" src="http://aktripathi.wordpress.com/files/2009/06/wcfrunning.jpg" alt="WCFRunning" width="454" height="407" /></p>
<p>16.  Publish the WCF Service.</p>
<ol>
<li>To publish the service Right Click on Practice.WCF.csproj and select the Publish option<br />
<img class="aligncenter size-full wp-image-173" title="PublishContextMenu" src="http://aktripathi.wordpress.com/files/2009/06/publishcontextmenu.jpg" alt="PublishContextMenu" width="217" height="296" /></li>
<li> Enter the location where you need to publish/ host the service.<br />
<img class="aligncenter size-full wp-image-174" title="PublishDialog" src="http://aktripathi.wordpress.com/files/2009/06/publishdialog.jpg" alt="PublishDialog" width="455" height="343" /></li>
<li> Click on Publish button to publish the site.</li>
</ol>
<p>17.  You may check the published WCF Service by typing the URL into browser<br />
e.g. http://localhost/wcf/Service1.svc , a page same as Step-14 will appear.</p>
<p>7.0 How to Consume the WCF Service?</p>
<p>7.1 Generate the Class and Config File using svcutil.exe</p>
<p>You might have noticed the message displayed while browsing the service<br />
<img class="aligncenter size-full wp-image-175" title="ServiceMessage" src="http://aktripathi.wordpress.com/files/2009/06/servicemessage.jpg" alt="ServiceMessage" width="455" height="150" /></p>
<p>Now, we need to generate the classes which our Client Application would use to consume the service.</p>
<p>We may generate the classes/configuration with the help of tool svcutil.exe. Follow the steps to generate the Class/Config file</p>
<ol>
<li> Open the command prompt and Go to the location where svcutil.exe is placed. You may find the same at following place “C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin”</li>
<li> Write the following command and hit the “enter key” to generate the Class/Config files<br />
<img class="aligncenter size-full wp-image-176" title="SVCUtil" src="http://aktripathi.wordpress.com/files/2009/06/svcutil.jpg" alt="SVCUtil" width="454" height="55" /></li>
<li> This would generate the Service1.cs and output.config files at the same location where svcutil.exe is placed i.e. “C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin”</li>
<li> The class generated and the config file we need to include into our client application for consuming the service.</li>
</ol>
<p><strong>7.2 Create Client to Consume Service </strong></p>
<p>1.     Open Visual Studio</p>
<p>2.     Go to Fileà New à Project</p>
<p>3.     Select Windows Form Application</p>
<p>4.     Create a Form similar to below<br />
<img class="aligncenter size-full wp-image-177" title="ClientApplication" src="http://aktripathi.wordpress.com/files/2009/06/clientapplication.jpg" alt="ClientApplication" width="455" height="318" /><br />
5.     Include the class generated by Step iii of Section 7.1</p>
<p>6.     Right Click on project and select the option “Add Service Reference”<br />
<img class="aligncenter size-full wp-image-178" title="ServiceRefrence" src="http://aktripathi.wordpress.com/files/2009/06/servicerefrence.jpg" alt="ServiceRefrence" width="221" height="245" /><br />
7.     Enter the URL/ Address where service is hosted and hit on “Go” button to find the service. You may see the Services Methods/Logic exposed by WCF Service<br />
<img class="aligncenter size-full wp-image-179" title="ServiceRefDialog" src="http://aktripathi.wordpress.com/files/2009/06/servicerefdialog.jpg" alt="ServiceRefDialog" width="455" height="376" /></p>
<p>8.     Click “OK” to add the service.<br />
9.     Double Click Room Reservation Enquiry button to write the logic. Make sure that you have imported the namespace of the generated class added to the project.<br />
<code><br />
private void btnEnquiry_Click(object sender, EventArgs e)<br />
{<br />
Service1Client client = new Service1Client();<br />
RoomReservationRequest[] reservationEnquiry = null;<br />
reservationEnquiry = client.GetReservations(dateFromDate.Value, dateToDate.Value);</code></p>
<p><code> </code></p>
<p><code> if (reservationEnquiry.Length &#62; 0)<br />
{<br />
gvReservationData.DataSource = reservationEnquiry;<br />
gvReservationData.Visible = true;<br />
}<br />
else<br />
{<br />
gvReservationData.Visible = false;<br />
lblMessage.Text = "Sorry data not available.";<br />
}<br />
}<br />
</code><br />
10.  When we had added the reference of the Service to the client project one configuration file also would have been added to the application i.e. App.Config. Replace the  node of this file by the  node of the output.config file generated into “Step- iii” of “Section 7.1”</p>
<p><strong>8.0 How to Use the Source?</strong></p>
<p>Unzip the file WCF.zip, you may find the following files</p>
<p>1.     DBBackup.zip</p>
<p>2.     Source.zip</p>
<p>Restore/ Create Database</p>
<p>Unzip the file DBBackup.zip and restore the WCF.bak file to SQL Server Database or you may create the database as suggested in Step 6.1.</p>
<p>Now, Unzip the file Source.zip, you may find<br />
1.     WCFService<br />
2.     WCFClient<br />
Publish/Host Client<br />
i.        Open the directory WCFService.<br />
ii.        Double click Practice.WCF.sln file to open the solution.<br />
iii.        Modify the web.config file of Service as suggested in Step-7 of Section-6.2.<br />
iv.        Publish the service as suggested in Step-16 of Section-6.2.<br />
Use WCF Client to consume the services<br />
i.        Open WCFClient directory.<br />
ii.        Double click HelpDeskService.sln file to open the solution.<br />
iii.        Run the solution.<br />
iv.        Select the dates and hit on Enquiry button.<br />
Note: You may need to modify App.Config file, if you have not published the WCF Service to local machine.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ASP.NET 3.5 Hosting - How Much you Know about .NET 3.5 Framework?]]></title>
<link>http://seekdotnethosting.wordpress.com/2009/05/11/asp-net-3-5-hosting-how-much-you-know-about-net-3-5-framework/</link>
<pubDate>Mon, 11 May 2009 10:11:52 +0000</pubDate>
<dc:creator>admin</dc:creator>
<guid>http://seekdotnethosting.wordpress.com/2009/05/11/asp-net-3-5-hosting-how-much-you-know-about-net-3-5-framework/</guid>
<description><![CDATA[.NET Framework 3.5 Overview .NET Framework 3.5 Version 3.5 of the .NET Framework was released on 19 ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h3>.NET Framework 3.5 Overview</h3>
<div id="attachment_367" class="wp-caption aligncenter" style="width: 310px"><a href="http://seekdotnethosting.wordpress.com/files/2009/05/net-framework-3-5-logo.jpg"><img class="size-medium wp-image-367" title=".net-framework-3.5-logo" src="http://seekdotnethosting.wordpress.com/files/2009/05/net-framework-3-5-logo.jpg?w=300" alt=".NET Framework 3.5" width="300" height="206" /></a><p class="wp-caption-text">.NET Framework 3.5</p></div>
<p>Version 3.5 of the <a title=".net framework 3.5" href="http://www.msdn.microsoft.com/en-us/netframework/default.aspx">.NET Framework</a> was released on 19 November 2007, but it is not included with Windows Server 2008. As with .NET Framework 3.0, version 3.5 uses the CLR of version 2.0. In addition, it installs .NET Framework 2.0 SP1, (.NET Framework 2.0 SP2 with 3.5 SP1) and .NET Framework 3.0 SP1 (.NET Framework 3.0 SP2 with 3.5 SP1), which adds some methods and properties to the BCL classes in version 2.0 which are required for version 3.5 features such as Language Integrated Query (LINQ). These changes do not affect applications written for version 2.0.</p>
<h3>Build Your Web Application With ASP.NET 3.5 / .NET Framework 3.5</h3>
<p>Here are some of the improvement that end users / developers will gain by creating a web application using the latest .NET Framework.<br />
1 &#8211; ASP.NET Dynamic Data, which provides a rich scaffolding framework that enables rapid data driven development without writing code, and a new addition to ASP.NET AJAX that provides support for managing browser history (back button support).</p>
<p>2 &#8211; Performance improvements to WPF (Windows Presentation Foundation), including a faster startup time and improved performance for Bitmap effects.</p>
<p>3 &#8211; ClickOnce applications which will display a customized branding, and ClickOnce error dialog boxes support links to application-specific support sites.</p>
<p>4 &#8211; LINQ to SQL includes new support for the new date and file stream capabilities in SQL Server 2008.</p>
<p>5 &#8211; The ADO.NET Data Services Framework makes data service creation over any data source.</p>
<p>6 &#8211; Windows Communication Foundation now makes the DataContract Serializer easier to use.</p>
<p>7 &#8211; The .NET Framework Data Provider for SQL Server (SqlClient) adds new support for file stream and sparse column capabilities.</p>
<p>Currently, the latest version of .NET Framework ever released is .NET Framework Service Pack 1. It can be downloaded <a title="ASP.NET 3.5, .NET Framework 3.5 Service pack 1" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=AB99342F-5D1A-413D-8319-81DA479AB0D7&#38;displaylang=en" target="_blank">here</a>.</p>
<p>Congratulates for all the developers that take advantages of this new released of .NET Framework. You may want to check out this reliable <a title="asp hosting" href="http://www.seekdotnet.com">ASP hosting</a> provider who constantly upgrade the hosting control panel and fully compatible for .NET Framework 3.5 with <a title="asp.net 3.5 hosting" href="http://www.seekdotnet.com/aspnet35hosting.aspx">ASP.NET 3.5 hosting</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[New set of Virtual Labs from MSDN...]]></title>
<link>http://techsavygal.wordpress.com/2009/04/08/new-set-of-virtual-labs-from-msdn/</link>
<pubDate>Wed, 08 Apr 2009 10:05:11 +0000</pubDate>
<dc:creator>techsavygal</dc:creator>
<guid>http://techsavygal.wordpress.com/2009/04/08/new-set-of-virtual-labs-from-msdn/</guid>
<description><![CDATA[MSDN has released a new set of virtual labs for Visual Studio 2008 &amp; .Net framework 3.5 for anyo]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>MSDN has released a new set of virtual labs for Visual Studio 2008 &#38; .Net framework 3.5 for anyone willing to get their hands dirty with silverlight, wcf, wpf, rest and more. Check them out from below:</p>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-gb/try/virtual-labs.mspx#build-data-driven">Build Data-driven Web Applications – Fast</a></li>
</ul>
<p>             ASP.NET Dynamic Data provides a framework that lets you quickly build a functional data-driven application, based on a LINQ to SQL Server or Entity Framework data model. It also adds great flexibility and functionality to the DetailsView, FormView, GridView and ListView controls with smart validation and the ability to easily change the display of these controls using templates. In this lab you&#8217;ll learn how to create a data-driven web application, add validation to the data model and customise ASP.NET Dynamic Data rendering, pages and fields.</p>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-gb/try/virtual-labs.mspx#ajax-navigation">ASP.NET AJAX – Back / Forward Navigation</a></li>
</ul>
<p>An inherent problem with AJAX-style applications is browser navigation. If users click the browser&#8217;s Back button, the browser doesn’t return to a previous state of the page by default. Instead, it unloads the page entirely and returns to the page that was displayed before your page was started. Usually, that’s not what the user intended. You can manage history (Back and Forward button navigation) to provide a more logical and natural navigation model in your web application. As the page developer, you control the state required to recreate the page, by managing history navigation in both server and client code, just by defining points in your application that act like bookmarks.</p>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-gb/try/virtual-labs.mspx#intro-dot-net">Introduction to the .NET Framework Client Profile</a></li>
</ul>
<p>The .NET Framework Client Profile was created in response to feedback from many customers that indicated that a smaller framework was needed specifically for client applications. The Client Profile is a subset of assemblies already contained within .NET Framework 3.5 Service Pack 1 (SP1). After completing this lab, you’ll be better able to target your client projects to the .NET Framework 3.5 Client Profile and verify which assembly references are not included in the Client Profile.</p>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-gb/try/virtual-labs.mspx#wcf-and-rest">Windows Communication Foundation (WCF) and REST</a></li>
</ul>
<p>WCF simplifies development of connected applications through a service-oriented programming model. WCF supports many styles of distributed application development by providing a layered architecture. WCF features support for the RESTful design of web services within the unified WCF programming model. Support for REST and POX style services are now directly supported by the .NET Framework version 3.5.</p>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-gb/try/virtual-labs.mspx#dev-outlook">Develop an Outlook Add-in</a></li>
</ul>
<p>Create applications that are more familiar to end-users with Microsoft Office applications. Add-ins make it a snap to build your own features into Microsoft Office applications. Visual Studio Tools for Office, an integral technology of Visual Studio 2008, includes features that simplify add-in development. Once you’ve completed this lab, you’ll know how to bind Ribbon Events to WCF Service methods, create form regions and host a Windows Presentation Framework Custom Control.</p>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-gb/try/virtual-labs.mspx#build-wpf">Build Outstanding End-user Experiences with Windows Presentation Foundation (WPF)</a></li>
</ul>
<p>WPF provides a unified framework for building applications and high-fidelity experiences in Windows that blend together application UI, documents and media content, while exploiting the full power of the local computing hardware. WPF was created to allow developers to more easily build the types of rich applications that were difficult to build with Windows Forms, the type that required a range of other technologies that were often hard to integrate.</p>
<p>Work through this lab, and you’ll learn how to use Visual Studio 2008 Designer to build a WPF client application, see how LINQ features can be used against a Microsoft SQL Server database, see how to access a WCF-based service after generating a Service Reference and put some of the new language features of C# to work.</p>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-gb/try/virtual-labs.mspx#use-linq">Using LINQ to SQL Server with the .NET Framework 3.5 and Visual Studio 2008</a></li>
</ul>
<p>LINQ is a set of extensions to the .NET Framework that encompasses language-integrated query, set and transform operations. It extends C# and Visual Basic with native language syntax for queries and provides class libraries to take advantage of these capabilities. LINQ to SQL Server provides a runtime infrastructure for managing relational data as objects without losing the ability to query. Your application is free to manipulate the objects while LINQ to SQL Server stays in the background, tracking your changes automatically. Complete this lab and you’ll be able to:</p>
<p>•	Use the LINQ to SQL Server Designer to create LINQ to SQL Server entity classes and associations (relationships) based on tables in a database<br />
•	Manage the DataContext and &#8216;how-to-use where&#8217; clauses, perform joins, order the results and handle conflict detection<br />
•	Use LINQ to SQL Server to implement a resource access layer that interacts with an existing Microsoft SQL Server database.</p>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-gb/try/virtual-labs.mspx#build-ajax-json-wcf">Build AJAX/JSON Services with WCF</a></li>
</ul>
<p>JavaScript Object Notation (or JSON), an open and text-based data exchange format that provides a standardised data exchange format better suited for Ajax-style web applications. This lab will show you how to create and configure a WCF service that uses JSON serialization, in addition to demonstrating how to consume the WCF service from client-side code, including ASP.NET AJAX controls and JavaScript that you write.</p>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-gb/try/virtual-labs.mspx#silverlight-xaml">Silverlight Monster Factory – Using a XAML Template</a></li>
</ul>
<p><a name="build-data-driven"></a></p>
<p>Microsoft Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of .NET-based media experiences and rich interactive applications for the web. Silverlight offers a flexible programming model that supports AJAX, Visual Basic, C#, Python and Ruby, and integrates with existing web applications. Silverlight supports fast, cost-effective delivery of high-quality video to major browsers running on the Mac OS or Windows.</p>
<p>In this lab, you will use Expression Design and Visual Studio 2008 to build a monster factory website, and also learn how to create XAML pictures and consume them using Silverlight and Javascript from a website.</p>
<p>Enjoy!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ASP.NET 3.5 Hosting - Increase Functionality with ASP.NET 3.5 SP1]]></title>
<link>http://seekdotnethosting.wordpress.com/2009/04/03/aspnet-35-hosting-increase-functionality-with-aspnet-35-sp1/</link>
<pubDate>Fri, 03 Apr 2009 10:35:43 +0000</pubDate>
<dc:creator>admin</dc:creator>
<guid>http://seekdotnethosting.wordpress.com/2009/04/03/aspnet-35-hosting-increase-functionality-with-aspnet-35-sp1/</guid>
<description><![CDATA[ASP.NET 3.5 ASP.NET 3.5 Hosting Enhancement with ASP.NET 3.5 SP1 ASP.NET 3.5 SP1 has been released a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="attachment_325" class="wp-caption aligncenter" style="width: 282px"><a href="http://seekdotnethosting.wordpress.com/files/2009/04/asp-net-35.jpg"><img class="size-full wp-image-325" title="asp-net-35" src="http://seekdotnethosting.wordpress.com/files/2009/04/asp-net-35.jpg" alt="ASP.NET 3.5 " width="272" height="77" /></a><p class="wp-caption-text">ASP.NET 3.5 </p></div>
<h3>ASP.NET 3.5 Hosting Enhancement with ASP.NET 3.5 SP1</h3>
<p><a title="asp.net 3.5 hosting" href="http://www.asp.net" target="_blank">ASP.NET 3.5</a> SP1 has been released a few months ago and everybody were expecting for more improvement on the features such as Entity Framework, Dynamic Data and Routing.</p>
<p>They also contain a number of feature additions and enhancements that make building .NET applications better.</p>
<h3>ASP.NET 3.5 SP1 Improvements</h3>
<p>Below are some of the major improvement on ASP.NET 3.5 SP1.</p>
<p>1 &#8211; ASP.NET 3.5 SP1 adds new functionality to the existing GridView, ListView, DetailsView and FormView controls in ASP.NET, and enables smart validation and flexible data templating options.<br />
It also delivers new smart filtering server controls, as well as adds support for automatically traversing primary-key/foreign-key relationships and displaying friendly foreign key names.</p>
<p>2 &#8211; This new routing engine is used by both ASP.NET Dynamic Data as well as the new ASP.NET MVC framework.  It will support both WebForms and MVC based requests.</p>
<p>3 &#8211; ASP.NET 3.5 SP1 and Visual Studio 2008 SP1 are great &#8220;companion&#8221; with the upgrades and provide more flexibility and improvements for web developers.</p>
<p>4 &#8211; The script combining feature supports both path based scripts and assembly resource based scripts, and dynamically serves up the combined scripts using the ScriptResources.axd handler.</p>
<p>5 &#8211; ASP.NET 3.5 SP1 codes in Visual Studio 2008 SP1 adds richer source code formatting support for JavaScript as well.</p>
<p>For more Information about ASP.NET 3.5 SP 1, visit <a title="asp.net 3.5 hosting" href="http://www.asp.net" target="_blank">http://www.asp.net</a><br />
To learn more about implementing the new ASP.NET 3.5 SP 1 features, visit <a title="asp.net 3.5 hosting" href="http://www.asp.net/learn/3.5-SP1/" target="_blank">http://www.asp.net/learn/3.5-SP1/</a></p>
<p>SeekDotNet.com is specializing in providing support for <a title="asp.net hosting" href="http://www.seekdotnet.com">ASP.NET hosting</a> for many years. All the hosting plan are now hosted on Windows server 2008 platform with <a title="asp.net 3.5 hosting" href="http://www.seekdotnet.com/aspnet35hosting.aspx">ASP.NET 3.5 hosting</a> supported.<br />
Visit the company website now at <a title="asp.net 3.5 hosting" href="http://www.seekdotnet.com">http://www.seekdotnet.com</a> to find out how you can get 3 months free on ASP.NET 3.5 hosting plan now.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Are C#3 feature additions just sugar? ]]></title>
<link>http://preterition.wordpress.com/2009/04/02/are-c3-feature-additions-just-sugar/</link>
<pubDate>Wed, 01 Apr 2009 21:39:35 +0000</pubDate>
<dc:creator>johnd</dc:creator>
<guid>http://preterition.wordpress.com/2009/04/02/are-c3-feature-additions-just-sugar/</guid>
<description><![CDATA[While reading my first C# book shortly after version 1 of the famework had been released, I was init]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>While reading my first <a href="http://www.amazon.com/Programming-C-2nd-Jesse-Liberty/dp/0596003099" target="_blank">C# book</a> shortly after version 1 of the famework had been released, I was initially  surprised at how similar it looked to Java which had been the main language of instruction in our Computer Science courses, and almost didn&#8217;t continue past the first few chapters. The <a href="http://silverlight.net/blogs/jesseliberty/" target="_blank">author&#8217;s</a> enthusaism for C# was infectious though, and after persevering with it for a while the distinction started to become more clear. Feature by feature, the differences started adding up to something that really did feel like a new language, by the latter stages of the book I remember feeling excited about making a move to the language and the platform.</p>
<p>Early versions of C# were criticised for their similarity to Java around that time, but over the years as new features were added, that argument seemed to fade away. With each new version of the language, lots of new feature additions have been included. Looked at individually they can sometimes seem underwhelming, but comparing large sections of code from different versions of the language can surprise even experienced C# coders how much things have changed since its first release.</p>
<p>I&#8217;m hoping to post examples of a lot of the newer language additions from C#2 onwards, but will start with a small new C#3 feature that reminded me of the original property concept back in C#1.</p>
<p>Properties were one of the features that were hyped a lot in C#1. The idea wasn&#8217;t new, and was probably borrowed from the COM world where the get_ , and set_ prefixes for accessor methods had been a convention for quite a while. The small change to the language that enabled accessing the property, using the . operator rather than calling the accessor methods e.g object.PropertyName was a very small syntactic change (that initially felt uncomfortable for those with a C++ background), but it resulted in code that (after some mental adjustment) looked neater than the equivalent construct with a field and accessor method in C++ or Java.</p>
<p>The property access syntax was then described as a better balance between a field and a property &#8212; depending from where you&#8217;re accessing the property, (inside or outside the class) you&#8217;ll see the right thing. It abstracted away implementation details of the class while still allowing easy access.  C#3 has now introduced a new change to the property concept that is similarly interesting, Automatic Properties.</p>
<p>Ignoring coding style and guidelines (which I&#8217;ll talk about in another post), take a simple pre C#3 class e.g:</p>
<table style="background-color:whitesmoke;" border="0" cellspacing="0" cellpadding="2" width="99%">
<tbody>
<tr>
<td>
<pre style="font-size:11px;line-height:1.5;">public class Cat
{
     string _breed;
     string _coatPattern;

      public string Breed
      {
           get { return _breed; }
           set { _breed = value; }
      }

  public string CoatPattern
  {
        get { return _coatPattern; }
        set { _coatPattern = value; }
   }
}</pre>
</td>
</tr>
</tbody>
</table>
<p>The equivalent thing with Automatic Properties now looks like this:</p>
<table style="background-color:whitesmoke;" border="0" cellspacing="0" cellpadding="2" width="99%">
<tbody>
<tr>
<td>
<pre style="font-size:11px;line-height:1.5;">public class Cat
{
     public string Breed { get; set; }
     public string CoatPattern { get; set; }
}</pre>
</td>
</tr>
</tbody>
</table>
<p>So the idea has been taken further: the backing fields will be created by the compiler, and access from within the class will be through the property accessors. Clearly if the idea is to manipulate the data before storing it in the backing field then this won&#8217;t work, and will need to be done the regular way. But most properties are just direct accessors to backing fields, so this small change cut out large amounts of clutter.</p>
<p>If we wanted to make the property read-only, an obvious thing would be to try this:</p>
<table style="background-color:whitesmoke;" border="0" cellspacing="0" cellpadding="2" width="99%">
<tbody>
<tr>
<td>
<pre style="font-size:11px;line-height:1.5;">public class Cat
{
     public string Breed { get; }
     //..
}</pre>
<p>but this causes a compile error, the correct way to do it is like this:</p>
<pre style="font-size:11px;line-height:1.5;">public class Cat
{
     public string Breed { get; private set; }
     //..
}</pre>
</td>
</tr>
</tbody>
</table>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[New Linq tools to ease writing Linq Queries...]]></title>
<link>http://techsavygal.wordpress.com/2009/03/16/new-linq-tools-all-around/</link>
<pubDate>Mon, 16 Mar 2009 10:24:48 +0000</pubDate>
<dc:creator>techsavygal</dc:creator>
<guid>http://techsavygal.wordpress.com/2009/03/16/new-linq-tools-all-around/</guid>
<description><![CDATA[Continous LINQ is a .NET Framework 3.5 extension that builds on the LINQ query syntax to create cont]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a title="Continous Linq" href="http://clinq.codeplex.com/" target="_blank">Continous LINQ</a> is a .NET Framework 3.5 extension that builds on the LINQ query syntax to create continuous, self-updating result sets.  In traditional LINQ queries, you write your query and get stale results. With Continuous LINQ,   you write a query and the results of that query are continuously updated as changes are made to the source collection or items within the source collection.   CLINQ has tremendous value in GUI development and is especially useful in binding to filtered streams of data such as financial or other network message data.</p>
<p>Download the above extensions from <a title="here" href="http://clinq.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=16757#ReleaseFiles">here</a>.</p>
<p>You can also combine the above tool with <a title="Visual Linq Query Builder" href="http://code.msdn.microsoft.com/vlinq" target="_blank">Visual Linq Query Builder</a> which is an add-in to Visual Studio 2008 Designer that helps you visually build LINQ to SQL queries. Functionally it provides the same experience as, for instance the Microsoft Access Query Builder, but in the LINQ domain. The entire UI of this add-in uses Windows Presentation Foundation. The goal of this tool is to help users become more familiar with the LINQ syntax. The tool may also demonstrate to users how to create their own Visual Studio 2008 add-in using Windows Presentation Foundation. </p>
<p>You can download VLINQ from <a title="here" href="http://code.msdn.microsoft.com/vlinq/Release/ProjectReleases.aspx?ReleaseId=810">here</a>.</p>
<p>Both the above tools aim to make developer write linq queries easily and effectively. </p>
<p>Check out the following link to view some <a title="Linq Query Samples" href="http://msdn.microsoft.com/en-us/vbasic/bb688084.aspx" target="_blank">Linq Query samples</a>.</p>
<p><a href="http://msdn.microsoft.com/en-us/vbasic/bb688084.aspx#">http://msdn.microsoft.com/en-us/vbasic/bb688084.aspx#</a></p>
<p>Enjoy!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Getting Started with REST in WCF]]></title>
<link>http://techsavygal.wordpress.com/2009/03/10/getting-started-with-rest-in-wcf/</link>
<pubDate>Tue, 10 Mar 2009 11:39:18 +0000</pubDate>
<dc:creator>techsavygal</dc:creator>
<guid>http://techsavygal.wordpress.com/2009/03/10/getting-started-with-rest-in-wcf/</guid>
<description><![CDATA[Hi All, If you are planning to get started with REST in WCF, the following information might be help]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hi All,</p>
<p>If you are planning to get started with REST in WCF, the following information might be helpful.</p>
<p><strong>What is REST?</strong></p>
<p><strong>Representational state transfer</strong> (<strong>REST</strong>) is a style of <a title="Software architecture" href="http://en.wikipedia.org/wiki/Software_architecture">software architecture</a> for distributed <a title="Hypermedia" href="http://en.wikipedia.org/wiki/Hypermedia">hypermedia</a> systems such as the <a title="World Wide Web" href="http://en.wikipedia.org/wiki/World_Wide_Web">World Wide Web</a>. As such, it is not strictly a method for building &#8220;<a class="mw-redirect" title="Web services" href="http://en.wikipedia.org/wiki/Web_services">web services</a>.&#8221; The terms &#8220;representational state transfer&#8221; and &#8220;REST&#8221; were introduced in 2000 in the doctoral dissertation of <a title="Roy Fielding" href="http://en.wikipedia.org/wiki/Roy_Fielding">Roy Fielding</a>,<sup class="reference"><a href="http://en.wikipedia.org/wiki/REST#cite_note-0"><span>[</span>1<span>]</span></a></sup> one of the principal authors of the <a title="Hypertext Transfer Protocol" href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol">Hypertext Transfer Protocol</a> (HTTP) specification.</p>
<p>REST strictly refers to a collection of <a title="Network architecture" href="http://en.wikipedia.org/wiki/Network_architecture">network architecture</a> principles which outline how resources are defined and addressed. The term is often used in a looser sense to describe any simple interface which transmits domain-specific data over HTTP without an additional messaging layer such as <a class="mw-redirect" title="SOAP (protocol)" href="http://en.wikipedia.org/wiki/SOAP_%28protocol%29">SOAP</a> or <a title="Session management" href="http://en.wikipedia.org/wiki/Session_management">session tracking</a> via <a title="HTTP cookie" href="http://en.wikipedia.org/wiki/HTTP_cookie">HTTP cookies</a>. These two meanings can conflict as well as overlap. It is possible to design a software system in accordance with Fielding&#8217;s REST architectural style without using HTTP and without interacting with the World Wide Web.<sup class="reference"><a href="http://en.wikipedia.org/wiki/REST#cite_note-1"><span>[</span>2<span>]</span></a></sup> It is also possible to design simple XML+HTTP interfaces which do not conform to REST principles, and instead follow a model of <a title="Remote procedure call" href="http://en.wikipedia.org/wiki/Remote_procedure_call">remote procedure call</a>. The difference between the uses of the term &#8220;REST&#8221; therefore causes some confusion in technical discussions.</p>
<p>Systems which follow Fielding&#8217;s REST principles are often referred to as &#8220;<strong>RESTful</strong>&#8220;.</p>
<p><strong>What are RESTful Web Services?</strong></p>
<p>A RESTFul web service is a simple web service implemented using HTTP and the principles of REST. Such a web service can be thought about as a collection of resources. The definition of such a web service can be thought of as comprising three aspects:</p>
<ul>
<li>The URI for the web service such as <code>http://example.com/resources/cars</code></li>
<li>The <a title="MIME" href="http://en.wikipedia.org/wiki/MIME">MIME type</a> of the data supported by the web service. This is often <a title="JSON" href="http://en.wikipedia.org/wiki/JSON">JSON</a> , <a title="XML" href="http://en.wikipedia.org/wiki/XML">XML</a> or <a title="YAML" href="http://en.wikipedia.org/wiki/YAML">YAML</a> but can be anything.</li>
<li>The set of operations supported by the web service using <a title="Hypertext Transfer Protocol" href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods">HTTP methods</a> (e.g. POST, GET, PUT or DELETE).</li>
</ul>
<p>Members of the collection are addressed by ID using URIs of the form &#60;baseURI&#62;/&#60;ID&#62;. The ID can be any unique identifier. For example if a RESTFul web service representing a collection of cars for sale might have the URI <a href="http://example.com/resources/cars"><code>http://example.com/resources/cars</code></a>. f the service uses the car registration number as the ID then a particular car might be present in the collection as <a href="http://"><code>http://example.com/resources/cars/yxz123</code></a>.</p>
<p>The following table shows how the HTTP verbs are typically used to implement a web service.</p>
<table class="wikitable" style="text-align:center;height:250px;" border="1" width="561">
<caption>RESTful Web Service HTTP methods</caption>
<tbody>
<tr>
<th>Resource</th>
<th>GET</th>
<th>PUT</th>
<th>POST</th>
<th>DELETE</th>
</tr>
<tr>
<th>Collection URI such as <code>http://example.com/resources/cars/</code></th>
<td><strong>List</strong> the members of the collection. For example list all the cars for sale.</td>
<td>Not generally used. Meaning defined as replace the entire collection with another entire collection.</td>
<td><strong>Create</strong> a new entry in the collection where the ID is assigned automatically by the collection. The ID created is typically returned by this operation.</td>
<td>Not generally used. Meaning defined as delete the entire collection.</td>
</tr>
<tr>
<th>Member URI such as <code>http://example.com/resources/cars/yxz123</code></th>
<td><strong>Retrieve</strong> the addressed member of the collection</td>
<td><strong>Update</strong> the addressed member of the collection or create it with a defined ID.</td>
<td>Not generally used.</td>
<td style="text-align:center;"><strong>Delete</strong> the addressed member of the collection.</td>
</tr>
</tbody>
</table>
<p><strong>What are WCF Rest Services?</strong></p>
<p>WCF Rest Services are normal WCF Services that have added functionality so that they can be consumed in a RESTful manner (URI vs URL, Usage of HTTTP Verbs, Usage of Different Data Transfer Formats like JSON, YAML, etc&#8230;). So for example, if you had a stock ticker web service that you built in WCF, instead of requiring the caller to use a heavy WSDL implementation and ASMX, you could just use the WCF Rest functionality to publish that service as a JSON service instead and have it consumed via AJAX without having to point to an ASMX resource.</p>
<p><strong>An example of WCF REST Service in .Net Framework 3.5:</strong></p>
<p><span>WCF 3.5 provides explicit support for RESTful communication using a new binding named WebHttpBinding.<br />
The below code shows how to expose a RESTful service</span></p>
<p>[ServiceContract]<br />
interface IStock<br />
{<br />
[OperationContract]<br />
[WebGet]<br />
int GetStock(string StockId);<br />
}</p>
<p><span>Microsoft has released a white paper in early 2007 comparing different distributed communication technologies with WCF. (including REST Services). </span></p>
<p><span>You can download this whitepaper from <a title="here" href="http://msdn.microsoft.com/en-us/library/bb310550.aspx" target="_blank">here</a> (http://msdn.microsoft.com/en-us/library/bb310550.aspx)</span></p>
<p><span>Though there are loads of information on REST these days, i found the following links to be very insightful and helpful in understanding this technology.<br />
</span></p>
<p><span><a title="How-to create a WCF Restful Service Video" href="http://channel9.msdn.com/pdc2008/TL35/" target="_blank">How-to create a WCF Restful Service Video</a> ( </span><span>http://channel9.msdn.com/pdc2008/TL35/)</span></p>
<p><span><a title="An Introduction to WCF Restful Web Services" href="http://msdn.microsoft.com/en-us/magazine/2009.01.servicestation.aspx#id0070034" target="_blank">An Introduction to WCF Restful Web Services</a> by Jon Flanders in MSDN Magazine  Jan 2009</span></p>
<p><span><a title="A Guide to Designing and Building Restful Web Services using WCF 3.5" href="http://msdn.microsoft.com/en-us/library/dd203052.aspx" target="_blank">A Guide to Designing and Building Restful Web Services using WCF 3.5 </a>by Aaron Skonnard on MSDN in Oct 2008<br />
</span></p>
<p>WCF Blog Series:</p>
<ul>
<li><a href="http://blogs.msdn.com/bags/archive/2008/05/28/rest-in-wcf-part-i-rest-overview.aspx" target="_blank">REST in WCF &#8211; Part I (REST Overview)</a></li>
<li><a href="http://blogs.msdn.com/bags/archive/2008/05/29/rest-in-wcf-part-ii-ajax-friendly-services-creating-the-service.aspx" target="_blank">REST in WCF &#8211; Part II (AJAX Friendly Services, Creating The Service)</a></li>
<li><a href="http://blogs.msdn.com/bags/archive/2008/05/30/rest-in-wcf-part-iii-ajax-friendly-services-consuming-the-service.aspx" target="_blank">REST in WCF &#8211; Part III (AJAX Friendly Services, Consuming The Service)</a></li>
<li><a href="http://blogs.msdn.com/bags/archive/2008/06/09/rest-in-wcf-part-iv-hi-rest-exposing-a-service-via-get-configuring-the-service.aspx" target="_blank">REST in WCF &#8211; Part IV (HI-REST &#8211; Exposing a service via GET &#8211; Configuring the service)</a></li>
<li><a href="http://blogs.msdn.com/bags/archive/2008/06/10/rest-in-wcf-part-v-hi-rest-exposing-a-service-via-get-the-servicecontract-and-implementation.aspx" target="_blank">REST in WCF &#8211; Part V (HI-REST &#8211; Exposing a service via GET &#8211; The ServiceContract and Implementation)</a></li>
<li><a href="http://blogs.msdn.com/bags/archive/2008/06/12/rest-in-wcf-part-vi-hi-rest-consuming-our-get-service-via-ajax.aspx" target="_blank">REST in WCF &#8211; Part VI (HI-REST &#8211; Consuming our GET service via AJAX)</a></li>
<li><a href="http://blogs.msdn.com/bags/archive/2008/06/12/rest-in-wcf-part-vii-hi-rest-implementing-insert-and-update.aspx" target="_blank">REST in WCF &#8211; Part VII (HI-REST &#8211; Implementing Insert and Update</a></li>
<li><a href="http://blogs.msdn.com/bags/archive/2008/06/14/rest-in-wcf-part-viii-hi-rest-implementing-delete.aspx" target="_blank">REST in WCF &#8211; Part VIII (HI-REST &#8211; Implementing Delete)</a></li>
<li><a href="http://blogs.msdn.com/bags/archive/2008/08/22/rest-in-wcf-part-ix-controlling-the-uri.aspx" target="_blank">REST in WCF &#8211; Part IX &#8211; Controlling the URI</a></li>
<li><a href="http://blogs.msdn.com/bags/archive/2008/08/28/rest-in-wcf-part-x-supporting-caching-and-conditional-get.aspx" target="_blank">REST in WCF &#8211; Part X &#8211; Supporting Caching and Conditional GET</a></li>
</ul>
<p>Screencast Series on Channel9:</p>
<ul>
<li><a href="http://channel9.msdn.com/posts/rojacobs/endpointtv-Controlling-the-URI-in-RESTful-WCF-with-Rob-Bagby/" target="_blank">endpoint.tv &#8211; Controlling the URI in RESTful WCF with Rob Bagby</a></li>
<li><a href="http://channel9.msdn.com/posts/RobBagby/deCast-Creating-a-HI-REST-GET-Service-with-WCF-35/">deCast &#8211; Creating a HI-REST GET Service with WCF 3.5</a></li>
<li><a href="http://channel9.msdn.com/posts/RobBagby/deCast-Consuming-a-HI-REST-GET-Service-From-Silverlight-2-Beta-2/">deCast &#8211; Consuming a HI-REST GET Service From Silverlight 2 (Beta 2)</a></li>
<li><a href="http://channel9.msdn.com/posts/rojacobs/endpointtv-Caching-and-Conditional-Get-with-Rob-Bagby/" target="_blank">endpoint.tv &#8211; Caching and Conditional Get with Rob Bagby</a></li>
<li><a href="http://channel9.msdn.com/posts/RobBagby/Building-an-AJAX-Friendly-WCF-Service/" target="_blank">deCast &#8211; Creating an AJAX-Friendly WCF Service</a></li>
<li><a href="http://channel9.msdn.com/posts/RobBagby/deCast-Creating-a-HI-REST-PUT-Service-That-Exposes-Insert-and-Update/" target="_blank">deCast &#8211; Creating a HI-REST PUT Service That Exposes Insert and Update</a></li>
<li><a href="http://channel9.msdn.com/posts/rojacobs/endpointtv-Securing-RESTful-services-with-ASPNET-Membership/" target="_blank">endpoint.tv &#8211; Securing RESTful services with ASP.NET Membership</a></li>
<li><a href="http://channel9.msdn.com/posts/rojacobs/endpointtv-Content-Negotiation-with-RESTful-services/" target="_blank">endpoint.tv &#8211; Content Negotiation with RESTful services</a></li>
<li><a href="http://channel9.msdn.com/posts/RobBagby/decast-Tunneling-a-PUT-through-POST-with-RESTful-WCF-Services/" target="_blank">deCast &#8211; Tunneling a PUT through POST with RESTful WCF</a></li>
</ul>
<p>MSDN WebCasts:</p>
<p><span><a title="REST and WCF 3.5" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&#38;EventID=1032387086&#38;CountryCode=US" target="_blank">REST and WCF 3.5 </a>- Adnan Masood (LEVEL 200)</span></p>
<p><a title="VS 2008,WCF and REST" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032379184&#38;EventCategory=3&#38;culture=en-US&#38;CountryCode=US">VS 2008, WCF and REST</a> &#8211; (Level 200)</p>
<p><a title="REST and ASP.Net MVC" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032392747&#38;EventCategory=5&#38;culture=en-US&#38;CountryCode=US" target="_blank">REST and ASP.Net MVC </a>- Brian Hitney (Level 200)</p>
<p><a title="REST and ADO.Net Services" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032392745&#38;EventCategory=5&#38;culture=en-US&#38;CountryCode=US" target="_blank">REST and ADO.Net Services</a> &#8211; Chad Brookes (Level 200)</p>
<p><a title="REST Developer Center on MSDN" href="http://msdn.microsoft.com/en-us/netframework/cc950529.aspx" target="_blank">REST Developer Center on MSDN</a></p>
<p><span>MSDN Code Samples:<br />
</span></p>
<p><span><a title="REST and POX" href="http://msdn.microsoft.com/en-us/library/aa395208.aspx" target="_blank">REST and POX</a> (http://msdn.microsoft.com/en-us/library/aa395208.aspx)</span></p>
<p>For further queries on troubleshooting and general advice, you can also check out <a title="REST Forum" href="http://forums.asp.net/1180.aspx">REST Forums</a> from MSDN.</p>
<p>Enjoy!</p>
<p><span><br />
</span></p>
<p><span><br />
</span></p>
<p><span><br />
</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Building a Simple WCF Service using Visual Studio 2005]]></title>
<link>http://tanveeryousuf.wordpress.com/2009/03/08/create_wcf_service/</link>
<pubDate>Sun, 08 Mar 2009 18:07:29 +0000</pubDate>
<dc:creator>tanveeryousuf</dc:creator>
<guid>http://tanveeryousuf.wordpress.com/2009/03/08/create_wcf_service/</guid>
<description><![CDATA[In this post, I am just going to keep it simple and show you how to build a simple WCF service in Vi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In this post, I am just going to keep it simple and show you how to build a simple WCF service in Visual Studio 2005, and how to host it on IIS.</p>
<p>Some .NET developers may believe that in order for them to build a WCF service, they would need Visual Studio 2008 instead of Visual Studio 2005. That is not true. You can very easily build a WCF service using Visual Studio 2005 as long as you have Microsoft .NET Framework 3.0 or above installed. However, I should mention that Visual Studio 2008 comes with WCF Service Application project template which of course would generate some code automatically and adds necessary references in the project with a web.config file.</p>
<p><strong>Creating a WCF service</strong></p>
<p><strong><span style="font-weight:normal;">In order to build a WCF service, you need to create a contract (interface) and a service type (implementation of the contract).</span> </strong></p>
<ol>
<li>Create a folder called <strong>TYProjects</strong> in your <strong>C</strong> drive.</li>
<li>Open Visual Studio 2005.</li>
<li>Create a Blank Solution and name it <strong>HelloWorld</strong> and save it in the <strong>C:\TYProjects </strong>folder.</li>
<li>Add a Class Library project to the solution called <strong>HelloWorldService</strong>.</li>
<li>Add a reference to <strong>System.ServiceModel</strong>.</li>
<li>Add an interface to the the <strong>HelloWorldService</strong> and name it as <strong>IHelloWorld</strong>.</li>
<li>Write the following code: <code> using System.ServiceModel;<br />
namespace HelloWorldService<br />
{<br />
public interface IHelloWorldService<br />
{<br />
string GetMessage();<br />
}<br />
}  </code></li>
<li>Add the <code>ServiceContract</code> attribute to the <strong>IHelloWorldService</strong> interface and <code>OpereationContract</code> attribute to the <strong>GetMessage()</strong> method:<br />
<code>using System.ServiceModel;<br />
namespace HelloWorld<br />
{<br />
[ServiceContract]<br />
public interface IHelloWorldService<br />
{<br />
[OperationContract]<br />
string GetMessage();<br />
}<br />
} </code></li>
<li>Add a class to the <strong>HelloWorldService </strong>project and name it <strong>HelloWorldServiceType</strong> and implement the <strong>IHelloWorldService</strong> contract:<br />
<code> namespace HelloWorldService<br />
{<br />
public class HelloWorldServiceType : IHelloWorldService<br />
{<br />
public string GetMessage()<br />
{<br />
return "Hello World!";<br />
}<br />
}<br />
} </code></li>
<li>Click on the Save All button to save all your changes.</li>
<li>Click on the Build Solution ooption from the Build menu to build the solution.</li>
</ol>
<p>As you saw, all it takes is to create a WCF service is to a contract (an interface) that uses ServiceContract and OperationContract attributes and a service type (a class) that implements the contract.</p>
<p><strong>Hosting a WCF service in IIS</strong></p>
<ol>
<li>Open Notepad and write the following markup:<br />
<span style="font-family:0;">&#60;%@ ServiceHost Language=&#8221;C#&#8221; Service=&#8221;HelloWorldService.HelloWorldServiceType&#8221; %&#62;</span></li>
<li>Save the file as <strong>HelloWorldService.svc</strong> in the <strong>C:\TYFolders\HelloWorld\HelloWorldService</strong> folder.</li>
<li>Add the <strong>HelloWorldService.svc</strong> file to the <strong>HelloWorldService</strong> project.</li>
<li>Now add <strong>web.config</strong> file to the <strong>HelloWorldService</strong> project.</li>
<li>Add the following configuration settings to the <strong>web.config</strong> file:<code> &#60;configuration&#62; &#60;system.serviceModel&#62;<br />
&#60;services&#62;<br />
&#60;service name="HelloWorldService.HelloWorldServiceType" behaviorConfiguration="WcfService1.Service1Behavior"&#62;<br />
&#60;endpoint address="HelloWorldServiceType" binding="wsHttpBinding" contract="HelloWorldService.IHelloWorldService"&#62;<br />
&#60;/endpoint&#62;<br />
&#60;/service&#62;<br />
&#60;/services&#62;<br />
&#60;behaviors&#62;<br />
&#60;serviceBehaviors&#62;<br />
&#60;behavior name="HelloWorldService.Service1Behavior"&#62; &#60;serviceMetadata httpGetEnabled="true"/&#62;<br />
&#60;/behavior&#62;<br />
&#60;/serviceBehaviors&#62;<br />
&#60;/behaviors&#62;<br />
&#60;/system.serviceModel&#62;<br />
&#60;/configuration&#62; </code></li>
<li>Open Project Properties Page of <strong>HelloWorldService</strong> project and under the Build tab, change the Output path from <strong>bin\Debug</strong> to <strong>bin\</strong>. This is necessary because IIS would require the HelloWorldService.dll to be in the bin folder not in the bin\Debug folder.</li>
<li>Open Internet Information Services console from the Control Panel &#62; Administrative Tools.</li>
<li>Create a Virtual Directory called <strong>HelloWorldService</strong> and point it to the following location: <strong>C:\TYProjects\HelloWorld\HelloWorldService</strong>. </li>
<li>Under the <strong>HelloWorldService</strong> virtual directory, right click the <strong>HelloWorldService.svc</strong> and select Browse. You should be able to see HelloWorldService page automatically generated by WCF in your default browser.In the autogenerated page, you can see the URL of the WSDL something like  <strong>http://localhost/HelloWorldService/HelloWorldService.svc?wsdl</strong>.  Using this URL, you can generate a proxy class and consume the service in any .NET application. </li>
</ol>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[nHibernate Tutorials for .Net!]]></title>
<link>http://techsavygal.wordpress.com/2009/03/02/nhibernate-tutorials-for-net/</link>
<pubDate>Mon, 02 Mar 2009 11:14:45 +0000</pubDate>
<dc:creator>techsavygal</dc:creator>
<guid>http://techsavygal.wordpress.com/2009/03/02/nhibernate-tutorials-for-net/</guid>
<description><![CDATA[Often these days, i find managers requesting developers to get their hands on Hibernate methodologie]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Often these days, i find managers requesting developers to get their hands on Hibernate methodologies to connect to various relational databases. As i was trying to check this out, i came across this very useful tutorial on <a class="aligncenter" title="nHibernate" href="http://www.hibernate.org/362.html#A2" target="_blank">nHibernate </a></p>
<p>@ http://www.hibernate.org/362.html</p>
<p>NHibernate handles persisting your .NET objects to and from an underlying relational database. Rather than you having to write SQL to get your objects in and out of the database, NHibernate takes care of this for you. Your code only needs to be concerned with your objects, NHibernate generates the SQL and makes sure that things end up in the correct tables and columns.</p>
<p>Enjoy!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Video: Getting started on Linq 3.5]]></title>
<link>http://techsavygal.wordpress.com/2009/03/02/video-getting-started-on-linq-35/</link>
<pubDate>Mon, 02 Mar 2009 10:38:20 +0000</pubDate>
<dc:creator>techsavygal</dc:creator>
<guid>http://techsavygal.wordpress.com/2009/03/02/video-getting-started-on-linq-35/</guid>
<description><![CDATA[Hi All, Watch the new video on Linq 3.5 from The Wahlin Group&#8230;watch their website for more vid]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hi All,</p>
<p>Watch the new video on <a href="http://weblogs.asp.net/dwahlin/archive/2009/03/01/video-getting-started-with-linq-in-net-3-5.aspx" target="_blank">Linq 3.5</a> from <a title="The Wahlin Group" href="http://www.thewahlingroup.com/" target="_blank">The Wahlin Group</a>&#8230;watch their website for more videos and video trainings&#8230;</p>
<p>Directly view the training video from here: http://thewahlingroup.com/CourseDetails.aspx?LINQ200-3</p>
<p>Enjoy!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Enable/Disable .Net controls (Security Tip)]]></title>
<link>http://sanzon.wordpress.com/2009/02/05/enabledisable-net-controls-security-tip/</link>
<pubDate>Thu, 05 Feb 2009 05:53:04 +0000</pubDate>
<dc:creator>sanzon</dc:creator>
<guid>http://sanzon.wordpress.com/2009/02/05/enabledisable-net-controls-security-tip/</guid>
<description><![CDATA[I was just browing around online and found a thread on asp.net&#8217;s forum talking about disabling]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I was just browing around online and found a thread on asp.net&#8217;s forum talking about disabling a textbox for security reasons.</p>
<p>Now, I&#8217;m always anal when it comes to security, double checking everything sever side and never assuming the page generated on the clientside will be the way I intended it on the way back.</p>
<p>For those who have ever thought of doing this as a quick solution, I&#8217;m sorry, but you&#8217;re wrong. All disabling controls do is create a friendly user interface where a user knows ahead of time they can&#8217;t edit it.</p>
<p>In any browser, such as firefox, with firebug, you can just back the code and reenable it and then alter the text and submit the form. if you failed to double check for changed and access rights, the person will have just hacked your site. Something any kid can do! So don&#8217;t do it! Use it only to make your site more friendly AND NOT for security reasons.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ADO.NET Entity Framework&hellip;listado de proveedores de terceros!]]></title>
<link>http://jcgonzalezmartin.wordpress.com/2009/01/27/adonet-entity-frameworklistado-de-proveedores-de-terceros/</link>
<pubDate>Tue, 27 Jan 2009 23:11:50 +0000</pubDate>
<dc:creator>Juan Carlos González Martín</dc:creator>
<guid>http://jcgonzalezmartin.wordpress.com/2009/01/27/adonet-entity-frameworklistado-de-proveedores-de-terceros/</guid>
<description><![CDATA[Como sabéis, durante los últimos meses se ha producido un goteo continuo de nuevos proveedores de te]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p align="justify">Como sabéis, durante los últimos meses se ha producido un goteo continuo de nuevos proveedores de terceros con soporte de terceros para ADO.NET Entity Framework. Por este motivo, Microsoft ha habilitado una lista de estos proveedores para facilitar su localización:</p>
<ul>
<li>
<div align="justify">En la <a href="http://www.microsoft.com/sqlserver/2008/en/us/ado-net-entity.aspx">parte dedicada a ADO.NET EF</a> dentro de la sección dedicada a SQL Server (los proveedores aparecen al final de la página).</div>
</li>
<li>
<div align="justify">En la <a href="http://msdn.microsoft.com/en-us/data/dd363565.aspx">página dedicada a ADO.NET EF en MSDN</a>.</div>
</li>
</ul>
<div align="center">
<table cellspacing="0" cellpadding="2" width="750" align="center" border="0">
<tbody>
<tr>
<td valign="top" width="375"><a href="http://jcgonzalezmartin.files.wordpress.com/2009/01/image69.png"><img title="image" style="display:inline;border-width:0;" height="148" alt="image" src="http://jcgonzalezmartin.files.wordpress.com/2009/01/image-thumb65.png?w=244&#038;h=148" width="244" border="0" /></a> </td>
<td valign="top" width="375"><a href="http://jcgonzalezmartin.files.wordpress.com/2009/01/image70.png"><img title="image" style="display:inline;border-width:0;" height="148" alt="image" src="http://jcgonzalezmartin.files.wordpress.com/2009/01/image-thumb66.png?w=244&#038;h=148" width="244" border="0" /></a> </td>
</tr>
</tbody>
</table></div>
</p>
<p align="justify">En cuanto al listado de proveedores, veréis que a día de hoy tenemos los siguientes con soporte para ADO.NET EF:</p>
<p align="justify"><a href="http://devart.com/news/2008/directs475.html"><img title="" alt="" src="http://i.msdn.microsoft.com/dd363565.devart_logo2(en-us,MSDN.10).png" align="left" /></a><a href="http://devart.com/news/2008/directs475.html">Devart</a>, que ofrece soporte para ADO.NET EF para BD’s Oracle, MySQl y PostgreSQL.     </p>
<p align="justify">&#160;</p>
<p align="justify"><a href="http://sqlite.phxsoftware.com/"><img title="" alt="" src="http://i.msdn.microsoft.com/dd363565.SQLite-Logo2(en-us,MSDN.10).png" align="left" /></a></p>
<p align="justify"><a href="http://sqlite.phxsoftware.com/">Phoenix Software Solutions</a>, con un proveedor específico de ADO.NET EF para SQLite.     </p>
<p align="justify">&#160; </p>
<p align="justify">&#160; </p>
<p align="justify"><a href="http://pgfoundry.org/frs/shownotes.php?release_id=1230"><img title="" alt="" src="http://i.msdn.microsoft.com/dd363565.Npgsql_logo(en-us,MSDN.10).png" align="left" /></a>     <br /><a href="http://pgfoundry.org/frs/shownotes.php?release_id=1230">Npgsql</a>, con un proveedor para PostgreSQL. </p>
<p align="justify">&#160; </p>
<p align="justify">&#160; </p>
<p align="justify"><a href="http://www.sybase.com/detail?id=1057559"><img title="" alt="" src="http://i.msdn.microsoft.com/dd363565.Sybase_logo(en-us,MSDN.10).png" align="left" /></a>     <br /><a href="http://www.sybase.com/detail?id=1057559">Sybase SQL Anywhere</a>, con soporte para BD’s SQL Anywhere a través de LINQ, eSQL y ADO.NET Data Services.     </p>
<p align="justify">&#160; </p>
<p align="justify">&#160; </p>
<p align="justify"><a href="http://www.ibm.com/developerworks/wikis/display/DB2/DB2%20and%20.NET%20FAQ"><img title="" alt="" src="http://i.msdn.microsoft.com/dd363565.IBM_logo(en-us,MSDN.10).png" align="left" /></a>     <br /><a href="http://www.ibm.com/developerworks/wikis/display/DB2/DB2%20and%20.NET%20FAQ">IBM</a>, con un proveedor preparado para BD’s DB2, Informix y U2.     </p>
<p align="justify">&#160; </p>
<p align="justify">&#160; </p>
<p align="justify"><a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAdoNet35Provider"><img title="" alt="" src="http://i.msdn.microsoft.com/dd363565.open_link153(en-us,MSDN.10).gif" align="left" /></a></p>
<p align="justify"><a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAdoNet35Provider">OpenLink Software</a>, con un proveedor para de modo nativo a datos Virtuoso(SQL, XML y RDF) y tablas de Virtuoso vinculadas mediante fuentes externas ODBC y JDBC </p>
<p align="justify">&#160; </p>
<p align="justify">&#160; </p>
<p align="justify"><a href="http://www.firebirdsql.org/index.php?op=files&#38;id=netprovider"><img title="" alt="" src="http://i.msdn.microsoft.com/dd363565.Firebird_logo(en-us,MSDN.10).png" align="left" /></a>     <br /><a href="http://www.firebirdsql.org/index.php?op=files&#38;id=netprovider">Firebird</a>, en versión beta, se trata de un proveedor de ADO.NET EF preparado para trabajar con BD’s firebird.     </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Installing .NET Framework 3.5 SP1 Causes Windows Setup Error]]></title>
<link>http://frontslash.wordpress.com/2009/01/09/installing-net-framework-35-sp1-causes-windows-setup-error/</link>
<pubDate>Fri, 09 Jan 2009 01:07:03 +0000</pubDate>
<dc:creator>Diogo Sousa</dc:creator>
<guid>http://frontslash.wordpress.com/2009/01/09/installing-net-framework-35-sp1-causes-windows-setup-error/</guid>
<description><![CDATA[For having my images up-to-date I started this week testing the deployment for .NET Framework 3.5 SP]]></description>
<content:encoded><![CDATA[For having my images up-to-date I started this week testing the deployment for .NET Framework 3.5 SP]]></content:encoded>
</item>
<item>
<title><![CDATA[LINQ For Beginners]]></title>
<link>http://aktripathi.wordpress.com/2009/01/08/linq-for-beginners/</link>
<pubDate>Thu, 08 Jan 2009 13:46:55 +0000</pubDate>
<dc:creator>aktripathi</dc:creator>
<guid>http://aktripathi.wordpress.com/2009/01/08/linq-for-beginners/</guid>
<description><![CDATA[  1.0 What is LINQ? LINQ stands for Language INtegrated Query. Means query language integrated with ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial,sans-serif;"><strong>1.0 What is LINQ?</strong></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial,sans-serif;">LINQ stands for <strong>L</strong>anguage <strong>IN</strong>tegrated <strong>Q</strong>uery. Means query language integrated with Microsoft .NET supporting languages i.e. C#.NET, VB.NET, J#.NET etc. Need not to write\ use explicit Data Access Layer.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial,sans-serif;">Writing Data Access Layer require much proficiency as a Data Access Layer should be capable of at least</span></p>
<ol style="margin-top:0;" type="1">
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial,sans-serif;">Efficient Extraction (Select) \ Add\ Update\ Delete of data.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial,sans-serif;">Support to multiple database, ORACLE\ SQL Server\ MySQL etc.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial,sans-serif;">Transaction Management.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial,sans-serif;">Logging\ Tracing</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial,sans-serif;">And many more.</span></li>
</ol>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial,sans-serif;">LINQ enables you to use all the above features in very simple and efficient way with very less codes.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial,sans-serif;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial,sans-serif;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial,sans-serif;"><strong>2.0 Why LINQ? \ What are benefits of LINQ?</strong></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial,sans-serif;">A simple architecture of any software is like </span></p>
<div id="attachment_5" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-5" title="archlinqandwithoutlinq" src="http://aktripathi.wordpress.com/files/2009/01/archlinqandwithoutlinq.jpg" alt="LINQ Vs Without LINQ" width="450" height="274" /><p class="wp-caption-text">LINQ Vs Without LINQ</p></div>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&#34;"><strong>3.0 What is LINQ entity class?</strong></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:&#34;">A .NET class(s) which maps you to\ from database. This class provides you flexibility to access database in very efficient way.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:&#34;">Usually LINQ entity class contains that many number of partial classes how many tables are present into the database. Each partial class contains properties same as columns present into the database table. Instance of the entity class acts as a single row.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"> </p>
<p class="MsoNormal" style="text-align:justify;margin:0;"> </p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:&#34;"><strong>4.0 How to generate LINQ Entity class?</strong></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:&#34;">.NET provides a simple utility SQLMetal.exe to generate the LINQ Entity class.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span><span style="font-size:10pt;color:black;font-family:&#34;">By default, the SQLMetal file is located at</span></span><span><span style="font-size:10pt;color:black;font-family:&#34;"> </span></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span class="parameter"><em><span style="font-size:10pt;color:black;font-family:&#34;">drive</span></em></span><span><span style="font-size:10pt;color:black;font-family:&#34;">:\Program Files\Microsoft SDKs\Windows\v</span></span><span class="parameter"><em><span style="font-size:10pt;color:black;font-family:&#34;">n.nn</span></em></span><span><span style="font-size:10pt;color:black;font-family:&#34;">\bin.</span></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span><span style="font-size:10pt;color:black;font-family:&#34;">Follow the steps below to generate LINQ entity class-</span></span></p>
<ol style="margin-top:0;" type="1">
<li class="MsoNormal"><span><span style="font-size:10pt;font-family:&#34;">Start &#8211; &#62; Run</span></span></li>
<li class="MsoNormal"><span><span style="font-size:10pt;color:black;font-family:&#34;">Write cmd and click on “OK” button.</span></span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:&#34;">Go to the location <span class="parameter"><em><span style="color:black;">drive</span></em></span><span><span style="color:black;">:\Program Files\Microsoft SDKs\Windows\v</span></span><span class="parameter"><em><span style="color:black;">n.nn</span></em></span><span><span style="color:black;">\bin</span></span></span></li>
<li class="MsoNormal"><span><span style="font-size:10pt;color:black;font-family:&#34;">Type </span></span></li>
</ol>
<p class="MsoNormal" style="text-align:justify;margin:0 0 0 .25in;"><span><span style="font-size:10pt;color:black;font-family:&#34;">sqlmetal /server:&#60;SERVER NAME&#62; /database:&#60;DATABASE NAME&#62; /namespace:&#60;NAMESPASE&#62; /code:&#60;GENERATED CODE LOCATION&#62; / language:csharp</span></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0 0 0 .25in;"><span><strong><span style="font-size:10pt;color:black;font-family:&#34;"> </span></strong></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0 0 0 .25in;"><span><strong><span style="font-size:10pt;color:black;font-family:&#34;">example:</span></strong></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0 0 0 .25in;"><span><strong><span style="font-size:10pt;color:black;font-family:&#34;">sqlmetal /server:myserver /database:northwind /namespace:nwind /code:nwind.cs /language:csharp</span></strong></span></p>
<div id="attachment_6" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-6" title="generateentityclass" src="http://aktripathi.wordpress.com/files/2009/01/generateentityclass.jpg" alt="SQLMetal to generate LINQ entity class" width="450" height="227" /><p class="wp-caption-text">SQLMetal to generate LINQ entity class</p></div>
<p><strong>Start using LINQ:</strong></p>
<p>Suppose we have a simple database containing three tables with Structure/ Relations as follows-</p>
<div id="attachment_18" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-18" title="databasediagram" src="http://aktripathi.wordpress.com/files/2009/01/databasediagram.jpg" alt="Relational Database Diagram For Sample Database" width="450" height="250" /><p class="wp-caption-text">Relational Database Diagram For Sample Database</p></div>
<ul>
<li> Generate the LINQ Entity class for the above database (Use step 4.0 to generate entity class)</li>
<li>Add the newly created entity class to your project. For a better architecture LINQ Entity class should be placed into separate class library.</li>
<li>Create instance of the LINQ Entity class. There are various overloads of LINQ entity class.</li>
</ul>
<p>Use the overload of the entity class which accepts Connection String as an argument.</p>
<p><strong>1.0 How to select a record?</strong></p>
<p>private LinqEntityClass objEntityClass = new LinqEntityClass(Configurations.ConnectionString);</p>
<p><strong>1.1 How to select all Columns and all the records?</strong></p>
<p><img class="alignleft size-full wp-image-20" title="selectrecord" src="http://aktripathi.wordpress.com/files/2009/01/selectrecord.jpg" alt="selectrecord" width="450" height="15" /></p>
<p> </p>
<p><strong>1.2 How to use where clause?</strong></p>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-29" title="selectwhere1" src="http://aktripathi.wordpress.com/files/2009/01/selectwhere1.jpg?w=300" alt="selectwhere1" width="400" height="50" /></p>
<p><strong>1.3 How to select particular columns only?</strong></p>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-30" title="selectselected" src="http://aktripathi.wordpress.com/files/2009/01/selectselected.jpg?w=300" alt="selectselected" width="450" height="80" /></p>
<p><strong>1.4 Display EmpId, FirstName, Designation and Department of the employee.</strong></p>
<p>If we want to select the above record without using LINQ then we will have to Join Employee table with Department and Designation tables and the Sql will look like</p>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-31" title="traditionalquery" src="http://aktripathi.wordpress.com/files/2009/01/traditionalquery.jpg?w=300" alt="traditionalquery" width="450" height="114" /></p>
<p>With the help of LINQ we can obtain the same result very easily</p>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-32" title="linqqueryforlookups" src="http://aktripathi.wordpress.com/files/2009/01/linqqueryforlookups.jpg?w=300" alt="linqqueryforlookups" width="450" height="115" /></p>
<p><strong>1.5 How to use alias for any column name?</strong></p>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-51" title="columnalias2" src="http://aktripathi.wordpress.com/files/2009/01/columnalias2.jpg?w=300" alt="columnalias2" width="400" height="80" /></p>
<p><strong>1.6 How to bind LINQ data with GridView?</strong></p>
<p><img class="aligncenter size-full wp-image-53" title="gridviewbinding" src="http://aktripathi.wordpress.com/files/2009/01/gridviewbinding.jpg" alt="gridviewbinding" width="450" height="131" /></p>
<p> </p>
<p><strong>1.7 How to use Joins?</strong></p>
<p><img class="aligncenter size-full wp-image-54" title="linqjoin" src="http://aktripathi.wordpress.com/files/2009/01/linqjoin.jpg" alt="linqjoin" width="450" height="123" /></p>
<p> </p>
<p><strong>2.0 How to Update a Record?</strong></p>
<p><strong><img class="aligncenter size-full wp-image-58" title="linqupdate1" src="http://aktripathi.wordpress.com/files/2009/01/linqupdate1.jpg" alt="linqupdate1" width="450" height="39" /><br />
</strong></p>
<p><strong></strong></p>
<p><strong>3.0 How to Delete a Record?</strong></p>
<p><strong><img class="aligncenter size-full wp-image-57" title="linqdelete" src="http://aktripathi.wordpress.com/files/2009/01/linqdelete.jpg" alt="linqdelete" width="450" height="62" /></strong></p>
<p><strong>4.0 How to use Transactions with LINQ?</strong></p>
<p><strong><img class="aligncenter size-full wp-image-59" title="linqtransaction" src="http://aktripathi.wordpress.com/files/2009/01/linqtransaction.jpg" alt="linqtransaction" width="450" height="550" /></strong></p>
<p><strong>5.0 How to Iterate / Loop through the records?</strong></p>
<p><img class="aligncenter size-full wp-image-62" title="linqiteration1" src="http://aktripathi.wordpress.com/files/2009/01/linqiteration1.jpg" alt="linqiteration1" width="425" height="174" /></p>
<p><strong><span>6.0 How to execute or use Stored Procedures?</span></strong></p>
<p class="MsoNormal"><strong><span>6.1 Generate Entity Class for Stored Procedures</span></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></p>
<p class="MsoNormal" style="text-align:left;"><span><span style="font-weight:normal;">In order to use Stored Procedures using LINQ you need to create entity classes for the stored procedures in the same way created the entity class for the tables.</span></span></p>
<p class="MsoNormal"><span><span style="font-weight:normal;">Follow the steps below to create LINQ Entity class for Stored Procedures</span></span></p>
<ul>
<li><span style="font-weight:normal;">Start &#8211; &#62; Run</span></li>
<li><span style="font-weight:normal;">Write cmd and click on “OK” button.</span></li>
<li><span><span style="font-weight:normal;">Go to the location</span><span><span style="font-weight:normal;"> </span></span></span><em><span><span style="font-style:normal;">drive</span></span></em><span>:\Program Files\Microsoft SDKs\Windows\v<em><span><span style="font-style:normal;">n.nn</span></span></em>\bin</span></li>
<li><span style="font-weight:normal;">Type</span></li>
</ul>
<p class="MsoNormal"><img class="aligncenter size-full wp-image-68" title="storedprocentityclass" src="http://aktripathi.wordpress.com/files/2009/01/storedprocentityclass.jpg" alt="storedprocentityclass" width="450" height="227" /></p>
<p class="MsoNormal"><span>sqlmetal /server:<span>&#60;SERVER NAME&#62;</span> /database:<span>&#60;DATABASE NAME&#62;</span> <span>/sprocs</span> /namespace:<span>&#60;NAMESPASE&#62;</span> /code:<span>&#60;GENERATED CODE LOCATION&#62;</span> / language:csharp</span></p>
<p class="MsoNormal"><span><em>Note:</em></span></p>
<p class="MsoNormal"><span><em><span style="font-style:normal;font-weight:normal;"><strong><em><span><span>1.<span>       </span></span></span></em></strong><em><span>If you have created Database Diagram then above command will fail to generate the entity class for the Stored Procedures. You need to create a new table into your database with the name <strong>dtproperties</strong>. This table will contain following columns</span></em></span></em></span></p>
<p></strong></p>
<p> </p>
<p class="MsoNormal"><strong><em><span><span>2.<span>       </span></span></span></em></strong><em><span>Above class will contain system stored procedures also. So far it was not possible avoid including system Stored Procedures. May be into recent releases of SQLMetal.exe we may get this flexibility.</span></em></p>
<p class="MsoNormal"><strong><em><span><span>3.<span>       </span></span></span></em></strong><em><span>Using /sprocs will generate the complete entity class which will include Stored Procedures as well as database tables.</span></em></p>
<p><img class="aligncenter size-full wp-image-69" title="dtproperties" src="http://aktripathi.wordpress.com/files/2009/01/dtproperties.jpg" alt="dtproperties" width="318" height="121" /></p>
<p class="MsoNormal"><strong><span>6.2 Execute Stored Procedures</span></strong></p>
<p class="MsoNormal"><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></p>
<p class="MsoNormal"><span><span style="font-weight:normal;">Now your newly created entity class will contain a method with the name same as the stored procedure name. You simply need to call the method</span></span></p>
<p></strong></p>
<p><img class="aligncenter size-full wp-image-71" title="linqstoredproc1" src="http://aktripathi.wordpress.com/files/2009/01/linqstoredproc1.jpg" alt="linqstoredproc1" width="426" height="136" /></p>
<p>In Progres&#8230;&#8230;.</p>
<p>(Complete article would be available within couple of days. Sorry for <span><span style="font-size:10pt;color:black;font-family:&#34;">Inconvenience &#8230;&#8230;&#8230;.</span></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ASP.NET 3.5 - The Entity Framework in .NET Framework 3.5]]></title>
<link>http://seekdotnethosting.wordpress.com/2009/01/06/aspnet-35-the-entity-framework-net-framework-35/</link>
<pubDate>Tue, 06 Jan 2009 10:24:04 +0000</pubDate>
<dc:creator>admin</dc:creator>
<guid>http://seekdotnethosting.wordpress.com/2009/01/06/aspnet-35-the-entity-framework-net-framework-35/</guid>
<description><![CDATA[The Entity Framework in ASP.NET 3.5 The Entity Framework is an evolution of the existing suite of AD]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h3>The Entity Framework in <a href="http://www.asp.net">ASP.NET 3.5</a></h3>
<p>The Entity Framework is an evolution of the existing suite of ADO.NET data access technologies. The Entity Framework enables developers to program against relational databases in according to application-specific domain models instead of the underlying database models.</p>
<div id="attachment_183" class="wp-caption aligncenter" style="width: 178px"><a href="http://seekdotnethosting.files.wordpress.com/2009/01/visual-studio.gif"><img class="size-full wp-image-183" title="visual-studio" src="http://seekdotnethosting.wordpress.com/files/2009/01/visual-studio.gif" alt="ASP.NET 3.5 with Microsoft Visual Studio" width="168" height="97" /></a><p class="wp-caption-text">ASP.NET 3.5 with Microsoft Visual Studio</p></div>
<p>The Entity Framework introduces some additional features, including support for new SQL Server 2008 types, default graph serialization of Entities, and the Entity Data Source. This release of the Entity Framework supports the new date and file stream capabilities in SQL Server 2008. The graph serialization work helps developers who want to build Windows Communication Foundation (WCF) services that model full graphs as data contracts. The Entity Data Source provides a traditional data source experience for ASP.NET Web application builders who want to work with the Entity Framework.</p>
<p>The ADO.NET Data Services Framework consists of a combination of patterns and libraries, which enable data to be exposed as a flexible REST (Representational State Transfer)-based data service that can be consumed by Web clients in a corporate network or across the Internet. The ADO.NET Data Services Framework makes data service creation over any data source.</p>
<p>Host your ASP.NET 3.5 / .net framework 3.5 web applications with SeekDotNet.com &#8211; The leading <a title="asp.net hosting" href="http://www.seekdotnet.com">ASP.NET web hosting</a> provider of <a title="asp.net 3.5 hosting" href="http://www.seekdotnet.com/aspnet35hosting.aspx">ASP.NET 3.5 hosting</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ASP.NET 3.5 - Fixtures in .NET Framework 3.5]]></title>
<link>http://seekdotnethosting.wordpress.com/2008/12/26/aspnet-35-fixtures-in-net-framework-35/</link>
<pubDate>Fri, 26 Dec 2008 09:27:38 +0000</pubDate>
<dc:creator>admin</dc:creator>
<guid>http://seekdotnethosting.wordpress.com/2008/12/26/aspnet-35-fixtures-in-net-framework-35/</guid>
<description><![CDATA[.NET Framework version 3.5 Service Pack 1 provides the following new features and improvements: 1) P]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h3><a title="asp.net 3.5" href="http://www.asp.net/Downloads/vs2008/">.NET Framework version 3.5</a> Service Pack 1 provides the following new features and improvements:</h3>
<p>1) Performance improvements to WPF (Windows Presentation Foundation), including a faster startup time and improved performance for Bitmap effects. Additional functionality for WPF includes better support for line of business applications, native splash screen support, DirectX pixel shader support, and the new WebBrowser control.</p>
<p>2) LINQ to SQL includes new support for the new date and file stream capabilities in SQL Server 2008.</p>
<p>3) Windows Communication Foundation now makes the DataContract Serializer easier to use by providing improved interoperability support, enhancing the debugging experience in partial trust scenarios, and extending syndication protocol support for wider usage in Web 2.0 applications.</p>
<p>4) The .NET Framework Data Provider for SQL Server (SqlClient) adds new support for file stream and sparse column capabilities in SQL Server 2008.</p>
<p>5) ASP.NET Dynamic Data, which provides a rich scaffolding framework that enables rapid data driven development without writing code, and a new addition to ASP.NET AJAX that provides support for managing browser history (back button support).</p>
<p>Visit <a title="asp.net web hosting" href="http://www.seekdotnet.com">http://www.seekdotnet.com</a>, the provider of <a title="asp.net 3.5 hosting" href="http://www.seekdotnet.com/aspnet35hosting.aspx">ASP.NET 3.5 hosting</a> plans with great and dedicated supports.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows Açılışını Hızlandırın]]></title>
<link>http://orhande.wordpress.com/2008/12/23/windows-acilisini-hizlandirin/</link>
<pubDate>Tue, 23 Dec 2008 11:38:44 +0000</pubDate>
<dc:creator>ORHAN KADOĞLU</dc:creator>
<guid>http://orhande.wordpress.com/2008/12/23/windows-acilisini-hizlandirin/</guid>
<description><![CDATA[Başlangıçta otomatik olarak işleme geçen onlarca uygulama yüzünden işletim sisteminizin açılışı yava]]></description>
<content:encoded><![CDATA[Başlangıçta otomatik olarak işleme geçen onlarca uygulama yüzünden işletim sisteminizin açılışı yava]]></content:encoded>
</item>

</channel>
</rss>
