martedì 29 giugno 2010

IIS Express

Fino ad oggi lo sviluppo di pagine asp.net si concludeva con un build and run su uno dei due possibili web server:
Il server runtime di Visual Studio
IIS instalalto con Windows

Ogni opzione ha i suoi pro e contro. In conclusione il test avveniva su tutti e due i server, in prima istanza su quello installato da Visual Studio per la semplicità per poi passare a IIS per verificare il funzionamento in un ambiente più simile a quello di produzione.

In breve tempo sarà disponibile una nuova opzione IIS Express che cerca di combinare le caratteristiche migliori dei due. Funziona con VS2010 e con la Express edition, gira su Windows Xp o superiori e non ha bisogno di un account di livello administrator, permette di testare applicazioni asp.net con il set completo delle feature di IIS 7.

Vediamo le opzioni attualmente disponibili.

ASP.NET Development Server
Un tempo chiamato Cassini viene installato con Visual Studio in qualunque delle versioni disponibili. Viene lanciato automaticamnte eseguendo il run dell'applicazione.
E' leggero e veloce, non richiede una porta disponibile in quanto non è in ascolto, non richiede account amministrativi e non richiede un'installazione separata. Basta premere F5 è il server parte.
Nn supporta tutto ils et di feature di IIS ad esempio non supporta l'SSL e le regole di URL rewriting ed altre caratteristiche del server maggiore.

IIS Web Server
E' possibile configurare Visual Studio per utilizzare IIS per testare le applicazioni asp.net, è necessario configurare il singolo progetto in modo che venga tirato su IIS al posto di Cassini che è il web server di default. Per fare questa configurazione si clicca con il tasto destro sul web project, si ssceglie proprietà e quindi il tab web, si seleziona il checkbox "Use Local IIS web Server". IIS permette di usare tutte le possibilità che il web server rende disponibili nell'ambiente di produzione.
Non sempre è disponibile sui pc utilizzati per lo sviluppo, richiede account amministrativi, una certa esperienza per poterlo utilizzare, e infine ne esistono diverse versioni a seconda della versione di Windows di cui si dispone.

IIS Express
L'obiettivo è combinare i vantaggi delle due opzioni attualmente disponibili, quindi un web server leggero, veloce che non abbia bisogno di particolari configurazioni sulla amcchina ne di account amministrativi. Un web server che abbia tutto il set di capacità disponibili in ambiente di produzione, che possa essere instalalto insieme alla versione completa di IIS e a Cassini senza entrare in conflitto con essi. Comparabile con la versione 7.x di IIS. Integrato con Visual Studio 2010.

Non resta che aspettare che venga resa disponibile la prima Beta.

mercoledì 12 maggio 2010

Cucina futurista

* abolizione della pastasciutta, assurda religione gastronomica italiana in quanto antivirile perchè uno stomaco appesantito non è mai favorevole alla sanità, all'agilità e alla freschezza dell'intelletto e del fisico;
* abolizione del volume e del peso nel modo di concepire e valutare un alimento;
* abolizione delle tradizionali miscele per l'esperimento di tutte le nuove miscele, apparentemente assurde;
* abolizione del quotidianismo mediocrista nei piaceri del palato e di tutti gli altri sensi che comporta: abolizione delle posate per moltissimi dei piatti preparati, l'uso dei profumi per favorire la degustazione; l'uso della musica negli intervalli tra una vivanda ed un'altra per non distrarre il palato; l'abolizione del parlare a tavola; l'uso della poesia per accendere con la loro intensità sensuale i sapori di una vivanda, stimolare la curiosità la sorpresa e la fantasia con la presentazione delle diverse vivande; bocconi che contengano dieci- venti sapori diversi da gustare in pochi attimi; l'uso di strumenti scientifici (ozonizattori, apparecchi a raggi ultravioletti, ecc.) per esaltare il sapore dei cibi;
* abolizione delle parole, degli usi, delle consuetudini che ricordino, anche se pur vagamente, tutto ciò che non è italiano;
* abolizione delle dosi per preparare le vivande perchè la dosatura deve eccitare la fantasia inventiva del cuoco e perchè un errore del cuoco può suggerire delle nuove vivande.

mercoledì 14 aprile 2010

Un nuovo inizio

Un'applicazione Android è composta dai seguenti 6 blocchi fondamentali, non tutti sono sempre presenti.

Activities
E' possibile immaginarlo come il presentation layer dell'applicazione. Ogni screen dell'applicazione estende la classe Activity. Le Activities usano le View per costriuire l'interfaccia utente e rispondere alle azione dell'utente. L'Activity è l'equivalente della Windows Form per quanto riguarda lo sviluppo desktop.

Services
Sono componenti che girano in background. Vengono usati per compiere operazioni regolari necessarie anche nel caso non ci siano Activity visibili o attive

Content Providers
Componenti usati per gestire le fonti dei dati. Si possono utilizzare anche per scambiare dati tra applicazioni diverse. I Device espongono una serie di providers nativi tipo il media store o l'archivio dei contatti.

Intents
E' un framework per lo scambio di messaggi tra applicazioni. Si può utilizzare per segnalare l'intenzione di compiere operazioni ad un'activity o ad un service

Broadcast Receiver
Sono i consumatori di Intents. Creando e registrando un broadcast receiver l'applicazione può ascoltare per un intents che deve compiere un compito specifico. Possono attivare applicazioni e sono il componente principale nella realizzazioni di applicazioni event-driven

Widget
Componenti visuali che possono essere aggiunti alla home. ono particolari tipi di Broadcast receiver che eprmettono la realizzazione di applicazioni che gli utenti possono aggiungere alla loro home

Notifications
Le notifications permettono di segnalare agli utenti senza togliere il focus dell'applicazione corrente. Sono la tecnica migliore per prendere l'attenzione dell'utente in risposta a servizi o a broadcast receiver.

Dispenso dispense

Mi è capitato di tenere delle lezioni all'università, due sono già andate rimane da preparare la terza.

Questi gli argomenti presentati

Html base

Form e oggetti multimediali

mercoledì 10 febbraio 2010

Poi dici che è meglio Firefox

Il caso di oggi:

pagina perfetta e testata su Chrome, Firefox, Safari e Internet Explorer 7. Presentazione davanti al boss il quale tira fuori uno splendido Vaio nuovo con Internet Explorer 8 e Windows 7. La pagina non visualizza due iframe: "Il sistema deve funzionare con tutti i browser non solo quelli che decidete voi"... "Ha ragione" testa bassa e di nuovo in ufficio.

Dopo vari tentativi di capire il problema arriva il sospetto che sia un problema di impostazioni, avevamo trascurato una insignificante finestra, una di quelle che clicchi su Si in automatico.

Nel passaggio dalla versione 7 alla 8 la finestra con il messaggio: "This page contains both secure and nonsecure items" è cambiata. Nella versione 7 se desideravi vedere tutta la pagina sia i contenuti sicuri che quelli non sicuri bisognava cliccare su Si. Nella versione 8 invece bisogna cliccare su No. Grazie Microsoft.

Le soluzioni per evitare la finestra di avviso sono 3:

1) usare solo https se è possibile

2) cambiare i link da http://www a //www

3) usare solo link relativi

martedì 22 dicembre 2009

File upload e Codeigniter

Codeigniter è un framework mvc scritto in php. Per certi versi è molto semplice da usare e molto veloce. L'ho utilizzato per un sito che prima avevo iniziato con cakephp ma poi a forza di scontrarmi con le rigidità di quest'ultimo ho deciso di riscrivere completamente basandomi su codeigniter.

Tra le varie funzioni che mi servivano c'e' quella di caricare dalla stessa form file di tipo immagine e file pdf. La classe File Uploading tra le varie opzioni di configurazione ha anche una proprietà "allowed_types", in prima scrittura credevo fosse sufficiente inserire la stringa: 'gif|jpg|png|zip|pdf|doc|docx|txt' per ottenere la possibilità di caricare file pdf in un campo e immagini nell'altro.
E invece no, Codeigniter continuava a caricare esclusivamente l'immagine, dopo vari tentativi per trovare il problema mi veniva in aito Google: mi trovavo di fronte ad un bug noto, la soluzione è scrivere i tipi di file non immagine per primi ovvero 'zip|pdf|doc|docx|txt|gif|jpg|png'.