.NET Framework
Il mio framework del cuore.
Ora che è pubblico il mio ultimo sforzo produttivo, posso fare due cose: la prima è il tornare a
bloggare, e la seconda dire due parole con una certa cognizione di causa a
proposito di NHibernate e più estensivamente a proposito degli ORM. L'occasione
mi è data dall'aver lavorato sul sito di XE.NET utilizzando
NHibernate, sul quale è basato cuyahoga che a sua vota è appunto base per il
sito.
Inutile dire che NHibernate è magico. Mappi una classe e ti
dimentichi (quasi) che questa in realtà è persistente su un database, ti
dimentichi persino di che database si tratta e questo,...
Ho letto il post di Lanny stamattina e ho deciso che probabilmente
era il caso di postare un esempietto su come sia preferibile lavorare con la
reflection per evitare i problemi più comuni. L'esempio di Lanny funziona ed è
utile per capire come funziona la reflection, ma dovendo lavorare con essa è
opportuno fare affidamento su una serie di classi belle e pronte che il
framework mette a disposizione. Oltre a snellire il lavoro eliminando la
necessità di riscrivere del codice che è già perfettamente funzionane,
consentono soprattutto di avere un modo affidabile di operare conversioni di
tipo senza incorrere...
Il primo screencast di XE.NET è stato pubblicato sul sito della community. Chiunque voglia contribuire con un proprio screencast è il benvenuto. E' sufficiente leggere le istruzioni pubblicate in questa pagina, trovare un argomento e darsi da fare.
Link: SCREENCAST: Implementare una Abstract Factory in C#
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: SCREENCAST: Implementare una Abstract Factory in C#
Ci ho messo un pò di più di quello che avevo promesso,
ma alla fine eccomi a postare il codice del plugin Lorem Ipsum per Live
Messenger 8.0. Il motivo del ritardo è presto detto: mi sono soffermato a cpire
come realizzare una feature che mi interessava parecchio, almeno quanto so
alletterà i maniaci del messaggino-sul-messenger. ora è possibile immettere i
propri messaggi e farli ruotare al posto di quelli generati da Lorem Ipsum.
Giusto per smentire quello che avevo detto qualche post fa, ho scoperto che
valorizzando la proprietà SavedState dell'istanza di messenger è possibile
salvare delle impostazioni che possano...
Stanotte, preso dalla voglia di fare qualcosa di "pazzesco" (o
forse dalla voglia di far nulla...) ho rispolverato un post di Giorgio
Sardo a proposito dei plugin per Live Messenger. In breve, come mi capita
spesso ho buttato giù un po' di codice unendo cose che apparentemente non hanno
nulla a che vedere le une con le altre e ne è uscito un Lorem Ipsum Add-in per
Live Messenger.
A che serve? Beh, visto che c'è la moda di postare ogni genere
di cosa nel messaggio personale di Live Messenger e che io in questo difetto di
attenzione e non...
Forse non sono in molti che gestiscono la validazione dei
parametri di input di un metodo, tuttavia considerato che sarebbe una buona cosa
farlo, vi propongo uno snippet che mi sono creato che dovrebbe semplificare
questa ripetitiva attività. Lo snippet, che nell'esempio è dedicato al caso
delle stringhe, compila per noi una sezione di validazione e ci consente di
immettere il nome del parametro e il messaggio che vogliamo dare
nell'eccezione.
<?xml version="1.0" encoding="utf-8" ?><CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>param_str</Title> <Shortcut>param_str</Shortcut> <Description>Code snippet for string parameter validation</Description> <Author>Andrea Boschin</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>argument</ID> <ToolTip>Argument name</ToolTip> <Default>name</Default> </Literal> <Literal> <ID>messageNull</ID> <ToolTip>Exception Message for null string</ToolTip> <Default>Argument cannot be null</Default> </Literal> <Literal> <ID>messageEmpty</ID> <ToolTip>Exception Message for empty string</ToolTip> <Default>Argument cannot be empty</Default> </Literal> </Declarations> <Code Language="csharp"> <![CDATA[if ($argument$ == null) throw new ArgumentNullException("$argument$",
"$messageNull$"); if ($argument$ == string.Empty) throw new ArgumentException("$argument$",
"$messageEmpty$");$end$]]> </Code> </Snippet> </CodeSnippet></CodeSnippets>
Alla vostra fantasia tutte le possibili
varianti.
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: VS2005: Uno snippet per validare i parametri
Un esperienza pratica di lavoro con WebServices, applicazioni
legacy, e Framework .NET mi ha suggerito l'argomento dell'articolo che questa
settimana è apparso sulle "colonne" di UgiDotNet. L'articolo dimostra come,
sfruttando gli strumenti del framework 2.0 - mi riferisco a reflection e
generics - si possa abbattere notevolmente il tempo di sviluppo di una
applicazione. Non solo, l'implementazione è anche un bell'esempio di
design, che grazie ad alcuni accorgimenti ha reso flessibile ed adattabile
a future esigenze il codice.
Tenete presente che questo lavoro ci ha consentito di evitare
la realizzazione di una cinquantina di convertitori ad-hoc che avrebbero
richiesto un tempo esponenzialmente più elevato. Un...
Prosegue con questo post la saga, iniziata quando ho parlato
degli ExpressionBuilders, dedicata alle risorse
tipicamente utilizzate nelle applicazioni ASP.NET per depositare stringhe, e in
genere proprietà da utilizzare nel rendering dell'interfaccia. In quel post
spiegavo come realizzare un ExpressionBuilder che permettesse facilmente dei
leggere le risorse da un database anziche da un più consueto file resx. Esiste
tuttavia un altro metodo, per fare la medesima cosa, che in realtà è quello che
il framework indica come quello corretto. Chi avesse provato a realizzare
l'ExpressionBuilder forse si sarà reso conto che pur funzionando egregiamente
esso ha delle limitazioni fastidiose. Giusto per indicarne una...
Chiunque abbia sviluppto un'applicazione che si appoggia a diversi web-services si sarà trovato nella condizione di avere una moltitudine di proxy generati che fanno capo a diversi oggetti del dominio applicativo. Molto spesso ci si trova nella condizione di avere dei duplicati in questi oggetti che per il fatto stesso di essere classi diverse, pur avendo le medesime proprietà non sono "compatibili". Perciò, ad esempio avendo un webservice che restituisce un Ordine ed un secondo webservice che lo richiede in input non è possibile passare al secondo direttamente l'oggetto restituito dal primo.
Nel framework 2.0 esiste una soluzione a questo...
Chi di voi ha mai avuto a che fare con localizzazione e
globalizzazione di applicazioni .NET sa bene come funziona il meccanismo del
fallback delle culture. In soldoni, per chi non lo sapesse si tratta di quel
pricipio per cui se tra le risorse non esiste quella nella cultura che è
richiesta, il framework provvedde a trovarne una il più possibile adatta. Quello
che forse non è chiaro a tutti è che implementando l'expression builder di cui
ho parlato in un post
...
Stamane ho avuto nuovamente problemi con la configurazione del AspNetActiveDirectoryMembershipProvider. Mi sono trovato a spostare l'installazione di ADAM dalla mia macchina locale ad un server 2003 configurato come controller di dominio. L'unica differenza apparente nell'installazione risiede nel fatto che data la presenza di Active Directory la porta su cui girerà ADAM deve essere cambiata e di default verrà messa a 50000. In realtà al termine della configurazione seguendo i passi del mio precedente post mi sono reso conto che l'utility di configurazione di ASP.NET continuava a darmi il seguente errore:
Logon failure: unknown user name or bad password.
Inutile dire che completati...
Torno ancora sull'uso delle risorse in ASP.NET 2.0 perchè ho
scoperto un comportamento che di primo acchito mi ha creato qualche problema. Il
problema derivava dal fatto di aver implementato l'ExpressionBuilder di ho
parlato in un precedente post ed aver inserito le espressioni all'interno di
alcuni Literal nella pagina. Chi avesse provato questo codice si sarà reso conto
che la Culture restituita dal Thread corrente è sempre quella di default del
sistema e che ogni tentativo per modificarla non ha l'esito sperato. In sostanza
quello che accade è che il momento in cui vengono valutate le espressioni nella
pagina è...
Se vi dovesse capitare di usare
AuthorizationStoreRoleProvider da ASP.NET 2.0 non avrete alcun problema
a farlo fintanto che la macchina in cui gira l'applicazione è Windows 2003.
Tuttavia tipicamente le applicazioni vengono sviluppate su una macchina Windows
XP quale è di solito quella dello sviluppatore. In questo caso sarà necessario
installare dapprima il Windows Server 2003 Administration Tools Pack dato che
su XP l'AuthorizationManager non è installato. Nell'adminpak,
troverete anche uno script vbs che vi consente di sapere la sua
versione se per caso fosse già installato. Vale la pena di lanciarlo prima di
procedere all'installazione.
Questo però non basta. Infatti...
"Ci ho buttato quasi una notte intera, e un pezzetto di questo pomeriggio, ma alla fine ne sono uscito vivo". Così comincia l'articolo che ho appena postato a testimonianza delle difficoltà che ho incontrato per completare la configurazione di ADAM, la versione applicativa di Active Directory e il provider per Active directory di ASP.NET. Ho deciso di mettere tutto assieme in un unico articolo perchè nele ricerche in rete non ho trovato una sola fonte che spiegasse la cosa nella sua interezza.
Link: http://blog.boschin.it/articles/aspnetadam.aspx
per leggere il post originale o inviare un commento visita il seguente indirizzo: A tu per tu...
Da un articolo in uscita su MSDN ecco
l'aggiornamento del 10 must-have per Visual Studio 2005. Cominque mi sembra che
quelli del precedente articolo per VS2003 siano sempre da tenere in
considerazione.
Ecco l'elenco tratto dall'articolo:
TestDriven.NET
GhostDoc
Paster
CodeKeep
PInvoke.NET
VSWindowManager PowerToy
WSContractFirst
VSMouseBindings
CopySourceAsHTML
Cache
Visualizer
Source: Ten Essential Tools: Visual Studio Add-Ins Every Developer
Should Download Now -- MSDN Magazine, December 2005
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: Ten Essential Tools: Visual Studio Add-Ins Every Developer Should Download Now
Ecco un bell'esempio di uso dei
generics in una architettura a plugins. Pubblicato dal neo-padre Abhinaba, che
si sta scrivendo una piccola applicazione per monitorare la figlioletta
in culla. Curioso anche il primo commento, che fa giustamente notare che se un
bimbo si muove in culla non c'è nulla di strano ed è inutile sollevare un'alert.
Ve lo conferma un ormai consumato (dalle nottate in bianco) padre...
I know the answer (its 42) : C# 2.0: Loading plugins at
run-time using late binding
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: C#2.0, Generics, Interfacce...
Lasciatemi spendere due parole per qualche istante su una
gradita scoperta che ho fatto in questi giorni usando Visual Studio 2005. Mi
riferisco a GenerateMember, una utile proprietà che decora tutti
i controls del Framework 2.0. Forse la sua piccolezza non meritava
un post nel mio blog, ma per chi ama la pulizia del codice bisogna dire che la
sua funzione è irrinunciabile. GenerateMember semplicemente indica con un
booleano a Visual Studio se usare una variabile membro della classe per
referenziare il controllo oppure se semplicemente utilizzare una variabile
locale al metodo InitializeComponents(). Appunto, una piccolezza, ma quante e
quante volte mi...
Torno sull'argomento degli eventi FormClosed e
FormClosing perchè approfondendo la documentazione ho scoperto che essi
non sostituiscono Closed e Closing, ma li affiancano fornendo
in più la ragione dalla chiusura per mezzo dell'enumeratore CloseReason
(utilissimo) che si trova negli argomenti dell'event-handler. Il mio abbaglio è
dovuto al fatto che l'intellisense di Visual Studio 2005 non mostra più i vecchi
eventi. Questo mi insegna due cose:
1) Non usare Visual Studio per apprendere l'uso del
framework
2) Il team di sviluppo sa il fatto suo...
Però devo dire che questo fatto che Visual Studio mi nasconda
qualcosa...
Sempre lavorando con il framework 2.0 ho qualche minuto a
scovare due eventi di uso comune che a quanto pare hanno cambiato nome. Si
tratta degli utilissimi Closing e Closed della classe System.Windows.Forms.Form
che sono stati inopinatamente rinominati in FormClosing l'uno e in FormClosed
l'altro.
Chissà poi perchè questo cambiamento potenzialmente foriero di
noie??
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: Gli eventi smarriti
Chi come me ama sfrenatamente l'operatore ternario ? .. : che C# eredita dal C, sarà lieto di sapere che un nuovo operatore è entrato a far parte del linguaggio C# 2.0. Si tratta dell'operatore ?? che si comporta ne più ne meno che come l'ISNULL del T-SQL oppure come l'equivalente nvl() del cugino Oracle. Ecco un esempio:
string a = null;string b = "andrea";Console.WriteLine( a ?? b );
Questo breve esempio scrive "andrea" dato che la variabile a al primo termine è settata a null. Non mi viene in mente ora un valido esempio d'uso pratico, ma considerata l'utilità dell'ISNULL in T-SQL e l'introduzione dei tipi nullabili in C# 2.0, credo...
Ne da notizia il team di Nhibernate con poche parole sul
sito ufficiale del progetto.
Link: Nhibernate project of the month
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: NHibernate, sourceforge project of the month.
Una serie di CTP delle nuove Pattern
& Practices per VS 2005, tra cui la Enterprise Library 2.0
Link: Microsoft patterns & practices Home: patterns & practices for
Visual Studio 2005
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: Microsoft patterns & practices for Visual Studio 2005
A questo indirizzo è
disponibile il setup redistribuibile per il framework 2.0. Andate e
moltiplicatelo
Link: .NET Framework Version 2.0
Redistributable Package (x86) powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: .NET Framework Version 2.0 Redistributable Package (x86)
Finalmente ho trovato il tempo di installare il nuovo fiammante
Visual Studio 2005 sul mio portatile e dopo aver disinstallato un bel po' di
spazzatura per fargli spazio (peraltro alla fine ho eliminato anche
GoogleDesktop che aveva creato ben 700MB di indici ) ho potuto provare l'ebbrezza "dell'amore
non protetto" da una virtual-machine-preservativo. Ora, non
vi so dire se la mia è una illusione dovuta all'aver sopportato per lunghi mesi
la lentezza allucinante della virtualizzazione, ma la prima impressione che ho
avuto è che sia velocissimo!!! Molto più anche del vecchio vs.net 2003 alla
cui lentezza ero oramai abituato.
Manco a dirlo, la...
Nel numero di ottobre di Computer Programming sarà pubblicato
il primo articolo di una serie dedicata a ASP.NET 2.0. L'argomento della prima
puntata saranno le Membership API con un esempio di creazione di Custom
Membership Provider e Role Provider. Nei mesi prossimi la serie continuerà
toccando altri argomenti di ASP.NET 2.0 come le MasterPages, i Temi, e i
nuovi WebControls. Curiosamente in questi giorni è uscito un analogo articolo di
Andrea Saltarello, ma per chi non mastica bene l'inglese, oppure, come me,
non ama scervellarsi a tentare di comprendere un testo in tale lingua, il mio
articolo sarà sicuramente gradito.
Buona lettura!
powered by...
Da un blog su msdn ho notato che è stata rilasciata la
CTP2 di un application block che pare davvero interessante. Si tratta di una
serie di classi che dovrebbe aiutare a sviluppare interfacce a componenti,
consentendo lo sviluppo e il test separato delle varie componenti per poi
arrivare ad un assemblamento finale. Ho solo visto qualche spezzone di codice,
ma quello che ho visto mi ha parecchio incuriosito. Chissà se sono riusciti a
superare la fastidiosa complessità dell UIP.
Link: Composite UI Application Block
Home
powered by IMHO 1.3
per leggere il post originale o inviare un commento visita il seguente indirizzo: Composite...
Chi ha
mai provato a sviluppare una applicazione Localizzata quando
addirittura non Globalizzata
, si sarà reso conto di quanto sia noioso
mano a mano che si sviluppa porre nei file di risorse le stringhe che poi
dovranno essere tradotte nelle varie lingue. Mi riferisco soprattutto alle
stringhe perchè in realtà sono quelle che riguardano almeno l'80% della fatica
necessaria. Personalmente trovo questa attività molto deconcentrante.
Tipicamente mentre sto scrivendo una porzione di codice, dover copiare una
stringa nel file di risorse per poi referenziarla mi fa perdere il filo...
Questo pomeriggio, in un minuto di tempo libero, ho avuto
l'idea di andare a curiosare in quelli che sono i numeri dell'applicazione
gestionale che io e i miei collaboratori stiamo sviluppando. Ho cominciato
curiosando con qualche query nel database oracle, e poi preso dalla curiosità ho
fatto qualche conteggio anche sul codice realizzato in C#. Ecco i numeri per i
curiosi:
DATABASE:
304 tabelle
1040 procedure
39 trigger
131 sequenze
4 tablespace
SORGENTE:
71 assembly
~1055 classi (a titolo di paragone vale la pena
considerare che il framework...
Gli utenti di IMHO, già conoscono e forse apprezzano la caratteristica tray icon con cui il software rivela la sua presenza. Nella versione 2.0 di IMHO, questa icona sarà ancora presente, ma la sua funzione è stata notevolmente potenziata. Essa, oltre che un rapido punto di accesso al programma, ora rivela anche informazioni sullo stato del server cui si è collegati, e fornisce messaggi come quello visibile nello screenshot riportato a fianco, che mostra l'esito di un tentativo di logon ad un server. Personalmente il giorno in cui ho iniziato a scrivere IMHO sono partito immediatamente con una idea precisa...
Stamane a pranzo, una interessante discussione con un collega
appartenente al "lato oscuro della forza", ci ha visto scambiarci strali tra un
boccone e l'altro di un'ottima pasta con il pesto, pomodori e caciotta. Si è
parlato di Ruby, di Linguaggi di programmazione, e poi man a mano la discussione
è scesa giù giù fino al boxing/unboxing, ai tipi primitivi, e così via.
Una normale discussione insomma, se a parteciparvi fossero
stati solo due programmatori, magari al lume di candela, ma è curioso il
fatto che in ascolto delle nostre erudite dissertazioni vi era Giulio, il mio
collega grafico, che pur essendo...
Un ottimo
articolo da cui cominciare ad approfondire XLinq.
Link: XLinq: XML Programming Refactored
(The Return Of The Monoids) powered by IMHO 1.2
per leggere il post originale o inviare un commento visita il seguente indirizzo: XML Programming Refactored (XLinq)
Ed eccolo infine. La migrazione all'indietro da Community
Server verso .TEXT mi ha messo nella necessità di adattare il codice del
Replicator per Community Server all'engine di .TEXT. Lo scoglio da superare è
stata la mancanza di un sistema di scheduling che consenta di eseguire dei Job
ad ogni periodo di tempo determinato. Ne è uscito un bel pezzo di codice, che
ovviamente come ormai vi ho abituato metterò a disposizione entro breve, non
appena lo avrò testato per bene. Il replicator per .TEXT contiene al suo interno
un piccolo scheduler, basato su un HttpModule per evitare di dover ricompilare...
Una serie di video sulla suite
Microsoft Expression... non hanno ancora finito di riempirla.
Link: Microsoft Expression Tours &
Demos powered by IMHO 1.2
per leggere il post originale o inviare un commento visita il seguente indirizzo: Microsoft Expression Tours &amp; Demos
David Chappell in un articolo
su MSDN che parla di Windows Workflow Foundation. Pare sia un documento
imperdibile... mi tuffo a leggerlo.
Link: Windows Vista Developer Center:
Windows Workflow Foundation powered by IMHO 1.2
per leggere il post originale o inviare un commento visita il seguente indirizzo: David Chappell su Windows Workflow Foundation
Arrivano altre novità dal PDC
2005. Ecco un articolo MSDN che parla del futuro del nostro framework del
cuore...
Link: MSDN .NET Framework Developer Center: Future
Versions powered by IMHO 1.2
per leggere il post originale o inviare un commento visita il seguente indirizzo: .NET Future Versions
Il questi giorni nel mainfeed di UgiDotNet è apparsa una
notizia davvero brutta, sottolineata con poche righe da Alessandro nel suo
blog. Si tratta del cambi della politica di licensing delle libreria grafiche
prodotte dalla divelements, che personalmente uso da un bel po' non
essendo mai abbastanza grato all'autore del software. La licenza che dapprima
era free per chi realizzava software free (e questo mi ha spinto ad usarle per
IMHO), da alcuni giorni è esclusivamente a pagamento.
Una brutta notizia merita indagine, soprattutto se la libreria
in questione è alla base del software freeware che da più di un anno...
Non ho mai sentito parlare su UgiDotNet di markers interfaces,
non so se dipenda dal fatto che vi sono iscritto da relativamente poco tempo, o
se proprio l'argomento non è mai stato toccato. Stasera, durante una sessione di
sviluppo di IMHO 2.0 mi sono trovato di fronte all'esigenza di usarle per
risolvere con eleganza un problema che mi si è presentato, perciò ho deciso di
proporvi in questo breve post qualche spezzone di codice per illustrarvene
l'utilità.
Innanzitutto vediamo di spiegare in due parole che cosa intendo
quando parlo di markers interfaces. Chiunque abbia un po' di dimestichezza con
la programmazione ad...
E' in edicola il numero di giugno 2005 di Computer Programming su quale appare l'ultimo mio articolo della serie dedicata agli ApplicationBlocks. L'argomento conclusivo della serie è uno sguardo al futuro, con l'analisi della nuova Enterprise Library.
powered by IMHO 1.2
per leggere il post originale o inviare un commento visita il seguente indirizzo: Enterprise Library 1.0 in edicola
In seguito alla pubblicazione del Replicator for Community Server, e alla
conseguente domanda legittima che mi ha posto Stefano Demiliani in merito alla possibilità adattare il
replicator anche a .TEXT, ho deciso di approfondire un po' la questione e di
studiarmi meglio il codice sorgente del Community Server per capire come
funziona lo scheduler di Job che ho sfruttato con successo per
replicare il mio blog. Ne è uscito un interessante articolo la cui
lettura non vi impegnerà più di pochi minuti, ma che sicuramente sarà utile
a più di qualcuno.
Articolo: http://www.boschin.it/blogs/radicalmente/articles/aspnet_scheduler.aspx
per leggere il post originale o inviare un commento visita il seguente indirizzo:...
Brad Abrams, segnala in un post i Profiles attualmente in sviluppo e rilasciati per il framework .NET
Link: Profilers for the CLR
powered by IMHO 1.2
Attraverso bink.nu ho scovato un post
sui blog MSDN che spiega come sia possibile creare un setup che installi il
framework e la relativa Service Pack in un solo colpo.
Link: Creating a combined install point with the .NET Framework
and a service pack
powered by IMHO 1.2
Nel nuovo Framework .NET 2.0 molte
cose hanno subito una revisione anche laddove a prima vista può essere meno
evidente. E' questo il caso ad esempio del tipo DateTime che dal prossimo
frameword disporrà di nuove caratteristiche quali ad esempio il supporto per
l'ora legale e parzialmente per la timezone. Nel link che propongo in
questo post, si trova una dettagliata spiegazione di queste novità, dei motivi
che hanno spinto alla loro adozione ed un buon numero di link di
approfondimento.
Link: What are the New DateTime Features
in Whidbey [Anthony Moore]
powered by IMHO 1.2
Proseguendo l'indagine nella configurazione dell'applicazione
del Framework 2.0, sono finalmente venuto a capo del SettingsProvider.
Il SettingsProvider è una classe, che si occupa della
serializzazione/deserializzazione delle informazioni di configurazione, di una
classe derivata da ApplicationSettingsBase. Un SettingsProvider si compone di un
metodo GetPropertyValues() che riceve in input l'elenco delle proprietà della
classe da deserializzare che sono marcate con un attributo di scope come
UserScopedSettings o ApplicationScopedSetting e di uno speculare metodo
SetPropertyValues() che invece riceve i valori da serializzare, corrispondenti
alle suddette proprietà.
L'uso classico di un
SettingsProvider potrebbe essere ad esempio quello di serializzare e
deserializzare le informazioni di configurazione su...
PC World conferma. La Beta 2
di Visual Studio 2005 arriverà a fine marzo. Che poi sia inizio Aprile o fine
Marzo, questo è solo una questione di punti di vista...
Fonte: Visual Studio 2005 beta 2 delayed
to April powered by IMHO 1.2
Curiosi di sapere quanti sono i PC nei quali sia installato il framework .NET attualmente? Il post collegato, riferisce una serie di numeri, suppongo riguardanti il mercato americano. A parte il titolo un po' ambiguo, nel post si trova la incredibile cifra di 120.000.000 di download del runtime dal sito Microsoft.
Link: .NET Framework penetration
powered by IMHO
Spesso, leggendo i newsgroups vedo che c'è una diffusa
confusione sull'argomento UserControls e WebControls, non tanto in merito alla
creazione dell'uno o dell'altro, ma soprattutto nell'utilizzo che hanno le due
tipologie di controlli.
E' mia abitudine considerare in modo sostanzialmente diverso
gli UserControl dai WebControl, e nel distinguerli ho adottato la seguente
logica:
1) Lo UserControl è alla stessa stregua di una pagina. Questo
non implica esclusivamente che vada "editato" in modo analogo, ma che esso possa
fare accessi al database "diretti", ovvero senza dover esporre una proprietà
datasource e acquisire i dati da visualizzare dalla pagina che lo contiene. Per
questioni...
La passeggiata odierna nel framework 2.0 è stata allietata da
un bell'incontro: la classe ApplicationSettingsBase. Considero bello
l'incontro perchè in questa classe ho ritrovato formalizzato quello che ormai è
il mio abituale modo di incapsulare in una classe il file di configurazione
dell'applicazione. Sono stato parecchio in giro, per il namespace
System.Configuration, alla ricerca delle novità che lo riguardano,
per decidere come comportarmi per la configurazione di .TRAQ. Da quello che
vedo, le novità non sono poche, ma in gran parte si concentrano attorno a questa
classe ed ai SettingsProvider che la supportano.
ApplicationSettingsBase in sostanza consente di
esporre come istanza di...
Microsoft ha pubblicato un corso gratuito, realizzato da AppDev, per chi voglia imparare ASP.NET in C#. Il download è un file ISO da 280MB.
powered by IMHO
Certo che quando si desidera
che il C# compilato in IL subisca delle ottimizzazioni, difficilmente si
potrebbe pensare di arrivare a tanto. Eppure...
Link: Of Enums and IL.
powered by IMHO 1.2
Oggi ho avuto l'occasione di testare la Microsoft
Enterprise Library che è stata pubblicata da alcuni giorni, come segnalato da Lorenzo. L'occasione è venuta dal sito web
che sto sviluppando e che vedrà la luce tra poche ore (spero).
Visto il post suddetto, e il fatto che per il sito avevo usato il DAAB 3.1,
ho deciso di dare una chance alla Enterprise Library di sostituirsi al vecchio
ApplicationBlock. Così, dopo una breve e "frugale" letta alla documentazione ho
imbracciato il refactoring e ho cominciato l'opera certosina di ritoccare il
codice nel modo più efficace.
La sorpresa è stata gradevole. E' davvero...
Dal blog di Roy Osherove ho
scoperto un eccellente articolo sul SQL Injection, la dannosa pratica che
permette di prendere possesso del database di siti o applicazioni realizzate
male.
Articolo: SQL Injection Attacks by
Example
La lettura è caldamente
consigliata a chiunque scriva applicazioni web, perchè per la loro natura sono
le più esposte a questo tipo di attacchi.
Infine un consiglio: fare uso dei SqlCommands e dei
Parametri mette al riparo da gran parte dei possibili attacchi di Sql
Injection.
powered by IMHO
Finalmente eccomi a pubblicare il lavoro svolto, e raffinato grazie alla collaborazione preziosa di Stefano Demiliani, che ha messo a disposizione il suo weblog in qualità di vittima sacrificale. Nel file che è possibile scaricare al termine del post, si può trovare tutto il necessario per aggiungere con semplicità un controllo anti-spam molto efficace e molto personalizzabile.
L'installazione è molto semplice e non richiede la ricompilazione di .TEXT:
nello zip è riprodotta la struttura del folder web di dottext perciò è sufficiente porre i file così come vengono estratti nella relativa cartella
occorre modificare il web.config per inserire il riferimento ad un httphandler...
Su cortese segnalazione di Lorenzo, vi annuncio che è in edicola il primo dei miei articoli appartenenti alla serie sugli Application Blocks, pubblicati da Infomedia su Computer Programming. Questo mese si parla di Data Access, con un utile esempio su come creare un piccolo ORM homemade che fa uso di reflection e stored-procedures oltre che naturalmente dell'Application Block.
Guai a chi non lo compra!
powered by IMHO
Daniel Moth, MVP per il Compact
Framework, ha pubblicato il BackgroundWorker per Compact
Framework 1.0 . Sbirciando nel suo
weblog è possibile trovare anche un esempio di come
utilizzarlo.
powered by IMHO
Una delle feature di maggior
rilievo del Framework .NET è quella che consente di evitare il problema
conosciuto sotto il nome di "Dll Hell". Fusion, così si chiama il meccanismo di
ricerca e caricamento degli assembly ha introdotto un sistema molto flessibile
per la definizione di un assembly e per il suo caricamento
e versioning.
Nell'articolo Fusion Workshop, si può trovare una
esauriente e dettagliata spiegazione di come funziona questo
meccanismo.
powered by IMHO
Le WebParts che faranno parte
della prossima versione di ASP.NET 2.0, offrono l'occasione di implementare un
framework di connessione cross-page che consenta a delle WebParts Consumer, di
condividere informazioni provenienti da un Producer. L'articolo che segnalo
è una lettura interessante in merito, con tanto di codice di esempio.
Fonte: WebParts and Cross-Page
Connections
Interessante notare che in fondo alla pagina di queso
post si può vedere implementato un eccellente metodo anti-spam che fa uso delle
HIP.
powered by IMHO
La NotifyIcon, che tempo fa avevo rilasciato con un articolo, ha
subito la medesima sorte del provider per Isolated Storage che ho rilasciato
stamane.
E' possibile scaricare
il sorgente completo dal sito di Sourceforge e anch'essa ricade sotto i termini
della Common
Creative Public License.
Ovviamente chi ne ha ricevuto/scaricato una versione precedente sotto GPL o
LGPL continuerà a poterne fruire sotto i termini di quelle
licenze.
powered by IMHO 1.1
Sviluppando le nuove feature di IMHO, mi sono trovato a
dover estendere il Configuration Management Application Block di Microsoft.
L'estensione che ho creato permette di utilizzare L'IsolatedStorage per rendere
persistenti le informazioni di configurazione in formato XML, anche crittato e
firmato.
Ho pubblicato la libreria e il relativo sorgente all'interno del progetto IMHO, presso Sourceforge. La
libreria consta di una classe IsolatedXmlFileStorage realizzata come un provider
di storage per l'application block. Essa può essere facilmente collegata ad una
applicazione semplicemente modificandone il file di configurazione.
Ecco uno spezzone di codice:
<applicationConfigurationManagement defaultSection="configFile"> <configSection name="configFile"> <configProvider assembly="Elite.ApplicationBlocks.ConfigurationManagement,Version=1.0.1833.0,Culture=neutral,PublicKeyToken=null" type="Elite.ApplicationBlocks.ConfigurationManagement.IsolatedXmlFileStorage" file="app.config" signed="true" encrypted="true"/> <protectionProvider assembly="Microsoft.ApplicationBlocks.ConfigurationManagement,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null" type="Microsoft.ApplicationBlocks.ConfigurationManagement.DataProtection.DPAPIDataProtection" hashKey="Ae5+5644aB=" /> </configSection></applicationConfigurationManagement>
Non appena il sito http://www.imhoproject.org
sarà pronto, questa libreria e le altre...
Quello che mi è successo stamattina mi ha incoraggiato
ad iniziare una nuova "rubrica" nel mio weblog, dedicata a tutte quelle cose
che, a meno che non ci si legga il manuale fino all'ultima virgola (come
peraltro bisognerebbe fare), si arriverà a conoscere per pura
coincidenza.
Il primo post riguarda l'uso del carattere chiocciola in C#. Tutti sapranno
che quando si scrivono delle stringhe in C#, anteporre la chiocciola consente di
adottare una diversa politica di escape.
Così mentre questo non è consentito:
string a = "d:\myfolder";
Con l'uso della chiocciola diventa possibile:
string a = @"d:\myfolder";
Fin qui nulla di nuovo, senonché stamattina stavo facendo qualche test con il
DOM del MsHTML...
Mi sono spesso chiesto quale dei due modi di scrivere
fosse migliore:
// codice 1if ( a == 0 ) return "OK";else return "KO"; // codice 2if ( a == 0 ) return "OK";return "KO";
In realtà poi a intuito mi sono abituato ad usare il modo 2.
Oggi, lavorando un po con il CodeDom ho scoperto una cosa interessante: se si
usa il modo 1 il compilatore automaticamente lo trasforma in 2.
Probabilmente questo deriva dal fatto che l'IL generato è comunque il medesimo,
ma potrebbe anche essere che si tratti di una ottimizzazione. A questo non so
dare risposta, dato che non conosco bene l'IL.
powered by IMHO
Ieri sera mi sono letto un articolo di MSDN che ho considerato illuminante rispetto le problematiche di gestione della memoria in ambiente managed. Mi hanno molto impressionato i benefici che una attenta applicazione di alcune regole può portare in termini di utilizzo della memoria. Vorrei riportare un esempio limpido di questo, direttamente tratto dall'articolo in questione:
// Struttura 1 ****struct BadValueType{ char c1; int i; char c2;}// Struttura 2 ****struct GoodValueType{ int i; char c1; char c2;}
Le due strutture riportate nel riquadro possono apparire del tutto uguali, se non fosse per il diverso ordine dei membri. Andando ad analizzare però la dimensione fisica in memoria ci si renderà conto che mentre la prima, occupa 12 bytes, la seconda si accontenta di...
Leggendo gli articoli che sono linkati dal post di Pierre sono rimasto fortemente impressionato da quanto facile potrebbe essere implementare questo pattern in .NET, specialmente in ambiente Windows Forms. Quello che avviene normalmente in una applicazione è che la form (a.k.a view) interroga il database, tipicamente attraverso una serie di strati intermedi e popola ad uno ad uno i controlli in essa contenuti. Ques'ultima operazione avviene per mezzo del Databinding che consente al programmatore di "dimenticarsi" del dato dopo che lo ha affidato al controllo fintanto che non se lo andra a "riprendere" direttamente nell'oggetto di business cui esso è...
Una collezione di link per chi
volesse tentare questa strada. Ma prima guardatevi bene IIS6!
Apache and ASP.NET powered by IMHO
Segnalo un articolo che ho
trovato molto chiaro sulla spinosa faccenda del GC.Collect().
The perils of GC.Collect (or when
to use GC.Collect) powered by IMHO
Per chi ama stampare ancora
con la stampante ad aghi, ecco un progettino per produrre le immagini
ASCII.
ASCII art with C# -
ASP.NET powered by IMHO
Ho appena scoperto che la mia segnalazione in merito a Define
Event & Stay ha ottenuto risposta nel Product feedback center.
Ecco come:
Resolved as Won't Fix by
Microsoft on 2004-12-27 at 12:53:07
Hey there - I absolutely agree that if you're
trying to wire up multiple events at once, our default behavior (of jumping to
the event handler) is cumbersome. The experience is optimized for folks working
in serial rather than "multi-pass" - that is, dropping a control, naming it,
labelling it, hooking up an event and writing code for it, etc. We'll consider
ways of addressing this in future...
Stamane mi sono accorto di una cosa strana, che non
riesco a spiegare.
Il seguente codice ritorna true:
1 public void Main()2 {3 string test = "1.0.....2";4 5 double doubleResult;6 7 Console.WriteLine( 8 double.TryParse( test, NumberStyles.Any, CultureInfo.CurrentCulture,
out doubleValue ) );9 }
Ma con tutta la buona volontà non riesco a capire come
"1.0.....2" possa essere un double valido. Va detto per
inciso che sul mio pc il punto è considerato il separatore delle migliaia,
tuttavia questo non va certo a migliorare la situazione.
powered by IMHO
Sembra sia stato rilasciato il
Community Server: ASP.NET : Control
Gallery
Fonte: http://dotnetjunkies.com/WebLog/richard.dudley/archive/2004/12/22/38213.aspx
powered by IMHO
Questo è da leggere
assolutamente, visti anche i 30MB usati da IMHO che mi sono stati
segnalati.
Rediscover the Lost Art of Memory
Optimization in Your Managed Code
powered by IMHO
Vorrei esprimere un piccolo suggerimento, rivolto
nientepopodimenochè ai progettisti di Visual Studio.NET 2005, nella
speranza che qualcuno che mi legge e che ha conoscenze "altolocate" sia in grado
di farlo arrivare a destinazione, sempre se lo considera fondato ovviamente.
Il problema è questo: Quando si è in design di una form, spesso e volentieri
si definisce l'evento di default di un controllo semplicemente facendo doppio
click su di esso. Questo causa uno "spostamento" sul codice, esattamente
all'interno dell'evento appena creato. Comodissimo, in alcuni casi, ma talvolta
ci si trova nella necessità di definire più di un evento alla volta, perciò si...
Sta diventando una piacevole abitudine. Grazie alla
collaborazione con la Infomedia, ho partorito una serie di 5 articoli che
usciranno su Computer Programming a partire da Gennaio.
La serie avrà come tema le Pattern & Practices di Microsoft che già sono
state affrontate nella sessione di Lorenzo Barbieri lo scorso 2 dicembre. Gli
articoli riguardano in particolare:
Data Access Application Block
Exception Management Application Block
Caching Application Block
Configuration Management Application Block
User Interface Process Application Block
E' anche possibile che alla serie si aggiunga all'ultimo momento una altro
articolo su Smart Client Offline Application Block.
Tutti sono...
So che uno degli argomenti più
ostici è il trattamento delle date. Qui c'è un buon post che riassume un po' lo
stato dell'arte.
DateTime Parsing and Formatting
with Time Zones [Anthony Moore]
powered by IMHO
Questo me lo segno. Anche un
problema semplice talvolta non è di soluzione immediata.
Enter Instead of
Tab
powered by IMHO
Un documento sulle differenze nell'applicazione della security tra .NET e Java, pubblicato da Brad Abrams. Ne ho letto solo un pezzetto (il tempo è tiranno quest'oggi), ma sembra decisamente interessante.
.NET Security: Lessons Learned and Missed from Java (PDF)
powered by IMHO
Un utile post e un
interessante controllo per ASP.NET che è in grado
di generare un feed a partire da una istruzione SQL.
Source: Generating an RSS feed with
XmlSerializer, ASP.NET and C#
powered by IMHO
Le Membership API di ASP.NET
2.0 per ASP.NET 1.1, le trovate qui
powered by IMHO
Ma anche ASP.NET può
farlo...
How to create the Google Suggest
feature with ASP.NET 2.0
powered by IMHO
So che questo è un problema su
cui molti dibattono. Ho trovato questo interessante post che spiega piuttosto
bene quello che succede.
How does the Windows Forms
designer in Visual Studio load a Form?
powered by IMHO
Un post interessante
sull'argomento con tanto di codice di esempio.
Java Serialization and .NET -
There Really *is* a Santa Claus
powered by IMHO
Stasera ho deciso di installare un virtual pc, con il framework 2.0 e Sql Server 2005 Express, per fare qualche esperimento e predisporre l'ambiente di sviluppo per .TRAQ. Probabilmente molti di voi lo avranno già fatto, ma ecco lo stesso alcune indicazioni per chi volesse provarci.
tanto per cominciare, occorre installare la giusta versione di framework 2.0 in base alla versione di Sql Server 2005 che si intende utilizzare. Personalmente ho scelto di installare la CTP di Ottobre perchè è l'unica che consente di utilizzare il Sql Express Manager che è stato rilasciato da poco. Le versioni scaricabili del framework sono...
Non mettere mai un GradientPanel della SyncFusion come
background di una Form soprattutto se la distribuite in Terminal Server.
Lo scrivo perchè questa cosa mi ha fatto perdere un intero weekend di riposo.
Se capita anche a voi, una form che durante il rendering conta tanti flash come
si possono trovare solo alla notte degli oscar, per almeno una ventina di
secondi consecutivi, ricordatevi di questo:
1) non mettete il GradientPanel di sfondo perchè a quanto pare costringe il
contenuto ad essere ridisegnato decine di volte
2) Createvi un panel DoubleBufferPanel come il seguente:
using System;using System.Windows.Forms;namespace UI.Controls{ public class DoubleBufferPanel : Panel { public DoubleBufferPanel() { this.SetStyle( ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint, true ); } }}
Il flag in questione faranno si che il flickering sia...
Un controllo gratuito per
generare immagini HIP
New Control - FormShield -
Dynamically Generates CAPTCHA™ Style Images
powered by IMHO
E poteva mancare il mitico
Dino?
Cutting Edge: Implications of
Script Callbacks in ASP.NET
powered by IMHO
Et voilà. Un altro interessantissimo articolo di
MSDN.
Service Station: Run ASMX Without IIS -- MSDN Magazine, December 2004
powered by IMHO
Un buon articolo per chi
programma in ASP.NET
ASP.NET: 10 Tips for Writing
High-Performance Web Applications
powered by IMHO
Ecco come attivare le linee
guida nel Text editor di Visual Studio 2005
Guidelines – a hidden feature for
the Visual Studio Editor
powered by IMHO
Chi ha provato a utilizzare .NET
Remoting per risolvere problemi di Interprocess Communication, se sarà trovato
nella ovvia necessità di impedire l'accesso alle porte esposte da computer
diversi da localhost. In questo breve spezzone di codice viene
impostata la proprietà rejectRemoteRequests che ha proprio questo
scopo. La stessa proprietà la si può settare anche da file di configurazione, ma
nel caso dell'IPC, io ho preferito farlo da codice.
/// <summary>/// Run a remoting server/// </summary>private
static void
StartRemoting(){ // Accettiamo connessioni solo dal pc locale
127.0.0.1 IDictionary props = new
Hashtable(); props["rejectRemoteRequests"] = true; props["port"] =
AppSettings.Current.RemotingPort; TcpChannel channel =
new TcpChannel(...
Sono lieto di fare compagnia a Corrado con un mio articolo su Computer Programming di Novembre dal titolo C# 2.0 Evoluzione della specie.
Nell'articolo un excursus sulle novità di C# senza tralasciare qualche paragone con il linguaggio concorrente Java 1.5
Buona lettura.
Incuriosito dal post di Michele che legittimamente si chiede per quale motivo è vietato usare return in un finally , sono andato in rete a caccia di un valido motivo. Assodato che l'uso di return in un blocco finally è perfettamente inutile, rimane da spiegare perchè sia anche vietato. Impossibile e inutile sono due cose ben diverse.
Mi sono alla fine imbattuto in un articoletto, dal quale ho tratto l'esempio che segue, che parla dell'uso di return nel finally in Java e ho scoperto che in tale linguaggio questa cosa è perfettamente legale, pur se sconsigliata. Purtroppo non ho il compilatore Java installato (ehm......
Chi ha usato la classe Path si sarà accorto che contiene una serie di metodi e proprietà statiche davvero utili. Oggi mi sono imbattuto in una mancanza... A fianco alla proprietà InvalidPathChars che restituisce l'array di caratteri che non sono ammessi in un path ci starebbe bene anche la InvalidFilenameChars che restituisca i caratteri che pur potendo far parte di un path, non possono entrare in un filename, come ad esempio ":" e "/".
Ovviamente ho risolto creando un array in questo modo:
char [] invalidFileNameChars = new char[] { '\\', '/',':', '*', '?', '"', '<', '>', '|'};
Ma volendo proprio fare i...
Ormai anche i sassi sanno che una delle
importanti feature che sono introdotte dal framework .NET 2.0 sono gli
Iterators. GLi iterators sono in soldoni un modo alternativo agli
enumeratori per iterare, appunto, all'interno di collections, o più
genericamente di insiemi. Ma la potenza che viene messa in campo dagli
Iterators è talmente elevata, che già da un po' si possono trovare nella rete
degli esempi molto belli nei quali essi sono usati anche in modi un po' più
creativo, ad esempio come generatori di numeri primi, oppure come iteratori
del filesystem.
Questo ultimo caso, che si potrebbe riassumere nel traversare ricorsivamente
un albero, in realtà...
In questo post del
team Visual Basic, si descivono alcune nuove feature che saranno disponibili
dalla beta 2 di VB.NET 2005. In particolare il supporto a ClickOnce sarà esteso
anche alle versioni express e i code-snippets saranno migliorati (i dettagli nel
post). Quello che mi suona strano è quello che si legge fra le righe, in
particolare in questa frase:
"One thing you should know—the changes that I’m describing here were made
after beta 1, so the first “big” release that you’ll see them in is the
Visual Studio beta 2 release, some time early next year. They’ll also show
up...
A proposito ancora dell'argomento Oracle, ecco un altro articolo (anche questo un po' vecchiotto) che andrebbe tenuto presente
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadonet/html/msdnorsps.asp
Visto il post di Alessandro, ecco un altro link che completa quello da lui proposto per aiutare nella scelta del data provider per Oracle
http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnadonet/html/ODPvsMSDP.asp
Anche Brad
Adams si cimenta nell'arte del
quiz.
Quello che viene qui proposto fa riferimento
ad una nuova feature del framework 2.0 rispetto il catching delle
eccezioni.
...direttamente dallo sviluppatore di .NET Remoting
http://blogs.msdn.com/manishg/
Per inciso: Sapevate che Ingo Rammer è diventato MVP? Complimenti Ingo, te lo meritavi proprio...
A questo link è possibile scaricare un completo case study su come creare un compilatore per il CLR. Si tratta in questo caso di un linguaggio Z#, ovvero di un subset di C#.
http://dotnet.jku.at/courses/CC/
Sempre dal team di C# un tip che trovo invece molto utile.
http://blogs.msdn.com/csharpfaq/archive/2004/10/20/245239.aspx
Il team di C# sottolinea che
l'uso di overload di operatori non genera codice che non sia CLS-Compliant e
perciò suggerisce di usare questa tecnica liberamente.
http://blogs.msdn.com/csharpfaq/archive/2004/10/20/245226.aspx
In realtà non è certo per questo motivo che
normalmente io non uso overload di operatori. Quello che mi spaventa non è la
CLS-Compliancy, ma il fatto che un operatore rende il codice più criptico e meno
leggibile di un buon vecchio metodo.
E' di poche ore fa l'annuncio
dell'introduzione di E&C in C#2.0 e già su MSDN si può leggere un articolo
sull'argomento
http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dnvs05/html/edit_continue.asp
Un articoletto che evidenzia le
differenze tra Java 1.5 (amo chiamare le cose col loro nome) e C# 2.0
http://it.slashdot.org/it/04/10/11/1454220.shtml?tid=108&tid=8
La conclusione finale che ne trae l'estensore è
quantomeno interessante:
At this point (even before Whidbey)
the deciding factor (as always) for Enterprise work, when choosing a language
platform, should be the support it has behind it, in terms of IDE, tools, api,
and longevity of the vendor pushing it (forget the OpenSource crap argument,
those guys are too in love with Perl, Python, and Ruby - Java could become the
child nobody wants to talk about if Sun dies) - right now...
Roy Osherove propone un'idea a
mio parere molto interessante. Nei commenti vengono sollevate delle obiezioni
anche piuttosto significative rispetto a performances e manutenibilità del
codice, mi sembra però che valga la pena di approfondire l'idea che si
trova ancora ad uno stato embrionale.
http://weblogs.asp.net/rosherove/archive/2004/10/12/241068.aspx
Chi come me ama accertarsi che
le regole di coding siano rispettate da tutto il team di sviluppo, dovrebbe
apprezzare questo tool recensito anche da DataGrid Girl.
http://www.ssw.com.au/SSW/codeauditor/?HideLeftNav=True
Il lavoro che sto facendo per
migliorare costantemente IMHO, si sta rivelando foriero di nuovi componenti per
la programmazione. Uno di questi è una NotifyIcon che gestisce anche i
balloon diversamente da quanto succede per quella standard.
Non si tratta di un lavoro del tutto nuovo, ma in realtà
è il sunto del miglioramento di una classe già esistente trovata su codeproject, e dello studio della
classe del framework con il Reflector.
Articolo: http://blogs.ugidotnet.org/penpal/articles/4180.aspx
Il codice
sorgente è disponibile nel CVS del progetto IMHO al seguente indirizzo:
http://cvs.sourceforge.net/viewcvs.py/imho10/Elite.Windows.TrayBar/
Buona lettura.
E impressionante notare quanti
sono i siti web, anche quelli più importanti che cadono dopo pochi rapidi
tentativi di violarne i segreti.
La cosa più semplice, che immancabilmente non manca
di regalare soddisfazioni è quella di inserire un apice in una casella di
ricerca, se non in una ghiotta casellina di autenticazione. Sono ormai
innumerevoli le volte in cui questa che per me è diventata una consumata
abitudine, mi premia con un simpatico "500 Internal Server
Error", che teoricamente apre un mondo davanti ai miei occhi.
Non sono uno a cui piaccia rovinare il lavoro degli
altri, e normalmente mi...
Da un post di Scott Water vengo
a sapere che XAMLON è uscito nella versione 1.0
http://www.xamlon.com/
C'è anche una demo da
vedere
Se pensate che ci sia bisogno di avere un po' di nuove icone fornite con whidbey, votate per questa segnalazione sul MSDN Product FeedBack Center
Deploy updated/new icon sets with Visual Studio
La lettura di uno degli ultimi post di Lorenzo, mi ha stuzzicato, anche perchè, uno dei delusi sono io...
Shit Happens, è vero. Dal'tra parte come diceva qualcun'altro "l'omo è omo..." e non c'è alcun dubbio che in quanto tale è fallibile. Perciò è naturale che ci sia un bug il ASP.NET come ce ne sono in molte altre tecnologie. Però come dice il titolo, pare che questo sia una esclusiva nostra. La sovraeposizione ed il pregiudizio che regnano rispetto le tacnologie di casa MS fanno sì che un bug di ASP.NET sia infinitamente sopravvalutato rispetto ad uno equivalente in...
Uscito un interessante articolo su
MSDN che parla di Query Notificationhttp://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnvs05/html/querynotification.asp
Ci sono anche degli esempi di codice T-SQL e in C#
sull'uso del SqlDependency.
Il client IMHO che ho rilasciato stanotte richiede che venga attivato il supporto ai WebServices di .TEXT.
Perciò dovete andare in amministrazione di .TEXT, entrare nelle configurazioni, scegliere Options > Configure e attivare il checkbox "Allow Web Service Access".
L'url da immettere nelle impostazioni per collegare IMHO al servizio varia in base a chi fornisce il blog engine. Per UgiDotNet dovete immettere il seguente:
http://blogs.ugidotnet.org/[il tuo blog]/services/simpleblogservice.asmx
Alla fine ce l'ho fatta!!! Dopo un bel po' di tempo che ci lavoro, togliendo prezioso tempo ad altre attività serali, come studio e riposo, finalmente ho pubblicato un progetto che credo possa interessare tutti i "malati di blog" che ci sono in questa comunità e spero su tutta la rete.
Si tratta di un tool che permette di postare offline sul vostro blog e di pubblicare tutti i post in un solo momento quando più lo ritente opportuno. Il progetto è scaricabile in form di Technology Preview da questo workspace di GotDotNet
http://workspaces.gotdotnet.com/imho(update: il progetto è stato spostato su sourceforge: http://sourceforge.net/projects/imho10)
Attualmente...
Per tutti quelli che non sanno come scegliere un libro su .NET ecco un sito espressamente dedicato all'editoria sul framework
http://www.dotnetbookclub.org/
Ottimo articolo con codice sull'argomento.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/hip_aspnet.asp
da leggere, spero di trovarne il tempo!
Provate anche voi:
public int Property{ get { return Property; } set { Property = value; }}
Come ovvio il runtime va in loop, ma la domanda è: perchè il compilatore non ci da almeno un Warning?
fonte: http://blogs.msdn.com/sebby1234/archive/2004/09/23/233608.aspx
In questo post Eric Gunnerson parla del'implentazione "Type Erasure" dei generics in Java.
http://blogs.msdn.com/ericgu/archive/2004/09/23/233438.aspx
Importante notare che Gunnerson dice in termini più approfonditi più o meno la stessa cosa che io avevo rilevato qui e qui
"This means that Java generics doesn't give you the performance benefit that .NET generics do - not only do you not have the ability to create generics on value types (not that surprising given that Java has previously not had boxing), but you still have typecasts in your"
Può capitare di aver bisogno di capire a quale dei processi w3wp.exe che vediamo nel task manager è associata un ApplicationPool. A partire da IIS 6.0 è possibile organizzare le WebApp in ApplicationPool ottenendone la suddivisione in diversi processi.
In questo post si descrive come utilizzare l'utility iisapp.vbs da riga di comando per queto scopo
http://weblogs.asp.net/owscott/archive/2004/09/21/232628.aspx
Questo post informa che i folder "di sistema" di ASP.NET 2.0 cambieranno nome acquistando un prefisso "Application_"
http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=691250
Perciò Code diventa Application_Code, etc.... Tutto ciò per evitare che si possano avere omonimi nei folder creati dall'utente.
Io preferivo i nomi corti, non mi è mai venuto in mente di chiamare "bin" un mio folder...
Ho appena disinstallato Resharper. Purtroppo l'ennesimo tentativo di usarlo è fallito, perchè ancora una volta si è rivelato uno strumento che appesantisce enormemente l'ambiente di sviluppo. Tenete presente che il mio PC è un Pentium III 1.1 GHz con 512 MB RAM perciò dovrebbe essere piuttosto veloce.
E' un peccato perchè le funzionalità di refactoring che da Resharper sono molto interessanti ed in parte anticipano quelle che troveremo in Visual Studio 2005. Ma un'IDE lenta è peggio che un'IDE povera (se Visual Studio 2003 si può considerare povero).
Non resta che attendere...
E' uscito un articolo su MSDN che compara l'architettura di Struts con quella di ASP.NET. Non l'ho ancora letto, ma mi pare fatto bene. Interessante anche il paragrafo dedicato alla migrazione di sistemi struts-based verso ASP.NET
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ASPNet-ASPNet-J2EE-Struts.asp
Spinto dal post del buon Lorenzo Barbieri ho dato un'occhiata a http://www.bugmenot.com
Okkio a questo:
http://www.bugmenot.com/view.php?url=http%3A%2F%2Fwww.ugidotnet.org
In questo post si parla delle feature di IIS7.0 e si da anche una possibile previsione per l'uscita.
http://www.pluralsight.com/blogs/fritz/archive/2004/09/14/2262.aspx
Ho scoperto che esiste una splendida skin per .TEXT disponibile al seguente indirizzo
http://mixtaper.com/blogs/gosatango/articles/221.aspx
Andrea, se trovi 5 minuti, riesci ad installarla?
Nel link sottostante viene descritto un comportamento che abbiamo riscontrato anche qui in azienda.
Pare che un processo di Oracle, tale nmupm.exe occupi il 100% delle risorse del computer quando nello stesso è installato anche il Framework .NET
http://forums.oracle.com/forums/thread.jsp?forum=46&thread=179892&message=480046#480046
Mi pare che la soluzione di disinstallare il Framework .NET, proposta nel forum non sia percorribile (non nel mio caso ad esempio). D'altra parte non mi sognerei mai di consigliare la disinstallazione di Oracle...
Qualcuno ne ha una migliore?
Da un post del weblog Microsoft ho scoperto che esiste un bellissimo sito dedicato alle RegEx
http://www.regexlib.com/
Da una semplice casellina di ricerca potete accedere a un libreria molto fornita di expression già pronte all'uso.
Da vedere.
Mi sono spesso trovato di fronte al conflitto tra la programmazione Object Oriented e la necessità di usare le caratteristiche multithreading del sistema operativo. Alla fine si tratta di scrivere una procedura, sotto forma di metodo, e pur esistendo delle classi che lo fanno, in se la cosa non si presta bene ad essere racchiusa in un'ottica object oriented. Qui sotto vi propongo una classe che usa il pattern Singleton per incapsulare un thread e tutto ciò che serve per controllarlo.
Io l'ho realizzata per racchiudere i vari thread che lavorano all'interno di un Windows Service che ho creato, e l'ho trovata molto...
Mi è stato appena confermato che sul numero di Novembre di Computer Programming (#140) uscirà un articolo a mia firma che porta lo stesso titolo di questo post. L'articolo che fa parte dello speciale linguaggi, fornisce una panoramica abbastanza approfondita delle nuove feature del compilatore C# nel Framework 2.0. Spero sia un buon punto di partenza per iniziare a prendere confidenza con il linguaggio, con il più il vantaggio di essere scritto in italiano.
Non mancherò di postare un avviso il giorno stesso in cui uscirà la rivista, giusto per rinfrescarvi la memoria.
Buona lettura.
Da oggi, se avete bisogno di accedere alla documentazione del framework, potete semplicemente usare questo link
http://msdn2.microsoft.com/library/<namespace>.aspx
Sostituendo <namespace> con System ad esempio si accede alla documentazione del namespace System.
Come promesso, in un mio precedente post, sono finalmente a spiegare i motivi per cui personalmente ho eletto C# a mio linguaggio di riferimento. Badate, questo non significa che io mi rifiuti di sviluppare in altri linguaggi, ma semplicemente che potendo scegliere, a ragion veduta abbraccio C#.
Il primo motivo è di carattere puramente affettivo. Le mie prime esperienze di programmazione seria le ho fatte in Ansi "C", e poi in C++ e C# ha il pregio di ricordarmelo. Certo, non è la stessa cosa in fatto di sintesi ma talvolta mi piace scrivere la chiamata ad un metodo, e il test del risultato...
Continuando a leggere l'articolo di cui ho parlato nel mio ultimo post, ho scoperto una cosa inquietante: Il compilato generato da Java 1.5 "Tiger", sarà perfettamente eseguibile su una virtual machine precedente a questo compilatore.
Questo si traduce nel seguente ragionamento rispetto i Generics: Nessuna modifica è stata introdotta nel bytecode di Java, quindi i generics sono una mera traduzione del codice Java 1.5 in Java 1.4 oggetto della compilazione finale. Questo significa che per effettuare una traduzione vengono introdotti un'infinità di cast e dei metodi bridge per consentire le conversioni. (leggete l'articolo, è tutto nero su bianco)
Ora, se mettiamo assieme le...
Mentre facevo una piccola ricerca di materiale per un mio prossimo articolo, mi sono imbattuto nel seguente paragrafo che spiega molto bene le differenze di implementazione dei Generics in Java e C#. Esso è tratto da Java Generics - Introduction - Angelika Langer
Translation of Generics
A compiler that must translate a parameterized type or method (in any language) has in principle two choices:
Code specialization . The compiler generates a new representation for every instantiation of a parameterized type or method. For instance, the compiler would generate code for a list of integers and additional, different code for a list of...
Quest'oggi ho affrontato la prima giornata di corso su "Documentum". Per chi non lo conoscesse, "Documentum" è il software di Content Management che attualmente ha il maggior credito nel mercato dei CMS. Si tratta di una piattaforma nata prima dell'avvento del web e giunta a tutt'oggi alla versione 5.2. "Documentum" è basato su Oracle 9.2 e Verity per l'indicizzazione full-text dei contenuti. Il software quindi si basa su due repository distinti per metadata e documenti, il primo è Oracle mentre il secondo è il filesystem.
Documentum nell'affacciarsi al mondo web si è avvicinata alle tecnologie Java che sposavano sicuramente meglio l'approccio...
La Service Pack 1 di .NET 1.1 introduce molti miglioramenti relativi la sicurezza. Ecco un post che ne sottolinea uno molto importante.
http://blogs.msdn.com/gzunino/archive/2004/09/05/225881.aspx
Molto probabilmente molti di voi già lo conoscono, ma io lo posto lo stesso, perchè senza questo tool, il mio post #100 avrebbe sicuramente tardato un bel po'
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=75122f62-5459-4364-b9ba-7b5e6a4754fe
Jeff Key, l'autore di SnipperCompiler, ci regala un altro tool completo di codice sorgente.
http://weblogs.asp.net/jkey/archive/2004/09/01/224433.aspx
Mi sembra ieri che mi sono affacciato al "blogging", con un timido chi sono consapevole che l'onere che mi stavo assumendo era comunque sottovalutato, ed oggi, a distanza di alcuni mesi, 4 per l'esattezza, mi ritrovo a festeggiare il 100esimo post. Lo so, spesso e volentieri vi ho tediato con i miei sfoghi radicali, ma guardando ora nella console dello spendido tool che ci ha regalato l'ugi, mi rendo conto che comunque la maggioranza dei miei post sono dedicati a .NET.
Perciò, per festeggiare il numero 100, ho deciso di trovare qualcosa di succulento, che spero vi faccia piacere. Per tutta la...
Un articolo che stamane spopola tra i blogger microsoft...
http://www.forbes.com/2004/08/31/cz_dl_0831msft.html
Ecco un interessante post (suggerito anche da Eric Gunnerson) che aiuta anche a comprendere come il runtime valuta le espressioni
http://blogs.msdn.com/lucabol/archive/2004/08/31/223580.aspx
Il consiglio finale è: NON SCRIVETE QUESTO CODICE.
Ormai tutti vi siete accorti del nuovo (splendido) motore di blog, ma pochi sanno l'ora esatta in cui è stato messo online...
Stanotte tra le 0:30 e le 1:30, minuto più, minuto meno. Volete sapere perchè lo so?
Ieri notte verso l'una ho deciso di postare un blog sulle ferie, da cui sono appena tornato. Mi sono collegato, ho scaricato la pagina dell'editor, mi sono scollegato e ho scritto il post... infine ricollegatomi ho ricevuto un bellissimo errore, dato che nel frattempo il motore di blog mi era cambiato sotto il naso!!! Naturalmente vista l'ora ho lasciato perdere, e suppongo che...
Alla Cornell University, hanno realizzato un interessante prototipo che utilizza un software scritto in C#. Si tratta di un aeroplano pilotato completamente via software. Il sistema è basato su Windows XP Embedded gira su quello che pare essere a tutti gli effetti un "thin client" con 512 MB di flash ram.
http://research.microsoft.com/displayArticle.aspx?id=685
Ieri pomeriggio, infine, ho affrontato (e superato) il primo dei 5 esami che mi separano dalla certificazione Microsoft. Finalmente ho avuto l'occasione di risolvere definitivamente alcuni dei dubbi che sono rimasti sospesi fino all'ultimo, quindi, sperando di fare una cosa buona nei confronti di quelli che lo dovranno fare dopo di me, ecco alcuni consigli:
1) I libri
I libri consigliati dalla Microsoft nel sito delle certificazioni, non sono sufficienti. Considerateli semplicemente degli "indici analitici" di quello che dovrete studiare. Io ho acquistato il cofanetto .NET Core Requirements e gli ho dato una rapida letta. Per ognuno dei capitoli dovete perlomeno andare...
Chiacchierando nel weekend con un amico, un ottimo programmatore, molto esperto di Oracle e Java, mi sono trovato per l'ennesima volta di fronte ad una situazione ricorrente.
Mi capita da un po' di tempo, anche a causa del mio nuovo impiego, di confrontarmi con programmatori dell'altro lato del modo, bravi programmatori che hanno scelto di lavorare con Sun piuttosto che con Microsoft. Sempre, quando iniziamo a discutere, avverto questa "sensazione" di essere guardato dall'alto in basso, come se lo scettro della buona programmazione fosse nelle loro mani. Tra una chiacchiera e l'altra ho avvertito, nel mio amico, una simile convinzione, che...
In questo blog Paschal solleva un problema che già mi ero posto.
Per quale orrido motivo in Visual Studio 2005 il modello code-inline è il default? Come giustamente chiosa, i nuovi utenti di questo sistema saranno per forza di cose portati ad utilizzare il codice nella pagina aspx, invece che in un file .cs o .vb a parte.
http://weblogs.asp.net/pleloup/archive/2004/07/28/199718.aspx
Anders Hejlsberg parla di una nuova feature di C# 3.0 che consentirà di trattare i dati con una sintassi Object Oriented.
mms://wm.microsoft.com/ms/msnse/0406/22899/Vision_of_Future.wmv
Interessante articolo sull'argomento
Un add-in per Visual Studio .NET 2003, consigliato da Eric Gunnerson, che aggiunge capacità di refactoring e altro.
http://www.jetbrains.com/forms/resharper/download/evaluate
Vi siete mai chiesti perchè per convenzione i generics usano una sola lettera per indicare i tipi da utilizzare?
public class Item {}
invece che
public class Item {}
Ecco come la pensa Eric Gunnerson (e trovo non abbia torto...)
http://blogs.msdn.com/ericgu/archive/2004/07/16/185538.aspx
E disponibile una preview del compilatore X# che ora si chiama COmega.
http://www.research.microsoft.com/research/downloads/default.aspx
Ricordate come si chiamava ASP.NET prima della beta2 del framework 1.0?
Questo pezzetto di codice che si trova nella AppDomainFactory del Framework 2.0 (e 1.0) vi può aiutare:
if ((strUrlOfAppOrigin == null) || (strUrlOfAppOrigin.Length < 1)){ strUrlOfAppOrigin = "http://localhost/ASP_Plus";}
Ricordate ora?
Cyrus' Blather ha pubblicato i risultati del suo sondaggio.
http://blogs.msdn.com/cyrusn/archive/2004/07/06/173822.aspx
Un utile elenco di tools per WebServices da Beat Schwegler
http://weblogs.asp.net/beatsch/archive/2004/02/12/71782.aspx
Ieri sera, proseguendo nella mia operazione di speleologia informatica ho incontrato una cosa piuttosto strana che vi propongo: Stavo valutando la classe ISAPIRuntime, una delle classi che funge da interfaccia tra la parte unmanaged e quella managed della pipeline di ASP.NET. In realtà questa classe è il primissimo stadio della parte managed, e viene evocata per mezzo di COM Interop.
La classe ISAPIRuntime ha un metodo DoCGCollect() che suppongo venga chiamato dal runtime unmanaged per liberare le risorse. Qui ve lo propongo:
public void DoGCCollect(){ int num1; for (num1 = 10; (num1 > 0); num1 -= 1) { GC.Collect(); }}
In sostanza questo metodo...
La mia avventura nella pipeline continua.
E finalmente ho incontrato un'altra novità del framework. l'urlMapping.
L'urlMapping, è completamente assente dalla documentazione della beta ma nonostante questo sono riuscito a comprenderne il funzionamento con solamente un paio di tentativi andati a vuoto.
enabled="true">
Questa sezione nel web.config fa in modo che se nella barra degli indirizzi del broswer digitiamo http://www.mysite.com/notexists.aspx in realtà mandiamo in esecuzione la pagina http://www.mysite.com/exists.aspx
Tutto molto semplice. Una cosa di questo tipo con il framework 1.1 comportava lo scrivere una bel po di codice per fare il path rewriting. Tipicamente un HttpModule. Ora nel framework viene aggiuunto un UrlMappingExecutionStep in...
Scusate un attimo, fermi tutti... voglio sperare che io mi stia sbagliando, che abbia preso un abbaglio, che una svista non mi abbia fatto vedere la giusta strada...
Ma Visual Web Developer Express non compila le classi?
Lo so, dopo quasi un'intera giornata che lo uso avrei dovuto accorgermene, ma in realtà quest'oggi per testare il fw2.0 in velocità ho sempre scritto il codice direttamente nella pagina. Ora però, che sono arrivato al provare un HttpModule e quando mi sono trovato a scrivere il type nel web.config, mi sono reso conto che non sapevo cosa scrivere.
Un breve sguardo e...niente namespace, niente...
In questo post una semplice spiegazione, con tanto di screenshots di come impostare un Tracepoint in VS.2005
http://blogs.msdn.com/ms_joc/archive/2004/07/02/171960.aspx
Al seguente link è possibile scaricare il setup e il sorgente di Paint.NET, un programma per l'editing di immagini scritto interamente in .NET; Ecco come descrivono il progetto gli autori:
"Paint.NET is a senior design project aided by a mentor at Microsoft. It is a paint program designed entirely by students and written using Microsoft's .NET Framework. The program makes it easier to create and edit photos. It maintains some of the best features of the original MS-Paint application and includes new, powerful tools. Such new tools include a history storage for undos and redos, and powerful multi-layering which is often...
Voglio sperare che quello che sto per dire sia motivato solo ed esclusivamente dalla beta version. Tuttavia devo segnalare che quando apro Visual Web Developer Express e assieme attivo Sql Server 2005 Express, immancabilmente dopo alcuni minuti mi si presenta il balloon che mi informa che la mia Virtual Memory scarseggia. Ecco cosa dice il task manager poco dopo aver iniziato a lavorare con i nuovissimi strumenti.
Notate che VS 2003 aperto contemporaneamente usa solo 6.5 MB contro il 53 MB di VWD.2005 e i 72!! di Sql Server.
Totale 125 MB.
sarà anche una beta, ma mi pare un po' eccessivo.
blog[at]boschin.it
Ovviamente non JFK...
http://blogs.msdn.com/johnkenn/archive/2004/06/30/169854.aspx
In questo blog Eric Gunnerson spiega perchè non usare gli static imports.
C'è molto da imparare.
http://blogs.msdn.com/ericgu/archive/2004/06/30/169861.aspx
E' disponibile l'SDK del Framework .NET 2.0 al seguente indirizzo
.NET Framework 2.0 SDK (229 MB)
La prima impressione usando VS 2005 è di allegria. E' tutto molto più colorato; Tra il testo è i numeri di linea, ad esempio, c'è una linea giallo-verde che evidenzia le modifiche apportate al sorgente.
L'intellisense è "diverso"... la combinazione di tasti CTRL+Barra spaziatrice non funziona più, ma in compenso basta digitare un carattere perchè appaia immediatamente la tendina che suggerisce come completare la digitazione. Spero tra le opzioni di trovarne una che mi ripristini la suddetta combinazione; Sono un po' abitudinario.
E' apparso un nuovo menu, che ho apprezzato molto.
Quando fate un refactor VS vi presenta anche la preview del codice modificato.
Qualche problemino deve...
Ecco la finestra di dialogo per la creazione di un nuovo file...ops di progetti nemmeno l'ombra. In bella vista "Master Page" e "Image Generator".
Chi ha già provato ad installare una delle beta dei prodotti express, si sarà accorto che i setup scaricati da internet a loro volta fanno il download di vari componenti, tra cui la beta del Framework 2.0.
Se vi interessa mettere da parte i file scaaricati, per installarli nelle vostre decine di PC ;-) li trovate qui:
C:\Documents and Settings\[USERNAME]\Local Settings\Temp\VSESETUP
Chi invece non ha ancora provato... che cosa aspetta!!!
Sarà una lunga notte...
Visual Studio 2005 Beta Documentation
http://lab.msdn.microsoft.com/library/default.asp
Alla fine ce l'ho fatta! Ecco a voi il primo screenshot di Visual C# 2005 Beta1
http://www.boschin.it/imho/vcsharp2005.png
"By submitting suggestions and reporting bugs on the latest builds of Visual Studio 2005 and other technologies, you're talking directly to Microsoft development teams. You can collaborate with Microsoft developers, MVPs, and beta testers to identify problems and workarounds, and then track feedback online. You also get notifications of changes and fixes. Note: This site is a work in progress; we welcome your feedback on it."
Era da un po' che si sentiva la mancanza di una cosa del genere.
Senza nulla togliere ai favolosi newsgroups naturalmente!
Peccato che abbia cominciato male... fino a poco fa era irraggiungibile!
http://lab.msdn.microsoft.com/productfeedback/
Cominciando a digerire la mole di informazioni che sta giungendo dal TechEd di Amsterdam, vorrei accennarvi ad un ragionamento che ho fatto poco fa con un collega di lavoro.
Sql 2005 Express, e più estensivamente parlando tutta la linea "Express" mi sembrano nati esclusivamente per contrastare il mercato crescente del freeware e dell'opensource. In effetti di certo non sarà Oracle a fare le spese di questi prodotti, ma database come MySql e Postgres, che per quanto vecchi e consolidati, trovano ora un concorrente che li può mettere in discussione.
La mancanza ad esempio del Query Governor, ma fa pensare che la strada scelta...
Ecco il link al sito per gli sviluppatori VS.2005
http://lab.msdn.microsoft.com/VS2005/Default.aspx
E il blog sulle news.
http://lab.msdn.microsoft.com/vs2005/rss.xml
This morning at TechEd Europe, we announced the introduction of "Express" editions of a number of Visual Studio tools and SQL Server. The Express products are lightweight, easy to use, easy to learn tools for hobbyists, enthusiasts, and students who want to build dynamic Windows applications and Web sites. We also announced the release of Visual Studio 2005 Beta 1.
The Express products consist of:
Visual Web Developer 2005 Express Edition, a lightweight tool for building dynamic Web sites and Web services
Visual Basic 2005 Express Edition, a streamlined programming tool for beginning programmers to learn how to build exciting Windows...
Un blog fresco fresco per VS.2005
http://blogs.msdn.com/AskBurton/archive/2004/06/29/168474.aspx
Chi volesse può nel frattempo deliziarsi con la versione express di Visual Studio; Vi segnalo in particolare:
Visual Web Dev 2005 e Sql Server 2005 Express!
http://lab.msdn.microsoft.com/express/
Ecco la pagina che testimonia la disponibilità della beta.
http://lab.msdn.microsoft.com/vs2005/welcome/default.aspx
In questo post di Brian Johnson si legge una notiziona...
http://blogs.msdn.com/brianjo/archive/2004/06/29/168431.aspx
Ragazzi, questo è il mio quarto d'ora di gloria. Sono reduce da uno scambio di email con Jeff Key, l'autore di Snippet Compiler, uno dei più bei tool per dotnet. (vedi post precedente)
Sono orgoglioso di poter dire di averlo aiutato a risolvere un piccolo buggetto in cui sono incappato. Provate ad impostare i Regional Settings del vostro pc in modo che la data appaia così: 27.06.2004 (con i punti al posto delle barre).
Beh lanciando SC in questo modo si incontra un bell'errore che impedisce di usare il programma.
Nulla di grave intendiamoci. Praticamente una bazzecola, ma a quanto pare sono...
Forse voi li conoscete già tutti, ma io vi segnalo lo stesso questo appetitoso articolo uscito su MSDN Magazine.
Ten Must-Have Tools Every Developer Should Download Now
Tra gli altri vi segnalo lo "Snippet Compiler", "Regulator" e "CodeSmith".
Impossibile non averli!
blog[at]boschin.it
A chi non lo avesse già fatto consiglio la lettura di questo articolo del grande Dino Esposito apparso su MSDN Magazine, ed ora pubblicato sul sito MSDN.1ma Parte
2da Parte
Gli argomenti principe sono: l'applicazione di temi ai controlli ASP.NET 1.1 e la compilazione a runtime dei temi stessi.
blog[at]boschin.it
Recentemente sto usando parecchio NUnit e ho riscontrato una grave difficoltà.
Quando da NUnit c'è la necessità di accedere alle informazioni dell'app.config non c'è speranza... semplicemente non lo trova, e ogni tentativo (anche quelli suggeriti in internet) è stato vano.
L'unica valida soluzione è stata quella di scaricare NUnit Add-in che integra le funzionalità di NUnit all'interno di VS.NET e risolve questa problematica. Tra l'altro bisogna dire che l'add-in è molto comodo perchè consente anche di fare il debug delle librerie senza dover creare necessariamente un progetto che le utilizzi.
Per scaricare NUnit Add-In andate a: http://sourceforge.net/projects/nunitaddin/
blog[at]boschin.it
Giusto ieril'altro stavo raffinando la mia libreria di classi per l'accesso ai dati quando mi sono scontrato con una stranezza del framework.
Il contesto: Stavo creando una collection specializzata per la gestione di oggetti dato e tentavo invano di customizzare le colonne di una DataGrid cui passavo questa collection come DataSource. Il problema era che continuavano a venirmi visualizzate tutte le proprietà degli oggetti nella collection invece che quelle che specificavo come DataGridColumStyles
Alla fine nell'SDK ho scovato questo trafiletto:
When binding to an ArrayList, set the MappingName of the DataGridTableStyle to "ArrayList" (the type name)
Così ho fatto e ho settato la...
Recentemente nei gruppi di microsoft si è presentato il seguente problema:
Una collega ha un foglio excel con delle colonne in formato testo, le quali contengono dei valori. Con una query SQL per mezzo di ADO.NET estre i valori dal foglio excel e sorprendentemente ottiene dei valori NULL per delle celle che contengono effettivamenteun dato.
Ecco la risposta di Microsoft:
To understand this problem, you must understand 2 things:1) The Excel driver must "guess" the datatype of each column. To do this, itreads (by default) the first 8 rows of data. You can change this value inthe Registry.2) After the Excel driver guesses the...
E' la notizia del giorno.. I Web Services Enhancements 2.0 sono stati rilasciati.
Ne parlano tutti, e probabilmente avrete già ricevuto la news di ugidotnet
Per fare qualcosa di utile ecco una serie di link sull'argomento:
1) download2) What News on WSE 2.03) Programming with WSE 2.04) un po di video su devleap
Sto lavorando con il DHTML Editor di Internet Explorer. Non è la prima volta che lo uso, e anche questa volta confermo che si tratta di uno strumento comodo, ma i programmatori Microsoft potevano graziarci con dei messaggi di errore un po' più significativi?
Che significa "Catastrophic Failure"?
E' uscito tentando di leggere la proprietà DocumentHTML, un attimo dopo averla valorizzata. Non ci vuole tanto a comprendere che probabilmente c'è un istante nel quale il componente sta elaborando l'html appena inviato, durante il quale non è possibile leggerne il contenuto, ma cosa c'è di tanto catastrofico?
M'è sembrato di sentire un brontolio...