Crad's .NET Blog

L'UGIblog di Marco De Sanctis
posts - 190, comments - 457, trackbacks - 70

.Net 3.0

Costanti pubbliche? AHIAHIAHI

Premessa: ciò che scriverò è una banalità, ma secondo me in tanti non ne sono al corrente o non ci pensano. Di cosa parlo? Di cose del genere: public const int MyConst = 10; Il danno potenziale che le costanti pubbliche possono creare alla stabilità delle nostre applicazioni è enorme. Why? Perché le costanti non sono altro che placeholder risolti in fase di compilazione. Questo vuol dire che, finché non si ricompila, il valore non viene aggiornato. Implicazioni? Assembly A che definisce una costante MyConst = 10 Assembly B che referenzia Assembly A e ne utilizza MyConst Assembly A cambia MyConst a 15 Finché non ricompilo...

posted @ giovedì 31 gennaio 2008 16:15 | Feedback (6) | Filed Under [ .Net 2.0 Architettura .Net 3.0 .Net 3.5 ]

WCF, DTO, Fatture e RapportinoMaker (TM)

Volevo lasciare un commento al post di Igor, poi ne è venuto fuori un papiro e allora è meglio scrivere qui. A mio modo di vedere, c'è un errore di fondo nel concetto di DTO espresso in quel post. Un DTO, infatti, *NON* deve né ereditare, né incapsulare l'oggetto che rappresenta; anzi... dirò di più: un DTO non deve avere alcuna relazione con l'entità (o le entità) di dominio che rappresenta, altrimenti non sarebbe un DTO!! Cerco di spiegare meglio il concetto. Perché creo ed espongo un DTO? Una delle ragioni può essere che non voglio/posso esporre direttamente una mia entity...

posted @ martedì 30 ottobre 2007 01:33 | Feedback (8) | Filed Under [ Architettura .Net 3.0 ]

[WCF] Condividere la medesima class library tra server e client

Windows Communication Foundation permette, in maniera estremamente semplice, di utilizzare tipi complessi sia come parametri di un servizio che come valori di ritorno: basta che essi siano marcati o con l'attributo DataContract o Serializable: [DataContract] public class MyClass { // codice.... } [ServiceContract] public interface IMyService { [OperationContract] string MyMethod(MyClass parameter); } Il comportamento di default di svcutil.exe, in fase di generazione del proxy per l'accesso al servizio da parte del client, è quello di creare una classe omonima di MyClass e con i medesimi membri pubblici. Nel caso in cui MyClass sia definita in un assembly referenziato sia dal...

posted @ lunedì 2 aprile 2007 15:03 | Feedback (1) | Filed Under [ .Net 3.0 ]

[WCF] Attenzione alle Using

In Windows Communication Foundation, il proxy creato da svcutil eredita dalla classe ClientBase<T>, che a sua volta implementa l'interfaccia IDisposable. Conseguenza di questo fatto è che viene naturale invocare il nostro bel servizio scrivendo: using (MyServiceClient client = new MyServiceClient()) { // more code goes here... } Ma se l'invocazione genera un errore, cosa accade? L'utilizzo del blocco using ci garantisce che venga chiamato il metodo Dispose() di MyServiceClient, che, Reflector alla mano, non fa altro che invocarne il metodo Close(). Attenzione però all'eccezione rilanciata se lo stato del client è Faulted (accade ogni volta che si verifica un errore non...

posted @ domenica 4 marzo 2007 18:27 | Feedback (0) | Filed Under [ .Net 3.0 ]

[WCF] Problemi con l'hosting su IIS

Altro tip su WCF (giuro, è in buona fede, non partecipo a Community Credit, ehhehe!!) Una volta effettuato il deploy di un servizio WCF su IIS, ho purtroppo constatato che il file .svc veniva fornito in output come semplice plain text. Occhiata al metabase di IIS e, sorpresa... non era presente alcun binding tra questa estensione e ASP.NET. La causa è da ricercarsi in un bug dei primi installer di .NET 3.0 che creavano dei problemi alla configurazione di IIS. Per risolverli è sufficiente digitare, da prompt dei comandi, "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" /s:W3SVC Maggiori dettagli in questo post. HTH.

posted @ martedì 20 febbraio 2007 17:26 | Feedback (0) | Filed Under [ .Net 3.0 ]

[WCF] Non vi funziona l'intellisense nell'app.config?

Anche con le VS2005 Extension for WCF e WPF installate, può capitare che Visual Studio non mostri correttamente l'intellisense degli elementi di configurazione relativi a Windows Communication Foundation. Come risolvere? Se avete un luminare come Fabio Cozzolino tra i contact di MSN è un gioco da ragazzi, basta chiedere a lui! :D Altrimenti, eseguite nuovamente l'installazione delle estensioni, ma digitando msiexec /i vsextwfx.msi WRC_INSTALLED_OVERRIDE=1 da riga di comando!

posted @ martedì 20 febbraio 2007 16:50 | Feedback (0) | Filed Under [ .Net 3.0 ]

Un aspetto che non mi piace di WCF

In questi giorni in azienda ho iniziato ad utilizzare Windows Communication Foundation piuttosto intensamente e mi sono fatto un'idea di massima (ancora MOOOLTO grossolana) su questa parte del .Net FX 3.0. Mi piace parecchio il nuovo DataContractSerializer (AKA XmlFormatter), grazie al quale riusciamo ad avere oggetti lato client molto più simili alle controparti server side. Mi piace (ovviamente) la tanto decantata possibilità di creare servizi indipendenti dalla tecnologia utilizzata, anche se tutta da verificare nella pratica, mi piace il fatto che si possa personalizzare il formato dei messaggi scambiati tra client e server e che si possano creare metodi che lavorino direttamente...

posted @ martedì 20 febbraio 2007 12:38 | Feedback (2) | Filed Under [ .Net 3.0 ]

Nuovo Yahoo Messenger in WPF!!

In questo post dicevo che, per ciò che ho avuto modo di vedere, non immagino la tipica applicazione gestionale realizzata in WPF. Questa nuova tecnologia, secondo me, ha ben altri scopi, dato che "non di soli gestionali vive il programmatore", no? Ecco perché, a mio modo di vedere, forse il famoso Healthcare Prototype, che comunque ha lasciato tante bocche spalancate, è un esempio un po' fuorviante. Chi invece credo beneficerà alla grande delle peculiarità di WPF e ci farà toccare con mano cosa vuol dire avere a disposizione una tale potenza e flessibilità per la UI sono i software di...

posted @ lunedì 8 gennaio 2007 11:18 | Feedback (1) | Filed Under [ Misc .Net 3.0 ]

Prime impressioni su WPF

Durante le festività natalizie, ho avuto modo di papparmi un paio di centinaia di pagine del libro di Charles Petzold su WPF; per il momento, ho toccato pochissimo (quasi nulla) XAML, dato che la prima metà del libro non lo tratta. Questa scelta, che inizialmente mi aveva lasciato piuttosto perplesso, è in realtà completamente giustificata: XAML altri non è che un modo per serializzare una gerarchia di oggetti e quindi, alla fine dei conti, in WPF riveste comunque il ruolo di "accessorio ", per quanto di fondamentale importanza; morale della favola: per studiare...

posted @ mercoledì 3 gennaio 2007 13:21 | Feedback (1) | Filed Under [ .Net 3.0 ]

[Libro] Applications = Code + Markup

Dopo neanche una settimana dall'ordine (Amazon.co.uk tutta la vita, altro che shopping negli states), la mia simpatica postina ha lasciato nella cassetta delle lettere Applications = Code + Markup e questa sera ho dato una sbirciatina veloce al contenuto. Ora, premetto che è assolutamente presto per dare un giudizio, dato che ho guardato l'indice, sfogliato il libro qua e là e letto un paio di pagine, ma... La copertina rigida rullezza, e ci troviamo davanti un gran bel tomo da un migliaio di pagine circa Mi sembra scritto in maniera piuttosto semplice e chiara, almeno da quel poco (facciamo pure...

posted @ martedì 21 novembre 2006 01:42 | Feedback (4) | Filed Under [ Libri .Net 3.0 ]

Io e .NET 3.0

In questi giorni sto cercando di studiare un po' quello che (forse) sarà il framework con cui tanti di noi avremo a che fare. Dico forse, perché, per il momento, sono ancora un po' scettico sul reale valore di .NET 3.0. Ho avuto modo di vedere all'opera WWF e, oltre ad un immenso sforzo per far sì che potesse funzionare anche con un DB che non fosse necessariamente SQL Server, mi è sembrato tutto un po' lento. Mi piace WCF, secondo me il prodotto di punta e, tra i tre, è sicuramente quello che mi interessa di più, vuoi perché oramai SOA è...

posted @ lunedì 13 novembre 2006 16:52 | Feedback (5) | Filed Under [ .Net 3.0 ]

Powered by:
Powered By Subtext Powered By ASP.NET