AntonioPelleriti.it [aka z9]

I code, therefore I am

NAVIGATION - SEARCH

Blend 2012: Invalid Markup e [Type] is not supported in a Windows App project

Ho passato un paio di giorni a combattere contro Blend for Visual Studio 2012, che non ne voleva più saperne di aprire in design i file xaml di una soluzione abbastanza complessa.

Il bello è che aveva sempre funzionato, fino a quando senza un motivo apparente, il designer dell'IDE Blend ha iniziato a dare degli errori di Invalid Markup e nella finestra Errors svariate decine di errori del tipo:

Page is not supported in a Windows App project

Window is not supported in a Windows App project

ResourceDictionary is not supported in a Windows App project

Grid is not supported in a Windows App project

 

ecc. ecc.

Ho googolato un pò, ma niente, nessuna soluziona utile, nemmeno una riparazione di Visual Studio ha aiutato.

Fra l'altro Visual Studio 2012 invece apriva correttamente il design e per un pò mi sono adeguato.

Poi ho notato dal Configuration Manager che per uno dei tanti progeti, in particolare una Portable Class Library, non riuscivo più a impostare la modalità di compilazione x86 (rimaneva e potevo selezionare solo Any CPU).

Allora ho pensato di eliminare la configurazione x86 e ricrearla da zero, ed ecco che si è sistemato tutto!

Ora Blend funziona perfettamente!

Verificare se un file esiste in una app Windows Store

Il seguente metodo mostra come verificare se un file esiste in Windows 8, cioè in una app Windows Store (ex Metro!).

Il parametro folder è la StorageFolder all'interno del quale cercare, subFolderName è l'eventuale sottocartella, e fileName è il nome del file.

 

 

public async Task<bool> LocalFileExistsAsync(StorageFolder folder, string subFolderName, string fileName)
 {
            try
            {
                if (!String.IsNullOrWhiteSpace(subFolderName))
                {
                    var subfolder = await folder.GetFolderAsync(subFolderName);
                     await subfolder.GetFileAsync(fileName);
                }
                else await folder.GetFileAsync(fileName);
            }
            catch (FileNotFoundException)
            {
                return false;
            }
            return true;
}

 

Ed ecco un esempio per invocare il metodo sopra:

bool exist=await LocalFileExistsAsync(ApplicationData.Current.LocalFolder, null, filename.jpg);

 

Custom Fonts in applicazioni Windows 8 Metro

Anche se esistono delle guidelines ufficiali di Microsoft per l'utilizzo e la scelta dei font nelle applicazioni Windows 8 Store, un mio cliente mi ha chiesto di utilizzare i loro font ufficiali!

Ok, nessun problema, ho pensato in un primo momento, apro Blend, aggiungo i miei file ttf, e poi con il Font Manager utilizzo i caratteri nella mia app, come facevo ai bei tempi di Silverlight.

Purtroppo Blend for Microsoft Visual Studio 2012, non permette di utilizzare il Font Manager in applicazioni Metro, l'opzione risulta disabilitata, e quindi provo a fare l'embedding dei font manualmente.

Basta copiare i file ttf nel progetto, impostare la Build Action a Content, e poi utilizzare il font indicando il percorso ed il suo nome, per esempio:

 

<TextBlock Text="Hello" FontFamily="/Assets/MioFont-Bold.ttd#Nome Font"/>

 

A questo punto provo la mia app e tutto funziona come mi aspettavo. Tranne per un font in particolare!!!

Dopo un pò di prove e tentativi praticamente a caso, scopro che anche se il font è disponibile nell'elenco dei font di Blend, ed è selezionabile, il problema risiede nelle Font Family che hanno il testo Bold alla fine.

Quindi se avete un font che si chiama Mio Font Bold, potete utilizzarlo nelle vostre app Windows 8 rimuovendo Bold alla fine del nome:

Cioè non funziona se scrivete:

 

<TextBlock Text="Hello" FontFamily="/Assets/MioFont-Bold.ttd#Mio Font Bold"/>

Dovete necessariamente scrivere

<TextBlock Text="Hello" FontFamily="/Assets/MioFont-Bold.ttd#Mio Font"/>

IIS7 e l'errore Microsoft.Jet.OLEDB.4.0 Not Registered

Eseguendo un'applicazione web ASP.NET su un Windows Server 2008 a 64 bit, mi è capitato di dover elaborare un file excel a seguito di upload.

In localhost tutto funzionava correttamente mentre sul server di produzione si verificava un'eccezione con messaggio:

Microsoft.Jet.OLEDB.4.0 Not Registered

In questo caso per risolvere il problema bisogna fare in modo di eseguire Access/Excel/ecc. in un application pool a 32 bit.Si può modificare la configurazione direttamente da IIS Manager.


Aprendo IIS manager, selezionare Application Pools, quindi selezionare l'application pool utilizzato dall'applicazione web, e cliccare a destra su Advanced Settings. 

Nella sezione General, impostare "Enable 32-Bit Applications" a "True".

Rilasciata la versione definitiva di Silverlight 5

Microsoft ha rilasciato la versione finale di Silverlight 5, dopo qualche giorno di attesa in più rispetto alla data prevista di fine novembre.

Il nuovo plug-in pesa circa 7MB, ed è scaricabile, insieme ai tool di sviluppo ed ai runtime Developer ed End User (anche 64 bit!) dal sito ufficiale: http://www.silverlight.net/downloads

Le novità introdotte in Silverlight 5 includono il decoding Hardware dei media H.264, miglioramento delle funzionalità Postscript Vector Printing, il supporto per il 3D support che usa le XNA API per fare uso della GPU. Silverlight 5 estende il modello ‘Trusted Application’ al browser (prima era utilizzabile solo in modalità OOB), questo consentirà fra le altre cose di scrivere applicazioni con il supporto di più finestre, supporto full trust in browser per COM e accesso al file system, l'hosting di HTML in browser, supporto P/Invoke per il codice nativo da eseguire direttamente in Silverlight, supporto 64 bit con un nuovo runtime, che permetterà di eseguire applicazioni Silverlight su browser 64 bit o anche di gadget per la sidebar di windows a 64 bit.

Ulteriori info sulle novità di Silverlight 5 le trovate qui: http://www.silverlight.net/learn/overview/what's-new-in-silverlight-5.

Anche il Silverlight Toolkit è stato già aggiornato ed è disponibile la release December 2011 su Codeplex: http://silverlight.codeplex.com/releases/view/78435

Ciclo di vita del supporto per Microsoft Silverlight

Fra le novità più importanti, Microsoft ha annunciato l'entrata in vigore di una politica relativa al ciclo di vita del supporto per il prodotto Microsoft Silverlight, che potete leggere qui http://support.microsoft.com/gp/lifean45, quindi Silverlight 5 sarà ufficialmente supportato per 10 anni, fino al 10 dicembre 2021!

Al seguente link, la tabella delle date di supporto per le varie versioni Silverlight: http://support.microsoft.com/lifecycle/search/default.aspx?sort=PN&alpha=Silverlight&Filter=FilterNO

Silvrlight 4 guida alla programmazione con Io Programmo

La rivista di programmazione IoProgrammo (per cui ho scritto e scrivo decine di articoli fra l'altro) ha deciso di allegare il mio libro Silverlight 4 guida alla programmazione, suddividendolo in dui pratici volumi.

I libri li troverete in allegato ai numeri 168 di novembre 2011 e 169 di dicembre 2011, in edicola.

 

Rilasciato Silverlight 5 RC (Release Candidate)

Pete Brown ha annunciato sul suo blog http://10rem.net/blog/2011/09/01/silverlight-5-rc-now-available

il rilascio della versione Release Candidate di Silverlight 5. I tool ed altri download sono disponibili sul sito ufficiale: http://www.silverlight.net/downloads

La versione RC è dedicata agli sviluppatori, e non è ancora presente la licenza go live.

Le novità principali rispetto alla precedente Beta sono le seguenti:

Ulteriori informazioni sulla versione 5: http://www.silverlight.net/learn/overview/what's-new-in-silverlight-5

Inoltre è confermato il rilascio della versione definitiva entro la fine del 2011.

Articolo: "Navigatore a costo zero per Windows Phone 7 con Bing Maps"

In edicola, sul numero 166 - settembre 2011 di IoProgrammo  , rivista di programmazione del gruppo Edizioni Master, trovate il mio articolo sull'utilizzo delle API di Bing e relative mappe all'interno di un'applicazione Windows Phone 7, ecco la copertina:

 

Il titolo in copertina è: 

NAVIGATORE A COSTO ZERO!

Solo noi ti diciamo come sfruttare le mappe di Bing (...) e implementare le funzioni di un navigatore GPS nei software mobile (...)

SMARTPHONE Le tecniche per accedere al GPS e gestire dalla tua app i dati su posizione, velocità e altitudine.

Link al numero 166 di IoProgrammo.

Articolo: "Windows Phone 7 accesso totale a sistema e hardware"

In edicola, sul numero 164 - luglio 2011 di IoProgrammo trovate il mio articolo su task e chooser di Windows Phone 7, ecco la copertina:

 

Il titolo in copertina è: 

WINDOWS PHONE 7 ACCESSO TOTALE A SISTEMA E HARDWARE

I segreti per gestire fotocamera, giroscopio, rubrica e browser

Rilasciato Windows Phone SDK 7.1 Beta 2, kit di sviluppo per Windows Phone Mango

Con un post sul blog ufficiale http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/06/29/developers-get-goody-basket-full-of-mangos.aspx, Microsoft ha annunciato la disponibilità della Beta 2 degli strumenti Windows Phone Developer Tools per Mango Beta 2, la nuova versione di Windows Phone (7.1), che per la precisione adesso si non si chiameranno più WPDT ma  Windows Phone SDK 7.1 Beta 2.

Novità della beta 2

  • Profiler – Profiling della interfaccia grafica e  del codice di un app.
  • Emulator – più veloce e stabile.
  • Isolated Storage Explorer – accesso all'isolated storage di un'applicazione sull'emulatore o su un dispositivo fisico.
  • Advertising SDK – incluso ora nell'SDK, anche se utilizzabile solo negli USA.