Qualche tempo fa, avevo parlato di un progetto che stavo iniziando con gente totalmetne a digiuno di programmazione e totalmente con strumenti free.
Il progetto in se, dopo una partenza "difficoltosa", sta ingranando.... vedremo come andrà.
Nel frattempo, mi sono scontrato con un'esigenza che lavorando in ambiente "classic" non ho mai avuto: utilizzando Visual Web Developer Express 2005 come IDE ed avendo il mio codice di business nella directory App_Code, tutti i miei CustomControl e le mie classi sono definite li. Quindi, cosa prendo come nome di assembly quando devo referenziare un Custom Control con la direttiva di pagina Register o da Web.config? E cosa gli dico quando devo creare un oggetto a RunTime con Reflection?? Il nome dell'assembly è generato dal framework e quindi io non lo so....
Per i Custom Control, posso mettere come AssemblyName "App_Code". In questo modo il framework farà tutto "alle mie spalle" e metterà a posto le cose.
Per utilizzare Reflection invece, il fully qualified type name sarà come al solito il fully qualified name dell'oggetto sesguido da App_Code. Quindi qualcosa del tipo "MioNameSpace.MioOggetto, App_Code"
Un altra alternativa, che avevo trovato all'inizio, era prendere l'AssemblyName dal GetType, che tornava qualcosa del tipo app_code_v4354534, e poi metterlo nella stringa dinamicamente (tanto se si usa reflection, 90 su 100 è nel business, che sta anche lui sotto App_Code, e quindi il risultato è il medesimo).
Però facendo alcune prove ho visto che, non so perchè, in questo caso è piu lento.
In maniera infinitesimale, ovviamente, ma facendo 10.000 istanziazioni via reflection di un oggetto, utilizzando AssemblyName ci mette 3 secondi, utilizzando "App_Code" solo due.. quindi utilizzate App_Code :)