Pictomio è un software freeware utile a catalogare/visualizzare foto e video, ma anche creare presentazioni animate, il tutto in un modo estremamente d'effetto:
Labels
- .Net Framework 3.5 (7)
- Asp.Net 1.1 (21)
- Asp.Net 2.0 (44)
- Asp.Net 3.5 (23)
- Asp.Net Ajax (6)
- Asp.Net MVC (4)
- Biztalk (2)
- Blend (5)
- C# (26)
- css (10)
- DB2 (3)
- Framework 1.1 (10)
- Framework 2.0 (9)
- IE 7.0 (5)
- Interop Office (2)
- javascript (29)
- Library (11)
- Links (19)
- LINQ (1)
- Micro Framework (2)
- Microsoft (57)
- Microsoft Expression (3)
- Mobile (14)
- Office (9)
- Oracle (1)
- Photosynth (3)
- PowerShell (6)
- Regular Expression (2)
- Sharepoint 2007 (8)
- Silverlight (34)
- SQL Server 2000 (6)
- SQL Server 2005 (5)
- SQL Server 2008 (3)
- Tools (34)
- varie (46)
- VB.NET (19)
- Virtual Earth (10)
- VS 2003 (6)
- Vs 2005 (12)
- VS 2008 (20)
- VS 2010 (1)
- web (48)
- Windows (3)
- Windows Media Center (4)
- Workflow Foundation (14)
- WPF (20)
Thursday, July 10, 2008
Pictomio
Etichette: varieMicrosoft Source Analysis
Questo tool, usato fino a qualche mese fa solo internamente a Microsoft, è stato ora rilasciato pubblicamente.
Lo scopo di Source Analysis è quello di controllare lo stile del codice usato, nel rispetto di tutta una serie di best practice ( più di 200).
Si integra direttamente in Visual Studio, e per diversi aspetti è simile al famoso utility FxCop, ma a differenza di quest'ultimo analizza il codice sorgente e non il codice compilato.
Per il download cliccare qui, mentre per ulteriori dettagli qui.
Sunday, July 6, 2008
Back State
Etichette: Workflow FoundationUn workflow sequenziale come suggerisce la parola stessa scorre linearmente eseguendo uno dopo l'altro gli activity che costituiscono il flusso.
In questi giorni però mi son ritrovato a sviluppare un sistema che permettesse al cliente per cui sto lavorando, di effettuare un ritorno indietro in un workflow sequenziale composto da activity long running.
Detto con un esempio, se il workflow sequenziale è composto dai seguenti tre activity A, B e C, e il flusso si trova "persistito nell'activity B", allora deve essere possibile ritornare in A.
Nel caso di una macchina a stati la cosa sarebbe stata di semplice implementazione, poichè il flusso è costituito da un'insieme di stati collegati fra loro da una serie di eventi che determinano il passaggio da uno stato ad un altro.
Inoltre tramite il metodo SetState è possibile effettuare una transazione indicando il nome dello stato di destinazione:
1: StateMachineWorkflowInstance ins = new StateMachineWorkflowInstance(runtime, instance.InstanceId);
2: ins.SetState("TargetState");
Purtroppo nel mio caso la strada di "trasformazione" dell'attuale flusso sequenziale in una macchina a stati non è di facile attuazione, anche se molto probabilmente si tratta della soluzione migliore.
Quindi ho pensato di preservare man mano che si effettua il passaggio tra gli activity, lo stato del workflow in una tabella history, recuperando dalla tabella InstaceState; il blob, serializzato in BinaryFormatter e compresso tramite Gzip, contenuto nel campo State.
La tabella "base" presenta l'identificativo del flusso, lo stato ed infine un campo identity che indica l'ordine di inserimento.
A questo punto possiamo espandere il codice del custom activity visto nel post precedente, aggiungendo la logica del salvataggio dello stato del workflow:
1: protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
2: { 3: WorkflowQueuingService queueService = executionContext.GetService<WorkflowQueuingService>();4: WorkflowQueue wfQueue = queueService.CreateWorkflowQueue(this.Name, true);
5: wfQueue.QueueItemAvailable += new EventHandler<QueueEventArgs>(nextActivity);
6: return ActivityExecutionStatus.Executing;
7: } 8: 9: void nextActivity(object sender, QueueEventArgs e)
10: { 11: ActivityExecutionContext context = (ActivityExecutionContext)sender; 12: WorkflowQueuingService queueService = context.GetService<WorkflowQueuingService>(); 13: queueService.DeleteWorkflowQueue(e.QueueName);14: /*
15: * Recupero lo stato del workflow dalla tabella InstanceState
16: */
17: 18: /*
19: * Insert dello stato del workflow nella tabella history
20: */
21: context.CloseActivity(); 22: } Da tale processo escludo i custom activity incapsulati in un branch ParallelActivity.
Per indicare quali activity devono partecipare al processo utilizzo un DependencyProperty:
1: public static DependencyProperty ActivePersistenceProperty =
DependencyProperty.Register("ActivePersistence", typeof(Boolean), typeof(WorkflowClasse));
2: 3: [DescriptionAttribute("ActivePersistence")]
4: [CategoryAttribute("ActivePersistence Category")]
5: [BrowsableAttribute(true)]
6: [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]7: public Boolean ActivePersistence
8: { 9: get 10: {11: return ((Boolean)(base.GetValue(Workflow1.ActivePersistenceProperty)));
12: } 13: set 14: {15: base.SetValue(Workflow1.ActivePersistenceProperty, value);
16: } 17: } Per completare il giro è necessario verificare nel metodo nextActivity, se la property ActivePersistence è settata con il valore true.
E' facile immaginare come, per effettuare un ritorno in uno "stato" precedente basta effettuare l'update del campo State della tabella InstanceState; dalla tabella History.
Ovviamente sono molto curioso di sapere se esiste una soluzione più elegante da poter adottare in questo preciso contesto, in caso contrario spero che questo post possa essere d'aiuto, o quantomeno di ispirazione a qualcun altro.
Saturday, July 5, 2008
Alternativa ad Illustrator
Etichette: varie
Creative Docs .NET è un software per il disegno vettoriale simile ai stra-famosi Illustrator e Corel Draw con la grossa differenza che è completamente free.
E' costituito da una serie di tool per manipolare testo, eseguire operazioni di merge sulle forme, lavorare con le curve di Bezier, possibilità di salvare direttamente in formato pdf ecc.
E' scritto in .Net e come tale richiede come requisito l'installazione del .NET Framework 2.0.
Può essere installato tranquillamente su sistemi Windows: 2000, XP, Server 2003 o Vista.
Tuesday, July 1, 2008
Microsoft Math per Word 2007
Etichette: OfficeUn add-in per Microsoft Office Word 2007 che permette di risolvere equazioni, creare grafici 2D e 3D, svolgere vari calcoli numerici, semplificare espressioni algebriche ecc.
Read More »»