Questo mese Microsoft Press mette a disposizione un altro e-book da poter scaricare gratuitamente previa registrazione.
Dopo Introducing Microsoft SQL Server 2008, questa volta è possibile leggere un overview su Microsoft Robotics.
Microsoft Roboticts Studio è un ambiente di sviluppo di software, basato su Windows, per applicazioni di robotica installabili su una vasta gamma di device.
Per chi è interessato all'e-book lo trovate qui.
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)
Saturday, October 18, 2008
E-book free: Microsoft Robotics
Etichette: MicrosoftWednesday, October 15, 2008
Vicessitudini sul deployment web
Etichette: Asp.Net 2.0, Vs 2005Chi sviluppa in Asp.Net 2.0 sa che è possibile lanciare una web application senza effettuare nessuna compilazione, in quanto di default ogni pagina viene compilata al "volo".
Premetto che in questo post non scriverò dei diversi svantaggi (di reali vantaggi sinceramente non sono ancora riuscito a trovarne) che presenta questa "metodologia" bensì di alcuni problemi con cui mi sono dovuto scontrare ultimamente.
Lo scenario è un grosso progetto web basato sull'architettura di DNN.
Per precompilare la parte web ho utilizzato l'add-in Web Deployment Project, il quale consente di compilare un sito web in uno ( alla Visual Studio .NET 2003) o più assembly.
Per avere una completa descrizione delle opzioni che offre questo add-in vi rimando al seguente articolo: Using Web Deployment Projects with Visual Studio 2005.
Inoltre per completezza è bene anche una lettura a VS 2005 Web Deployment Projects di Scott Guthrie.
Ho optato per un unico assembly, quindi ho lanciando il build.
Ho subito ottenuto un errore che di per sè non vuol dire praticamente nulla:
"aspnet_merge.exe" exited with code 1
Per avere un'informazione più utile bisogna modificare il livello di verbosity dell'output del MS-Build:
Tools > Options > Project and Solution > Build and Run
Dalla tendina MSBuild project build ouptut verbosity selezionate la voce Diagnostic o Detailed.
Ricordatevi di attivare la finestra di output:
View > Output
A questo punto è stato necessario modificare una serie di classi che presentavano namespace identici.
Questo provoca "collisioni" quando il tool cerca di generare un unico assembly.
Primo consiglio quindi, è quello di definire sempre per le pagine un namespace in modo esplicito non facendo ricorso alla "tecnica" del copy & paste.
Il secondo passo è stato quello di copiare il progetto compilato nella web folder e lanciarlo, pensando di aver svolto il grosso del lavoro, ma invece ecco che spunta un altro errore:
Could not find a part of the Path XXX\App_GlogalResources\Locales.xml
Dopo una breve ricerca con "san google" trovo che una possibile soluzione consiste nel cancellare dalla root del progetto il file PrecompiledApp.config.
Erroneamente, senza pormi troppe domande, ho cancellato il suddetto file.
In effetti dopo questa semplice modifica si presenta un altro errore:
Could not find file 'c:\DotNetNuke.config'.
Debuggando è saltato fuori che alcune property dichiarate nell'assembly DotNetNuke non venivano settate.
Preciso che nel progetto queste property vengono settate nel file Global.asax, quindi mi sono chiesto perchè quest'ultimo non veniva in fase di esecuzione "analizzato".
Credo che il motivo sia collegato alla cancellazione del file PrecompiledApp.config.
Il file contiene il numero di versione del tool di precompilation ( 2 per Asp.Net 3.5) e se il sito è in grado di essere aggiornato:
1: <precompiledApp version="2" updatable="true"/>
Tiene traccia delle opzioni di deploy dell'applicazione ed indica ad Asp.Net se deve compilare ogni file ad ogni richiesta:
L'attributo updatable impostato a true è applicabile alle pagine .aspx, agli user control ( .ascx), master file ma non al file Global.asax che viene compilato ( bin\App_global.asax.compiled).
L'ultima cosa che mi rimaneva da risolvere era quella di consentire alla cartella App_GlobalResources di risiedere nella directory di distribuzione.
L'unico workaround che sono riuscito ad adottare è stato quello di modificare nel file Localization.vb dell'assembly DotNetNuke, situato in:
\Library\Components\Localization
la costante ApplicationResourceDirectory come segue:
1: Public Const ApplicationResourceDirectory As String = "~/DNN_GlobalResources"
Monday, October 13, 2008
Link .Net #6
Etichette: Asp.Net 3.5, Links, Sharepoint 2007, Silverlight, Workflow FoundationSesto appuntamento con Link .Net:
Silverlight 2 RC0 + ADO.NET Data Service + Entity Framework
| Pietro Brambati ci mostra come utilizzare gli ADO.NET Data Service e ADO.NET Entity Framework con Silverlight 2 RC0. |
Creating Workflows for Windows Sharepoint Services and MOSS2007
| Un tutorial passo passo su come creare un flusso di lavoro di approvazione usando Workflow Foundation in Sharepoint 2007. |
Modifying Data with the ListView's EditItemTemplate
| Matt Berseth ci mostra come usare l'eccezionale controllo ListView introdotto in ASP.NET 3.5. |
Geocoding with the Virtual Earth Web Service
| Tutorial su come utilizzare i Web Services di Virtual Earth. |
Tuesday, October 7, 2008
Facebook e PowerShell
Etichette: PowerShell, webLeggendo il titolo può risultare un pò strano il connubio, ma aspettate il resto del post per capire come ciò sia possibile.
Il merito è di Facebook Organizer con cui è possibile connettersi a Facebook usando PowerShell e quindi visualizzare amici, gruppi, foto ecc.
Prima di procedere con l'importazione del Facebook pack verificate di aver installato sul sistema Windows PowerShell V2 (CTP2).
Nel caso sia presente una versione precedente allora sarà necessario avviare la procedura di disinstallazione:
pannello di controllo>installazione applicazione>checkare la voce mostra aggiornamenti
A questo punto potete munirvi dell'ultima versione di PowerGUI.
Dopo aver scaricato Facebook.dll e FacebookOrganizer.powerpack, lanciate PowerGUI in modalità STA (Single-threaded Apartment) tramite il comando -sta:
C:\Programmi\PowerGUI\Quest.PowerGUI.exe -sta
Adesso si può importare il pack.
Lanciando lo script del nodo connect situato nella cartella Facebook viene sollevata un'eccezione, ossia che l'assembly Facebook deve risiedere nella directory:
C:\Program Files\Coding4Fun\Facebook\Binaries\
Potete, a questo punto, creare il percorso sopra indicato oppure modificare lo script specificando un percorso differente.
Dopo avere effettuato l'autenticazione verranno creati i seguenti nodi figli:
- My Friends
- My Albums
- My Groups
- My Events
Ora siete pronti ad interrogare Facebook tramite PowerShell.
Read More »»Sunday, October 5, 2008
Tema per Activity
Etichette: Workflow FoundationQuando si crea un custom activity è possibile implementare un tema che definisca l'aspetto grafico all'interno del visual designer modificando stili di background, di foreground, font, icone.
I passi da seguire sono essenzialmente tre.
Creare una classe che implementa il nuovo tema:
1: using System;
2: using System.Collections.Generic;
3: using System.Text;
4: using System.Resources;
5: using System.Reflection;
6: 7: using System.Drawing;
8: using System.Drawing.Drawing2D;
9: using System.Workflow.ComponentModel.Design;
10: 11: namespace SeqWF
12: {13: public class MyActivityTheme : ActivityDesignerTheme
14: {15: public MyActivityTheme(WorkflowTheme theme)
16: : base(theme)
17: {18: this.BackgroundStyle = LinearGradientMode.Vertical;
19: this.BackColorStart = Color.Orange;
20: this.BackColorEnd = Color.White;
21: 22: this.BorderColor = Color.Black;
23: this.BorderStyle = DashStyle.Solid;
24: 25: this.ForeColor = Color.Black;
26: 27: ResourceManager rm = new ResourceManager( "SeqWF.MyResource",
28: Assembly.GetExecutingAssembly());29: this.DesignerImagePath = rm.GetString("IconeSave");
30: } 31: } 32: } Implementare un nuovo designer per l'activity:
1: using System;
2: using System.Collections.Generic;
3: using System.Text;
4: 5: using System.Workflow.ComponentModel;
6: using System.Workflow.ComponentModel.Design;
7: 8: namespace SeqWF
9: {10: [ActivityDesignerTheme(typeof(MyActivityTheme))]
11: public class MyActivityDesigner : ActivityDesigner
12: { 13: } 14: }Attribuire il nuovo designer al custom activity:
1: using System;
2: using System.Workflow.ComponentModel;
3: using System.Workflow.ComponentModel.Design;
4: 5: namespace SeqWF
6: { 7: [Designer(typeof( MyActivityDesigner))]
8: public partial class PersistActivity: Activity
9: { 10: } 11: }Ed ecco il risultato finale:
La classe base di tutti i designer è ActivityDesigner, ma Workflow Foundation presenta altre classi di designer specifiche per particolari tipi di activity, per esempio CompositeActivityDesigner dalla quale ereditano le classi ParallelActivityDesigner e SequentialActivityDesigner.
Nel caso di un custom activity di tipo composite la classe che si occuperà di definire il tema dovrà ereditare da CompositeDesignerTheme.
Quest'ultima presenta diverse property in più rispetto alla classe ActivityDesignerTheme come per esempio poter indicare informazioni circa lo stile del connector tramite ConnectorStartCap e ConnectorEndCap.
Per concludere un suggerimento:
nel caso in cui il designer non venga aggiornato con il tema creato allora potete provare a cliccare tasto destro sull'activity, selezionare la voce "Select Custom Theme" e cliccare su "OK": ![]()

