.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
...
Full .NET Framework Archive