Come molti di voi giù sicuramente sapranno, è possibile fare delle query sui work items in TFS tramite un url diretto sul server.
In TFS 2008/2010 la sintassi dell'Url era:
http://<ServerAddress>:8080/tfs/<TPC Name>/q.aspx?pname=<Project>&wiql=<WIQL>
In TFS 2012/2013, però, questo url non funziona. Infatti, è stato cambiato il formato dell'url stesso ed ora è il seguente:
http://<ServerAddress>:8080/tfs/<TPC Name>/<Project>/_workitems#_a=query&wiql=<WIQL>
Dove:
TPC Name è il nome della project collection su cui lavorare
Project è il nome del progetto su cui eseguire la query
WIQL è la query scritta con il "Work Item Query Language"
giovedì 17 aprile 2014
martedì 15 aprile 2014
Aggiornamenti Azure: Web Sites, VMs, Mobile Services, Notification Hubs, Storage, VNets, Scheduler, AutoScale ed altro
Quelli passati sono stati 10 giorni molto intensi per il team di Azure. Questo post vuole essere un veloce recap di tutti gli aggiornamenti e le migliorie che quel team ha fatto.
Web Sites: SSL included, Traffic Manager, supporto a Java, nuovo Basic Tier
Virtual Machines: Supporto per le estensioni Chef e Puppet, nuovo Basic Pricing Tier
Virtual Network: General Availability dei Gateways VPN per il DynamicRouting e Point-to-Site VPN
Mobile Services: Preview del supporto a Visual Studio con .NET, integrazione con Azure Active Directory e supporto Offline
Notification Hubs: Supporto per i dispositivi Kindle Fires ed integrazione con Visual Studio Server Explorer
Autoscale: General Availability release
Storage: General Availability release degli storage Read Access Geo Redundant
Active Directory Premium: General Availability release
Scheduler service: General Availability release
Automation: Preview release del nuovo Azure Automation service
Tutte queste features sono disponibili immediatamente (attenzione che alcune sono ancora in preview).
Vedi questo post sul blog di Scott Guthrie per avere tutti i dettagli.
martedì 25 marzo 2014
Visual Studio Online (VSO) vs Team Foundation Server (TFS)
Ho scritto questo post per dipanare un po' di dubbi nel confronto tra le feature attuali delle "due" soluzioni per l'Application Lifecycle Management di Microsoft, ovvero tra la versione hosted "Visual Studio Online (VSO)" e quella on-premises "Team Foundation Server".
Comparazione Feature
TFS
|
VSO
| |
| Work Items, Version Control e Build |
Si
|
Si
|
| Agile Product/Project Management |
Si
|
Si
|
| Test Case Management |
Si
|
Si
|
| Sviluppo "Eterogeneo" (Eclipse, Git, ...) |
Si
|
Si
|
| Facilità di Installazione e Setup |
+/-
|
++
|
| Collaborazione con chiunque, da ovunque |
+/-
|
++
|
| I dati rimangono dentro la tua rete |
Si
|
No
|
| Personalizzazione di Process Template e Work Item |
Si
|
No
|
| Integrazione con Sharepoint |
Si
|
No
|
| Data Warehouse e Reporting |
Si
|
No
|
| Supporto CodeLens |
Si
|
No
|
| Cloud Load Testing |
No
|
Si
|
| Application Insights |
No
|
Si
|
| Ultima versione sempre disponibile |
No
|
Si
|
Alcune altre limitazioni di VSO (attualmente):
- Non è possibile effettuare l'Export dei dati (ma dovrebbe essere disponibile a breve)
- Non è possibile effettuare l'Import dei dati (se si vuole passare da TFS a VSO)
- Non c'è l'integrazione con Active Directory (gli utenti si loggano usando un Microsoft Accounts)
- Non è possibile scegliere dove mantenere geograficamente i dati (sono salvati in un data center a Chicago)
lunedì 21 ottobre 2013
Dimensioni in MB di un Database su Windows Azure
Se usiamo un Database su Windows Azure sappiamo che non è possibile conoscere la sua dimensione utilizzando il Sql Management Studio, ma è necessario utilizzare l'Azure Portal che però non è aggiornato in real time... Se vogliamo quindi conoscere la dimensione del database, possiamo utilizzare la query seguente:
/*Dimensioni Database in MB*/
SELECT SUM(reserved_page_count) * 8.0 / 1024
FROM sys.dm_db_partition_stats
Se invece vogliamo sapere la dimensione in MB di ogni tabella nel database, questa query fa al caso nostro:
/* Dimensioni tabelle in MB */
SELECT sys.objects.name AS 'Nome tabella', SUM(reserved_page_count) * 8.0 / 1024 AS 'Mb'
FROM sys.dm_db_partition_stats
INNER JOIN sys.objects ON sys.dm_db_partition_stats.object_id = sys.objects.object_id
WHERE sys.objects.type = 'U'
GROUP BY sys.objects.name
sabato 10 agosto 2013
Eliminare un progetto da Team Foundation Service
Visto che su "Team Foundation Service" non si dispone di una console di amministrazione, non è ovviamente possibile utilizzarla per eliminare un progetto hostato.
Quindi, per eliminare un Team Project da una Collection di TFService bisogna usare il comando "tfsdeleteproject.exe" dall CLI:
tfsdeleteproject /collection:https://<nome collection>.VisualStudio.com/DefaultCollection <"Nome Progetto">
Per ulteriori informazioni, vedere: http://social.msdn.microsoft.com/Forums/en-US/TFService/thread/81997146-a64f-43fb-9952-57d71542cd11
Quindi, per eliminare un Team Project da una Collection di TFService bisogna usare il comando "tfsdeleteproject.exe" dall CLI:
tfsdeleteproject /collection:https://<nome collection>.VisualStudio.com/DefaultCollection <"Nome Progetto">
Per ulteriori informazioni, vedere: http://social.msdn.microsoft.com/Forums/en-US/TFService/thread/81997146-a64f-43fb-9952-57d71542cd11
mercoledì 5 giugno 2013
Scroll di una GridView sul gruppo desiderato in una Windows Store App
Di default, in una Windows Store App, il focus in una GridView viene posizionato sull'elemento 0 del gruppo 0. Ma se volessimo cambiare questo comportamento e fare in modo che venga "aperta" ad un elemento a nostro piacimento?
Per farlo bisogna gestire l'evento itemGridView_Loaded ed utilizzare le CollectionView:
Nello XAML:
Nel code-behind:
Per farlo bisogna gestire l'evento itemGridView_Loaded ed utilizzare le CollectionView:
Nello XAML:
<GridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemGridView"
AutomationProperties.Name="Grouped Items"
Grid.RowSpan="2"
Padding="116,137,40,46"
ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
ItemTemplate="{StaticResource Standard250x250ItemTemplate}"
SelectionMode="None"
IsSwipeEnabled="false"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick"
Loaded="itemGridView_Loaded">
private bool firstTime = true;
private void itemGridView_Loaded(object sender, RoutedEventArgs e)
{
ICollectionView view;
ICollectionViewGroup myGroup;
Data.MyDataType myItem;
if (!this.firstTime) return; else firstTime = false;
view = itemGridView.ItemsSource as ICollectionView;
view.CurrentChanged += view_CurrentChanged;
int groupIndex = 2; // an integer value between 0 and # of items in the groups collection
myGroup = view.CollectionGroups[groupIndex] as ICollectionViewGroup;
myItem = recipeGroup.GroupItems[0] as Data.MyDataType;
view.MoveCurrentTo(myItem);
}
private void view_CurrentChanged(object sender, object e)
{
ICollectionView view;
Data.MyDataType myItem;
view = itemGridView.ItemsSource as ICollectionView;
view.CurrentChanged -= view_CurrentChanged;
myItem = view.CurrentItem as Data.MyDataType;
itemGridView.ScrollIntoView(view.CurrentItem, ScrollIntoViewAlignment.Leading);
}
mercoledì 29 maggio 2013
Privacy Policy nella Charm Bar: il modo più semplice...
Quando si sviluppa una Windows Store App, se l'applicazione usa un qualsiasi tipo di connettività (rete locale o internet), è necessario specificare le Privacy Policy sia nella pagina dello store sia nella Charm Bar.
Ma come farlo? Qual'è il metodo più semplice?
Vediamolo...
Fare le seguenti modifiche nel file App.xaml.cs:
1) Aggiunta dei namespace
2)Aggiunta dell'handler nel metodo OnLaunched()
3) Implementazione dell'handler
4) Aggiunta del metodo OpenPrivacyPolicy
Ma come farlo? Qual'è il metodo più semplice?
Vediamolo...
Fare le seguenti modifiche nel file App.xaml.cs:
1) Aggiunta dei namespace
using Windows.UI.ApplicationSettings; using Windows.UI.Popups;
2)Aggiunta dell'handler nel metodo OnLaunched()
SettingsPane.GetForCurrentView().CommandsRequested += SettingCharmManager_CommandsRequested;
3) Implementazione dell'handler
private void SettingCharmManager_CommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
args.Request.ApplicationCommands.Add(new SettingsCommand("privacypolicy", "Privacy policy", OpenPrivacyPolicy));
}
4) Aggiunta del metodo OpenPrivacyPolicy
private async void OpenPrivacyPolicy(IUICommand command)
{
Uri uri = new Uri("http://il_mio_sito/la_privacy.html");
await Windows.System.Launcher.LaunchUriAsync(uri);
}
martedì 14 maggio 2013
E-book tecnici gratuiti sulla piattaforma Microsoft
Anche se su internet e nei libri sono disponibili un sacco di informazioni sullo sviluppo software, normalmente queste informazioni sono difficili da digerire, da comprendere o anche solo da leggere. Se non ti diverti a leggere diversi libri con più di 500 pagine o perdere ore sul web per cercare informazioni, articoli e blog rilevanti, sei nel posto giusto.
Syncfusion ha pubblicato la serie "Succinctly", e-book tecnici gratuiti e "concisi", per gli sviluppatori che lavorano sulla piattaforma Microsoft. Ogni libro è di circa 100 pagine ed ti porta direttamente dentro i concetti che più interessano. Scarica una copia gratuita, prendi un bicchiere della tua bibita preferita, e divertiti!
Qui trovate il link: http://www.syncfusion.com/resources/techportal/ebooks
lunedì 6 maggio 2013
Accesso ai dati con Windows 8 e Windows Phone 8: Evento by DotNetToscana
Windows 8 e Windows Phone:
tutto quello che avreste voluto sapere sull'accesso ai dati
DotNetToscana, community ufficiale Microsoft per la Toscana di cui faccio parte, organizza il giorno 18 maggio un evento gratuito sull'accesso ai dati da Windows 8 e Windows Phone 8 .
Le app Windows Store e Windows Phone 8 non forniscono un supporto nativo alla connessione verso i database. Come possiamo allora utilizzare una sorgente dati in queste due piattaforme? Nel corso della giornata, cercheremo di dare una risposta a tale domanda, mostrando quattro alternative che abbiamo a disposizione: servizi basati su WebAPI, Azure Mobile Services, database locali con SQLite e SkyDrive.
Per maggiori informazioni e per registrarti all’evento visita la pagina http://bit.ly/11IsgbI
Oppure scarica il volantino dell'evento: http://sdrv.ms/11NyZ1O
lunedì 8 aprile 2013
SharePoint 2013: The username is invalid. The account must be a valid domain account
Durante la configurazione di SharePoint 2013 in modalità “Complete” viene restituito il messaggio “The username is invalid. The account mist be a valid domain account” usando un account locale per la farm…
Questo accade perchè "out of the box" SharePoint supporta solo la modalità “Stand-alone” per le installazioni fuori dominio, e questo forza l'utilizzo di SQL Server 2008 R2 Express che, nella maggior parte dei casi, non è una soluzione valida.
La soluzione al problema è quella di usare un comando PowerShell per creare la configurazione iniziale della farm:
2) Eseguire il comando“New-SPConfigurationDatabase” e seguire le istruzioni a video. Questo comando crea la farm e configura tutte le impostazioni necessarie, tra cui l'account (che a questo punto può essere locale e non di dominio)
Iscriviti a:
Post (Atom)


