PDA

View Full Version : [Visual Studio 2010] XNA - Silverlight - C# e VB.net per lo sviluppo windows phone 7


Ludo237
22-12-2010, 19:47
Ciao ragazzi :D

Si il titolo è un po strano lo ammetto ma comunque il topic è stato creato perchè ho una voglia pazza di creare Applicativi (e magari anche qualche giochino 2D o 3D) per Windows Phone 7 solo che :

- Io conosco solo VB.net e Net4 , ci lavoro da 3-4 mesi ormai e ho preso un po di dimestichezza teorica ma soprattutto pratica.

io vorrei creare 1 giochino 2D so che si puo fare sia in silverlight che in XNA solo che non so come studiare il linguaggio di programmazione (silverlight) e/o la piattaforma (XNA) , mi consigliate qualche libro , sitoweb (serio, non con 4 utenti spuzzi perfavore) o guide per iniziare a "smanettare" su wp7?

Moppo
23-12-2010, 12:32
se vuoi creare un giochino dovresti usare XNA in quanto silverlight è utilizzato per applicazoni di altro genere, cmq ti consiglio di dare un'occhiata qui:

http://create.msdn.com/it-IT/

c'è materiale interessante e anche qualche tutorial

tomminno
23-12-2010, 13:23
Direi un buon libro per cominciare:
http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx

Ludo237
23-12-2010, 14:55
Direi un buon libro per cominciare:
http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx

Ecco gia questo è interessante


se vuoi creare un giochino dovresti usare XNA in quanto silverlight è utilizzato per applicazoni di altro genere, cmq ti consiglio di dare un'occhiata qui:

http://create.msdn.com/it-IT/

c'è materiale interessante e anche qualche tutorial


si perà su app hub ci sono tutorial e guide ma come forum è molto piccolo

Unrealizer
14-12-2011, 20:00
Ciao ragazzi :D

Si il titolo è un po strano lo ammetto ma comunque il topic è stato creato perchè ho una voglia pazza di creare Applicativi (e magari anche qualche giochino 2D o 3D) per Windows Phone 7 solo che :

- Io conosco solo VB.net e Net4 , ci lavoro da 3-4 mesi ormai e ho preso un po di dimestichezza teorica ma soprattutto pratica.

io vorrei creare 1 giochino 2D so che si puo fare sia in silverlight che in XNA solo che non so come studiare il linguaggio di programmazione (silverlight) e/o la piattaforma (XNA) , mi consigliate qualche libro , sitoweb (serio, non con 4 utenti spuzzi perfavore) o guide per iniziare a "smanettare" su wp7?

Iscritto :D

Ho iniziato ad interessarmi alla programmazione su WP7 l'anno scorso, prima che uscissero i terminali, ma è solo da luglio di quest'anno che mi ci sono messo seriamente :D

Comunque, mi pare di capire che tu abbia un po' di confusione sulla faccenda :D

Sia Silverlight che XNA sono due framework, ognuno con i suoi pro e i contro, e parzialmente interoperabili (puoi usare API Silverlight in applicazioni XNA e viceversa), ed entrambi possono essere programmati tramite VB.Net e C# (ti consiglio quest'ultimo, caldamente)

Come libri, ti consiglio i tutorial ufficiali di MSDN (Qui (http://msdn.microsoft.com/en-us/library/ff431744(v=vs.92).aspx)), mentre come libri ti consiglierei un librettino scritto da Enrico Amedeo che serve da introduzione al C# 4.0 (si trova a 7.90€, io l'ho preso alla Feltrinelli), mentre se vuoi qualche tutorial specifico a XNA puoi provare su http://totemslair.org/, anche se non ci dovessero essere tutorial specifici per WP7 da comunque un'idea di come funzionino le cose :D

Se serve altro scrivi pure qui, sono anche io alle prime armi, ma sto imparando :D

Mr_Paulus
14-12-2011, 20:10
mi iscrivo anch'io..

se vuoi programmare xna dai un occhio a f#, molto utile per creare algoritmi anche complessi che poi possono essere richiamati comodamente dalle classi c# o vb.net ;)

eli990
14-12-2011, 20:42
Eccomi.. mi iscrivo anche io :D

Pronto a seguire tutte le vostre chiacchiere a riguardo:D

Unrealizer
14-12-2011, 21:26
mi iscrivo anch'io..

se vuoi programmare xna dai un occhio a f#, molto utile per creare algoritmi anche complessi che poi possono essere richiamati comodamente dalle classi c# o vb.net ;)

Non so se è possibile, non esiste un compilatore F# per WP7, e non è possibile usare DLL non compilate per il runtime di WP7

Mr_Paulus
14-12-2011, 21:30
Non so se è possibile, non esiste un compilatore F# per WP7, e non è possibile usare DLL non compilate per il runtime di WP7

ce l'ha fatto vedere il ragazzo che lavora per ms alla presentazione che ci hanno fatto in università.
però adesso ho un lapsus, non ricordo se l'aveva usato per l'app web o per quella mobile..

devo provare..

EDIT ho controllato e in effetti da un progetto mobile ti fa aggiungere una libreria F#...d'altra parte stan tutti sul clr ;)

Unrealizer
14-12-2011, 22:00
ce l'ha fatto vedere il ragazzo che lavora per ms alla presentazione che ci hanno fatto in università.
però adesso ho un lapsus, non ricordo se l'aveva usato per l'app web o per quella mobile..

devo provare..

EDIT ho controllato e in effetti da un progetto mobile ti fa aggiungere una libreria F#...d'altra parte stan tutti sul clr ;)

Ah già, quando ho provato, ho provato con una libreria in visual c++ :D

eli990
15-12-2011, 13:28
Ciao ragazzi,
entro da poco nella programmazione su wp7, quindi ora sono ancora ad HELLO WORD!! :D
Vorrei fare una specie di eBook dove potrei fare ricerche per parola e per capitoli..
Mi potete consigliare come iniziare ad impostare il tutto?
Grazie di cuore... buona giornata

Unrealizer
15-12-2011, 14:58
Ciao ragazzi,
entro da poco nella programmazione su wp7, quindi ora sono ancora ad HELLO WORD!! :D
Vorrei fare una specie di eBook dove potrei fare ricerche per parola e per capitoli..
Mi potete consigliare come iniziare ad impostare il tutto?
Grazie di cuore... buona giornata

Intanto fai qualcosa di più semplice prima :D

gprimiceri
15-12-2011, 18:55
Un thread interessante... :D
Approfitto subito:
quale app si dovrebbe sviluppare per poter vedere su WP7.5 uno streaming Quick Time?
Tipo questo:
MEGAIP-362.dyndns.org
login: guest
pass: guest
porta 80

eli990
16-12-2011, 08:27
Intanto fai qualcosa di più semplice prima :D

Perchè? pensi sia molto complicato?
Da cosa posso iniziare secondo te?

Unrealizer
16-12-2011, 09:18
Perchè? pensi sia molto complicato?
Da cosa posso iniziare secondo te?

di sicuro è ambizioso come primo progetto, per iniziare ti consiglierei qualcosa di più semplice perché così puoi prendere confidenza con il framework e puoi diventare man mano più bravo ;)

eli990
19-12-2011, 11:15
di sicuro è ambizioso come primo progetto, per iniziare ti consiglierei qualcosa di più semplice perché così puoi prendere confidenza con il framework e puoi diventare man mano più bravo ;)

:D eheh... ho visto già un pò di codice.. e sto già impostando la grafica del mio ebook, cosa potrei fare secondo te per prendere confidenza?:)
Grazie!!

Mr_Paulus
19-12-2011, 12:39
:D eheh... ho visto già un pò di codice.. e sto già impostando la grafica del mio ebook, cosa potrei fare secondo te per prendere confidenza?:)
Grazie!!

provare, provare e ancora provare..
se sei già un programmatore (ad esempio di java) ti basta prendere conoscenza con la sintassi e puoi già partire con qualcosa di leggermente più complesso..se invece stai iniziando parti con robe molto più semplici.


p.s. la grafica è l'ultima cosa da sistemare ;)

Unrealizer
19-12-2011, 12:53
:D eheh... ho visto già un pò di codice.. e sto già impostando la grafica del mio ebook, cosa potrei fare secondo te per prendere confidenza?:)
Grazie!!

Prova qualcosa di più semplice, come qualcosa per tenere traccia delle spese per il carburante ad esempio :D

provare, provare e ancora provare..
se sei già un programmatore (ad esempio di java) ti basta prendere conoscenza con la sintassi e puoi già partire con qualcosa di leggermente più complesso..se invece stai iniziando parti con robe molto più semplici.


p.s. la grafica è l'ultima cosa da sistemare ;)

Attualmente la mia "tecnica" per programmare su WP7 è questa:

Uso due monitor, su uno tengo Visual Studio, sull'altro Expression Blend.

Su Blend vado disegnando la GUI, mi creo tutti i vari UserControl ecc ecc, contemporaneamente su Visual Studio implemento parte della logica (facendo un laaaaargo uso di Debug.WriteLine :D )

Quando sono soddisfatto dell'impostazione grafica, mi dedico quasi completamente a C#, facendo di volta in volta gli aggiustamenti necessari su Blend

Quando sono sufficientemente soddisfatto dell'app, mi dedico ad Expression Blend per disegnare le animazioni, gli storyboard e dare qualche rifinitura alla GUI :D

Mr_Paulus
19-12-2011, 13:05
Prova qualcosa di più semplice, come qualcosa per tenere traccia delle spese per il carburante ad esempio :D



Attualmente la mia "tecnica" per programmare su WP7 è questa:

Uso due monitor, su uno tengo Visual Studio, sull'altro Expression Blend.

Su Blend vado disegnando la GUI, mi creo tutti i vari UserControl ecc ecc, contemporaneamente su Visual Studio implemento parte della logica (facendo un laaaaargo uso di Debug.WriteLine :D )

Quando sono soddisfatto dell'impostazione grafica, mi dedico quasi completamente a C#, facendo di volta in volta gli aggiustamenti necessari su Blend

Quando sono sufficientemente soddisfatto dell'app, mi dedico ad Expression Blend per disegnare le animazioni, gli storyboard e dare qualche rifinitura alla GUI :D

io sinceramente all'inizio metto una grafica ultra-minimal, giusto per rappresentare i dati e vedere se son giusti (non ho sbatti di leggerli da console :D).
una volta che l'app funziona mi dedico alla grafica (intanto usando i bindings non è necessario rivedere il codice una volta che si crea l'interfaccia)

eli990
19-12-2011, 13:44
provare, provare e ancora provare..
se sei già un programmatore (ad esempio di java) ti basta prendere conoscenza con la sintassi e puoi già partire con qualcosa di leggermente più complesso..se invece stai iniziando parti con robe molto più semplici.


p.s. la grafica è l'ultima cosa da sistemare ;)

Si sono al terzo anno d'informatica, ho base di c++, c, java, c#.. ma più che altro java..


Prova qualcosa di più semplice, come qualcosa per tenere traccia delle spese per il carburante ad esempio :D



Attualmente la mia "tecnica" per programmare su WP7 è questa:

Uso due monitor, su uno tengo Visual Studio, sull'altro Expression Blend.

Su Blend vado disegnando la GUI, mi creo tutti i vari UserControl ecc ecc, contemporaneamente su Visual Studio implemento parte della logica (facendo un laaaaargo uso di Debug.WriteLine :D )

Quando sono soddisfatto dell'impostazione grafica, mi dedico quasi completamente a C#, facendo di volta in volta gli aggiustamenti necessari su Blend

Quando sono sufficientemente soddisfatto dell'app, mi dedico ad Expression Blend per disegnare le animazioni, gli storyboard e dare qualche rifinitura alla GUI :D

Mi piace l'idea del carburante, ci lavorerò su :D ...
Quindi tu per la grafica utilizzi expression Blend.. non so nemmeno cosa sia, io smanettavo la grafica stesso in visual studio..
expression Blend è un altro programma separato dal tools di WP7?

Unrealizer
19-12-2011, 14:11
Mi piace l'idea del carburante, ci lavorerò su :D ...
Quindi tu per la grafica utilizzi expression Blend.. non so nemmeno cosa sia, io smanettavo la grafica stesso in visual studio..
expression Blend è un altro programma separato dal tools di WP7?

È un software usato per disegnare interfacce per Windows Presentation Foundation, Silverlight e ovviamente anche WP7, ha funzionalità molto più avanzate del designer di Visual Studio :D

Ora come ora non ricordo se è incluso nell'SDK, io ho l'edizione Ultimate dell'intera Expression Suite (Blend, Web, Design, Encoder) grazie all'università :D

Comunque, ti consiglio di imparare a lavorare in XAML, ti permette di fare un lavoro più pulito ed ordinato rispetto al designer :D

eli990
19-12-2011, 14:47
È un software usato per disegnare interfacce per Windows Presentation Foundation, Silverlight e ovviamente anche WP7, ha funzionalità molto più avanzate del designer di Visual Studio :D

Ora come ora non ricordo se è incluso nell'SDK, io ho l'edizione dell'intera Expression Suite (Blend, Web, Design, Encoder) grazie all'università :D

Comunque, ti consiglio di imparare a lavorare in XAML, ti permette di fare un lavoro più pulito ed ordinato rispetto al designer :D

SI immaginavo.. proprio per questo cerco di modificare l'XAML vedendo cosa succede nella grafica..:)
Appena avrò fatto il software ti informerò.. ora ho alcuni esami e quindi non ho molto tempo per mettercimi vicino...

Unrealizer
19-12-2011, 15:00
SI immaginavo.. proprio per questo cerco di modificare l'XAML vedendo cosa succede nella grafica..:)
Appena avrò fatto il software ti informerò.. ora ho alcuni esami e quindi non ho molto tempo per mettercimi vicino...

Tienici informati :D

Intanto, ecco uno screenshot di VS e Blend insieme :D

http://img823.imageshack.us/img823/405/wp7z.th.png (http://imageshack.us/photo/my-images/823/wp7z.png/)

Uploaded with ImageShack.us (http://imageshack.us)

Mr_Paulus
19-12-2011, 15:47
È un software usato per disegnare interfacce per Windows Presentation Foundation, Silverlight e ovviamente anche WP7, ha funzionalità molto più avanzate del designer di Visual Studio :D

Ora come ora non ricordo se è incluso nell'SDK, io ho l'edizione dell'intera Expression Suite (Blend, Web, Design, Encoder) grazie all'università :D

Comunque, ti consiglio di imparare a lavorare in XAML, ti permette di fare un lavoro più pulito ed ordinato rispetto al designer :D

si è integrato! ;)

eli990
19-12-2011, 16:46
si è integrato! ;)

Eccolo l'ho appena trovato nel mio PC :)
Ha funzionalità più avanzate ma è anche più difficile da utilizzare?

Unrealizer
19-12-2011, 16:58
Eccolo l'ho appena trovato nel mio PC :)
Ha funzionalità più avanzate ma è anche più difficile da utilizzare?

Basta prenderci la mano e capire quali sono queste funzionalità avanzate :D

eli990
19-12-2011, 20:44
Basta prenderci la mano e capire quali sono queste funzionalità avanzate :D

Sto utilizzando anche io sia visual studio che Blend..
Allora ho implementato l'applicazione dei consumi, ancora non è finita, in un textbox devo inserire numeri per calcolare i consumi, come si fa? cioè come fa il text box a capire che sono numeri e non lettere, dovrei fare un cast o non so c'è qualche tipo di funzione da utilizzare?
clicco 2 volte sul bottone per calcolare i consumi, mi porta nel codice *.cs lì cosa faccio?
cioè devo fare chilometri diviso litri, sono in 2 text box differenti, come continuo?:mc:
grazie ragazzi......

Unrealizer
19-12-2011, 21:07
Sto utilizzando anche io sia visual studio che Blend..
Allora ho implementato l'applicazione dei consumi, ancora non è finita, in un textbox devo inserire numeri per calcolare i consumi, come si fa? cioè come fa il text box a capire che sono numeri e non lettere, dovrei fare un cast o non so c'è qualche tipo di funzione da utilizzare?
clicco 2 volte sul bottone per calcolare i consumi, mi porta nel codice *.cs lì cosa faccio?
cioè devo fare chilometri diviso litri, sono in 2 text box differenti, come continuo?:mc:
grazie ragazzi......

Intanto, puoi usare gli InputScoper per fare in modo che si possano inserire soltanto numeri, per il resto puoi usare le funzioni Parse o TryParse, così:


int valore = int.Parse(myTextBox.Text)


(ma questo potrebbe sollevare un'eccezione, non ricordo quale però :D)

oppure puoi usare questo:


int value = 0;
if (int.TryParse(myTextBox.Text, out value))
{
MessageBox.Show("Tutto ok!");
}
else
{
MessageBox.Show("Errore di parsing!");
}


TryParse restituisce true se la conversione va a buon fine, false se fallisce

eli990
19-12-2011, 22:15
Intanto, puoi usare gli InputScoper per fare in modo che si possano inserire soltanto numeri, per il resto puoi usare le funzioni Parse o TryParse, così:


int valore = int.Parse(myTextBox.Text)


(ma questo potrebbe sollevare un'eccezione, non ricordo quale però :D)

oppure puoi usare questo:


int value = 0;
if (int.TryParse(myTextBox.Text, out value))
{
MessageBox.Show("Tutto ok!");
}
else
{
MessageBox.Show("Errore di parsing!");
}


TryParse restituisce true se la conversione va a buon fine, false se fallisce

Non ricordo proprio nulla del c#...
Allora ho fatto il parse, scusa se posso sembrare imbegille ma... ho fatto così:
float l = float.Parse(textBox1.Text);
float km = float.Parse(textBox2.Text);
float kml = km / l;
float.Parse(textBlock2.Text) = kml;
e
float.Parse(textBlock2.Text)
me lo sottolinea come errore.. Perchè??:(

p.s. Scrivo qui, e non tramite pm perchè forse qualcun'altro potrà trovare qui risposta ai suoi problemi :D

Unrealizer
19-12-2011, 22:57
Non ricordo proprio nulla del c#...
Allora ho fatto il parse, scusa se posso sembrare imbegille ma... ho fatto così:
float l = float.Parse(textBox1.Text);
float km = float.Parse(textBox2.Text);
float kml = km / l;
float.Parse(textBlock2.Text) = kml;
e
float.Parse(textBlock2.Text)
me lo sottolinea come errore.. Perchè??:(

p.s. Scrivo qui, e non tramite pm perchè forse qualcun'altro potrà trovare qui risposta ai suoi problemi :D

Beh, non puoi assegnare una variabile ad un metodo :D

dovresti scrivere così

textBlock2.Text = kml.ToString();

eli990
20-12-2011, 10:05
Ah, quindi ogni metodo ha il suo toString standard?
Credevo potessi fare una chiamata ToString solo alle classi..

Ora implemento altre funzionalità e magari poi lo allego se possibile sul forum così qualcuno se vuole può giocarci sopra o utilizzarlo :)

Se voglio, premendo un Bottone, aprire un altra finestra?
oppure poter andare a destra e sinistra? come in xbox live.. ?!

Unrealizer
20-12-2011, 11:25
Ah, quindi ogni metodo ha il suo toString standard?
Credevo potessi fare una chiamata ToString solo alle classi..

Ora implemento altre funzionalità e magari poi lo allego se possibile sul forum così qualcuno se vuole può giocarci sopra o utilizzarlo :)

Se voglio, premendo un Bottone, aprire un altra finestra?
oppure poter andare a destra e sinistra? come in xbox live.. ?!

Tutto su C# è un oggetto, e tutto deriva dall'oggetto Object, quindi TUTTO ha il metodo ToString, dal più semplice dei bool alla più grossa e mastodontica classe si possa immaginare :D

Nel caso non sia implementato però, il metodo ToString() restituirà una stringa con il nome della classe.

Per andare in un'altra pagina, devi intanto crearla, poi nell'handler dell'evento Click del bottone devi mettere:

NavigationService.Navigate(new Uri("/altrapagina.xaml", UriKind.Relative));

Mentre per poter andare a destra a sinistra come in xbox live dei usare il controllo Panorama, mentre per fare come nei messaggi o le impostazioni devi usare il Pivot

eli990
20-12-2011, 17:41
ho provato ad utilizzare il controllo panorama ed expression mi dice questo

http://img534.imageshack.us/img534/2031/immagineap.png

Unrealizer
20-12-2011, 18:11
ho provato ad utilizzare il controllo panorama ed expression mi dice questo

http://img534.imageshack.us/img534/2031/immagineap.png

incolla lo XAML :D

eli990
20-12-2011, 21:39
cioè? quale xaml e dove?:confused:

Unrealizer
21-12-2011, 02:01
cioè? quale xaml e dove?:confused:

Compila da VS, ti dirà quale riga e quale pezzo di codice di quale file ha generato l'errore

PeK
04-01-2012, 00:11
c'è un modo rapido per fare query al sql compact che sta dentro il telefono con visual studio express?

Unrealizer
04-01-2012, 00:47
c'è un modo rapido per fare query al sql compact che sta dentro il telefono con visual studio express?

guarda tra i code samples, c'è un esempio dedicato a SQL e MVVM, ma è un mezzo casino usarlo...

vendettaaaaa
17-01-2012, 08:05
Ciao a tutti, sono un ingegnere chimico che ha appena avuto l'illuminazione di imparare a programmare seriamente, prima per hobby e poi magari per lavoro...una cosa è certa, sono stufo di vagare per i vari Nokia Store e Android market in cerca di app poco soddisfacenti, e che diamine, me le voglio scrivere io! Ora ho preso un Optimus 7 quindi vedrò di imparare a far qualcosa con i tool di Microsoft.
Come dicevo da un'altra parte ho conoscenze basilari di C ottenute con un corso di 5 crediti all'uni (i concetti più complessi che ho visto sono puntatori e liste), Fortran (ma penso che non conti in quanto è un linguaggio specifico per svolgere conti ingegneristici, credo sia molto limitato in altre cose) e poi C++. Comincerò con il leggiucchiare i link consigliato in prima pagina e poi comincerò con lo sviluppo della mia prima app/programma: voglio creare una calcolatrice scientifica, non se ne trovano di decenti in Symbian quindi vorrei farne una. O magari direttamente in WP7 per poi esportarla ad altre piattaforme...
Ad occhio vi sembra un compito complesso? Ho deciso di fare ciò in quanto mi pare l'esempio più semplice di programma con interazione tra utente e codice, senza andare a usare funzioni complesse (anche se quelle Complesse le voglio implementare :D) dal lato codice, in altre parole: schiaccia pulsante, inserisci testo, schiaccia pulsante, fai i conto, output a video! :D
E soprattutto anche l'ui mi pare semplice da realizzare: è tutta pulsanti, senza caselle di testo e altre amenità, o mi illudo? :D

Unrealizer
19-01-2012, 00:13
Ciao a tutti, sono un ingegnere chimico che ha appena avuto l'illuminazione di imparare a programmare seriamente, prima per hobby e poi magari per lavoro...una cosa è certa, sono stufo di vagare per i vari Nokia Store e Android market in cerca di app poco soddisfacenti, e che diamine, me le voglio scrivere io! Ora ho preso un Optimus 7 quindi vedrò di imparare a far qualcosa con i tool di Microsoft.
Come dicevo da un'altra parte ho conoscenze basilari di C ottenute con un corso di 5 crediti all'uni (i concetti più complessi che ho visto sono puntatori e liste), Fortran (ma penso che non conti in quanto è un linguaggio specifico per svolgere conti ingegneristici, credo sia molto limitato in altre cose) e poi C++. Comincerò con il leggiucchiare i link consigliato in prima pagina e poi comincerò con lo sviluppo della mia prima app/programma: voglio creare una calcolatrice scientifica, non se ne trovano di decenti in Symbian quindi vorrei farne una. O magari direttamente in WP7 per poi esportarla ad altre piattaforme...
Ad occhio vi sembra un compito complesso? Ho deciso di fare ciò in quanto mi pare l'esempio più semplice di programma con interazione tra utente e codice, senza andare a usare funzioni complesse (anche se quelle Complesse le voglio implementare :D) dal lato codice, in altre parole: schiaccia pulsante, inserisci testo, schiaccia pulsante, fai i conto, output a video! :D
E soprattutto anche l'ui mi pare semplice da realizzare: è tutta pulsanti, senza caselle di testo e altre amenità, o mi illudo? :D

in un certo senso ti illudi, non è così semplice :D

a parte delle tue domande ho già risposto nell'altro thread, ma vorrei aggiungere una cosa qui :D

i 3 SO maggiori del momento (WP7, iOS e Android) hanno paradigmi di sviluppo diversi, e quindi, soprattutto per un programmatore alle prime armi, è difficile scrivere un'app portabile su tutti... quindi per il momento concentrati su una piattaforma, magari poi pensi ad espanderti :D

Symbian lascialo perdere, pensa a WP7 dato che i tool sono pubblicamente disponibili, ci sono molte guide, puoi adattare molto codice .NET e molte guide per Silverlight o WPF possono essere adattate anche su WP7, e soprattutto c'è MSDN :D

Unrealizer
19-01-2012, 12:25
Disponibile la beta di "Visual Studio Achievements"

Una simpatica idea per rendere più divertente lo sviluppo amatoriale, con obiettivi da sbloccare scrivendo codice :D

Per usarlo basta avere un Live ID ed installare l'apposita estensione per Visual Studio :D

Link -> http://channel9.msdn.com/Blogs/C9Team/Announcing-Visual-Studio-Achievements

vendettaaaaa
19-01-2012, 13:10
in un certo senso ti illudi, non è così semplice :D

a parte delle tue domande ho già risposto nell'altro thread, ma vorrei aggiungere una cosa qui :D

i 3 SO maggiori del momento (WP7, iOS e Android) hanno paradigmi di sviluppo diversi, e quindi, soprattutto per un programmatore alle prime armi, è difficile scrivere un'app portabile su tutti... quindi per il momento concentrati su una piattaforma, magari poi pensi ad espanderti :D

Symbian lascialo perdere, pensa a WP7 dato che i tool sono pubblicamente disponibili, ci sono molte guide, puoi adattare molto codice .NET e molte guide per Silverlight o WPF possono essere adattate anche su WP7, e soprattutto c'è MSDN :D
Ci penserò bene, magari prima vedo come mi trovo con wp7, domani arriva l'O7.
Però m'ero praticamente convinto ad imparare prima il C++ e a provare a sviluppare qualcosa in Qt, visto che le Qt sono multi piattaforma e ci sui può tranquillamente fare programmi per pc...diamine, ora che faccio? Il C++ voglio assolutamente impararlo meglio, mi son fissato ormai :D

Mr_Paulus
19-01-2012, 13:57
edit.

Unrealizer
19-01-2012, 13:58
Ci penserò bene, magari prima vedo come mi trovo con wp7, domani arriva l'O7.
Però m'ero praticamente convinto ad imparare prima il C++ e a provare a sviluppare qualcosa in Qt, visto che le Qt sono multi piattaforma e ci sui può tranquillamente fare programmi per pc...diamine, ora che faccio? Il C++ voglio assolutamente impararlo meglio, mi son fissato ormai :D

Con C# e xaml programmi per wp7, xbox, zune, pc e silverlight, che vuoi di più? :D

vendettaaaaa
19-01-2012, 15:05
Con C# e xaml programmi per wp7, xbox, zune, pc e silverlight, che vuoi di più? :D
Vedrò di fare un po' e un po' allora...non lo so...ti dirò :D

eli990
14-02-2012, 19:57
Bene, ora che ho un pò più di tempo mi sono messo oggi pomeriggio vicino alla mia prima applicazione, i consumi dell'auto (consigliatami da Unrealizer).. :D
Domanda...
Come esporto il file in .xap??
come faccio ad eseguire il programma (tramite visual studio) non con Windows Phone 7 Emulator(IT) ma con Windows Phone 7 Device?
Grazie!!:D

Unrealizer
15-02-2012, 01:03
Bene, ora che ho un pò più di tempo mi sono messo oggi pomeriggio vicino alla mia prima applicazione, i consumi dell'auto (consigliatami da Unrealizer).. :D
Domanda...
Come esporto il file in .xap??
come faccio ad eseguire il programma (tramite visual studio) non con Windows Phone 7 Emulator(IT) ma con Windows Phone 7 Device?
Grazie!!:D

Intanto il tuo telefono deve essere sbloccato :D Poi, in visual studio, apri la combobox dove vedi scritto Windows Phone 7 Emulator e seleziona Windows Phone 7 Device :D assicurati che il telefono sia collegato, Zune sia aperto e veda il telefono e premi F5 :D

Il file XAP lo trovi nella cartella Debug o Release, a seconda di quale configurazione hai usato per compilare

eli990
15-02-2012, 09:04
Intanto il tuo telefono deve essere sbloccato :D Poi, in visual studio, apri la combobox dove vedi scritto Windows Phone 7 Emulator e seleziona Windows Phone 7 Device :D assicurati che il telefono sia collegato, Zune sia aperto e veda il telefono e premi F5 :D

Il file XAP lo trovi nella cartella Debug o Release, a seconda di quale configurazione hai usato per compilare

Uso Debug, comunque si avevo già collegato il cel e aperto zune e ho selezionato ...Device, ma comunque non lo fa.. e si è sbloccato :D
Faccio altre prove.. grazie mille Unrealizer!! Sempre gentilissimo

p.s. Ora mi resta solo gestire le eccezioni :rolleyes:

Unrealizer
15-02-2012, 10:16
Uso Debug, comunque si avevo già collegato il cel e aperto zune e ho selezionato ...Device, ma comunque non lo fa.. e si è sbloccato :D
Faccio altre prove.. grazie mille Unrealizer!! Sempre gentilissimo

p.s. Ora mi resta solo gestire le eccezioni :rolleyes:

Che errore da? lo schermo del telefono dev'essere sbloccato :D

Per le eccezioni... migliora il codice in modo da scongiurarne quante più possibile, per il resto c'è try-catch :D

eli990
15-02-2012, 10:38
Che errore da? lo schermo del telefono dev'essere sbloccato :D

Per le eccezioni... migliora il codice in modo da scongiurarne quante più possibile, per il resto c'è try-catch :D

Si si, mi devo solo mettere del tempo ad implementarle, ad esempio far uscire un messaggio d'errore se l'utente mette lettere e non numeri, anche se mette il punto e non la virgola, oppure se preme il pulsante senza aver inserito nulla..
Se mette il punto non va bene, per le altre invece mi si chiude l'applicazione, con visualstudio, cioè con l'emulatore, va nella sezione del codice dove dice che è un eccezione non gestita..

Comunque io collego il cel al pc, avvio zune, lo schermo è sbloccato, ma:
http://img715.imageshack.us/img715/4302/immaginepv.png (http://imageshack.us/photo/my-images/715/immaginepv.png/)

Uploaded with ImageShack.us (http://imageshack.us)

Kralizek
15-02-2012, 11:13
il cellulare é sbloccato?

eli990
15-02-2012, 12:39
il cellulare é sbloccato?

è sbloccato sia lo schermo e anche il cellulare è sbloccato(penso sia anche interop unlock), infatti ho messo l'applicazione xap sul cel e funziona..

Kralizek
15-02-2012, 14:13
è sbloccato sia lo schermo e anche il cellulare è sbloccato(penso sia anche interop unlock), infatti ho messo l'applicazione xap sul cel e funziona..

devi sbloccarlo con il "Windows Phone Developer Registration" che trovi nel menu start sotto Windows Phone SDK

Unrealizer
15-02-2012, 17:43
Era successo anche a me tempo fa, quando non avevo ancora sbloccato ufficialmente il telefono... Controlla tutte e 4 le chiavi di registro (oppure sbloccalo tramite metodo ufficiale se hai la licenza)

eli990
15-02-2012, 18:56
Era successo anche a me tempo fa, quando non avevo ancora sbloccato ufficialmente il telefono... Controlla tutte e 4 le chiavi di registro (oppure sbloccalo tramite metodo ufficiale se hai la licenza)

Magari più in là quando avrò alcune applicazioni pronte da voler mettere sul marketplace allora mi registrerò come studente, che so sia limitata ad un anno gratuito.. Vero?

p.s. Se sviluppo un giochino con openGL, quindi in linguaggio cpp, per farlo funzionare sul dispositivo sarebbe complicato fare il passaggio? è meglio implementarlo da zero oppure si può utilizzare in qualche modo il codice?

cdimauro
16-02-2012, 04:37
EDIT: doppio.

cdimauro
16-02-2012, 04:39
Il C++ al momento non è supportato (lo sarà dalla prossima versione di Windows Phone), per cui dovrai riscriverlo in C# e, soprattutto, usando XNA (non ci sono le OpenGL).

eli990
19-02-2012, 15:40
Il C++ al momento non è supportato (lo sarà dalla prossima versione di Windows Phone), per cui dovrai riscriverlo in C# e, soprattutto, usando XNA (non ci sono le OpenGL).

Si si sapevo non ci sono librerie OpenGL, davvero sarà supportato cpp con apollo??

p.s. Raga se alla pressione del TexBox invece di far uscire la qwerty vorrei far uscire il tastierino numerico??

Kralizek
19-02-2012, 16:20
Si si sapevo non ci sono librerie OpenGL, davvero sarà supportato cpp con apollo??

p.s. Raga se alla pressione del TexBox invece di far uscire la qwerty vorrei far uscire il tastierino numerico??

Proprietà inputscope della textbox

http://msdn.microsoft.com/en-us/library/ff426929(v=vs.95).aspx

Unrealizer
19-02-2012, 16:26
Proprietà inputscope della textbox

http://msdn.microsoft.com/en-us/library/ff426929(v=vs.95).aspx

Ovviamente non c'è bisogno di usare quel codice mastodontico dell'esempio, basta fare ad esempio

<TextBox InputScope="Number" ... />

eli990
19-02-2012, 17:34
Grazie mille :D
e se magari volessi far uscire solo i numeri? cioè come se dovvessi chiamare qualcuno e dovrei comporre il numero, facendo uscire i numeri giganti?

eli990
19-02-2012, 17:49
Grazie mille :D
e se magari volessi far uscire solo i numeri? cioè come se dovvessi chiamare qualcuno e dovrei comporre il numero, facendo uscire i numeri giganti?

Unrealizer
21-02-2012, 00:32
Come richiesto, ecco qui il codice XAML dei fumetti che ho postato nel thread WP7, magari può servire a qualcuno :D

Il codice non è esattamente ottimizzato per WP7, l'ho scritto per avere un'anteprima di come sarebbe venuto con WPF (su Windows desktop), ed è pensato per una risoluzione orizzontale di 240 pixel (contro i 480 di WP7), ma può essere utile per farsi un'idea, e dovrebbe anche funzionare con poche o addirittura zero modifiche :D

Questo codice è pensato per essere un UserControl, un file contenente un controllo custom progettato dallo sviluppatore dell'applicazione.

Potete creare un UserControl da Blend (Click destro sul progetto -> Aggiungi -> UserControl) e dopodiché potrete usarlo all'interno della vostra app.

Ad esempio, il mio UserControl (chiamato MessageItem) fa parte del namespace Messenger, quindi nella mia MainWindow (dove voglio usarlo) dovrò aggiungere questo codice:

xmlns:usrc="clr-namespace:Messenger"

(ovviamente al posto di usrc potete usare quello che volete)

dopodiché posso inserirlo dove voglio scrivendo così:

<usrc:MessageItem [attributi] />

Solitamente un UserControl viene usato con il DataBinding: da codice assegno un oggetto alla sua proprietà DataContext, e quest'ultimo oggetto verrà usato per "popolare" i campi del mio UserControl.

Nel mio caso, l'oggetto che uso è un oggetto Message, contenente i campi Text, Time, Direction e Sender.

Ecco qui lo XAML relativo al messaggio inviato:

<StackPanel>
<Border Background="#FF216421" Margin="60,6,12,0" VerticalAlignment="Top">
<Grid Margin="6">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<TextBlock TextWrapping="Wrap" Text="{Binding Text}" Foreground="White" Grid.ColumnSpan="3" />
<TextBlock Grid.Row="1" Foreground="#BFFFFFFF" Text="{Binding Path=Time, Converter={StaticResource TimeConverter}}" HorizontalAlignment="Right" Margin="0,3,0,0" FontSize="8" Grid.Column="2" />
<TextBlock Grid.Row="1" Foreground="#BFFFFFFF" HorizontalAlignment="Right" Text="{Binding Sender}" Margin="0,3,0,0" FontSize="9" />

</Grid>
</Border>
<Polygon Fill="#FF216421" Margin="0,0,18,0" HorizontalAlignment="Right">
<Polygon.Points>
<Point X="0" Y="0" />
<Point X="6" Y="0" />
<Point X="6" Y="6" />
</Polygon.Points>
</Polygon>
</StackPanel>

mentre questo è quello del messaggio ricevuto:

<StackPanel>
<Polygon Margin="18,6,0,0" Fill="#FF339933">
<Polygon.Points>
<Point X="0" Y="0" />
<Point X="6" Y="6" />
<Point X="0" Y="6" />
</Polygon.Points>
</Polygon>
<Border Background="#FF339933" Margin="12,0,60,0">
<Grid Margin="6">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<TextBlock TextWrapping="Wrap" Text="{Binding Text}" Foreground="White" Grid.ColumnSpan="3" />
<TextBlock Grid.Row="1" Foreground="#BFFFFFFF" Text="{Binding Path=Time, Converter={StaticResource TimeConverter}}" HorizontalAlignment="Right" Margin="0,3,0,0" FontSize="8" Grid.Column="2" />
<TextBlock Grid.Row="1" Foreground="#BFFFFFFF" HorizontalAlignment="Right" Text="{Binding Sender}" Margin="0,3,0,0" FontSize="9" />
</Grid>
</Border>
</StackPanel>

I più attenti avranno notato questo:

<TextBlock ... Text="{Binding Path=Time, Converter={StaticResource TimeConverter}}" ... />

Cosa vuol dire? vuol dire che la proprietà Text di quella TextBlock è collegata alla proprietà Time dell'oggetto assegnato come DataContext, ma visto che Text si aspetta una string, e Time è un oggetto DateTime, serve un convertitore!

Un convertitore non è altro che una classe che implementa l'interfaccia IValueConverter, questa è la mia TimeConverter:

public class TimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
DateTime dt = (DateTime)value;
string t = dt.Hour.ToString() + ":" + dt.Minute.ToString();
return t;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}

Ovviamente avere la classe non basta, bisogna anche aggiungerla tra le Resources del nostro UserControl, quindi, assicurandosi di aver importato il namespace necessario, (il mio Converter è nel namespace Messenger, all'interno dell'UserControl l'ho chiamato "this"):

xmlns:this="clr-namespace:Messenger"

basterà aggiungere questo tra il tag <UserControl ...> e l'apertura della LayoutRoot:

<UserControl.Resources>
<this:TimeConverter x:Key="TimeConverter" />
</UserControl.Resources>

Ok, non era proprio un granché come spiegazione, ma lavorandoci un po' si può riuscire ad ottenere qualcosa :D

@eli990: con l'inputscope Number puoi inserire solo numeri, ma non credo ci sia un tastierino come quello dell'applicazione Telefono... al limite puoi fartelo tu, tanto qui sopra c'è un mezzo esempio di come fare un usercontrol :D
Se poi vuoi veramente far partire la chiamata, studiati i Launcher e i Chooser.

mirc
21-02-2012, 00:57
Grazie mille :D
e se magari volessi far uscire solo i numeri? cioè come se dovvessi chiamare qualcuno e dovrei comporre il numero, facendo uscire i numeri giganti?

Puoi vedere qui (http://www.jeffblankenburg.com/2010/10/10/31-days-of-windows-phone-day-10-inputscope-textboxes/), sono in ordine alfabetico, nel sito ufficiale (http://msdn.microsoft.com/en-us/library/system.windows.input.inputscopenamevalue%28v=vs.95%29.aspx) no:p ; la tastiera numerica è cambiata dopo Mango (da quel che ho capito), ad esempio in InputScope="TelephoneNumber" non c'è più la virgola e per tirarla fuori devi tenere premuto il punto;

ecco qui il codice XAML
Figo! Gentilissimo! :)

Unrealizer
21-02-2012, 00:59
Puoi vedere qui (http://www.jeffblankenburg.com/2010/10/10/31-days-of-windows-phone-day-10-inputscope-textboxes/), sono in ordine alfabetico, nel sito ufficiale (http://msdn.microsoft.com/en-us/library/system.windows.input.inputscopenamevalue%28v=vs.95%29.aspx) no:p ; la tastiera numerica è cambiata dopo Mango (da quel che ho capito), ad esempio in InputScope="TelephoneNumber" non c'è più la virgola e per tirarla fuori devi tenere premuto il punto;

Non sapevo dell'esistenza di questo InputScope :D

Figo! Gentilissimo! :)

A questo serve il thread ;)

cdimauro
21-02-2012, 06:48
Si si sapevo non ci sono librerie OpenGL, davvero sarà supportato cpp con apollo??
Le notizie che ho letto di recente dicono di sì.
Ovviamente non c'è bisogno di usare quel codice mastodontico dell'esempio, basta fare ad esempio

<TextBox InputScope="Number" ... />
Già. Però qualche esempio più semplice potevano metterlo nella documentazione. :p

Unrealizer
21-02-2012, 07:49
Le notizie che ho letto di recente dicono di sì.

Già. Però qualche esempio più semplice potevano metterlo nella documentazione. :p

Spesso danno per scontato che solo chi ha una certa esperienza consulti la Library, quando invece sono soprattutto i principianti disperati a consultarla :D

PS: in certi casi si può usare la parola modello in informatica :O MVC e MVVM :O

cdimauro
21-02-2012, 08:17
Sì, ma è una vecchia storia. :D Forse è ora di aggiornare la firma. :)

Unrealizer
21-02-2012, 09:05
Sì, ma è una vecchia storia. :D Forse è ora di aggiornare la firma. :)

Ma figurati, stavo scherzando :D

Comunque appena posso posto una versione aggiornata di quell'UserControl

Mr_Paulus
21-02-2012, 19:03
ok ufficialmente dalla settimana prossima mi rimetto sotto con wp7 (lunedì mi laureo e la settimana prossima avrò tempo :O) anche se in sti giorni nel tempo libero mi ripasso il sistema di data binding che è rimasto sepolto tra Java EE e objective C :asd:

eli990
25-02-2012, 18:31
Puoi vedere qui (http://www.jeffblankenburg.com/2010/10/10/31-days-of-windows-phone-day-10-inputscope-textboxes/), sono in ordine alfabetico, nel sito ufficiale (http://msdn.microsoft.com/en-us/library/system.windows.input.inputscopenamevalue%28v=vs.95%29.aspx) no:p ; la tastiera numerica è cambiata dopo Mango (da quel che ho capito), ad esempio in InputScope="TelephoneNumber" non c'è più la virgola e per tirarla fuori devi tenere premuto il punto;


Figo! Gentilissimo! :)

Grazie mille!!! Gentilissimo :D proprio quella che cercavo..
come sfondo della mia app ho messo un'immagine ma se volessi mettere un'immagine che scorra con la pivot??
grazie ancora:D

Unrealizer
25-02-2012, 19:02
Grazie mille!!! Gentilissimo :D proprio quella che cercavo..
come sfondo della mia app ho messo un'immagine ma se volessi mettere un'immagine che scorra con la pivot??
grazie ancora:D

Tecnicamente con i Pivot lo sfondo dovrebbe essere fisso, è con i Panorama che lo sfondo scorre :D Comunque, sono abbastanza sicuro che sia possibile avere un effetto simile, giocando con storyboard e triggers

eli990
26-02-2012, 13:04
Tecnicamente con i Pivot lo sfondo dovrebbe essere fisso, è con i Panorama che lo sfondo scorre :D Comunque, sono abbastanza sicuro che sia possibile avere un effetto simile, giocando con storyboard e triggers

Perfetto grazie mille...
ma in pratica che differenza ci sono tra pivot e panorama?
ah un'altra cosa non riesco a far scorrere la pagina (su e giù)..
Magari appena terminata questa app, anche se pur semplice, la mettero sul market.. :D

Unrealizer
26-02-2012, 13:09
Perfetto grazie mille...
ma in pratica che differenza ci sono tra pivot e panorama?
ah un'altra cosa non riesco a far scorrere la pagina (su e giù)..
Magari appena terminata questa app, anche se pur semplice, la mettero sul market.. :D

I pivot sono quelli delle impostazioni ad esempio: serve a vedere le stesse informazioni in un modo diverso, oppure per far vedere informazioni correlate tra di loro (la lista degli album e delle canzoni di un artista, impostazioni delle app e del sistema)

I panorama sono quelli come i contatti o Xbox LIVE, servono a far vedere informazioni diverse (ad esempio, la lista dei contatti e le novità)

Per far scorrere la pagina, devi mettere tutto dentro uno ScrollViewer

mirc
27-02-2012, 02:16
Perfetto grazie mille...
ma in pratica che differenza ci sono tra pivot e panorama?
ah un'altra cosa non riesco a far scorrere la pagina (su e giù)..
Magari appena terminata questa app, anche se pur semplice, la mettero sul market.. :D

I pivot sono quelli delle impostazioni ad esempio: serve a vedere le stesse informazioni in un modo diverso, oppure per far vedere informazioni correlate tra di loro (la lista degli album e delle canzoni di un artista, impostazioni delle app e del sistema)

I panorama sono quelli come i contatti o Xbox LIVE, servono a far vedere informazioni diverse (ad esempio, la lista dei contatti e le novità)

Per far scorrere la pagina, devi mettere tutto dentro uno ScrollViewer

La lauta guida MS dice, in soldoni, che i Pivot sono da preferirsi per le app che mostrano contenuti, le Panorama per le app con cui interagisci e hanno una diversa gestione dello spazio
ecco qui (http://create.msdn.com/en-US/education/quickstarts/Panorama_and_Pivot_Controls#ChoosingPivotPanorama)
io però, da gnorri:D , ho usato la pivot per un convertitore e funziona lo stesso, per ora...

eli990
27-02-2012, 09:50
Perfetto grazie mille..
Allora secondo MS dovrei usare i panorama umh.. ok vedrò di cmaibare..
:D

mirc
27-02-2012, 11:50
Perfetto grazie mille..
Allora secondo MS dovrei usare i panorama umh.. ok vedrò di cambiare..
:D

no no, continua con i pivot, nel caso cambi se ti rifiutano l'app, ma se funziona non c'è motivo di cambiare;
nel caso pubblichi l'app come beta, così anche altri te la possono testare...

eli990
27-02-2012, 12:29
no no, continua con i pivot, nel caso cambi se ti rifiutano l'app, ma se funziona non c'è motivo di cambiare;
nel caso pubblichi l'app come beta, così anche altri te la possono testare...

Ah??
Vabbè prima di pubblicarla ci vorrà un pò di tempo e certamente il vostro aiuto per farlo :D
Comunque l'ApplicationBar è uno spazio che l'applicazione utilizza per la pubblicità?

p.s. l'altro giorno ho cambiato l'icona dell'app e funzionava, solo che l'immagine era a 32bit..
poi ho visto che richiede immagini a 24bit, ne ho messa una anche all'icona della tile solo che cambiando con le immagini a 24bit mi da un errore, ritornando su quella a 32 continua a non funzionare.. Qualche consiglio su come cambiare immagini ad icona e tile? Grazie :D

mirc
27-02-2012, 18:19
Ah??
Vabbè prima di pubblicarla ci vorrà un pò di tempo e certamente il vostro aiuto per farlo :D
Comunque l'ApplicationBar è uno spazio che l'applicazione utilizza per la pubblicità?

L'ApplicationBar è il menù in basso (grigio scuro di solito) con le icone rotonde:)
per la pubblicità devi installare l'sdk apposito da sito microsoft (http://www.microsoft.com/downloads/it-it/details.aspx?familyid=b0f00afc-9709-4cc2-ba2c-57728db6cbd6&displaylang=it), poi ti trovi, in Casella degli strumenti, il comando per inserire l'ad

cdimauro
27-02-2012, 23:28
E lo devi inserire in ogni pagina dell'applicazione.

Kralizek
28-02-2012, 09:53
E lo devi inserire in ogni pagina dell'applicazione.


?

Unrealizer
28-02-2012, 11:30
?

Non è proprio obbligatorio, ma se ci vuoi guadagnare è meglio mettere la pubblicità in ogni pagina possibile :D

mirc
28-02-2012, 13:32
Non è proprio obbligatorio, ma se ci vuoi guadagnare è meglio mettere la pubblicità in ogni pagina possibile :D

Io stavo ragionando su questo, conviene mettere la pubblicità (in ogni pagina anche se è bruttino) e mettere il programma a pagamento? perché con la pubblicità guadagni anche con la visualizzazione, ma se hai un'app che resta aperta poco tempo?

---

Comunque, per chi vuole già dare un'occhiata al come sviluppare app che vadano bene anche per terminali di fascia bassa, c'è già una corposa guida su nokia develoer (http://www.developer.nokia.com/Community/Wiki/Best_practices_for_delivering_apps_to_256_MB)

Unrealizer
28-02-2012, 13:38
Io stavo ragionando su questo, conviene mettere la pubblicità (in ogni pagina anche se è bruttino) e mettere il programma a pagamento? perché con la pubblicità guadagni anche con la visualizzazione, ma se hai un'app che resta aperta poco tempo?

---

Comunque, per chi vuole già dare un'occhiata al come sviluppare app che vadano bene anche per terminali di fascia bassa, c'è già una corposa guida su nokia develoer (http://www.developer.nokia.com/Community/Wiki/Best_practices_for_delivering_apps_to_256_MB)

C'è anche una pagina su MSDN: http://msdn.microsoft.com/en-us/library/hh855081(v=vs.92).aspx

Comunque, la soluzione migliore secondo me è una trial con pubblicità e versione completa a pagamento senza pubblicità

eli990
28-02-2012, 13:56
Ho provato vari modi ma..
Come gestisco l'eccezione: quando lascio in bianco i TextBox cliccando su Button mi solleva un'eccezione..
Come faccio a gestirla?
Ho provato a mettere degli if e chiamare FormatException.. poi??

Unrealizer
28-02-2012, 14:08
Ho provato vari modi ma..
Come gestisco l'eccezione: quando lascio in bianco i TextBox cliccando su Button mi solleva un'eccezione..
Come faccio a gestirla?
Ho provato a mettere degli if e chiamare FormatException.. poi??

che eccezione? NullReferenceException?

comunque puoi usare i blocchi try-catch:


try
{
//codice che solleva l'eccezione
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Oops...");
}


Puoi specificare diversi tipi di eccezioni da gestire o non specificarne nessuno (omettendo anche del tutto il blocco (Exception ex))

Alternativamente puoi anche inserire un blocco finally dopo try e i vari catch, che può contenere codice eseguito in ogni caso (serve ad esempio a rilasciare qualche file o qualche stream)...

Ecco un esempio proveniente da un mio software in sviluppo (WPF, ma il concetto è quello)

try
{
temp.Open();
}
catch (MySqlException ex)
{
if (ex.Message.StartsWith("Access denied"))
MessageBox.Show("Nome utente o password errati", "Errore", MessageBoxButton.OK, MessageBoxImage.Error);
else if (ex.Message.StartsWith("Unable to connect"))
MessageBox.Show("Il database non risponde, contattare un amministratore", "Errore", MessageBoxButton.OK, MessageBoxImage.Error);
else
MessageBox.Show(ex.Message, "MySqlException");
}
catch (Exception ex)
{
MessageBox.Show("Si è verificato un errore sconosciuto #001: " + ex.Message, "Errore sconosciuto",
MessageBoxButton.OK, MessageBoxImage.Error);
}


nell'ultimo catch ho specificato (Exception ex) perché mi serviva leggere il Message, ma niente mi vietava di scrivere:


catch
{
MessageBox.Show("Errore sconosciuto");
}


EDIT: il mio codice però è un esempio del modo sbagliato di usare le eccezioni: devi usarle solo per prevenire e limitare gli errori, non per modificare il percorso di un programma, io sono stato costretto ad usare questa soluzione perché i paguri che hanno scritto il MySqlConnector per .NET non hanno previsto un modo per verificare se user e pass sono validi, l'unico modo è tentare di aprire la connessione e sperare per il meglio :D

cdimauro
28-02-2012, 14:31
?
Mi riferivo al fatto che se vuoi visualizzare la pubblicità su tutte le pagine, su ognuna devi inserire il controllo Ad di Microsoft.
Non è proprio obbligatorio, ma se ci vuoi guadagnare è meglio mettere la pubblicità in ogni pagina possibile :D
Esattamente.
C'è anche una pagina su MSDN: http://msdn.microsoft.com/en-us/library/hh855081(v=vs.92).aspx

Comunque, la soluzione migliore secondo me è una trial con pubblicità e versione completa a pagamento senza pubblicità
Concordo. E' il modello "freemium" che ormai va di moda.

Comunque per campare con la sola pubblicità ci vogliono numeri colossali per le impression.

Quindi per sperare che il modello di business sia profittevole, l'applicazione dev'essere MOLTO appetibile anche con le sole funzionalità di base, perché difficilmente la gente sgancia soldini per le funzionalità premium.

Mr_Paulus
20-04-2012, 15:24
prima domanda :O

come si fa a far apparire il menu con delle opzioni tipo "delete" quando fai tap prolungato su un elemento di una listbox?
qual'è la classe che gestisce sto menu?
MenuItem?


edit trovato :O
è il context menu presente nel toolkit.

Unrealizer
20-04-2012, 23:58
prima domanda :O

come si fa a far apparire il menu con delle opzioni tipo "delete" quando fai tap prolungato su un elemento di una listbox?
qual'è la classe che gestisce sto menu?
MenuItem?


edit trovato :O
è il context menu presente nel toolkit.

Insomma, mi hai fatto ripescare il thread e alla fine scopro che avevi già risolto? :asd:

Mr_Paulus
21-04-2012, 09:45
Insomma, mi hai fatto ripescare il thread e alla fine scopro che avevi già risolto? :asd:

:asd: :asd:

Mr_Paulus
23-04-2012, 14:01
altra domanda, come si fa a modificare (se si può) il comportamento del tasto back?
esempio:
schermata con una lista (schermata 1), seleziono un elemento e passo a una schermata con dettagli e una seconda lista (schermata 2), faccio per inserire un elemento e passo a una schermata dove posso inserire i dati (schermata 3), inserisco, faccio ok e torno a schermata 2, a questo punto se premo back torno alla schermata 3, come faccio a tornare alla schermata 1 premendo back?

Unrealizer
23-04-2012, 14:26
altra domanda, come si fa a modificare (se si può) il comportamento del tasto back?
esempio:
schermata con una lista (schermata 1), seleziono un elemento e passo a una schermata con dettagli e una seconda lista (schermata 2), faccio per inserire un elemento e passo a una schermata dove posso inserire i dati (schermata 3), inserisco, faccio ok e torno a schermata 2, a questo punto se premo back torno alla schermata 3, come faccio a tornare alla schermata 1 premendo back?

si può :D

Devi fare l'override del metodo OnBackKeyPress :D

l'argomento e.Cancel ti permette di annullare la navigazione indietro

Ma nel tuo caso mi pare più un problema di manipolazione del BackStack, in questo caso ecco qui: http://msdn.microsoft.com/en-us/library/hh394012(v=vs.92).aspx

Mr_Paulus
23-04-2012, 14:35
si può :D

Devi fare l'override del metodo OnBackKeyPress :D

l'argomento e.Cancel ti permette di annullare la navigazione indietro

Ma nel tuo caso mi pare più un problema di manipolazione del BackStack, in questo caso ecco qui: http://msdn.microsoft.com/en-us/library/hh394012(v=vs.92).aspx

oh grazie :O :D

Mr_Paulus
14-05-2012, 14:53
altra domanda :D
ma l'animazione che si verifica quando ci sono delle attività in background (quella con i puntini che scorrono da sinistra a destra dello schermo rallentando al centro), bisogna crearsela con uno storyboard personalizzato oppure c'è qualche modello preimpostato?

Unrealizer
14-05-2012, 18:07
altra domanda :D
ma l'animazione che si verifica quando ci sono delle attività in background (quella con i puntini che scorrono da sinistra a destra dello schermo rallentando al centro), bisogna crearsela con uno storyboard personalizzato oppure c'è qualche modello preimpostato?

C'è la ProgressBar, basta che imposti la proprietà IsIndeterminate a true.
In alternativa puoi usare il ProgressIndicator della SystemTray:

http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.systemtray.progressindicator(v=vs.92).aspx

Come altra alternativa puoi usare la PerformanceProgressBar del SilverlightToolkit, ma SystemTray.ProgressIndicator l'ha reso inutile ;)

Mr_Paulus
14-05-2012, 19:54
C'è la ProgressBar, basta che imposti la proprietà IsIndeterminate a true.
In alternativa puoi usare il ProgressIndicator della SystemTray:

http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.systemtray.progressindicator(v=vs.92).aspx

Come altra alternativa puoi usare la PerformanceProgressBar del SilverlightToolkit, ma SystemTray.ProgressIndicator l'ha reso inutile ;)

ottimo grazie sei sempre una fonte di informazioni :D

Unrealizer
14-05-2012, 21:31
ottimo grazie sei sempre una fonte di informazioni :D

figurati che i miei amici mi hanno chiamato per mesi "la Fonte" :asd:

Mr_Paulus
31-05-2012, 21:32
perché in microsoft si perdono in cazzate? :muro: :muro:

perché nell'application bar non si può usare il data binding e per crearne ad esempio di localizzate bisogna agire via codice?? :muro:

Unrealizer
31-05-2012, 22:58
perché in microsoft si perdono in cazzate? :muro: :muro:

perché nell'application bar non si può usare il data binding e per crearne ad esempio di localizzate bisogna agire via codice?? :muro:

Perché vogliono ricordarci degli sviluppatori meno fortunati di noi che devono fare tutto via codice :O

PeK
31-05-2012, 23:07
Perché vogliono ricordarci degli sviluppatori meno fortunati di noi che devono fare tutto via codice :O

tipo me.... :stordita:

Mr_Paulus
31-05-2012, 23:10
tipo me.... :stordita:

:asd::asd:

Unrealizer
01-06-2012, 02:00
tipo me.... :stordita:

:asd:

ho appena passato due ore per tentare di fare un'app "di test" su iOS (se andate a ripescare il videocorso di WP7 su Channel9, è l'esercizio "per casa" del giorno 2)

Su WP7 l'avrei fatta in... 10 minuti?

Questo iCoso non ha nemmeno i radio button! :muro:

tomminno
01-06-2012, 11:13
:asd:

ho appena passato due ore per tentare di fare un'app "di test" su iOS (se andate a ripescare il videocorso di WP7 su Channel9, è l'esercizio "per casa" del giorno 2)

Su WP7 l'avrei fatta in... 10 minuti?

Questo iCoso non ha nemmeno i radio button! :muro:

Se ragioni in termini di controlli standard stai sbagliando a concepire lo sviluppo mobile. Specialmente lo sviluppo per iPhone che segue delle regole tutte sue, stabilite da Apple ovviamente.

Unrealizer
01-06-2012, 11:18
Se ragioni in termini di controlli standard stai sbagliando a concepire lo sviluppo mobile. Specialmente lo sviluppo per iPhone che segue delle regole tutte sue, stabilite da Apple ovviamente.

Ovviamente la cosa dei radio button era solo una piccolezza, in teoria avrei dovuto usare una UIPickerView, ma avrei perso MOLTO più tempo...

ObjC è astruso anche quando si parla di fare cose molto più semplici, come concatenare una stringa oppure crearne una usando un format

Mr_Paulus
01-06-2012, 11:30
Ovviamente la cosa dei radio button era solo una piccolezza, in teoria avrei dovuto usare una UIPickerView, ma avrei perso MOLTO più tempo...

ObjC è astruso anche quando si parla di fare cose molto più semplici, come concatenare una stringa oppure crearne una usando un format

Eppure ti dirò..per uno che non è abituato ai linguaggi c-like tipo Java, c# ecc..secondo me deve essere più facile iniziare con objC..(o almeno di sicuro non più difficile)
Io è che non ho mai 3 ore libere di fila per mettermi a imparare :asd: invece con c# ormai anche se ho solo una decina di minuti qualcosa combino, intanto ormai il linguaggio lo conosco e la documentazione ms la guardo poco..

Unrealizer
06-06-2012, 22:22
prima di installare l'SDK sulla RP di win8, è meglio installare Games for Windows Live, altrimente fallisce l'installazione di XNA :D

DioBrando
11-06-2012, 16:23
Tutto su C# è un oggetto, e tutto deriva dall'oggetto Object, quindi TUTTO ha il metodo ToString, dal più semplice dei bool alla più grossa e mastodontica classe si possa immaginare :D

Nel caso non sia implementato però, il metodo ToString() restituirà una stringa con il nome della classe.


Sono entrato nell'interessante discussione (ci sono anche alcuni corsi universitari che hanno iniziato a proporre XNA) ma ho letto questo pezzo che mi ha fatto storgere un po' il naso.

Posto che dovremmo intenderci su cosa sia un oggetto...
Giusto una precisazione, non è vero che tutto in C# è un oggetto (lo è in Python per esempio), è uno dei miti "perpetrati" per differenziare radicalmente questo linguaggio da Java.
Sui tipi primitivi è vero la dicotomia è sostanziale ma le interfacce ad esempio non rispondono alla tesi iniziale.

Unrealizer
11-06-2012, 16:35
Sono entrato nell'interessante discussione (ci sono anche alcuni corsi universitari che hanno iniziato a proporre XNA) ma ho letto questo pezzo che mi ha fatto storgere un po' il naso.

Posto che dovremmo intenderci su cosa sia un oggetto...
Giusto una precisazione, non è vero che tutto in C# è un oggetto (lo è in Python per esempio), è uno dei miti "perpetrati" per differenziare radicalmente questo linguaggio da Java.
Sui tipi primitivi è vero la dicotomia è sostanziale ma le interfacce ad esempio non rispondono alla tesi iniziale.

Beh, ma le interfacce non sono altro che uno schema di "caratteristiche" che la classe implementante deve rispettare, no?

Non puoi istanziare direttamente un'interfaccia, ma soltanto una classe che la implementa... e questa classe deriva da Object :D

Comunque, io sono un autodidatta in C#, quindi potrei (e molto probabilmente questo è uno di quei casi) sbagliarmi :D

Mr_Paulus
11-06-2012, 16:52
Sono entrato nell'interessante discussione (ci sono anche alcuni corsi universitari che hanno iniziato a proporre XNA) ma ho letto questo pezzo che mi ha fatto storgere un po' il naso.

Posto che dovremmo intenderci su cosa sia un oggetto...
Giusto una precisazione, non è vero che tutto in C# è un oggetto (lo è in Python per esempio), è uno dei miti "perpetrati" per differenziare radicalmente questo linguaggio da Java.
Sui tipi primitivi è vero la dicotomia è sostanziale ma le interfacce ad esempio non rispondono alla tesi iniziale.

va beh ma lascia perdere le interfacce, penso intendesse tutto ciò che possa essere istanziato (un interfaccia non può essere istanziata, un oggetto si).

in quel caso ha ragione.

;)

Kralizek
11-06-2012, 16:59
Sono entrato nell'interessante discussione (ci sono anche alcuni corsi universitari che hanno iniziato a proporre XNA) ma ho letto questo pezzo che mi ha fatto storgere un po' il naso.

Posto che dovremmo intenderci su cosa sia un oggetto...
Giusto una precisazione, non è vero che tutto in C# è un oggetto (lo è in Python per esempio), è uno dei miti "perpetrati" per differenziare radicalmente questo linguaggio da Java.
Sui tipi primitivi è vero la dicotomia è sostanziale ma le interfacce ad esempio non rispondono alla tesi iniziale.

cos'é un'interfaccia? se é un set minimo di funzioni che una classe deve implementare per poter dire di implementare un'interfaccia, un'interfaccia non esiste di per sé ma solo per le classi che le implementano. E gli oggetti istanza di queste classi derivano da Object.

se invece vogliamo proprio legare il concetto di interfaccia a quello di una cosa, allora dobbiamo considerare il tipo dell'interfaccia. Anche in questo caso, tirato per le orecchie a dire il vero, vediamo che il tipo di un'interfaccia é contenuto in un'istanza della classe Type che a sua volta deriva da Object.

void Main()
{
IFooable fooBar = new FooBar();
(fooBar is object).Dump(); // true

Type typeIFooable = typeof(IFooable);
(typeIFooable is object).Dump(); // true
}

public interface IFooable
{
void Bar();
}

public class FooBar : IFooable
{
public void Bar() { }
}

DioBrando
11-06-2012, 17:30
Beh, ma le interfacce non sono altro che uno schema di "caratteristiche" che la classe implementante deve rispettare, no?

Ok, ma quindi non "tutto" è un oggetto :)


Non puoi istanziare direttamente un'interfaccia, ma soltanto una classe che la implementa... e questa classe deriva da Object :D


Ti posso chiedere la definizione di "oggetto"?
Secondo te deve avere la proprietà di ereditare/derivare da System.Object?


Comunque, io sono un autodidatta in C#, quindi potrei (e molto probabilmente questo è uno di quei casi) sbagliarmi :D

sono confronti interessanti :)

Mr_Paulus
11-06-2012, 18:16
Ti posso chiedere la definizione di "oggetto"?
Secondo te deve avere la proprietà di ereditare/derivare da System.Object?

un oggetto è una struttura dati (una classe) che viene allocata in un determinato spazio di memoria e segue i principi dell'incapsulamento.

il fatto che tutto derivi da system.object è semplicemente dovuto al fatto che nei linguaggi che supportano l'ereditarietà i metodi comuni a tutte le classi non vengono implementati ogni volta ma solo nella classe padre (Object in c# e java, NSObject in Objective C ecc..).
;)

DioBrando
12-06-2012, 20:09
va beh ma lascia perdere le interfacce, penso intendesse tutto ciò che possa essere istanziato (un interfaccia non può essere istanziata, un oggetto si).

in quel caso ha ragione.

;)

ok, ma va precisato all'inizio.

"tutto è un oggetto" di per sè è un'affermazione non corretta, se non debitamente circostanziata.
Sei d'accordo? :)

cos'é un'interfaccia? se é un set minimo di funzioni che una classe deve implementare per poter dire di implementare un'interfaccia

Per usare le parole di Hejlsberg, l'interfaccia è un contratto.


, un'interfaccia non esiste di per sé ma solo per le classi che le implementano. E gli oggetti istanza di queste classi derivano da Object.


Possiamo discutere sul fatto che non esista contratto senza contraenti.
Ma io posso definire un'interfaccia A che estende un'interfaccia B (qui le design guideline C# non sono chiarissime, perché si parla di "inherit") e creare una classe che implementa "solamente" A.
B ha una sua dignità d'esistere anche se non direttamente implementata.


se invece vogliamo proprio legare il concetto di interfaccia a quello di una cosa, allora dobbiamo considerare il tipo dell'interfaccia. Anche in questo caso, tirato per le orecchie a dire il vero, vediamo che il tipo di un'interfaccia é contenuto in un'istanza della classe Type che a sua volta deriva da Object.

void Main()
{
IFooable fooBar = new FooBar();
(fooBar is object).Dump(); // true

Type typeIFooable = typeof(IFooable);
(typeIFooable is object).Dump(); // true
}

public interface IFooable
{
void Bar();
}

public class FooBar : IFooable
{
public void Bar() { }
}

Un tipo interfaccia non deriva da (System.)object.
Deriva da altri tipi interfaccia ma System.object non è un'interfaccia.

Le interfacce non sono oggetti ma abbiamo la garanzia che a runtime siano trattati come tali, questo perché hanno un'istanza definita (o tipo concreto) che sarà proprio un oggetto.

E restano in ogni caso fuori i tipi puntatore che che non rispondono a nessuna delle due casistiche, ovvero né sono un oggetto, né possono essere assimilabili ad un oggetto.

un oggetto è una struttura dati (una classe) che viene allocata in un determinato spazio di memoria e segue i principi dell'incapsulamento.


L'avevo chiesta a lui, veramente :D

Comunque la tua non mi piace moltissimo, se posso:
1) non è necessariamente una classe, può essere una struct (in C# e non solo)
2) l'accenno all'incapsulamento

La definizione non è poi così univoca, cambia dalla tecnologia e dal paradigma utilizzato; per questo ne preferisco una più generale ed astratta, che coincida magari maggiormente con la rappresentazione matematica di un oggetto stesso.

Stranamente (dico stranamente perché per la consultazione scientifica la trovo solitamente poco affidabile :D ), vado piuttosto d'accordo con la prima riga di Wikipedia, da cui cito il passaggio:

In computer science, an object is a location in memory having a value and referenced by an identifier.


il fatto che tutto derivi da system.object è semplicemente dovuto al fatto che nei linguaggi che supportano l'ereditarietà i metodi comuni a tutte le classi non vengono implementati ogni volta ma solo nella classe padre (Object in c# e java, NSObject in Objective C ecc..).


Occhio perché tra "derivare" (o "essere" come aveva asserito prima Unrealizer) ed "essere convertito a/trattato come" c'è una bella differenza.
Ancora, è un problema di semantica.

Vedasi inoltre meccanismi di boxing/unboxing.


Mi permetto di linkare un bell'articolo (http://blogs.msdn.com/b/ericlippert/archive/2009/08/06/not-everything-derives-from-object.aspx) esplicativo sull'argomento.
Piccolo inciso, Eric Lippert, insieme ad Anders Hejlsberg, Don Box, Brad Abrams è stato uno dei principali dev/architetti del team iniziale .NET

Cito:
"Open" type parameter types are also not derived from object. They are, to be sure, types. You can make a field whose type is a type parameter type. And since generic types and methods ultimately are only ever used at runtime when fully "constructed" with "concrete" type arguments, type parameter types are always convertible to object. (This is why you cannot make an IEnumerable<void*> -- we require that the type argument be convertible to object

:)

Mr_Paulus
13-06-2012, 07:10
L'avevo chiesta a lui, veramente :D

Comunque la tua non mi piace moltissimo, se posso:
1) non è necessariamente una classe, può essere una struct (in C# e non solo)
2) l'accenno all'incapsulamento

La definizione non è poi così univoca, cambia dalla tecnologia e dal paradigma utilizzato; per questo ne preferisco una più generale ed astratta, che coincida magari maggiormente con la rappresentazione matematica di un oggetto stesso.

Stranamente (dico stranamente perché per la consultazione scientifica la trovo solitamente poco affidabile :D ), vado piuttosto d'accordo con la prima riga di Wikipedia, da cui cito il passaggio:

In computer science, an object is a location in memory having a value and referenced by an identifier.



Occhio perché tra "derivare" (o "essere" come aveva asserito prima Unrealizer) ed "essere convertito a/trattato come" c'è una bella differenza.
Ancora, è un problema di semantica.

Vedasi inoltre meccanismi di boxing/unboxing.


Mi permetto di linkare un bell'articolo (http://blogs.msdn.com/b/ericlippert/archive/2009/08/06/not-everything-derives-from-object.aspx) esplicativo sull'argomento.
Piccolo inciso, Eric Lippert, insieme ad Anders Hejlsberg, Don Box, Brad Abrams è stato uno dei principali dev/architetti del team iniziale .NET

Cito:
"Open" type parameter types are also not derived from object. They are, to be sure, types. You can make a field whose type is a type parameter type. And since generic types and methods ultimately are only ever used at runtime when fully "constructed" with "concrete" type arguments, type parameter types are always convertible to object. (This is why you cannot make an IEnumerable<void*> -- we require that the type argument be convertible to object

:)

infatti ho scritto struttura dati, l'incapsulamento viene usato da praticamente da tutti i linguaggi di programmazione OOP.

comunque tutto sto disquisire mi pare un inutile esercizio di retorica volto al celodurismo e terribilmente OT, senza offesa.

nessuno qui sta trattando di principi dei linguaggi di programmazione, la maggior parte della gente che passa qui dentro è gente che apre visual studio e inizia a programmare senza grosse basi teoriche.

DioBrando
13-06-2012, 18:54
infatti ho scritto struttura dati, l'incapsulamento viene usato da praticamente da tutti i linguaggi di programmazione OOP.

Nella definizione hai scritto "scrittura dati che segue i principi dell'incapsulamento", ma non è l'unico.
O la mantieni molto generale, in modo da astrarti da paradigmi e tecnologie oppure la contestualizzi...secondo me almeno.


comunque tutto sto disquisire mi pare un inutile esercizio di retorica volto al celodurismo e terribilmente OT, senza offesa.


Per carità, mi ero scusato (credo) all'inizio e mi riscuso ora. Casomai se qualcuno volesse, se ne potrebbe discutere in un altro thread.

Mi sembra piuttosto importante però distinguere alcune caratteristiche peculiari di uno strumento e come utilizzarle.

La differenza tra value e reference type, tra implementazione ed eredità ecc. ecc.
Ne va della buona progettazione di un software.


nessuno qui sta trattando di principi dei linguaggi di programmazione, la maggior parte della gente che passa qui dentro è gente che apre visual studio e inizia a programmare senza grosse basi teoriche.

Beh, male.





Per quanto riguarda il thread, per esperienza, mi sento di consigliare oltre alla serie "Learn How Do I" ed il Channel 9 di MSDN anche i corsi che offre Pluralsight (http://www.pluralsight-training.net/microsoft) (a spot vengono pubblicamente gratuitamente e basta seguire il canale di Twitter per essere aggiornati o cmq aehm..."si trovano") e LearnVisualStudio (http://www.learnvisualstudio.net/)

Mr_Paulus
13-06-2012, 19:21
Beh, male.

è stata la fortuna dell'appstore, dell'android market e sarà la fortuna del marketplace.
il mondo sta cambiando e i programmatori non sono più una stretta elite che ha studiato informatica o ingegneria.

;)

cdimauro
13-06-2012, 20:55
Difficilmente si inizia a programmare a scuola (ITIS o università). In genere si parte prima, da autodidatti.

Questo, comunque, non assolve dal dovere di acquisire almeno i concetti basilari della programmazione, e la terminologia usata per il paradigma o i paradigmi con cui si avrà a che fare.

Non è un dovere per chi inizia, ma lo è sicuramente per chi ne farà o ne fa una professione. ;)

DioBrando
13-06-2012, 21:54
è stata la fortuna dell'appstore, dell'android market e sarà la fortuna del marketplace.


Se pensi che la maggiorparte degli sviluppatori che pubblicano applicazione nei vari online "store", disponibili per ciascuna piattaforma, non abbiano un forte background teorico alle spalle, non vorrei darti una delusione ma...ti sbagli di grosso.

Molto spesso si tratta di professionisti che hanno diversificato il proprio settore o hanno scelto di passare in toto al mobile perché per molti aspetti non solo è il futuro ma il presente.


Il fatto che Apple abbia costruito un ecosistema in cui sia piuttosto semplice muoversi (un ambiente di sviluppo, pochi dispositivi, due sistemi operativi che per altro stanno convergendo) non prescinde dal conoscere quel che c'è dietro il mettere assieme dei controlli in un'interfaccia candy.


il mondo sta cambiando e i programmatori non sono più una stretta elite che ha studiato informatica o ingegneria.

;)

Allo stesso modo, se pensi che gli sviluppatori facciano parte di una stretta (? Solo l'India sforna decine di migliaia di nuovi ingegneri ogni anno...) cerchia di persone quasi come fossero dei sacerdoti, stai prendendo un granchio.
In primo luogo nessuno ha mai affermato che per conoscere i fondamenti della programmazione serva essere laureati o avere studiato all'Università.
Se sei entrato nel mondo del lavoro in questo settore te ne accorgi con i tuoi occhi.
E' pieno di professionisti con il diploma in mano ma con certificazioni e/o esperienza che li qualifica per quello che sono: professionisti.

Così come non ti affidi ad un commesso della domenica con la passione dell'avvocatura se vuoi un parere legale o non costruisce un ospedale avendo fatto il muratore, allo stesso modo non ti improvvisi sviluppatore.
Poi, come in ogni lavoro, troverai quello più bravo e quello meno.
Ma è un altro paio di maniche.


Siamo ancora più OT ma era per mettere nella giusta prospettiva questo lavoro, spesso bistrattato e malpagato anche a causa di dev della domenica che pretendono di costruire qualcosa che non si impara a fare dall'oggi al domani..
Se i non addetti ai lavori si straniscono nel pagare chessò un sito web più 100-200 Euro, lo dobbiamo (sic!) anche a loro...

birmarco
03-01-2013, 00:26
Iscritto :D

M@Rk0
12-01-2013, 19:25
Ciao a tutti, sono uno "studente" di informatica a cui purtroppo in università sono stati insegnati più o meno solo il C, un po' il Ruby e un po' il Java (Ruby e Java in un unico corso da 6 CFU, non commento). Visto che possiedo un terminale Windows Phone ho detto "perchè non provare a fare qualche app, non si sa mai che mi possa tornare comodo!".
All'inizio non avevo idea di cosa stavo facendo anche perchè mi sono reso conto che stavo provando a sviluppare in VisualBasic e non capivo un cacchio di niente, mi ho notato che si poteva fare un progetto in Do Diesis (:asd:) e mi si è aperto un mondo.
Mai usato il C# ma mi sembra di usare il Java come sintassi e tutto, quindi mi faccio semplicemente aiutare da Visual Studio quando non so come si chiama una funzione, andando a tentativi fino a quando non compare un suggerimento giusto (direi che funziona bene comunque).

Tornando a noi, ho fatto una piccola applicazione in landscape, esclusivamente landscape per questioni di interfaccia. Scopro che non è possibile bloccare l'orientamento su LandscapeLeft o Right e me ne faccio anche una ragione.
Solo che non mi capacito del fatto che se ruoto da LandscapeLeft a LandscapeRight, la Application Bar diventa più larga e copre un pezzetto di tastiera su schermo.
Questo non succede se abilito anche l'orientamento Portrait ("SupportedOrientations="PortraitOrLandscape") e ruotando il device da LandscapeLeft a Right passo da Portrait. Se lo giro velocemente saltando Portrait la barra si inspessisce, ma girando su Portrait torna normale.
Se l'applicazione si apre già in LanscapeRight e passo a Left non si verifica il bug ma se ritorno su Right eccolo di nuovo.

Vorrei sentire un vostro parere a riguardo. Esiste un modo di creare un'applicazione solo Landscape che non presenti il bug?

Unrealizer
12-01-2013, 19:30
Ciao a tutti, sono uno "studente" di informatica a cui purtroppo in università sono stati insegnati più o meno solo il C, un po' il Ruby e un po' il Java (Ruby e Java in un unico corso da 6 CFU, non commento). Visto che possiedo un terminale Windows Phone ho detto "perchè non provare a fare qualche app, non si sa mai che mi possa tornare comodo!".
All'inizio non avevo idea di cosa stavo facendo anche perchè mi sono reso conto che stavo provando a sviluppare in VisualBasic e non capivo un cacchio di niente, mi ho notato che si poteva fare un progetto in Do Diesis (:asd:) e mi si è aperto un mondo.
Mai usato il C# ma mi sembra di usare il Java come sintassi e tutto, quindi mi faccio semplicemente aiutare da Visual Studio quando non so come si chiama una funzione, andando a tentativi fino a quando non compare un suggerimento giusto (direi che funziona bene comunque).

Tornando a noi, ho fatto una piccola applicazione in landscape, esclusivamente landscape per questioni di interfaccia. Scopro che non è possibile bloccare l'orientamento su LandscapeLeft o Right e me ne faccio anche una ragione.
Solo che non mi capacito del fatto che se ruoto da LandscapeLeft a LandscapeRight, la Application Bar diventa più larga e copre un pezzetto di tastiera su schermo.
Questo non succede se abilito anche l'orientamento Portrait ("SupportedOrientations="PortraitOrLandscape") e ruotando il device da LandscapeLeft a Right passo da Portrait. Se lo giro velocemente saltando Portrait la barra si inspessisce, ma girando su Portrait torna normale.
Se l'applicazione si apre già in LanscapeRight e passo a Left non si verifica il bug ma se ritorno su Right eccolo di nuovo.

Vorrei sentire un vostro parere a riguardo. Esiste un modo di creare un'applicazione solo Landscape che non presenti il bug?

Potresti postare degli screenshot? non ho ben chiaro cosa intendi, un paio di immagini aiuterebbero molto :D

Un paio di domande importanti:

Che versione del SO stai usando? WP7 o WP8?
È un'app WP7 che gira su un WP8?
Stai usando l'SDK che gira su VS2010 o quello nuovo che gira su VS2012?

EDIT: ho visto ora che hai un Q6600 con Win7, quindi sicuramente stiamo parlando di un'app WP7 scritta con l'SDK di VS2010 :D

M@Rk0
12-01-2013, 19:40
Potresti postare degli screenshot? non ho ben chiaro cosa intendi, un paio di immagini aiuterebbero molto :D

Un paio di domande importanti:

Che versione del SO stai usando? WP7 o WP8?
È un'app WP7 che gira su un WP8?
Stai usando l'SDK che gira su VS2010 o quello nuovo che gira su VS2012?

EDIT: ho visto ora che hai un Q6600 con Win7, quindi sicuramente stiamo parlando di un'app WP7 scritta con l'SDK di VS2010 :D

eh la firma la devo aggiornare, grazie per avermelo fatto notare, ora ho W8...
comunque:
app per W7 su W7, lo scherzo lo fa sia su VS2010 che su VS2012
ora faccio un nuovo progettino apposta per evidenziare il problema e lo posto

Unrealizer
12-01-2013, 19:48
eh la firma la devo aggiornare, grazie per avermelo fatto notare, ora ho W8...
comunque:
app per W7 su W7, lo scherzo lo fa sia su VS2010 che su VS2012
ora faccio un nuovo progettino apposta per evidenziare il problema e lo posto

Va bene ;)

Comunque, visto che sei uno studente, puoi contattare l'MSP della tua università per avere un aiuto più diretto ;)

http://www.microsoft.com/italy/studenti/ugeneration/contatti-msp.aspx

M@Rk0
12-01-2013, 20:25
Va bene ;)

Comunque, visto che sei uno studente, puoi contattare l'MSP della tua università per avere un aiuto più diretto ;)

http://www.microsoft.com/italy/studenti/ugeneration/contatti-msp.aspx

La mia università lì non c'è :asd:

ecco il progettino, con tanto di nuvolette simpatiche
http://www.mediafire.com/?aa6dv55axzhax8g

Unrealizer
13-01-2013, 15:29
La mia università lì non c'è :asd:

ecco il progettino, con tanto di nuvolette simpatiche
http://www.mediafire.com/?aa6dv55axzhax8g

Capito il problema, ed è una cosa che era capitata anche a me... Se ti può far sentire meglio, eseguendolo su WP8 non succede :D

Purtroppo credo non ci siano soluzioni :(

M@Rk0
13-01-2013, 16:16
Capito il problema, ed è una cosa che era capitata anche a me... Se ti può far sentire meglio, eseguendolo su WP8 non succede :D

Purtroppo credo non ci siano soluzioni :(

beh, mi rincuora il fatto che non sia un errore causato da quello che ho scritto io e quindi non ci posso fare niente. Il fatto è che è una cosa che ho visto solo qua, nelle applicazioni che ci sono sul market non lo fa! (o almeno non l'ho mai visto fare)

birmarco
13-01-2013, 17:11
Cmq mi pare sia possibile bloccare la rotazione in landscape se vuoi l'app solo in portrait ;) Così prendi due piccioni con una fava :)

EDIT:

Sì!
Devi aggiungere quello in grassetto:

Public Sub New()

InitializeComponent()

SupportedOrientations = SupportedPageOrientation.Portrait

End Sub


la Sub New è quella che si trova in MainPage della tua app (la pagina principale). La tua app non ruoterà più

EDIT2:

Usi C#! :D

Il codice dovrebbe essere allora questo:


public New()
{
InitializeComponent();

SupportedOrientations = SupportedPageOrientation.Portrait;

}


PS. Comunque è normale che all'università non ti insegnino linguaggi MS come corsi principali, sono linguaggi proprietari troppo specifici e limitanti ;) Se te li insegnassero ci sarebbe da preoccuparsi :Prrr: Però ci sarà sicuramente un corso del genere tra quelli complementari, potresti farlo se puoi :)

Altrimenti puoi o continuare come stai facendo, ma è un metodo lento e lungo, oppure studiarti qualche linguaggio .Net su qualche libro. C# o VB .Net? Quello che preferisci... molti preferiscono il C# perchè dicono sia migliore... non sono molto esperto per potermi permettere una discussione su cosa è meglio e cosa no, ma il mio modesto parere è di scegliere quello che più preferisci tra i due :) Io ho scelto VB perchè odio la sintassi tipo Java piena di parentesi, punti e virgola ecc... però è anche vero che VB è più ridondante in certi passaggi che devono essere scritti in maniera più estesa (io odio pure il codice troppo compatto :D )

Altra soluzione, se sei agli inizi può essere quella di imparare HTML5 e Javascript. Così con quello che impari, aggiunto a PHP e SQL che sicuramente farai in qualche esame sai pure creare siti web "2.0"... anche se penso che fare le app usando HTML5+JS sia più complesso per chi inizia per le prime volte ;)

Unrealizer
13-01-2013, 17:19
beh, mi rincuora il fatto che non sia un errore causato da quello che ho scritto io e quindi non ci posso fare niente. Il fatto è che è una cosa che ho visto solo qua, nelle applicazioni che ci sono sul market non lo fa! (o almeno non l'ho mai visto fare)

Allora può darsi che un modo per risolvere ci sia, ma purtroppo non ci sono mai riuscito :(

Cmq mi pare sia possibile bloccare la rotazione in landscape se vuoi l'app solo in portrait ;) Così prendi due piccioni con una fava :)

EDIT:

Sì!
Devi aggiungere quello in grassetto:

Public Sub New()

InitializeComponent()

SupportedOrientations = SupportedPageOrientation.Portrait

End Sub


la Sub New è quella che si trova in MainPage della tua app (la pagina principale). La tua app non ruoterà più

Al contrario, lui voleva fare in modo che la sua app stesse solo in Landscape! :D

birmarco
13-01-2013, 17:31
Al contrario, lui voleva fare in modo che la sua app stesse solo in Landscape! :D

ahah ottimo :D Cmq basta scrivere Landscape al posto di Portrait ed è a posto :)

Il problema della appbar però non si risolve. Non ho capito bene come viene visualizzata la cosa ma si potrebbe risolvere nel frattempo con un workaround:

crea un evento txtBox.click o .mouseenter (non so a memoria che eventi disponga la textbox su WP :D ) e dentro la sub ci piazza un codice che disabilita la appbar.

Poi ne crea un altro del tipo ContentGrid.MouseEnter che la riabilita, il tutto con un flag che si setta nell'evento della textbox e si resetta in quest'altro, almeno non si esegue continuamente codice inutile ad ogni click. Con contentgrid intendo un pannello o un qualcosa cliccabile con la tastiera espansa di modo che uscendo dalla tastiera si riabiliti la appbar ;)

Unrealizer
13-01-2013, 17:38
ahah ottimo :D Cmq basta scrivere Landscape al posto di Portrait ed è a posto :)

Il problema della appbar però non si risolve. Non ho capito bene come viene visualizzata la cosa ma si potrebbe risolvere nel frattempo con un workaround:

crea un evento txtBox.click o .mouseenter (non so a memoria che eventi disponga la textbox su WP :D ) e dentro la sub ci piazza un codice che disabilita la appbar.

Poi ne crea un altro del tipo ContentGrid.MouseEnter che la riabilita, il tutto con un flag che si setta nell'evento della textbox e si resetta in quest'altro, almeno non si esegue continuamente codice inutile ad ogni click. Con contentgrid intendo un pannello o un qualcosa cliccabile con la tastiera espansa di modo che uscendo dalla tastiera si riabiliti la appbar ;)

Gli eventi sono LostFocus e GotFocus :D

birmarco
13-01-2013, 17:40
Gli eventi sono LostFocus e GotFocus :D

Ancora meglio :D
Così il tutto è più performante:

GotFocus: disabilita appbar
LostFocus: abilita appbar :)

Potrebbe andare no?

Unrealizer
13-01-2013, 17:42
Ancora meglio :D
Così il tutto è più performante:

GotFocus: disabilita appbar
LostFocus: abilita appbar :)

Potrebbe andare no?

Provo :D

Funge, ma è un po' fastidioso quando l'application bar è a sinistra :O

M@Rk0
13-01-2013, 17:45
Cmq mi pare sia possibile bloccare la rotazione in landscape se vuoi l'app solo in portrait ;) Così prendi due piccioni con una fava :)

EDIT2:

Usi C#! :D

Il codice dovrebbe essere allora questo:


cut


PS. Comunque è normale che all'università non ti insegnino linguaggi MS come corsi principali, sono linguaggi proprietari troppo specifici e limitanti ;) Se te li insegnassero ci sarebbe da preoccuparsi :Prrr: Però ci sarà sicuramente un corso del genere tra quelli complementari, potresti farlo se puoi :)

Altrimenti puoi o continuare come stai facendo, ma è un metodo lento e lungo, oppure studiarti qualche linguaggio .Net su qualche libro. C# o VB .Net? Quello che preferisci... molti preferiscono il C# perchè dicono sia migliore... non sono molto esperto per potermi permettere una discussione su cosa è meglio e cosa no, ma il mio modesto parere è di scegliere quello che più preferisci tra i due :) Io ho scelto VB perchè odio la sintassi tipo Java piena di parentesi, punti e virgola ecc... però è anche vero che VB è più ridondante in certi passaggi che devono essere scritti in maniera più estesa (io odio pure il codice troppo compatto :D )

Altra soluzione, se sei agli inizi può essere quella di imparare HTML5 e Javascript. Così con quello che impari, aggiunto a PHP e SQL che sicuramente farai in qualche esame sai pure creare siti web "2.0"... anche se penso che fare le app usando HTML5+JS sia più complesso per chi inizia per le prime volte ;)

So benissimo che si può bloccare l'orientamente su Landscape, infatti nel xaml c'è SupportedOrientations="Landscape" Orientation="LandscapeLeft"
ma non è possibile (mi sono documentato un pochino a riguardo) bloccare solo su Left o solo su Right.

Non ci sono corsi del genere complementari

Io adoro la sintassi C-like, tutto ben delineato da parentesi e segni di punteggiatura invece. Infatti quando mi hanno introdotto Ruby ero un po' spiazzato all'inizio :asd:

Il prossimo semestre ho scelto il corso "METODOLOGIE DI PROGRAMMAZIONE PER IL WEB", quindi aspetto di avere le basi da quel corso prima di mettermi a vedere php html5 javascript e compagnia cantante

ahah ottimo :D Cmq basta scrivere Landscape al posto di Portrait ed è a posto :)

Il problema della appbar però non si risolve. Non ho capito bene come viene visualizzata la cosa ma si potrebbe risolvere nel frattempo con un workaround:

crea un evento txtBox.click o .mouseenter (non so a memoria che eventi disponga la textbox su WP :D ) e dentro la sub ci piazza un codice che disabilita la appbar.

Poi ne crea un altro del tipo ContentGrid.MouseEnter che la riabilita, il tutto con un flag che si setta nell'evento della textbox e si resetta in quest'altro, almeno non si esegue continuamente codice inutile ad ogni click. Con contentgrid intendo un pannello o un qualcosa cliccabile con la tastiera espansa di modo che uscendo dalla tastiera si riabiliti la appbar ;)

avevo pensato ad un approccio del genere ad essere sincero, ma mi pesava il culo farlo in quel momento lì e ho chiesto se c'era un modo di evitarmi sto lavoro :asd:

un'altra cosa che mi è venuta in mente è di farmi una ApplicationBar mia (ovvero i pulsanti che mi servono di lato implementati nel layout principale) però è un lavoraccio gestire l'animazione di rotazione (non ho ancora guardato come animare gli oggetti, ma solo come spostarli/ruotarli/ecc) e tenere la fila di pulsanti sempre dallo stesso lato (quindi spostare tutto il contenuto della griglia a destra e a sinistra :|

Ancora meglio :D
Così il tutto è più performante:

GotFocus: disabilita appbar
LostFocus: abilita appbar :)

Potrebbe andare no?

esatto avevo trovato anche questo approccio googlando un po', ma preferivo risolvere il problema piuttosto che aggirarlo

birmarco
13-01-2013, 18:02
Provo :D

Funge, ma è un po' fastidioso quando l'application bar è a sinistra :O

Come mai? Che succede? :)

PS. Cmq secondo me è ridicolo che ci siano tutti sti bug! :mad:

So benissimo che si può bloccare l'orientamente su Landscape, infatti nel xaml c'è SupportedOrientations="Landscape" Orientation="LandscapeLeft"
ma non è possibile (mi sono documentato un pochino a riguardo) bloccare solo su Left o solo su Right.

Non ci sono corsi del genere complementari

Io adoro la sintassi C-like, tutto ben delineato da parentesi e segni di punteggiatura invece. Infatti quando mi hanno introdotto Ruby ero un po' spiazzato all'inizio :asd:


Il 90% dei miei errori di programmazione sono i ; :D

Cmq non mi sembra problematico se può andare a destra o a sinistra... anzi secondo me è meglio, almeno uno lo tiene come vuole, di fatto a te non dovrebbe cambiare nulla :)


Il prossimo semestre ho scelto il corso "METODOLOGIE DI PROGRAMMAZIONE PER IL WEB", quindi aspetto di avere le basi da quel corso prima di mettermi a vedere php html5 javascript e compagnia cantante


L'HTML è un linguaggio di markup quindi non esiste proprio una metodologia, devi solo imparare i tag che ci sono :D Il PHP è un linguaggio """come il Java""" (nota le triple virgolette :D ), idem per il Javascript. Non so che metodologie possano insegnare :D


avevo pensato ad un approccio del genere ad essere sincero, ma mi pesava il culo farlo in quel momento lì e ho chiesto se c'era un modo di evitarmi sto lavoro :asd:

un'altra cosa che mi è venuta in mente è di farmi una ApplicationBar mia (ovvero i pulsanti che mi servono di lato implementati nel layout principale) però è un lavoraccio gestire l'animazione di rotazione (non ho ancora guardato come animare gli oggetti, ma solo come spostarli/ruotarli/ecc) e tenere la fila di pulsanti sempre dallo stesso lato (quindi spostare tutto il contenuto della griglia a destra e a sinistra :|



esatto avevo trovato anche questo approccio googlando un po', ma preferivo risolvere il problema piuttosto che aggirarlo

Per le animazioni devi usare Blend 5, su Dreamspark lo trovi, se non lo stai già usando. Serve per disegnare l'interfaccia e fare le animazioni. Basta che switchi in modalità storyboard e fai tutto da lì :)

Secondo me è meglio adottare un workaroud piuttosto che ridisegnare l'appbar ;)

M@Rk0
13-01-2013, 18:19
Si ce l'ho blend, me l'ha installato assieme a Visual Studio.
(il progettino di esempio che ho messo sopra l'ho fatto con quello, per le forme)

comunque ho guardato e su whatsapp c'è lo stesso problema, quindi è il SO che è buggato.

edit: comunque la applicationbar ingrossata mi coprirebbe parte degli elementi dell'interfaccia e non mi piace per niente, quindi supporterò anche l'orientamento Portrait e bona lì

cdimauro
13-01-2013, 18:31
PS. Comunque è normale che all'università non ti insegnino linguaggi MS come corsi principali, sono linguaggi proprietari troppo specifici e limitanti ;)
Può esserlo un'implementazione, ma un linguaggio di per sé è abbastanza libero.

C#, tra l'altro, è uno standard ECMA. Non è "specifico", ma abbastanza generale come linguaggio, e francamente ha ben pochi limiti.
Se te li insegnassero ci sarebbe da preoccuparsi :Prrr:
A scuola insegnano Java, che non è nemmeno uno standard ISO o ECMA. Ed è di proprietà di Oracle (Sun), che ha fatto causa a Google soltanto perché ha osato realizzare una sua implementazione su Android.

Se fai un confronto con C#, beh, è molto più libero. ;)

Unrealizer
13-01-2013, 18:35
comunque ho guardato e su whatsapp c'è lo stesso problema, quindi è il SO che è buggato.


Non prendere whatsapp come esempio, perché difficilmente sullo store trovi app peggiori di quella :muro:

Può esserlo un'implementazione, ma un linguaggio di per sé è abbastanza libero.

C#, tra l'altro, è uno standard ECMA. Non è "specifico", ma abbastanza generale come linguaggio, e francamente ha ben pochi limiti.

A scuola insegnano Java, che non è nemmeno uno standard ISO o ECMA. Ed è di proprietà di Oracle (Sun), che ha fatto causa a Google soltanto perché ha osato realizzare una sua implementazione su Android.

Se fai un confronto con C#, beh, è molto più libero. ;)

Inoltre il C# è decisamente multipiattaforma, grazie a Mono :D

M@Rk0
13-01-2013, 18:49
Non prendere whatsapp come esempio, perché difficilmente sullo store trovi app peggiori di quella :muro:


:asd: è vero
beh ho provato nell'app Messaggi che c'è di base.
Sembra che sapessero di questo comportamento anomalo della ApplicationBar, perchè nella versione "estesa" della barra, gli elementi non sono coperti di una misura giusta giusta (ad occhio saranno uno o due pixel) in entrambi gli orientamenti (Left e Right); anche se la tastiera resta sempre coperta di un pochino.
Ho notato che se sono nell'elenco delle discussioni con la barra buggata, se apro una discussione la ricarica e torna della dimensione normale.
Quindi credo che si debba trovare un modo di fare un refresh della pagina dopo la rotazione per riportarla alla normalità ma non ho idea come

birmarco
14-01-2013, 11:52
Può esserlo un'implementazione, ma un linguaggio di per sé è abbastanza libero.

C#, tra l'altro, è uno standard ECMA. Non è "specifico", ma abbastanza generale come linguaggio, e francamente ha ben pochi limiti.

A scuola insegnano Java, che non è nemmeno uno standard ISO o ECMA. Ed è di proprietà di Oracle (Sun), che ha fatto causa a Google soltanto perché ha osato realizzare una sua implementazione su Android.

Se fai un confronto con C#, beh, è molto più libero. ;)

Il C# però non è troppo multipiattaforma in fondo, e non è diffuso come il Java. A me il Java non piace però secondo me è più adatto per essere insegnato all'università :)

:asd: è vero
beh ho provato nell'app Messaggi che c'è di base.
Sembra che sapessero di questo comportamento anomalo della ApplicationBar, perchè nella versione "estesa" della barra, gli elementi non sono coperti di una misura giusta giusta (ad occhio saranno uno o due pixel) in entrambi gli orientamenti (Left e Right); anche se la tastiera resta sempre coperta di un pochino.
Ho notato che se sono nell'elenco delle discussioni con la barra buggata, se apro una discussione la ricarica e torna della dimensione normale.
Quindi credo che si debba trovare un modo di fare un refresh della pagina dopo la rotazione per riportarla alla normalità ma non ho idea come

Ho fatto un po' di prove sul mio... e non succede! Magari su WP8 han risolto, voi avete il 7?

Unrealizer
14-01-2013, 12:03
Il C# però non è troppo multipiattaforma in fondo, e non è diffuso come il Java. A me il Java non piace però secondo me è più adatto per essere insegnato all'università :)

Perché no? :)

Con Mono puoi compilare codice C# su tutte e 3 le piattaforme principali (Linux, OSX e Windows, che ha anche .NET ovviamente) e sulle 3 principali piattaforme mobili... Il problema è che Mono non credo supporti le ultime versioni di C#, e la Base Class Library non è estesa quanto quella di .NET, ma il linguaggio si può usare :D

Ho fatto un po' di prove sul mio... e non succede! Magari su WP8 han risolto, voi avete il 7?

Si, si parlava di app WP7 su WP7 ;)

Ho provato a farla girare su WP8 e a convertirla in un progetto WP8, in entrambi i casi era tutto a posto

birmarco
14-01-2013, 12:38
Perché no? :)

Con Mono puoi compilare codice C# su tutte e 3 le piattaforme principali (Linux, OSX e Windows, che ha anche .NET ovviamente) e sulle 3 principali piattaforme mobili... Il problema è che Mono non credo supporti le ultime versioni di C#, e la Base Class Library non è estesa quanto quella di .NET, ma il linguaggio si può usare :D



Si, si parlava di app WP7 su WP7 ;)

Ho provato a farla girare su WP8 e a convertirla in un progetto WP8, in entrambi i casi era tutto a posto

Oltre al fatto che con C# non ci programmi proprio su tutto come il Java. Inoltre sei legato principalmente a Visual Studio che c'è solo su Win mentre ad esempio Eclipse c'è per tutto (Win, Linux e mac) :)

Unrealizer
14-01-2013, 13:08
Oltre al fatto che con C# non ci programmi proprio su tutto come il Java. Inoltre sei legato principalmente a Visual Studio che c'è solo su Win mentre ad esempio Eclipse c'è per tutto (Win, Linux e mac) :)

MonoDevelop ;)

M@Rk0
14-01-2013, 16:18
Credo che la maggiore "universalità" di Java sia data dal fatto che gira tutto in VirtualMachine Java, che è la stessa per qualsiasi piattaforma.

O sbaglio?

birmarco
14-01-2013, 16:33
MonoDevelop ;)

Mai sentito, ma non penso sia a livello di VS o sbaglio? :)

Credo che la maggiore "universalità" di Java sia data dal fatto che gira tutto in VirtualMachine Java, che è la stessa per qualsiasi piattaforma.

O sbaglio?

Esatto, però anche .NET è la stessa cosa :) Però per Java hanno fatto la VM per tutto, anche il frigorifero :D

Mr_Paulus
14-01-2013, 17:08
.net poteva essere la stessa cosa se ms avesse fatto vm per osx & linux.

Unrealizer
14-01-2013, 17:42
Mai sentito, ma non penso sia a livello di VS o sbaglio? :)

È l'ambiente di riferimento per Mono :D non è al livello di VS, ma non è male :D

E poi, l'IDE non è parte integrante né del linguaggio né della class library... volendo potrei sviluppare usando il blocco note e cs.exe

M@Rk0
14-01-2013, 18:11
E poi, l'IDE non è parte integrante né del linguaggio né della class library... volendo potrei sviluppare usando il blocco note e cs.exe

Sublime Text + gcc :yeah:

Unrealizer
14-01-2013, 18:21
Sublime Text + gcc :yeah:

Ma questo Sublime com'è? l'ho visto usare ad un collega, non mi sembrava male... peccato che sia un semplice text editor

birmarco
14-01-2013, 18:28
.net poteva essere la stessa cosa se ms avesse fatto vm per osx & linux.

Dovrebbe svilupparlo meglio, IMHO, poi vedi come decolla, è facilissimo :D

È l'ambiente di riferimento per Mono :D non è al livello di VS, ma non è male :D

E poi, l'IDE non è parte integrante né del linguaggio né della class library... volendo potrei sviluppare usando il blocco note e cs.exe

Col blocco note non ci voglio sviluppare neanche hello world :asd: E' da pazzi lavorare così :eek:

M@Rk0
14-01-2013, 18:54
Ma questo Sublime com'è? l'ho visto usare ad un collega, non mi sembrava male... peccato che sia un semplice text editor

è spettacolare.
in uni avevo iniziato con gedit (anche perchè per il C ci facevano usare quello oppure kate (odio profondo) oppure "un editor di testo che volete", avevo provato anche vim :asd:), poi ho scoperto Sublime e non riesco ad usare più nessun altro editor, ti consiglio di provarlo. Lo uso anche per Ruby e Java (che sono gli altri due linguaggi che ci hanno """insegnato""").
Quando per Java il prof ci ha consigliato di usare Eclipse o Netbeans, ho aperto Eclipse e la reazione è stata:
http://i1.kym-cdn.com/photos/images/original/000/165/707/tumblr_lqe19tu8DA1qiwpz6.gif


Ho notato che se sono nell'elenco delle discussioni con la barra buggata, se apro una discussione la ricarica e torna della dimensione normale.
Quindi credo che si debba trovare un modo di fare un refresh della pagina dopo la rotazione per riportarla alla normalità ma non ho idea come
Nessuno ha idea?

birmarco
14-01-2013, 19:35
Nessuno ha idea?

Potresti provare col NavigationService :)

C'è il metodo refresh

http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice.aspx

(non ho idea se possa funzionare :)

>=============================================<

Qualcuno sa se i metodi Async continuano a funzionare se viene cambiata la pagina chiamante?

Cioè, se apro l'app e avvio un metodo Async nella pagina principale, se viene cambiata dall'utente l'elaborazione si stoppa o va avanti? :)

EDIT. E il metodo New della pagina viene sempre eseguito ad ogni apertura della pagina (senza chiudere l'app) oppure solo la prima volta? :)

Unrealizer
14-01-2013, 19:42
Quando per Java il prof ci ha consigliato di usare Eclipse o Netbeans, ho aperto Eclipse e la reazione è stata:
http://i1.kym-cdn.com/photos/images/original/000/165/707/tumblr_lqe19tu8DA1qiwpz6.gif[QUOTE]

Immagina la mia reazione quando il prof di Programmazione ci ha detto che avremmo dovuto usare Dev-Cpp per il corso di C++...

[QUOTE=birmarco;38861032]Potresti provare col NavigationService :)

C'è il metodo refresh

http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice.aspx

(non ho idea se possa funzionare :)

>=============================================<

Qualcuno sa se i metodi Async continuano a funzionare se viene cambiata la pagina chiamante?

Cioè, se apro l'app e avvio un metodo Async nella pagina principale, se viene cambiata dall'utente l'elaborazione si stoppa o va avanti? :)

EDIT. E il metodo New della pagina viene sempre eseguito ad ogni apertura della pagina (senza chiudere l'app) oppure solo la prima volta? :)

Prova :asd:

Per il metodo New (che credo sia il costruttore, stai usando VB.net, no?) metti un Debug.WriteLine e vedi quando viene chiamato :D

M@Rk0
14-01-2013, 19:57
Potresti provare col NavigationService :)

C'è il metodo refresh

http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice.aspx

(non ho idea se possa funzionare :) )


Su WindowsPhone NavigationService non ha il metodo Refresh :asd:


Immagina la mia reazione quando il prof di Programmazione ci ha detto che avremmo dovuto usare Dev-Cpp per il corso di C++...

:asd: usavate Windows in Uni?

birmarco
15-01-2013, 11:45
[QUOTE=M@Rk0;38860772]Prova :asd:

Per il metodo New (che credo sia il costruttore, stai usando VB.net, no?) metti un Debug.WriteLine e vedi quando viene chiamato :D

Provo :) uso sto metodo (che non ho mai pensato di usare :eek: ) per tutto allora :)

PS. Sono pigro, non c'è un comando per levare tutti i comandi di debug nella distribuzione?

Su WindowsPhone NavigationService non ha il metodo Refresh :asd:


:asd: usavate Windows in Uni?

GIà.... addirittura Windows? :eek: Non una distro di Linux più vecchia di Linux stesso? :asd:

refresh non l'avevo mai provato ;) Però MS potrebbe specificare bene cosa c'è e cosa no per WP8... se mette .net 4.5 e basta uno non capisce :)

Unrealizer
15-01-2013, 16:37
[QUOTE=Unrealizer;38861082]

Provo :) uso sto metodo (che non ho mai pensato di usare :eek: ) per tutto allora :)

PS. Sono pigro, non c'è un comando per levare tutti i comandi di debug nella distribuzione?



GIà.... addirittura Windows? :eek: Non una distro di Linux più vecchia di Linux stesso? :asd:

refresh non l'avevo mai provato ;) Però MS potrebbe specificare bene cosa c'è e cosa no per WP8... se mette .net 4.5 e basta uno non capisce :)

Compilando in modalità release vengono ignorati ;)

per la storia del refresh: andate direttamente su dev.windowsphone.com per vedere le API di WP8

birmarco
16-01-2013, 00:23
[QUOTE=birmarco;38862316]

Compilando in modalità release vengono ignorati ;)

per la storia del refresh: andate direttamente su dev.windowsphone.com per vedere le API di WP8

Sai dirmi qualcosa di questa? :)

Eccezione di tipo 'System.ArgumentException' in System.Windows.ni.dll non gestita prima di un limite gestito/nativo

Avviene a volte quando apro una delle pagine della mia app. In questa pagina viene solo eseguita una Sub che si occupa di leggere tutti gli elementi di una List of che tengo in comune tra le pagine tramite Current.State. La leggo da un file txt all'avvio della app e la piazzo lì. Come metodo funziona perfettamente in tutte le altre pagine, e a quanto sembra pure in questa. Non penso sia questo quindi il problema.

Tramite un for each piazzo ognuno di questi elementi in uno stack panel creando un nuovo controllo ad ogni ciclo, il controllo è un usercontrol creato da me. Alla creazione ci metto le proprietà prese dall'elemento della lista, gestendo manualmente ogni campo. Anche qui, è una cosa che faccio già in altre pagine, con meno elementi (2 anzichè 6), ma stessa identica cosa.

Ho pure provato a fare un try con catch di ogni eccezione in cui ho piazzato il for each che occupa l'intera sub ma niente. Sembra si blocchi altrove o che cmq non blocchi l'eccezione. Ho pure provato a mettere degli WriteLine("OK") ad ogni passaggio della sub per vedere dove crashava, e magia, la completa tutta senza problemi e poi mi genera l'eccezione :confused:

Che fare? Hai idee? :)

Unrealizer
16-01-2013, 01:24
Sai dirmi qualcosa di questa? :)

Eccezione di tipo 'System.ArgumentException' in System.Windows.ni.dll non gestita prima di un limite gestito/nativo

Avviene a volte quando apro una delle pagine della mia app. In questa pagina viene solo eseguita una Sub che si occupa di leggere tutti gli elementi di una List of che tengo in comune tra le pagine tramite Current.State. La leggo da un file txt all'avvio della app e la piazzo lì. Come metodo funziona perfettamente in tutte le altre pagine, e a quanto sembra pure in questa. Non penso sia questo quindi il problema.

Tramite un for each piazzo ognuno di questi elementi in uno stack panel creando un nuovo controllo ad ogni ciclo, il controllo è un usercontrol creato da me. Alla creazione ci metto le proprietà prese dall'elemento della lista, gestendo manualmente ogni campo. Anche qui, è una cosa che faccio già in altre pagine, con meno elementi (2 anzichè 6), ma stessa identica cosa.

Ho pure provato a fare un try con catch di ogni eccezione in cui ho piazzato il for each che occupa l'intera sub ma niente. Sembra si blocchi altrove o che cmq non blocchi l'eccezione. Ho pure provato a mettere degli WriteLine("OK") ad ogni passaggio della sub per vedere dove crashava, e magia, la completa tutta senza problemi e poi mi genera l'eccezione :confused:

Che fare? Hai idee? :)

Lascia perdere e usa il databinding :D

Invece di usare una ListOf usa una ObservableCollection e usa il data binding :D

Si chiama modello MVVM (Model, View, ViewModel)

Ipotizziamo che questo file txt contenga la classica lista di to-do... :D

Ogni elemento avrà sicuramente un titolo, una descrizione e una flag che indica se l'elemento è completato o meno, quindi il nostro Model sarà una classe come questa:

Public Class ToDoModel
Private _title As String
Property Title() As String
Get
Return _title
End Get
Set(value As String)
_title = value
End Set
End Property

Private _description As String
Property Description() As String
Get
Return _description
End Get
Set(value As String)
_description = value
End Set
End Property

Private _completed As Boolean
Property Completed() As Boolean
Get
Return _completed
End Get
Set(value As Boolean)
_completed = value
End Set
End Property
End Class

A questo punto tocca alla parte View, in questo caso useremo una Listbox per visualizzare gli elementi:

<ListBox Name="myListBox" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<CheckBox Content="" IsChecked="{Binding Path=Completed, Mode=TwoWay}" />
<StackPanel>
<TextBlock Text="{Binding Title}" />
<TextBlock Text="{Binding Description}" />
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

Nota soprattutto la proprietà ItemsSource della Listbox, è impostata su {Binding} e poi la proprietà ItemTemplate:
è un DataTemplate, ovvero il template per gli elementi della lista

Come puoi vedere i tre elementi hanno le loro proprietà "peculiari" (IsChecked per la CheckBox e Text per i due TextBlock) sono impostate ad un Binding alle proprietà del Model creato poco fa.

Come puoi vedere le due TextBlock hanno soltanto la keyword Binding e il nome della proprietà tra parentesi, questo perché nel caso in cui ci sia un solo parametro viene assunto che questo sia il nome della proprietà.

Per quanto riguarda la CheckBox, ho specificato esplicitamente i vari parametri, soprattutto Mode: impostandolo su TwoWay, ottengo che le modifiche fatte alla View si riflettono sul Model... ovvero, se setto a True la proprietà Completed del Model, la CheckBox verrà automaticamente selezionata, e viceversa, selezionando la CheckBox, la proprietà Completed del Model verrà settato a True :D

Adesso tocca al pezzo forte, il ViewModel!

Facendola semplice, tutto ciò che devi fare è creare una ObservableCollection, riempirla con oggetti della classe Model (ottenuti parsando il file txt) e poi fare:

myListBox.DataContext = [la tua ObservableCollection]

Dopo aver fatto tutto questo, la tua Listbox si popolerà automagicamente con i dati provenienti dal tuo file :D

Aggiungendo elementi alla ObservableCollection, questi appariranno automaticamente nella ListBox; rimuovendoli dalla ObservableCollection, spariranno dalla lista :D

Comunque, come mai usi VB.Net invece che C#? :asd:

birmarco
16-01-2013, 10:30
Lascia perdere e usa il databinding :D

Invece di usare una ListOf usa una ObservableCollection e usa il data binding :D

Si chiama modello MVVM (Model, View, ViewModel)

Ipotizziamo che questo file txt contenga la classica lista di to-do...

Ogni elemento avrà sicuramente un titolo, una descrizione e una flag che indica se l'elemento è completato o meno, quindi il nostro Model sarà una classe come questa:

Public Class ToDoModel
Private _title As String
Property Title() As String
Get
Return _title
End Get
Set(value As String)
_title = value
End Set
End Property

Private _description As String
Property Description() As String
Get
Return _description
End Get
Set(value As String)
_description = value
End Set
End Property

Private _completed As Boolean
Property Completed() As Boolean
Get
Return _completed
End Get
Set(value As Boolean)
_completed = value
End Set
End Property
End Class

A questo punto tocca alla parte View, in questo caso useremo una Listbox per visualizzare gli elementi:

<ListBox Name="myListBox" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<CheckBox Content="" IsChecked="{Binding Path=Completed, Mode=TwoWay}" />
<StackPanel>
<TextBlock Text="{Binding Title}" />
<TextBlock Text="{Binding Description}" />
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

Nota soprattutto la proprietà ItemsSource della Listbox, è impostata su {Binding} e poi la proprietà ItemTemplate:
è un DataTemplate, ovvero il template per gli elementi della lista

Come puoi vedere i tre elementi hanno le loro proprietà "peculiari" (IsChecked per la CheckBox e Text per i due TextBlock) sono impostate ad un Binding alle proprietà del Model creato poco fa.

Come puoi vedere le due TextBlock hanno soltanto la keyword Binding e il nome della proprietà tra parentesi, questo perché nel caso in cui ci sia un solo parametro viene assunto che questo sia il nome della proprietà.

Per quanto riguarda la CheckBox, ho specificato esplicitamente i vari parametri, soprattutto Mode: impostandolo su TwoWay, ottengo che le modifiche fatte alla View si riflettono sul Model... ovvero, se setto a True la proprietà Completed del Model, la CheckBox verrà automaticamente selezionata, e viceversa, selezionando la CheckBox, la proprietà Completed del Model verrà settato a True :D

Adesso tocca al pezzo forte, il ViewModel!

Facendola semplice, tutto ciò che devi fare è creare una ObservableCollection, riempirla con oggetti della classe Model (ottenuti parsando il file txt) e poi fare:

myListBox.DataContext = [la tua ObservableCollection]

Dopo aver fatto tutto questo, la tua Listbox si popolerà automagicamente con i dati provenienti dal tuo file :D

Aggiungendo elementi alla ObservableCollection, questi appariranno automaticamente nella ListBox; rimuovendoli dalla ObservableCollection, spariranno dalla lista :D

Comunque, come mai usi VB.Net invece che C#? :asd:

Grazie della super risposta :)

VB .net è una lunga storia, in realtà non troppo :D Praticamente all'epoca in cui avevo internet ADSL a tempo e in cui non mi potevo permettere di fare ricerche all'avventura se non limitate ricerche mirate volevo imparare qualche linguaggio di programmazione. Non ne avevo mai visto uno e non avevo praticamente conoscenze su nessuno... mi sono ritrovato a casa un vecchio libro di testo delle superiori su Visual Basic 6, non era mio e non sapevo neanche fosse superato... me lo sono studiato tutto in una settimana perchè il VB mi piaceva un sacco :D Poi ho scoperto con amarezza che il VB serviva solo per spessorare i mobili così con l'aiuto del suggeritore di VS, qualche risorsa sulle librerie e un libro di Francesco Balena ho convertito le conoscenze di VB in VB .Net :) Poi l'ho accantonato perchè non avevo abbastanza conoscenze per permettermi di fare qualche lavoro complesso e soddisfacente. Nel frattempo con le superiori ho fatto ANSI C, poi in università l'esame di Java e tante altre cose, l'uscita di Windows 8 mi hanno fatto tornare al mio amato VB. Net :) Insomma, VB .Net perchè non ho mai cagato il C# :sofico: Cmq su Win 8, quando mi sono messo a Novembre, ho dovuto già grattarmi la storia dello XAML visto che io ho sempre lavorato in Windows Form... e il C# era l'ultimo dei problemi.

Gli ho dato anche un'occhiata ma non mi piace per via delle parentesi graffe: odiose! VS con VB mi mette giù lui le "parentesi" di VB che sono anche molto più sensate di quelle di C#. Ad esempio

If chkBox.Value Than
txtBox.text = Ciao
End If

mi pare molto più bello di

If (chkBox.Value) {
txtBox.text = Ciao
}

No? Se l'if dura sei pagine ti ritrovi delle graffe che dici, e questa da dove arriva? Mentre un End If è molto chiaro :) Poi ci sono anche i punti e virgola. Faccio già un istruzione per riga, quindi poter usare l'a capo invece del ; è tanto di guadagnato :) Più che altro di VB .net mi piace la sintassi :) Alla fine rispetto al C# penso che nessuno dei due abbia vantaggi particolari sull'altro, o sbaglio? :)


Tornando a noi :D

Mi pare più complesso il DataBinding, a meno che mi sia perso qualche passaggio

Allora:

- Creo sta classe "Public Class ToDoModel" che in realtà ho già... dovrei modificare quella che ho già fatto io e che popola la List Of aggiungendo le proprietà con Set e Get invece dei metodi che ho messo io.
- Poi creo una ObservableCollection in cui ci piazzo gli oggetti ToDoModel
- Creo la listbox, che nel caso potrebbe essere anche uno ScrollPanel con dentro lo StackPanel, che ho visto avere pure lui DataContext
- A questo punto collego lo StackPanel alla ObservableCollection


C'è un ma, io nello stack ci metto degli UserControl fatti da me, è sempre lo stesso. Dovrei quindi collegare tutte le proprietà dello UserControl con DataBinding giusto?

Così?


<StackPanel Name="myStack" ItemsSource="{Binding}">
<StackPanel.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}" />
<myUserControl Nome="{Binding Nome}" Descrizione="{Binding Descrizione}" Numero="{Binding Numero}" />
</DataTemplate>
</StackPanel.ItemTemplate>
</StackPanel>


Ipotizzando che lo UserControl abbia queste tre proprietà, definite così:


Public Property Nome() As String
Get
Return CType(MyBase.GetValue(NomeProperty), String)
End Get
Set(value As String)
MyBase.SetValue(NomeProperty, value)
Me.txtNome.Text = value
End Set
End Property
Public Shared ReadOnly NomeProperty As DependencyProperty = DependencyProperty.Register("Nome", GetType(String), GetType(myUserControl), Nothing)


Mi confermi che è tutto corretto? :)

Ma questo sistema, oltre alla semplicità dell'aggiornamento (che in realtà non mi serve molto visto che quella pagina ha solo lo scopo di visualizzare elementi statici) permette prestazioni migliori, meno facilità agli errori ecc? Dovrebbe risolvere il mio problema? In generale: che vantaggi c'ha sto MVVM? :D

EDIT delle 11:

Alla fine sono riuscito a risolvere il problema, che era veramente stupidissimo come errore. La pagina in questione aveva un pivot con tre item. Nel primo ci sbattevo tutti gli elementi, negli altri due item erano categorizzati quindi un elemento che stava nel primo item poi stava anche nel secondo oppure nel terzo. Nella creazione di questi elementi, visto che dovevo crearne due uguali, non mi sono mai preoccupato di dargli un nome diverso, creavo solo due variabili di nome diverso ma contenenti il medesimo elemento. Il risultato era che a volte si creava un conflitto di questo tipo, visto che non puoi mettere lo stesso elemento in due diversi stack. Mistero risolto :D Ora però vorrei capire bene sta cosa del binding che magari si rivela anche più comodo...

Unrealizer
16-01-2013, 11:11
Grazie della super risposta :)

VB .net è una lunga storia, in realtà non troppo :D Praticamente all'epoca in cui avevo internet ADSL a tempo e in cui non mi potevo permettere di fare ricerche all'avventura se non limitate ricerche mirate volevo imparare qualche linguaggio di programmazione. Non ne avevo mai visto uno e non avevo praticamente conoscenze su nessuno... mi sono ritrovato a casa un vecchio libro di testo delle superiori su Visual Basic 6, non era mio e non sapevo neanche fosse superato... me lo sono studiato tutto in una settimana perchè il VB mi piaceva un sacco :D Poi ho scoperto con amarezza che il VB serviva solo per spessorare i mobili così con l'aiuto del suggeritore di VS, qualche risorsa sulle librerie e un libro di Francesco Balena ho convertito le conoscenze di VB in VB .Net :) Poi l'ho accantonato perchè non avevo abbastanza conoscenze per permettermi di fare qualche lavoro complesso e soddisfacente. Nel frattempo con le superiori ho fatto ANSI C, poi in università l'esame di Java e tante altre cose, l'uscita di Windows 8 mi hanno fatto tornare al mio amato VB. Net :) Insomma, VB .Net perchè non ho mai cagato il C# :sofico: Cmq su Win 8, quando mi sono messo a Novembre, ho dovuto già grattarmi la storia dello XAML visto che io ho sempre lavorato in Windows Form... e il C# era l'ultimo dei problemi.

Gli ho dato anche un'occhiata ma non mi piace per via delle parentesi graffe: odiose! VS con VB mi mette giù lui le "parentesi" di VB che sono anche molto più sensate di quelle di C#. Ad esempio

If chkBox.Value Than
txtBox.text = Ciao
End If

mi pare molto più bello di

If (chkBox.Value) {
txtBox.text = Ciao
}

No? Se l'if dura sei pagine ti ritrovi delle graffe che dici, e questa da dove arriva? Mentre un End If è molto chiaro Poi ci sono anche i punti e virgola. Faccio già un istruzione per riga, quindi poter usare l'a capo invece del ; è tanto di guadagnato :) Più che altro di VB .net mi piace la sintassi :) Alla fine rispetto al C# penso che nessuno dei due abbia vantaggi particolari sull'altro, o sbaglio? :)


Tornando a noi :D

Mi pare più complesso il DataBinding, a meno che mi sia perso qualche passaggio

Allora:

- Creo sta classe "Public Class ToDoModel" che in realtà ho già... dovrei modificare quella che ho già fatto io e che popola la List Of aggiungendo le proprietà con Set e Get invece dei metodi che ho messo io.
- Poi creo una ObservableCollection in cui ci piazzo gli oggetti ToDoModel
- Creo la listbox, che nel caso potrebbe essere anche uno ScrollPanel con dentro lo StackPanel, che ho visto avere pure lui DataContext
- A questo punto collego lo StackPanel alla ObservableCollection


C'è un ma, io nello stack ci metto degli UserControl fatti da me, è sempre lo stesso. Dovrei quindi collegare tutte le proprietà dello UserControl con DataBinding giusto?

Così?


<StackPanel Name="myStack" ItemsSource="{Binding}">
<StackPanel.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}" />
<myUserControl Nome="{Binding Nome}" Descrizione="{Binding Descrizione}" Numero="{Binding Numero}" />
</DataTemplate>
</StackPanel.ItemTemplate>
</StackPanel>


Ipotizzando che lo UserControl abbia queste tre proprietà, definite così:


Public Property Nome() As String
Get
Return CType(MyBase.GetValue(NomeProperty), String)
End Get
Set(value As String)
MyBase.SetValue(NomeProperty, value)
Me.txtNome.Text = value
End Set
End Property
Public Shared ReadOnly NomeProperty As DependencyProperty = DependencyProperty.Register("Nome", GetType(String), GetType(myUserControl), Nothing)


Mi confermi che è tutto corretto? :)

Ma questo sistema, oltre alla semplicità dell'aggiornamento (che in realtà non mi serve molto visto che quella pagina ha solo lo scopo di visualizzare elementi statici) permette prestazioni migliori, meno facilità agli errori ecc? :) Dovrebbe risolvere il mio problema? In generale: che vantaggi c'ha sto MVVM? :D

Non credo funzioni con lo StackPanel, ma non ho mai provato... :D

Comunque dimenticavo un dettaglio, il Model deve implementare l'interfaccia INotifyPropertyChanged :O

devi mettere:


Public Class ToDoModel
Inherith INotifyPropertyChanged


e aggiungere questo metodo (lo sto "convertendo" al volo dal C#, quindi perdonami se dovesse avere bisogno di qualche aggiustamento :D )


Public Sub RaisePropertyChanged(ByVal PropertyName As String)
If PropertyChanged <> Null [o era Nothing?]
RaiseEvent PropertyChanged(PropertyName
End If
End Sub
[CODE]

e poi devi modificare la Set di ogni proprietà, così:

[CODE]
Property Completed() As Boolean
Get
Return _completed
End Get
Set(value As Boolean)
_completed = value
RaisePropertyChange("Completed")
End Set
End Property


dove al posto di "Completed" devi mettere il nome della proprietà :D

comunque, il vantaggio è che non devi smazzarti la gestione della lista :D

riguardo C#, proprio nella if che hai scritto l'uso delle graffe non è obbligatorio :asd: e in ogni caso secondo le regole sintattiche predefinite di VS sarebbe stato:


if (chkBox.Value)
txtBox.Text = "Ciao";


VS (e l'indentazione) ti aiutano a capire facilmente a cosa appartiene una graffa, ma in generale C# ti aiuta ad avere codice più compatto... e poi gran parte degli esempi in rete si trovano in C# :O

come funzionalità però ormai sono alla pari

Kralizek
16-01-2013, 14:30
Finalmente ho un'idea degna di nota e mi sono tuffato nella programmazione per WP8 pure io =)

Tralasciando l'applicazione in sè, voglio utilizzare quest'esperienza per rafforzare le mie conoscenze in:
- MVVM (già so che quando arrivo ai messaggi tra viewmodel inizierò a sclerare)
- Dependency Injection (dannata sia Microsoft ed il suo ServiceLocator)

Unrealizer
16-01-2013, 15:01
Finalmente ho un'idea degna di nota e mi sono tuffato nella programmazione per WP8 pure io =)

Tralasciando l'applicazione in sè, voglio utilizzare quest'esperienza per rafforzare le mie conoscenze in:
- MVVM (già so che quando arrivo ai messaggi tra viewmodel inizierò a sclerare)
- Dependency Injection (dannata sia Microsoft ed il suo ServiceLocator)

Congratulazioni e benvenuto nel club :D

M@Rk0
16-01-2013, 15:45
Gli ho dato anche un'occhiata ma non mi piace per via delle parentesi graffe: odiose! VS con VB mi mette giù lui le "parentesi" di VB che sono anche molto più sensate di quelle di C#. Ad esempio

If chkBox.Value Than
txtBox.text = Ciao
End If

mi pare molto più bello di

If (chkBox.Value) {
txtBox.text = Ciao
}

No? Se l'if dura sei pagine ti ritrovi delle graffe che dici, e questa da dove arriva? Mentre un End If è molto chiaro :) Poi ci sono anche i punti e virgola. Faccio già un istruzione per riga, quindi poter usare l'a capo invece del ; è tanto di guadagnato :)

No :asd: (secondo me ovviamente :) )
Basta seguire la linea per sapere da dove arriva. http://i.imgur.com/T3bPW.png
Ed è "universale", nel senso che se per esempio ho un if enorme con una pagina di altra roba dentro (cicli, altri if, ecc), quando arrivo alla fine di tutto ci sbatto }}}} fino a quando non arrivo al livello di indentazione giusto, senza dovermi tenere la storia di cosa devo chiudere con "End <qualcosa>".
Anche se fosse à-la Ruby "end" e basta, comunque sono 3 caratteri al posto che uno solo :asd:

nell'esempio che hai fatto in C# hai dimenticato il ; :asd: :asd:

Kralizek
16-01-2013, 18:36
Prima domanda per chi ne sa:

Come si usano i Chooser (PhotoChooser) in maniera coerente secondo il pattern MVVM?

Con un ICommand posso facilmente eseguire il chooser, ma come si collega la gestione dell'evento al View Model?

[Kendall]
17-01-2013, 09:31
Gli ho dato anche un'occhiata ma non mi piace per via delle parentesi graffe: odiose! VS con VB mi mette giù lui le "parentesi" di VB che sono anche molto più sensate di quelle di C#. Ad esempio

If chkBox.Value Than
txtBox.text = Ciao
End If

mi pare molto più bello di

If (chkBox.Value) {
txtBox.text = Ciao
}

No? Se l'if dura sei pagine ti ritrovi delle graffe che dici, e questa da dove arriva? Mentre un End If è molto chiaro :) Poi ci sono anche i punti e virgola. Faccio già un istruzione per riga, quindi poter usare l'a capo invece del ; è tanto di guadagnato :)


Le parentesi graffe sono decisamente più riconoscibili all'interno del "muro di righe" dei sorgenti.
Se poi il blocco di istruzioni risulta particolarmente lungo ci si può aiutare sempre con i commenti, tipo:


if (chkBox.Value) {
...
...
... lot of code
...
...
} // if ( chkBox.Value)

Mr_Paulus
17-01-2013, 09:39
No? Se l'if dura sei pagine ti ritrovi delle graffe che dici, e questa da dove arriva? Mentre un End If è molto chiaro :) Poi ci sono anche i punti e virgola. Faccio già un istruzione per riga, quindi poter usare l'a capo invece del ; è tanto di guadagnato :) Più che altro di VB .net mi piace la sintassi :) Alla fine rispetto al C# penso che nessuno dei due abbia vantaggi particolari sull'altro, o sbaglio? :)



in programmazione a oggetti i metodi non durano più di una decina di righe in media :O (con le dovute eccezioni ;) )

birmarco
17-01-2013, 12:07
Non credo funzioni con lo StackPanel, ma non ho mai provato...

Comunque dimenticavo un dettaglio, il Model deve implementare l'interfaccia INotifyPropertyChanged :O

devi mettere:


Public Class ToDoModel
Inherith INotifyPropertyChanged


e aggiungere questo metodo (lo sto "convertendo" al volo dal C#, quindi perdonami se dovesse avere bisogno di qualche aggiustamento :D )


Public Sub RaisePropertyChanged(ByVal PropertyName As String)
If PropertyChanged <> Null [o era Nothing?]
RaiseEvent PropertyChanged(PropertyName
End If
End Sub
[CODE]

e poi devi modificare la Set di ogni proprietà, così:

[CODE]
Property Completed() As Boolean
Get
Return _completed
End Get
Set(value As Boolean)
_completed = value
RaisePropertyChange("Completed")
End Set
End Property


dove al posto di "Completed" devi mettere il nome della proprietà

comunque, il vantaggio è che non devi smazzarti la gestione della lista :D

riguardo C#, proprio nella if che hai scritto l'uso delle graffe non è obbligatorio :asd: e in ogni caso secondo le regole sintattiche predefinite di VS sarebbe stato:


if (chkBox.Value)
txtBox.Text = "Ciao";


VS (e l'indentazione) ti aiutano a capire facilmente a cosa appartiene una graffa, ma in generale C# ti aiuta ad avere codice più compatto... e poi gran parte degli esempi in rete si trovano in C# :O

come funzionalità però ormai sono alla pari

Grazie per i fix :) Questa cosa del Binding mi intriga per cui penso di finire l'app così com'è e poi fare una copia del progetto e modificarlo per adattarlo al binding. Così vedo sul campo le differenze

Dai facciamo che il mio esempio sia da due righe nell'if :asd: Maledetto C#

PS. Tra me e te usiamo troppe faccine, devo sempre editare il commento perchè mi dà limite immagini. Vorrei mettere (asd) ma non posso : (

No :asd: (secondo me ovviamente :) )
Basta seguire la linea per sapere da dove arriva. http://i.imgur.com/T3bPW.png
Ed è "universale", nel senso che se per esempio ho un if enorme con una pagina di altra roba dentro (cicli, altri if, ecc), quando arrivo alla fine di tutto ci sbatto }}}} fino a quando non arrivo al livello di indentazione giusto, senza dovermi tenere la storia di cosa devo chiudere con "End <qualcosa>".
Anche se fosse à-la Ruby "end" e basta, comunque sono 3 caratteri al posto che uno solo :asd:

nell'esempio che hai fatto in C# hai dimenticato il ; :asd:

:mad: Maledetti punti e virgola :asd: Ecco cosa intendevo prima.

Però in Vs hai il suggeritore quindi se scrivi End e sono in un If lui mi propone già End If così non devo neanche andare a vedere che cosa sto chiudendo, anche se magari basta seguire la linea. Poi ok senza suggeritore scrivere tutti quegli end qualcosa diventa una smazzata pazzesca però non usando il notepad... ;)


;38872124']Le parentesi graffe sono decisamente più riconoscibili all'interno del "muro di righe" dei sorgenti.
Se poi il blocco di istruzioni risulta particolarmente lungo ci si può aiutare sempre con i commenti, tipo:


if (chkBox.Value) {
...
...
... lot of code
...
...
} // if ( chkBox.Value)


Però poi ti devi smazzare con i commenti. Sul PHP faccio così però a volte dico "ma si dai si capisce", poi torno dopo una settimana e son lì a contare le parentesi :asd:

Io faccio sempre sti due errori: dimentico parentesi e ;. Mi dai un linguaggio senza e divento il programmatore più felice del mondo :sofico:

in programmazione a oggetti i metodi non durano più di una decina di righe in media :O (con le dovute eccezioni ;) )

Però a volte entrano in parecchi livelli... a me basta per incasinarmi e mettermi a contare. Mi innervosisce come perdita di tempo :)

tomminno
17-01-2013, 12:50
in programmazione a oggetti i metodi non durano più di una decina di righe in media :O (con le dovute eccezioni ;) )

Perchè VB pensi che sia stato usato da chi conosce la programmazione ad oggetti? :D

Chi scrive in VB.Net generalmente deriva da VB e scrive metodi chilometrici :muro:

birmarco
17-01-2013, 14:29
Perchè VB pensi che sia stato usato da chi conosce la programmazione ad oggetti? :D

Chi scrive in VB.Net generalmente deriva da VB e scrive metodi chilometrici :muro:

Io sto cercando di prendere sempre di più l'abitudine di modularizzare bene il codice :) Ora ho molti metodi, e durano tutti poche righe. Però hai ragione, avendo studiato VB e applicato su VB .net, specialmente in Windows Form all'inizio tendevo a fare 4 metodi lunghissimi. E il peggio era scrivere le istruzioni direttamente dentro l'evento, ad es. btnClick, invece di chiamare un metodo separato con btnClick :)

Ne approfitto per fare una domanda:
conviene scrivere i metodi per una pagina all'interno della classe della pagina stessa oppure creare un namespace esterno con classi esterne? Diventa più lungo da scrivere perchè devo creare più oggetti, ma avrebbe qualche utilità per cui sarebbe meglio fare così? (Ipotizzando di usare ogni metodo al max una volta in tutto il programma)

Kralizek
17-01-2013, 14:45
Ne approfitto per fare una domanda:
conviene scrivere i metodi per una pagina all'interno della classe della pagina stessa oppure creare un namespace esterno con classi esterne? Diventa più lungo da scrivere perchè devo creare più oggetti, ma avrebbe qualche utilità per cui sarebbe meglio fare così? (Ipotizzando di usare ogni metodo al max una volta in tutto il programma)

Teoricamente:
L'oggetto che riceve eventi (ad es. una Windows Form, una WPF Page o una WebForm, ma anche un MVC Controller) dovrebbe essere quanto più stupido possibile.

La usa logica dovrebbe essere solo di validazione formale dei dati (es. se una stringa contiene una data o meno).
Il resto dell'elaborazione andrebbe affidata ad elementi di business logic che sanno come interpretare i dati (validazione semantica) ed utilizzarli.

I vantaggi principali sono:
- possibilità di sostituire le dipendenze di cui fai uso (soprattutto attraverso la programmazione orientata alle astrazioni più che alle implementazioni concrete)
- possibilità di testare facilmente ed in maniera automatica la logica di business. (soprattutto dove gli eventi sono coinvolti)

Praticamente: dipende dallo scope dell'applicazione. Per un'applicazione molto (ma molto molto) piccola, non conviene. Di fatto, una volta che inizi ad usare regolarmente la via teorica, inizierai a scrivere anche gli hello world in maniera modulare e dependency free.

M@Rk0
17-01-2013, 14:47
Io faccio sempre sti due errori: dimentico parentesi e ;. Mi dai un linguaggio senza e divento il programmatore più felice del mondo :sofico:

Ruby :asd:
o puoi provare APL! https://www.youtube.com/watch?v=a9xAKttWgP4

tomminno
17-01-2013, 16:50
Io sto cercando di prendere sempre di più l'abitudine di modularizzare bene il codice :) Ora ho molti metodi, e durano tutti poche righe. Però hai ragione, avendo studiato VB e applicato su VB .net, specialmente in Windows Form all'inizio tendevo a fare 4 metodi lunghissimi. E il peggio era scrivere le istruzioni direttamente dentro l'evento, ad es. btnClick, invece di chiamare un metodo separato con btnClick :)

Ne approfitto per fare una domanda:
conviene scrivere i metodi per una pagina all'interno della classe della pagina stessa oppure creare un namespace esterno con classi esterne? Diventa più lungo da scrivere perchè devo creare più oggetti, ma avrebbe qualche utilità per cui sarebbe meglio fare così? (Ipotizzando di usare ogni metodo al max una volta in tutto il programma)

Ti rispondo alla tua domanda con un'altra domanda:
Se dovessi applicare le stesse logiche ad un'altra interfaccia (es dovessi esporre le stesse funzionalità con una interfaccia web, oppure un webservice) come struttureresti il codice? ;)

birmarco
18-01-2013, 00:55
Ruby :asd:
o puoi provare APL! https://www.youtube.com/watch?v=a9xAKttWgP4

Cos'è quella robaccia? :D

Ti rispondo alla tua domanda con un'altra domanda:
Se dovessi applicare le stesse logiche ad un'altra interfaccia (es dovessi esporre le stesse funzionalità con una interfaccia web, oppure un webservice) come struttureresti il codice? ;)

Io farei così, le cose che sono solo di una pagina, stanno in quella pagina :D Per le cose in comune creo un CSS :) Però magari sbaglio :D Perchè per un evenienza futura dovrei sgobbare il doppio, però c'è sempre il rischio che lavoro di più all'inizio per niente :D

Quindi... bo :confused:

Tu come fai?

Teoricamente:
L'oggetto che riceve eventi (ad es. una Windows Form, una WPF Page o una WebForm, ma anche un MVC Controller) dovrebbe essere quanto più stupido possibile.

La usa logica dovrebbe essere solo di validazione formale dei dati (es. se una stringa contiene una data o meno).
Il resto dell'elaborazione andrebbe affidata ad elementi di business logic che sanno come interpretare i dati (validazione semantica) ed utilizzarli.

I vantaggi principali sono:
- possibilità di sostituire le dipendenze di cui fai uso (soprattutto attraverso la programmazione orientata alle astrazioni più che alle implementazioni concrete)
- possibilità di testare facilmente ed in maniera automatica la logica di business. (soprattutto dove gli eventi sono coinvolti)

Praticamente: dipende dallo scope dell'applicazione. Per un'applicazione molto (ma molto molto) piccola, non conviene. Di fatto, una volta che inizi ad usare regolarmente la via teorica, inizierai a scrivere anche gli hello world in maniera modulare e dependency free.

Però è difficile trovare il giusto livello di modularizzazione. Per esempio a volte si modularizza troppo perchè i metodi fanno cose veramente troppo stupide, altre volte sono troppo lunghi. Secondo me è difficile perchè devi sapere già cosa ti servirà in futuro un metodo. A volte certe operazioni è molto molto più comodo scriverle dove servono che creare un metodo nuovo... però poi in futuro ti potrebbero tornare utili.

------------------------------

Cambiando discorso :D

C'è un modo per sapere quanto occupa la mia app in RAM sul telefono e quanto spazio occuperà nello store? Nello store c'è un limite?

M@Rk0
18-01-2013, 02:52
credo che quei numerini che ci sono sullo schermo quando provi la applicazione da visual studio stiano ad indicare le risorse utilizzate, ma non ho mai approfondito

birmarco
18-01-2013, 10:27
credo che quei numerini che ci sono sullo schermo quando provi la applicazione da visual studio stiano ad indicare le risorse utilizzate, ma non ho mai approfondito

Ci avevo pensato anche io... ma non ho mai capito come si leggessero :D

Kralizek
18-01-2013, 10:39
Però è difficile trovare il giusto livello di modularizzazione. Per esempio a volte si modularizza troppo perchè i metodi fanno cose veramente troppo stupide, altre volte sono troppo lunghi. Secondo me è difficile perchè devi sapere già cosa ti servirà in futuro un metodo. A volte certe operazioni è molto molto più comodo scriverle dove servono che creare un metodo nuovo... però poi in futuro ti potrebbero tornare utili.


Beh, l'idea dovrebbe essere quella di seguire il principio di unica responsabilitá (SRP).

In questo modo sai che un modulo/classe sa fare solo una cosa, fatta bene.

birmarco
18-01-2013, 11:10
Beh, l'idea dovrebbe essere quella di seguire il principio di unica responsabilitá (SRP).

In questo modo sai che un modulo/classe sa fare solo una cosa, fatta bene.

Su questo mi sa che ho ancora un po' di strada da fare :D

Nel frattempo il mio lavoro procede a gonfie vele, penso che tra non molto potrò rilasciare la prima versione :sofico:

Unrealizer
18-01-2013, 14:00
Ci avevo pensato anche io... ma non ho mai capito come si leggessero :D

ecco qui come si leggono: http://www.jeff.wilcox.name/2010/07/counters/

ed ecco come sapere della ram occupata :D http://blogs.msdn.com/b/oren/archive/2010/09/28/wp7-perf-tip-5-check-your-memory-usage.aspx

Su questo mi sa che ho ancora un po' di strada da fare :D

Nel frattempo il mio lavoro procede a gonfie vele, penso che tra non molto potrò rilasciare la prima versione :sofico:

non vedo l'ora di vederla :D

tomminno
18-01-2013, 14:03
Io farei così, le cose che sono solo di una pagina, stanno in quella pagina :D Per le cose in comune creo un CSS :) Però magari sbaglio :D Perchè per un evenienza futura dovrei sgobbare il doppio, però c'è sempre il rischio che lavoro di più all'inizio per niente :D

Quindi... bo :confused:

Tu come fai?


Parli di CSS che lavora in tutt'altro contesto.
Il codice lato server non è CSS, contiene delle logiche che potenzialmente sono riusabili e che possono essere riappicate anche in caso di refactoring.
Se metti tutto nella pagina butti via tutto nel momento in cui devi anche solo cambiare qualcosa.



Però è difficile trovare il giusto livello di modularizzazione. Per esempio a volte si modularizza troppo perchè i metodi fanno cose veramente troppo stupide, altre volte sono troppo lunghi. Secondo me è difficile perchè devi sapere già cosa ti servirà in futuro un metodo. A volte certe operazioni è molto molto più comodo scriverle dove servono che creare un metodo nuovo... però poi in futuro ti potrebbero tornare utili.


Se scrivi codice modulare lo capisci meglio, lo rifattorizzi meglio e lo testi meglio.

birmarco
18-01-2013, 14:24
ecco qui come si leggono: http://www.jeff.wilcox.name/2010/07/counters/

ed ecco come sapere della ram occupata :D http://blogs.msdn.com/b/oren/archive/2010/09/28/wp7-perf-tip-5-check-your-memory-usage.aspx



non vedo l'ora di vederla :D

Principalmente devo fare la parte più noiosa :( La mia app si basa su un database di circa 150 elementi, che ovviamente devo inserire tutti a mano compilando tutti i rispettivi campi :doh: Per ora ho fatto i primi 20.

Altra parte noiosa: sto cercando immagini di sfondo e sono entrato nella jungla delle licenze :muro: Ne ho trovate un po' libere ma devo indicare di tutte link e autore. In tutto devo gestire circa 50 immagini. Che devo pure ridimensionare bene e comprimere a dovere altrimenti l'app pesa 1 GB :D

Il resto sono tutte sciocchezze da un pomeriggio di lavoro :) Forse per lunedì è pronta ;)

Devo anche scegliere se farla free per un tot di tempo (quanto?) e trial/pagamento. Oppure trial da subito. O fare anche una versione Lite limitata con qualche ads nascosto :confused:

Grazie per i link, ora me li leggo :)

birmarco
18-01-2013, 14:27
Parli di CSS che lavora in tutt'altro contesto.
Il codice lato server non è CSS, contiene delle logiche che potenzialmente sono riusabili e che possono essere riappicate anche in caso di refactoring.
Se metti tutto nella pagina butti via tutto nel momento in cui devi anche solo cambiare qualcosa.




Se scrivi codice modulare lo capisci meglio, lo rifattorizzi meglio e lo testi meglio.

Avevo capito male la domanda, pensavo ti riferissi a come strutturare il codice per l'interfaccia per un applicazione web :)

Unrealizer
19-01-2013, 19:54
Thread per WP8 -> http://www.hwupgrade.it/forum/showthread.php?t=2539624

Unrealizer
22-01-2013, 19:53
Disponibile l'SDK per WP7.8: http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/01/22/now-available-windows-phone-sdk-update-for-7-8.aspx

Da notare questa riga...

There are no new APIs available to Windows Phone apps in Windows Phone 7.8

cdimauro
22-01-2013, 20:27
Deprimente... :(

mirc
31-01-2013, 00:20
chiedo qui a voi che magari sapete; nonostante gli esami ho ripreso la mia app, il problema è che uso un database con un modulo creato ad hoc che usa "DAO.Recordset" per ottenere valori precedenti a quelli della riga del dato...Dato che WP7 non lo supporta (a meno di news che io non ho visto), c'è qualcuno che sa come aggirare questa soluzione? o dove poter trovare qualcosa a riguardo?

birmarco
17-02-2013, 23:51
.. a cui non trovo soluzione neanche dopo ore passate a far prove e a guardare su internet.

La situazione è questa, ho fatto il porting per WP7 della mia app per WP8.

Molte classi sono in comune, ho trasferito tutte le pagine e ho sostituito i controlli necessari. Tutto bene a parte per una cosa: i long list selector!

Non visualizzano nessun elemento e rimangono vuoti :muro: Ecco un estratto della classe che bindo:

Public Class Prova
Implements INotifyPropertyChanged

Public Property Nome() As String
Get
Return _Nome
End Get
Set(value As String)
_Nome = value
NotifyPropertyChanged("Nome")
End Set
End Property
Private _Nome As String

Public Event PropertyChanged As PropertyChangedEventHandler _
Implements INotifyPropertyChanged.PropertyChanged

Private Sub NotifyPropertyChanged(ByVal info As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
End Sub

End Class


Ho verificato che l'evento viene chiamato correttamente (anche perchè la stessa classe è usata nella app WP8 e funziona perfettamente, è proprio lo stesso file linkato).

Nella pagina relativa:
lstLista.DataContext = App.Lista
cmq stessa cosa scritta in WP8, e li funziona.

In App.xaml.vb:
Public Shared Lista As New ObservableCollection(Of Prova)
anche qui tutto uguale a WP8.

Lo XAML della pagina:

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
e questo è per WP7

per avere:

<toolkit:LongListSelector x:Name="lstLista" VerticalAlignment="Top" ItemsSource="{Binding}">
<toolkit:LongListSelector.ItemTemplate>
<DataTemplate>

<TextBlock x:Name="txtName" Height="33" Margin="10,1,94,0" VerticalAlignment="Top" FontSize="24" Text="{Binding Nome}" FontFamily="Segoe WP Semibold" TextTrimming="WordEllipsis">
</TextBlock>
</DataTemplate>
</toolkit:LongListSelector.ItemTemplate>
</toolkit:LongListSelector>


qui ho semplificato lasciando solo il textblock (cmq non funziona neanche così). Su WP8 questo codice XAML è diverso... e infatti è quello che mi lascia dei dubbi.

In un'altra parte dell'app faccio il binding verso una longlistselector di checkbox e rimane tutto vuoto anche lì! :muro:

Qualcuno ha qualche idea? Che davvero sto impazzendo :muro:

Non capisco perchè, nessuna eccezione, nessun errore :confused:

La ObservableCollection è piena, perchè da altre parti dell'app (senza binding) viene utilizzata senza problemi e i contenuti ci sono...

Sono quasi convinto che il problema sia in quello XAML.

birmarco
19-02-2013, 12:55
uppettino! :help:

sto problema mi sta facendo impazzire :muro: :muro: :muro: