<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>ASP.NET</title>
        <link>http://blogs.ugidotnet.org/martinobordin/category/ASP.NET.aspx</link>
        <description>My adventures in the ASP.NET world</description>
        <language>it</language>
        <copyright>Martino Bordin</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Accedere a siti su IIS Express dall&amp;rsquo;esterno</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2017/01/04/accedere-a-siti-su-iis-express-dallrsquoesterno.aspx</link>
            <description>Come sapete non è possibile, salvo configurazioni un pò macchinose, accedere a siti ospitati su IIS Express dall'esterno (altri PC\VM\dispositivi).

Esiste tuttavia un modo molto più semplice, che richiede l’installazione di un proxy via NPM npm install -g iisexpress-proxy Una volta installato, basta eseguire il comando  iisexpress-proxy 51123 to 3000

Dove 

51123 è la porta IIS a cui il sito è raggiungibile (che è dinamica) 
3000 è la porta al quale il sito risponderà all’esterno, usando l’ip della scheda di rete primaria.
Se l’ip del mio PC è 192.168.230.126, Il sito sarà ora raggiungibile dall’esterno all’indirizzo: http://192.168.230.126:3000

Su GitHub trovate i dettagli del progetto.&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/102318.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2017/01/04/accedere-a-siti-su-iis-express-dallrsquoesterno.aspx</guid>
            <pubDate>Wed, 04 Jan 2017 17:40:57 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2017/01/04/accedere-a-siti-su-iis-express-dallrsquoesterno.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/102318.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/102318.aspx</trackback:ping>
        </item>
        <item>
            <title>Javascript e parsing di QueryString..</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2013/08/28/javascript-e-parsing-di-querystring.aspx</link>
            <description>Oggi mi sono trovato a risolvere un'attività relativamente semplice, ma che in realtà merita un post al riguardo in quanto nasconde alcuni problemi alquanto "subdoli".
Sostanzialmente dovevo costruire, via Javascript, un URL con parametri in QueryString da dare "in pasto" ad una window.open() ().
Ebbene, i "problemil" sono sostanzialmente:

    encoding dei valori dei parametri\ (possono contenere &amp;amp;, spazi, etc)
    le funzioni native per gestire la (de)codifica delle stringhe sono inutili (vedi qui)
    ogni browser interpreta il tutto a modo suo (anche con comportamenti differenti da versione a versione dello stesso)

Come fare quindi? La soluzione è sempre la stessa..quando si parla di sviluppo web mai dimenticare JQuery!
Esiste infatti una bellissima funzione $.param() che permette di serializzare correttamente un oggetto, in modo da essere compatibile con il formato atteso dalla QueryString!
 
ES:

 
&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/101650.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2013/08/28/javascript-e-parsing-di-querystring.aspx</guid>
            <pubDate>Wed, 28 Aug 2013 17:10:19 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2013/08/28/javascript-e-parsing-di-querystring.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/101650.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/101650.aspx</trackback:ping>
        </item>
        <item>
            <title>Visualizzare il Viewmodel di KnockoutJS</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2013/04/17/visualizzare-il-viewmodel-di-knockoutjs.aspx</link>
            <description>Ultimamente mi sto dilettando su un progetto che utilizza ASP.NET MVC in accoppiata con KnockoutJs.
Si tratta di un'applicazione Single-Page che, tramite AJAX, va a costruire dinamicamente il ViewModel Knockout e che quindi, a seconda della navigazione compiuta dall'utente tramite richieste multiple e asincrone, può diventare "grande" a piacere e difficilmente debuggabile.
Mi è quindi tornato utile questo snippet, che permette di visualizzare lo stato attuale del ViewModel, mostrando tutte le proprietà presenti e i relativi valori, in formato json: 
 


&amp;lt;div style="border: 2px dashed red"&amp;gt; 
   &amp;lt;h1&amp;gt;KnockoutJS ViewModel Viewer:&amp;lt;/h1&amp;gt;
 &amp;lt;div data-bind="text: ko.toJSON($root)"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
  
Questo un esempio di quanto verrà stampato a video:
 &lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/101510.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2013/04/17/visualizzare-il-viewmodel-di-knockoutjs.aspx</guid>
            <pubDate>Wed, 17 Apr 2013 11:20:36 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2013/04/17/visualizzare-il-viewmodel-di-knockoutjs.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/101510.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/101510.aspx</trackback:ping>
        </item>
        <item>
            <title>Sviluppare applicazioni mobile con ASP.NET MVC3</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2011/09/22/sviluppare-applicazioni-mobile-con-asp.net-mvc3.aspx</link>
            <description>Come tutti sapete, la fruizione di un sito web non è più esclusiva di dispositivi Desktop, affiancati oramai da device quali smartphone e tablet di vario tipo.  Offrire una User Experience degna di tale nome anche per gli utenti che accedono ai nostri siti con questi dispositivi è diventata quindi una priorità.  Il team di ASP.NET fornirà con MVC 4 pieno supporto al mobile, e sono già disponibili esempi che illustrano le funzionalità della prossima versione: ASP.NET MVC 4 Mobile Features.  In MVC3 è possibile generare pagine ottimizzate seguendo i seguenti passaggi.     Create un progetto MVC3 (usando indifferentemente Razor o ASPX);     Scaricate, via NuGet, il package MobileViewEngines(eventualmente quello contenente i Sample, che creerà delle pagine di esempio). Il package contiene i file MobileCapableRazorViewEngine e MobileCapableWebFormViewEngine (sia cs che vb). Come lasciano intuire i nomi, sono l’implementazione di 2 ViewEngine basati su Razor e WebForm in grado di renderizzare viste diverse in base al dispositivo che sta richiedendo la pagina. Per essere utilizzati dal runtime di ASP.NET è necessario registrarli nel file global.asax in questo modo:        protected void Application_Start() {     AreaRegistration.RegisterAllAreas();       RegisterGlobalFilters(GlobalFilters.Filters);     RegisterRoutes(RouteTable.Routes);       ViewEngines.Engines.Insert(0, new MobileCapableRazorViewEngine());     ViewEngines.Engines.Insert(0, new MobileCapableWebFormViewEngine()); }         Scaricate, sempre via NuGet, il package 51Degrees. Questo package, come recita la descrizione, rileva i dispositivi mobili, fornisce informazioni dettagliate su questi ed effettua il redirect verso le pagine Web ottimizzate per il mobile. Quest’ultimo passaggio, tuttavia, verrà effettuato dal nostro MobileViewEngine e pertanto va rimosso. Per fare questo basta cancellare il tag redirect presente nel file 51Degrees.mobi.config nella cartella App_Data (il file è ben documentato, dategli una letta!).          &amp;lt;redirect firstRequestOnly="true"            mobileHomePageUrl="~/Mobile/Default.aspx"            timeout="20"            devicesFile="~/App_Data/Devices.dat"            mobilePagesRegex="/Mobile/"&amp;gt;   &amp;lt;/redirect&amp;gt;           A questo punto possiamo iniziare a creare le View ottimizzate per dispositivi mobile (utilizzando jQuery mobile e quant’altro) semplicemente inserendo il suffisso Mobile nel nome (es: Index.Mobile.cshtml o Index.Mobile.aspx ).       Ecco quindi il risultato visualizzato su vari device:    PS: Per testare le pagine su dispositivi mobili potete utilizzare gli emulatori presenti nei rispettivi SDK (es: WinPhone7) o in alternativa scaricare il programma Mobilizer.     Alla prossima.&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/100373.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2011/09/22/sviluppare-applicazioni-mobile-con-asp.net-mvc3.aspx</guid>
            <pubDate>Thu, 22 Sep 2011 11:40:24 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2011/09/22/sviluppare-applicazioni-mobile-con-asp.net-mvc3.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/100373.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/100373.aspx</trackback:ping>
        </item>
        <item>
            <title>Deploy di un&amp;rsquo;applicazione web con Visual Studio 2010&amp;ndash; Creazione di un Package</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2010/11/24/deploy-di-unrsquoapplicazione-web-con-visual-studio-2010ndash-creazione-di.aspx</link>
            <description>La pubblicazione di un sito web è una procedura abbastanza delicata che si compone di diversi passaggi, tra cui:

    copia di file quali dll, aspx, css, js, img, etc.. 
    modifiche al file di configurazione dell’applicazione (stringhe di connessione, gestione degli errori, opzioni di compilazione) 
    creazione\aggiornamento del database 

Anche se la soluzione più completa e personalizzabile è MSBUILD, esistono altri modi utilizzabili direttamente all’interno del nostro IDE preferito. 
Con la versione 2010 di Visual Studio, infatti, sono state introdotte alcune funzionalità per agevolare il deploy delle applicazioni web: Packages e One-Click deployment.
In questo post vedremo come creare un package, nel prossimo come è possibile pubblicarlo.
 
Package
Cos’è
Un Package non è altro che un file .zip (o una cartella) contenente tutti i file necessari alla nostra applicazione, le relative configurazioni di IIS, script di creazione\aggiornamento del database, certificati, assembly da registrare nella GAC .
 
Creazione di una configurazione di build
La prima cosa da fare è creare una nuova configurazione di build.
Infatti possiamo creare N package quanti sono gli ambienti in cui andremmo a pubblicare la nostra applicazione web (TEST, PRODUZIONE, etc).
Cliccando su Build-&amp;gt;Configuration Manager è possibile creare nuove configurazioni, anche clonandone una già esistente (es. Release) :

Configurazione web
Per configurare il package  basta cliccare sulle proprietà del progetto della nostra applicazione, quindi su Package/Publish Web.
La maschera che si presenterà sarà simile a questa:


Da qui è possibile impostare i vari parametri per creare il nostro package, tra cui:

    quali file pubblicare e quali escludere (simboli di debug, file in App_data) 
    abilitare il deploy del database 
    replicare le impostazioni di IIS (se stiamo utilizzando il nostro IIS locale come server di sviluppo) 
    indicare se creare un file zip e dove salvarlo oppure la cartella di destinazione 
    indicare il website e il nome dell’applicazione da creare sul server di destinazione 

Configurazione SQL
Se abilitato, è possibili eseguire automaticamente il deploy del database.
Per la configurazione basta cliccare su Package/Publish Web.
Si presenta quindi una maschera in cui vanno inserite le stringhe di connessione utilizzate dalla nostra applicazione (possiamo anche importarle direttamente dal web.config):

Nella sezione “Database Entry Details” e per ogni stringa di connessione possiamo indicare :

    la stringa di connessione di destinazione da utilizzare per eseguire gli script (NB: Come sottolineato nella maschera di inserimento, questa stringa non andrà a sostituire quella presente nel web.config) 
    generare automaticamente gli script DDL e\o DML in base ad un database di origine (di default è quello indicato nel web.config) 
    aggiungere eventuali script specificando l’ordine in cui vanno eseguiti 


Modifiche del web.config
Il file di configurazione che dovremo utilizzare ovviamente è diverso da quello che utilizziamo per lo sviluppo. Dovremo infatti cambiare alcuni valori quali la stringa di connessione, gli end-point dei nostri servizi, abilitare i custom error e disabilitare l'opzione di debug.
Niente di più semplice! Se clicchiamo con il tasto dx sul file di configurazione noteremo la voce “Add config transformation”. Selezionandola verranno automaticamente creati tanti web.[BUILD].config  quante sono le configurazioni di build specificate. Se ne apriamo uno vedremo alcuni commenti che spiegano come va utilizzato, ad esempio come sostituire il valore della stringa di connessione. Per l’elenco completo delle operazioni di trasformazioni disponibil vi rimando a MSDN)
Creazione del package
Bene, siamo ora pronti a creare il nostro package. Su Esplora Soluzioni, clicchiamo con il tasto destro sulla nostra applicazione, quindi su “Build deployment package”:

  
Nel prossimo post vedremo i possibili modi per pubblicare il package.
  
 
Alla prossima!&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/99508.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2010/11/24/deploy-di-unrsquoapplicazione-web-con-visual-studio-2010ndash-creazione-di.aspx</guid>
            <pubDate>Wed, 24 Nov 2010 22:48:17 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2010/11/24/deploy-di-unrsquoapplicazione-web-con-visual-studio-2010ndash-creazione-di.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/99508.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/99508.aspx</trackback:ping>
        </item>
        <item>
            <title>Usare i tag inline ASP.NET</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2010/10/21/usare-i-tag-inline-asp.net.aspx</link>
            <description>Ho da poco ripreso ASP.NET e con l’occasione voglio elencare i tag inline messi a disposizione nelle pagine aspx per compiere operazioni “particolari”.  Questi tag possono tornare utili in molte occasioni, evitando di appesantire il file di code-behind con istruzioni inerenti la semplice visualizzazione di dati.   Riporto inoltre i link a MSDN relativi ad i singoli tag.          &amp;lt;%= ... %&amp;gt;      Utilizzato per visualizzare testo, il funzionamento è del tutto analogo all’istruzione Response.Write.     The Date is now &amp;lt;%= DateTime.Now.ToShortDateString() %&amp;gt;   MSDN          &amp;lt;% ... %&amp;gt;      Permette di definire codice che verrà eseguito lato server (equivalente al tag &amp;lt;script runat=”server”&amp;gt; ).   Lo riporto per completezza ma vi consiglio di evitare di usarlo in quanto tutto (e molto di più)  si può ottenere in modo più semplice e pulito utilizzando il file di code-behind (SoC).     &amp;lt;% if (User.IsInRole("admin")) { %&amp;gt;      Hello admin!      &amp;lt;% } else { %&amp;gt;       Hello user!      &amp;lt;%} %&amp;gt;   MSDN          &amp;lt;%# .. %&amp;gt;      Utilizzato nelle espressioni di binding in accoppiata con Eval (binding one-way\read-only) e Bind (binding two-way).   Queste espressioni vengono risolte quando viene chiamato il metodo Databind dei controlli che lo supportano (es: GridView, Repeater, etc)     &amp;lt;asp:Repeater ID="rptCustomers" DataSourceID="customersSource" runat="server"&amp;gt;         &amp;lt;ItemTemplate&amp;gt;              &amp;lt;%# Eval("FirstName") %&amp;gt;          &amp;lt;/ItemTemplate&amp;gt;      &amp;lt;/asp:Repeater&amp;gt;   MSDN          &amp;lt;%$ ... %&amp;gt;      Permette di leggere valori dal file di configurazione o dai file di risorsa della vostra applicazione web.   Sono utilizzati soprattutto nei controlli “*Datasource” ma possono tornare utili in altre circostanze.     &amp;lt;asp:SqlDataSource ID="userSource" runat="server" ConnectionString="&amp;lt;%$ ConnectionStrings:DBConn %&amp;gt;" SelectCommand="SELECT * FROM [Users]" /&amp;gt;      &amp;lt;asp:Label id="lblWelcome" runat="server" text="&amp;lt;%$ Resources: Messages, Welcome%&amp;gt;" /&amp;gt;


 

MSDN


  
    &amp;lt;%-- ... –%&amp;gt;
  


Rappresenta semplicemente un commento lato server.. si differenzia dai “normali” commenti HTML dal fatto che non verrà mai renderizzato e quindi non sarà accedibile da parte dell’utente nemmeno se visualizza l’HTML della pagina.


  &amp;lt;asp:Label ID="lblUser" runat="server" /&amp;gt;
        &amp;lt;%—You can’t see me!!--%&amp;gt;

        &amp;lt;asp:LinkButton ID="lbNew" Text="New" runat="server" /&amp;gt;


MSDN


  
    &amp;lt;%@ ... %&amp;gt;
  


E’ un tag “particolare” che dichiara una direttiva di pagina, cioè un’istruzione speciale  utilizzata dal compilatore per renderizzare pagine ed user control.


  &amp;lt;%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Home Page" %&amp;gt;


MSDN

 

Spero che questo promemoria vi torni utile!

Alla prossima! &lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/99380.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2010/10/21/usare-i-tag-inline-asp.net.aspx</guid>
            <pubDate>Thu, 21 Oct 2010 22:12:10 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2010/10/21/usare-i-tag-inline-asp.net.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/99380.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/99380.aspx</trackback:ping>
        </item>
    </channel>
</rss>