ASP.NET MVC si multiple HandleError

Daca puneti pe controller HandleError si vreti pe o metoda sa interceptati HandleError pentru o anumita exceptie, nu uitati sa puneti order=0 pentru HandleError de pe controller.

[InfovalNew.HandleErrorAndLog(Order=0)]        
public class istoricController : Controller

{

[InfovalNew.HandleErrorAndLog(View = "invaliddate",ExceptionType = typeof(infoObj.InvalidDateTime))]
public string valoarebnr(string year, string month, string day,string idmoneda)
        {}

}

ASP.NET MVC si SiteMap

Nu eram multumit de vechiul sitemap de la ASP.NET – din singurul motiv ca nu e dinamic  – adica nu tine seama ca poate exista Categorie\Produs\{id}\edit.

Ca omul puturos , am cautat pe google si am gasit pe codeplex http://mvcsitemap.codeplex.com/ 

Citeva observatii :

  1. Neaparat in web.config trebuie sa puneti intrarea <siteMap defaultProvider="MvcSiteMap">
  2. Daca vreti ca nodul curent sa aiba o denumire OK, atunci puneti in controller : SiteMap.CurrentNode.Title = “<denumire>”
  3. Mai are citeva bube in cap  -nu stiu de ce citeodata nu afiseaza- asa ca e bine la 2 sa verificati SiteMap.CurrentNode de null
  4. Suporta si atribute pe controller– insa nu v-as sfatui sa le folositi.

Succes!

Fiddler si incarcarea site-urilor

Facusem un site care incarca , dintr-o BD , prin EntityFramework si Linq2Sql date dintr-o BD.Problema era ca dura cel putin 30 de secunde.

Ma uit in pagina – nu era de acolo – era aproape goala.

Ma uit la Sql-urile generate de EF si L2S  -se executau in milisecunde.

Ma uit cu NUnit sa vad in cit timp se incarca ToList<> – milisecunde.

In disperare , pun Fiddler si browsez http://<numemasina>/aplicatie ( nu folositi localhost,  ci numele masinii) – si  – surpriza : imi arata , cu rosu, ca declaram un serviciu Ajax in ScriptManager –serviciu care nu exista , codul fiind copiat din alta aplicatie de a mea…

Iar ScriptManager chiar incerca sa vada daca serviciul exista – chiar daca NU il foloseam!

Si , pina sa isi dea seama, dura alea 30 de secunde…

Oh si apropo :in Application_OnError aveam logata eroarea cu log4net  – daca ma uitam in loguri eram destept 😉

Concluzie : nu puneti in ScriptManager servicii decit daca e necesar…

Twitter si C#

Am facut cu ajutorul lui codului de la Witty un bot de curs valutar pentru BNR si BCE. Ca functionalitate se poate verifica trimitind @cursval <banca> <moneda>, de ex @cursval bnr usd sau @cursval bce usd.

Ca si cod, e super simplu de folosit Witty :se include TwitterLib si se scrie codul la genul :

TwitterNet t = new TwitterNet("cont de twitter", TwitterNet.ToSecureString("parola"));
  u = t.Login();
string since = DateTime.Now.ToString();
  (var message in t.GetReplies(since))

{

}

si cam asta e tot. Da , sunt de acord ca ar fi trebuit sa studiez twitter api …dar zau, daca ai deja codul sursa si libraria, de ce sa reinventezi roata? A, singurul motiv este ca la update-uri scrie “from Witty” …. E normal sa dau credit, totusi!

Best practices

Zilele(noptile?) acestea, cum am spus de atitea ori, am trecut pet-project, www.infovalutar.ro la ASP.NET MVC.

Si ma gindeam cum sa ii imbunatatesc timpul de afisare. OK, yahoo slow pentru inceput imi spunea ca nu am expires header  la imagini. Stiam ca exista in IIS  -dar cum le setez la hosting? Dau telefon, amabil, ii spun unde sa faca  – dar … ceva nu a mers. Si au ramas ca la inceput.

Asa incit le-am mapat o extensie proprie, ashx, si le-am pus sa fie interceptate de un handler si le-am setat cam ca aici

OK –teoretic asta cam ar trebui sa o faca oricine.

Ce parere aveti de un mini-site de best practices , gen wiki, pe care sa il tinem updatat la zi cu ce intilnim noi ca developeri ?

Chart Image si Real internet site

Cum am spus, am trecut www.infovalutar.ro de la asp.net 1.1 la ASP.NET MVC.Trecerea nu a fost usoara, si inca sunt citeva lucruri de facut.

Totusi una din probleme care mi-a dat de furca a fost ca ChartImage , la refresh, nu se mai afisa. Foloseam asta la afisarea grafica a datelor cursurilor, de ex. http://infovalutar.ro/bnr/graphic/usd 

Bun … problema era ca stergea fisierul png generat. Am pus “deleteAfterServicing “  la false  * si o sa le sterg in momentul in care generez cursurile.

Totusi, mai aveam o problema . Daca accesam site-ul cu Firefox si dadeam refresh, se vedea. Dar aceeasi pagina , cu IE 7 , nu mai afisa  – desi in codul HTML generat codul de la AXD era ACELASI, IMAGINEA era pe hard …

Dupa mai multe cautari am dat de pagina asta, http://blogs.msdn.com/deliant/archive/2008/12/02/managing-chart-generated-images-with-chart-image-handler.aspx care are TOATE setarile si ma dat de privateImages … L-am pus la false si gata!

Rezumat : pentru a folosi ChartImage cu succes cu IIS 7 aveti nevoie de 3 setari:

<appSettings>
   <add key="ChartImageHandler" value="storage=file;privateImages=false;timeout=600;dir=….;deleteAfterServicing=false;" />
  </appSettings>

 

A doua in httphandlers

<httpHandlers><add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />

A treia in handlers

<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 

 

Si, bineinteles, daca hostingul nu a instalat inca controalele, sa puneti din references System.Drawing si System.Web.DataVisualization “Copy local” la true – ca sa le aveti in bin

Succes!

Mini tools list 2009

Programe, majoritatea(99,9%) free , pe care le folosesc ca programator si ca pasionat al Web-ului si GTD

E o continuare la http://serviciipeweb.ro/iafblog/2008/01/18/mini+Free+Tools+List+2007.aspx

si bineinteles inspirata de Hanselman

Fara prea multa discutie, iata lista:

Nume Folosit pentru Adresa Web Comentarii
7-Zip arhivare (zip, rar, etc) www.7-zip.org De ce sa dai banii pe Winzip ?
NOTEPAD++ editare fisiere http://notepad-plus.sourceforge.net/uk/site.htm pentru programatori a se folosi si pluginurile
Yahoo! Messenger Chat http://messenger.yahoo.com/download
Dosbox Dos emulator http://www.dosbox.com/ Pentru Doom1 si Doom2
Download Statusbar 0.9.6.4 vizualizat status bar https://addons.mozilla.org/en-US/firefox/addon/26 firefox addon
Google notebook firefox addon – bookmark https://www.google.com/notebook se sincronizeaza pe accountul de google
Firefox browser web http://www.mozilla.com/en-US/firefox/ fara flash ,activex, silverlight
IE8 browser web http://www.microsoft.com/windows/internet-explorer/default.aspx cu flash + activex + silverlight
Virtual Dub Editor de avi http://virtualdub.sourceforge.net/ De ex., pentru split fisiere avi in 2-3 parti ca sa incapa pe YouTube
morning coffee browsing de dimineata https://addons.mozilla.org/en-US/firefox/addon/2677 firefox addon
leech block blocat browsing ca sa nu pierd timpul https://addons.mozilla.org/en-US/firefox/addon/4476 firefox addon
startup delayer ca sa nu porneasca toate programele la startup http://www.r2.com.au/software.php?page=2&show=startdelay
winamp muzica http://www.winamp.com/
windows live writer scris pe blog acest articol http://windowslivewriter.spaces.live.com/
cd burner xp inregistrat cd-uri http://cdburnerxp.se/
vlc media player play avi, mpg, etc http://www.videolan.org/vlc/
pwdgen generat parole http://serviciipeweb.ro/downloads/pwdgen/ windows
pwdgen generat parole http://serviciipeweb.ro/downloads/pwdgen/index.aspx site web
adobe acrobat reader citit pdf-uri http://get.adobe.com/reader/
cam studio inregistrat avi, flash http://sourceforge.net/projects/camstudio/
sync toy sincronizat fisiere pe USB http://www.microsoft.com/Downloads/details.aspx?familyid=C26EFA36-98E0-4EE9-A7C5-98D0592D8C52&displaylang=en
irfan view Poze http://www.irfanview.com/ Cu addins
Read it later Pentru a tine minte ce vreau sa citesc de pe web- dar nu am avut timp http://www.ideashower.com/ideas/launched/read-it-later/ Firefox add-ons
clamwin anti virus http://www.clamwin.com/
Magic Disc montare ISO http://www.magiciso.com/tutorials/miso-magicdisc-overview.htm merge si pe vista
DVD Decrypter Copiat dvd-uri http://www.dvddecrypter.org.uk/
DVD Shrink Micsorat DVD-uri http://www.softpedia.com/get/CD-DVD-Tools/CD-DVD-Rip-Other-Tools/DVD-Shrink.shtml De folosit doar cu DVD Decrypter
Unreal commander Clona de Total Commander http://unrealcommander.biz/download.php
Download Statusbar 0.9.6.4 De aranjat download in jos la Mozilla http://downloadstatusbar.mozdev.org/ Firefox addon
FireShot Capturat imaginea firefox http://screenshot-program.com/fireshot/ Firefox addon
Foxclocks Ora pe glob http://www.stemhaus.com/firefox/foxclocks/ Firefox addon
TimeTracker Cit timp pierd/csitig pe web http://www.usablehack.com Firefox addon
TwitterFox Pentru twitter http://www.naan.net/trac/wiki/TwitterFox Firefox add-on
FaviconizeTab 0.9.8.2 Micsoreaza tab-urile http://espion.just-size.jp/archives/06/308085916.html Firefox add-on
Save Salveaza imaginile din tab https://addons.mozilla.org/en-US/firefox/addon/3404 Firefox add-on
Images
Synctoy Sincronizat fisiere USB ó PC http://www.microsoft.com/downloads/details.aspx?familyid=c26efa36-98e0-4ee9-a7c5-98d0592d8c52&displaylang=en
Paint.net Editor avansat de imagini http://www.getpaint.net/
Gmail Tasks Pentru a tine minte taskurile personale http://mail.google.com/mail/#settings/labs Se pune din Labs/in google email si se afla chiar sub contacts
CamStudio Inregistrat video http://sourceforge.net/projects/camstudio/

Programare

 

ssms tools addin de sql server pentru arhivat istorie sql http://www.ssmstoolspack.com/ merge si pe express
ADAM Active drectory like http://www.microsoft.com/downloads/details.aspx?familyid=9688f8b9-1034-4ef6-a3e5-2a2a57b5c8e4&displaylang=en Teste pentru integrare AD
Svn1Click Pentru source control http://svn1clicksetup.tigris.org/  
moq testare fara BD http://code.google.com/p/moq/ cu NUnit
regulator / regulazy expresii regulate http://weblogs.asp.net/rosherove/pages/tools-and-frameworks-by-roy-osherove.aspx  
XML Notepad 2007 vazut fisiere XML, reformatare http://www.microsoft.com/downloads/details.aspx?FamilyId=72D6AA49-787D-4118-BA5F-4F30FE913628&displaylang=en bune pentru generat fisiere word, excel, etc.
Reflector decompilare http://www.red-gate.com/products/reflector/ de downloadat si addinurile ( de ex., FileDisassembler )
Texter Coduri scrise automat http://lifehacker.com/software/texter/lifehacker-code-texter-windows-238306.php De ex :
Ab = ::scr::<asp:Button runat=server ID= {RIGHT} />{LEFT}{LEFT}{LEFT}{LEFT}{DEL}{LEFT}
Ij = inner join
sf* = select top 30 * from
trd = <tr> <td></td> <td></td> </tr>
WinMerge diferente intre fisiere/foldere winmerge.org  
WebDeveloper resize, image width/height, image fara atribute si multe altele https://addons.mozilla.org/en-US/firefox/addon/60 pentru verificat site-urile proprii
HTML Help Workshop creeare fisiere CHM help http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en  
log4net logare erori, debug logging.apache.org/log4net  
.NET Managed Provider for Oracle conexiune oracle http://www.microsoft.com/downloads/details.aspx?FamilyId=4F55D429-17DC-45EA-BFB3-076D1C052524&displaylang=en  
nunit teste automate http://www.nunit.org/index.php  
fiddler interceptat trafic web propriu http://www.fiddler2.com/fiddler2/  
vs2008 express + sql server 2008 express with advanced services(SQL Server Management Studio) site-uri, programe http://www.microsoft.com/express/  
Microsoft Virtual PC Instalat programe de evaluare http://www.microsoft.com/windows/downloads/virtualpc/default.mspx  
Windows Power Shell Scripturi de folosit pe servere http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx  
stringtemplate generare fisiere http://www.stringtemplate.org/ salvezi fisierele ca XML 2003 si le generezi “on the fly”
Sharpzip Zipuit fisiere+foldere http://icsharpcode.net/  
Imacros Generat teste interfata web http://www.iopus.com/imacros/firefox Firefox addon
Measureit Cit de mari sunt pixelii? http://www.kevinfreitas.net/pro/extensions/  
Dust-Me Selectors 2.11 Care css este neutilizat http://www.sitepoint.com/dustmeselectors/ Firefox add-on
Extension List Dumper Face lista cu firefox addon http://sogame.awardspace.com/ Firefox add-on
Save complete Salveaza pagini web https://addons.mozilla.org/en-US/firefox/addon/4723 Firefox add-on
Yahoo slow Verifica rapiditatea de incarcare http://developer.yahoo.com/yslow Firefox add-on
Firebug Verificat erori site-uri https://addons.mozilla.org/en-US/firefox/addon/1843 Firefox add-on
Filezilla Copiat ftp http://filezilla-project.org/download.php?type=client  
SysInternals De vizualizat fisier locked, etc http://technet.microsoft.com/en-us/sysinternals/default.aspx  
Windows PowerShell Backupuri BD, fisiere pe hard, alte mici tool-uri http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx  

Addonuri free pentru programe pe bani

Save As PDF or XPS Word/Excel http://www.microsoft.com/downloads/details.aspx?FamilyID=4d951911-3e7e-4ae6-b059-a2e79ed87041&displaylang=en  
Office Live addin Word/Excel http://www.microsoft.com/DownLoads/details.aspx?familyid=91FE0002-EB00-434B-8726-27911326D2B2&displaylang=en Pus documente shared pe Internet
Creative Commons Word/Excel http://www.microsoft.com/downloads/details.aspx?familyid=d1ddbdc8-627f-415a-9b0a-97362bc9b480&displaylang=en Pentru 2007
VS 2008 Web Deployment Projects Deploy bin http://www.microsoft.com/downloads/thankyou.aspx?familyId=0aa30ae8-c73b-4bdd-bb1b-fe697256c459&displayLang=en  
Power Commands VS2008 http://code.msdn.microsoft.com/PowerCommands Pentru copy as reference
CSAH VS2008 http://www.jtleigh.com/people/colin/software/CopySourceAsHtml/ Copier cod sursa bloguri
SmartPaster VS2008 http://weblogs.asp.net/alex_papadimoulis/archive/2004/05/25/Smart-Paster-1.1-Add-In—StringBuilder-and-Better-C_2300_-Handling.aspx Am cam inceput sa folosesc stringtemplate
Sql2008 DataMining Addins VS2008 http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=896A493A-2502-4795-94AE-E00632BA6DE7&displaylang=en  

USB

Portable Apps Aplicatii portabile http://portableapps.com/  
Lupo Pen Suite Aplicatii portabile http://www.lupopensuite.com/  

 

Care sunt ale voastre ?