<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programmazione Web &#187; ASP.net</title>
	<atom:link href="http://www.programmazione-web.com/categorie/microsoft-asp-net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.programmazione-web.com</link>
	<description>il Blog open degli sviluppatori del web!</description>
	<lastBuildDate>Tue, 10 Nov 2009 21:04:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Passare oggetti javascript a ASP.net web services</title>
		<link>http://www.programmazione-web.com/passare-oggetti-javascript-asp-net-web-services.php</link>
		<comments>http://www.programmazione-web.com/passare-oggetti-javascript-asp-net-web-services.php#comments</comments>
		<pubDate>Sun, 08 Nov 2009 15:37:14 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=315</guid>
		<description><![CDATA[Passare strutture dati e oggetti aweb services Microsoft ASP.net implementando funzionalità asincrone AJAX. Esporre web services lato client utilizzando lo script manager diventa molto semplice]]></description>
			<content:encoded><![CDATA[<p>Per chi sviluppa  <strong>applicazioni AJAX</strong> avanzate usando il <strong>framework Microsoft ASP.NET</strong> sa che è possibile <strong>esporre facilmente web services lato client</strong> utilizzando lo <strong>ScriptManager</strong>, ovvero è possibile richiamarli comodamente tramite javascript utilizzando chiamate a metodi omonimi. Questa funzionalità è senza dubbio parecchio comoda, soprattutto per chi sa che questi automatismi non sono così immediati programmando ad esempio in <strong>php</strong>, dove per fare richieste javascript a pagine web bisogna utilizzare costrutti e quindi crearsi tutto il codice di interfacciamento a metodi/pagine server side.</p>
<p>Come possiamo vedere da questo tutorial: <a href="http://www.asp.net/ajax/documentation/live/Tutorials/ExposingWebServicesToAJAXTutorial.aspx" target="_blank">Exposing Web Services to Client Script in ASP.net AJAX</a> è semplice creare una classe che estende <strong>System.web.services.Webservice</strong>, contenente metodi che effettuano logiche server side e possono restituire dati lato client, e implementare funzionalità asincrone (AJAX) in modo molto naturale.</p>
<p>Al di là di questo aspetto (se non lo conoscete potete approfondirlo dall&#8217;articolo sopra linkato) che sostanzialmente riduce le tempistiche di sviluppo di callback asincrone, volevo affrontare qui in questo articoletto la possibilità di <strong>passare e restituire oggetti strutturati tramite web services</strong> per poi ritrovaseli nello stesso modo sia lato client sia lato server.</p>
<p>E&#8217; infatti possibile definire una funzione callback javascript lato client che richiama un metodo web service e passargli l&#8217;oggetto objParams per poi elaborarlo lato server. Qui sotto un semplice esempio scritto sul momento:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> callback_sum<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> objParams = <span class="kw2">new</span> Object<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">objParams .<span class="me1">x</span> = <span class="nu0">2</span>;</div>
</li>
<li class="li1">
<div class="de1">objParams .<span class="me1">y</span> = <span class="nu0">3</span>;</div>
</li>
<li class="li1">
<div class="de1">objParams.<span class="me1">z</span> = <span class="nu0">0</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">SimpleWebService.<span class="me1">doSum</span><span class="br0">&#40;</span>objParams, callback_sum_success, callback_sum_fail<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> callback_sum_success<span class="br0">&#40;</span>res<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">alert</span><span class="br0">&#40;</span>res.<span class="me1">z</span><span class="br0">&#41;</span>; <span class="co1">//5</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//gestire eventuali exception</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> callback_sum_fail<span class="br0">&#40;</span>ex<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//ex._message;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
</ol>
</div>
<p>Lato server dobbiamo definire lo stesso oggetto (chiamato Sum) con le stesse proprietà dell&#8217;oggetto client side. N.B. Nell&#8217;esempio uso VB.net ma vale lo stesso in c#.net</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">Public</span> Class SimpleWebService</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Inherits System.<span class="me1">Web</span>.<span class="me1">Services</span>.<span class="me1">WebService</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;webmethod <span class="br0">&#40;</span><span class="kw1">True</span><span class="br0">&#41;</span>&gt; _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">Public</span> <span class="kw1">Function</span> doSum<span class="br0">&#40;</span>ByVal sumObj <span class="kw1">As</span> <span class="kw1">Sum</span><span class="br0">&#41;</span> <span class="kw1">As</span> <span class="kw1">Sum</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sumObj.<span class="me1">z</span> = sumObj.<span class="me1">x</span> + sumObj.<span class="me1">y</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> sumObj</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">End</span> <span class="kw1">Function</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">Public</span> Class <span class="kw1">Sum</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Public</span> x <span class="kw1">As</span> <span class="kw1">Integer</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Public</span> y <span class="kw1">As</span> <span class="kw1">Integer</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Public</span> z <span class="kw1">As</span> <span class="kw1">Integer</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">End</span> Class</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">End</span> Class</div>
</li>
<li class="li1">
<div class="de1">&lt;/webmethod&gt;</div>
</li>
</ol>
</div>
<p>Come possiamo notare con questo metodo possiamo veramente sbizzarrirci a passare dei dati complessi da client a server e da server a client, migliorando sicuramente anche l&#8217;estendibilità e la chiarezza del codice, e aumentando a piacere il numero di parametri senza variare la firma del metodo del web service..ecc<br />
Esistono però dei limiti sulle tipologie di dati più complessi tipici dei linguaggi moderni, ma rimando ad approfondimenti sui prossimi articoli..</p>
<p><strong>Rifermenti:</strong><br />
<a href="http://http://www.asp.net/ajax/documentation/live/Tutorials/ExposingWebServicesToAJAXTutorial.aspx">http://www.asp.net/ajax/documentation/live/Tutorials/ExposingWebServicesToAJAXTutorial.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/passare-oggetti-javascript-asp-net-web-services.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft scommette su MVC per ASP.net</title>
		<link>http://www.programmazione-web.com/microsoft-scommette-su-mvc-per-asp-net.php</link>
		<comments>http://www.programmazione-web.com/microsoft-scommette-su-mvc-per-asp-net.php#comments</comments>
		<pubDate>Sun, 16 Aug 2009 12:30:34 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=244</guid>
		<description><![CDATA[Microsoft  scommette sul pattern architetturale MVC per ASP.net
Non ci sono più dubbi.. dopo quasi un anno di sviluppo che ha visto nascere la prima versione di framework in grado di aggiungere il supporto a MVC (Model-View-Controller) all&#8217;interno delle applicazioni web basate sul .NET Framework (ASP.net MVC 1.0).. Microsoft continua a scommettere su questo pattern architetturale [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Microsoft  scommette sul pattern architetturale MVC per ASP.net</strong></p>
<p>Non ci sono più dubbi.. dopo quasi un anno di sviluppo che ha visto nascere la prima versione di <strong>framework </strong>in grado di aggiungere il <strong>supporto a MVC (Model-View-Controller) </strong>all&#8217;interno delle applicazioni web basate sul <strong>.NET Framework</strong> (<strong>ASP.net MVC 1.0</strong>).. Microsoft continua a scommettere su questo <strong>pattern architetturale</strong> ormai tanto apprezzato dai programmatori del futuro, coronandolo a tutti gli effetti come lo standard per lo<strong> sviluppo dell&#8217;architettura di una web application</strong>.</p>
<p>Il 31 luglio 2009 è uscita la prima preview della nuova versione del supporto <strong>ASP.NET MVC 2.0</strong>, che oltre a rendere stabile il codice preesistente contiene molte nuove funzionalità soprattutto concentrare sulla semplificazione dello sviluppo e la potenza delle view e la sua interazione con il model.</p>
<p>Il <strong>supporto MVC</strong> sarà incluso in modo nativo <strong>ASP.NET 4.0 e in VS2010</strong>, e pare che sarà garantito comunque anche il supporto al framework<strong> ASP.NET 3.5 e VS2008</strong>.</p>
<p><strong><br />
RIFERIMENTI:<br />
</strong><a title="ASP.net MVC 2 preview" href="http://weblogs.asp.net/scottgu/archive/2009/07/31/asp-net-mvc-v2-preview-1-released.aspx" target="_blank">http://weblogs.asp.net/scottgu/archive/2009/07/31/asp-net-mvc-v2-preview-1-released.aspx</a><br />
<a title="Download Microsoft ASP.net MVC 2 " href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=d34f9eaa-fcbe-4e20-b2fd-a9a03de7d6dd" target="_blank">http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=d34f9eaa-fcbe-4e20-b2fd-a9a03de7d6dd</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/microsoft-scommette-su-mvc-per-asp-net.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
