oktoober 2008 - Posts
Mõned minutid pärast seda, kui publitseerisin oma web testi urli parameetrite (querystringi) extractija leidsin CodePlexist projekti nimega Web and Load Test Plugins for Visual Studio Test Edition. Nimelt on inimesed Redmondis olnud tegusad suvel ja publitseerinud kasulikke pluginaid, rule ja ka Item Template meile kõigile kasutada ja elu mõnusam oleks.
Item Template -dest on olemas kõik vajalik:
- ExtractionRule
- ValidationRule
- WebTestPlugin
- WebTestRequestPlugin
- LoadTestPlugin
Kaasas on ka üks sõltuvate requestide filtreerimise plugin, mõned extractionrule -d ja validationrule -d. Ei ole neid hetkel ise veel proovinud, alles avastasin. Aga igatahes Templated on koheselt kasutatavad :)
Kusjuures niisugust extractionrule -i seal ei ole nagu mina tegin.
Ma olen alates Visual Studio 2008 välja tulemise ajast tegelenud ka Visual Studio Web Testidega, mis on kasulikud veebilehe kasutajapoolseks usecase -i testimiseks (ehk siis minek lehele ja vaadata, kas tuleb vastu lehekülg/vastus, mis on aktsepteeritav).
Visual Studio Web Testid on HTTP kihil toimivad testid, mis võimaldavad teha päringuid (GET, POST) kindla veebisaidi vastu. Visual Studio -l on Web Testide kirjeldamise abistamiseks loodud salvestaja (WebTest Recorder), mis jookseb IE -s ja võimaldab salvestada kõik Requestid. Web Teste on võimalik peale salvestamist korduvalt jooksutada. Web Teste saab ka kasutada Visual Studio Load Testide juures ja teha koormusteste veebirakendusele, pannes Web Testid jooksma kuni 1000 kasutaja alt samaaegselt ja jälgides serveri performance countereid ning tracida SQL -i andmebaasi käitumist.
Aga mu postituse eesmärk ei ole hetkel jagada teiega detailset informatsiooni Web Testide või Load Testide kohta. Kui suurt huvi üles näidatakse, siis heameelega teen ka seda. Seni leiate aga lisainfot järgnevatelt aadressidelt:
Hetkel soovin teiega hoopis jagada ühte hästi lihtsalt lisa (ExtractionRule -i), millest kohe alguses puudust tundsin ja vajalikuks pidasin. Nimelt üks elementaarne asi, mida Web Testide kasutaja võiks soovida on see, et eelmise requesti querystringist võtta parameetrite väärtusi ja kasutada järgmistes requestides. Kujutage ette olukorda, kus teil on uue itemi lisamise vorm ja peale submit vajutamist luuakse item ning suunatakse uuele lehele, millel on urli parameetrite hulgaks ka uue Itemi ID. Te soovite ju, et uue itemi lisamist testides, teil oleks dünaamiliselt tekkinud ID -d kasutusel (te ei saa seda ette spetsifitseerida).
Selleks, et eelnevalt requestilt järgneva jaoks midagi korjata ongi olemas ExtractionRule -d, mida võib igaüks endale alati luua. Mina tegin endale QueryString -ist kindla parameetri extractija :)
ExtractionRule -i kood asub siin.
Peate antud koodi lisama oma Web Testide projekti või siis eraldi class library -sse ning peale build -imist saate lisada requestile extraction rule.
Antud Extraction Rule -l on olemas kaks parameetrit - üks contextis hoidmise nimetus (see millega teie järgmistes requestides väärtusele ligi lähete) ning urli parameetri nimetus.
Kõrval järgneb siis illustreeriv näide insert ja View requesti kohta, kus Inserti requestilt extractitakse ID parameeter. Kusjuures, te ei näe seda ID parameetrit antud insert.aspx -i QueryString loetelus, kuna tegu on postitamise päringuga ja tulemusena suunatakse uuele vormile (Response.Redirect), milleks on View.aspx ja sellel on urlis parameeter ID. Meie soovime järgmisel requestil seda ära kasutada (PS! Antud näite requesti QueryString, Form Post parameetrid on fiktiivsed).
Web Testidele on võimalik luua mitmel erineval tasemel laiendusi - WebTestPlugin (testi tase), WebTestRequestPlugin (requesti tase), ExtractionRule, ValidationRule (WebTest -i tulemuse valideerimine). Nende implementeerimine ei ole tihti peale raske ja on päris võimsad vahendid oma soovide saavutamisel.
Kui te mõtlete Visual Studio Code Snippetite peale, siis te mõtlete, et toredad koodijupid, mida kasutada oma koodi failis (CS,VB). Ka mina mõtlesin nii. Ärge piirake end ainult koodi failiga, õigemini - ka ".xml" on koodi fail (deklaratiivne). Seega Code Snippetid töötavad väga hästi ka XML failide puhul.
Mina leidsin XML failides kasutamise väärtuse kirjutades Sharepointi sisutüüpe, liste, väljasid jne. Väga tülikas on kopeerida ja kirjutada seda XML. OK, kui WSS -i schema failid on paigutatud õigesse kohta (C:\Program Files\Microsoft Visual Studio 9.0\Xml\Schemas), siis Visual Studio intellisense XML -i jaoks teeb kirjutamise mõnusaks. Aga siiski on tülikas seda XML -i niimoodi nullist kirjutada, võiks ju ainult lünki täita. Lisaks, kui tihti unustate te Field elemenfil niisugused atribuudid nagu StaticName või SourceID?
Seega tegin ma terve arsenali (umbes 10) Sharepoint 2007 Code Snippeteid, mis aitaksid tihti kasutatavaid XML -i elemente kirja panna ja ma peaks ainult lüngad täitma. Ainukene asi, milllest veel hetkel puudust tunnen on see, et Guid -d tekiksid elementidele ka automaatselt. Uurin kuidas seda saaks. Eks täieneb ka see snippetite loetelu jooksvalt.
XML -s saate snippeteid lisada kasutades lühendeid Ctrl + K + X (expansion Snippet) ja Ctrl + K + S (Surround with Snippet).
Kes soovib, võib need omale alla tõmmata ja installeerida. Mõnusamaks installikogemuseks kasutasin Visual Studio Content Installerit. Päris lihtne ja hea viis paketeerida oma addin või snippetid.
Lisa Code Snippeteid leiate ka MSDN lehelt terve laadungi.
Tegin endale ka parema Guid -ide generaatori, mis peale genereerimist kopeerib kohe Clipboardi ja pakub mulle sobivamatel formaatidel Guid -e. Kõik teevad oma, miks ei või siis minulgi olla. OK, tegelikult lihtsalt see Windows SDK oma hakkas häirima formaadi ja ühe lisa kliki mõttes.
Edu Snippetitega!
Mitte progemisspetsiifiline kirjutus, aga väärtuslik reference, kuna tundub et ikka satun samasse olukorda vahest.
Umbes aasta tagasi kirjutasin ma, kuidas taastada Vistas Compressed folderite tuge, kui see peaks ära kaduma või mõni teine tarkvara ära nullib selle (seote .zip laiendi teise programmiga) või muu olukord. Mul igatahes hakkas IZarc jamama paar päeva tagasi, ekraan ei tulnud enam ette kui proovisin midagi lahti pakkida. Uuesti install ka ei aidanud. Igatahes, otsustasin hetkel loobuda sellest, aga IZarc -i maha lastes kahjuks ei taastunud vana olukord. Ja muidugi registris ise ringi käies ja korda proovida tehes võib asja hoopis hullemaks ajada (seekord ka õnnestus hullemaks ajada).
Ka ei toiminud vana juhend. Vaja oli suuta tagasi tekitada algseadistus, nii nagu on Vista installimise ajal.
Mina tõmbasin järgmise valmis scripti - http://www.vistax64.com/tutorials/65254-zip-file-support-restore.html ja toimis. Algseaditus jälle olemas.
Kui soovite compressed foldereid sisse/välja lülitada, siis infot leiate järgmiselt aadressilt:
Kolmapäeval toimunud seminari lõpus mainis üks mu vana kolleeg Vitast (Marti Kaljuve) vahendit, millega saab jälgida oma klaviatuuri kombinatsioonide kasutamist. Vahend saab aidata treenida ainult klaviatuuri kasutama (mis on üks põhilisi produktiivsuse tõstmise viise). Võimalik on oma hiir lukustada ühe rakenduse jaoks.
Key Jedi autor kirjeldab seda specis nii:
"Key Jedi can help you overcome your fear of the keyboard by disabling the mouse for the currently active application." :)
Ka saab konfigureerida Key Jedi ainult Visual Studio klahvikombinatsioone kuulama.
Mouseless mode toimib nii, et hiir lukustatakse klaviatuuri kombinatsiooni näitavasse aknasse ja sealt enam välja ei saa, enne kui mouseless mode -i välja ei lülitata.
Viimase versiooni vahendist leiate autori Roy Osherove -i blogist:
- KeyJedi (ehk ShortWatcher)
Head treenimist!
Kolmapäeal toimus Visual Studio 2008 C# -i nippide ja trikkide seminar, mis minu arvates läks täitsa edukalt. Kohal oli umbes 70 inimest. Üritusele seatud eesmärk, et iga osaleja lahkuks seminarilt vähemalt paari uue triki ja nipiga, mida nad loodetavasti ka koheselt rakendama hakkavad. Edukust järeldan ma publikust, kes kõik tõstsid käe seminari lõpus esitatud küsimusele "Kes sai vähemalt kaks kasulikku uut trikki ja nippi teada" (üle ei lugenud, hindasin silmaga). Kava üritusel oli tihe ja lõpuks sai jäädud isegi ajahätta. Loodan, et keegi väikese ajalise ülemineku pärast kuskile hiljaks ei jäänud. Veel meeldis mulle, et küsimusi oli väga palju - küsimused ja interaktiivsus muudavad seminari palju meeldivamaks ja alati julgustan küsima - nii blogis kui ka seminaril. Kahjuks küll ajalisse hätta sattumise tõttu sai power toole ainult põgusalt ja kiirelt tutvustatud.
Kuidas teile tundus? Võite siia kommentaare ja küsimusi esitada :)
Paigutan kogu seminari materjali nüüd siia ja proovin ka vastata küsimustele, millele seminaris lubasin hiljem vastata (ning mõned küsimused, mis võiks olla ka teistele kasulik).
Seminari materjal
Preview nippidest ja trikkidest, mis said läbi käidud (all pool link .cs failile).
Suureks võtmesõnaks seminaril oli - "kasuta klaviatuuri, mitte hiirt!".
Seminari küsimused ja vastused
Seminari jooksul oli hulganisti küsimusi ja osad nendest tooksin heameelga siin välja koos vastustega, mis loodetavasti aitavad ka teisi. Mõnedele nendest sai kohapeal vastatud, mõni vajas meenutamist ja vastan nüüd siin.
Kuidas tagata ühtsete koodistandardite kasutamine?
Ma tean kahte vahendit selleks, millest ühte olen ise aktiivselt kasutanud (need on tasuta).
Mina olen kasutanud Code Style Enforcerit (CSE), seega räägiksin lühidalt selest. Peale
DXCore -i ja CSE installeerimist saate oma projektis aktiveerida CSE. Seejärel ilmub teie projekti juurde lahenduse kataloog, kus all on selle projekti jaoks kasutatud reeglistik (see baseerub IDesigni "coding and naming standards for C#"). Väga lihtne on neid reegleid XML -s muuta ja kohendada endale sobivaks.
Kui programmeerimisel eksitakse mõne defineeritud reegli vastu, siis tõmmatakse sellele kohale punane joon alla ja paremat klõpsu tehes saate parandada viga.
IDesign reeglite järgi peaks field -l olema alati ees prefix m_.
Kas on VS2008 -ga kaasasobfuskeerimisvahend või teada mõni hea tasuta vahend?
Visual Studioga on kaasas tasuta Dotfuscator Community Edition. See on Preemptive Solutions poolt arendatud lahendus ja Preemptive on ka ainukene tarkvara firma, mille koodi obfuskeerimisvahendeid ma olen proovinud ja näinud kasutamas. Ma olen isegi käinud mõnel nende uue toote demol ning saanud kingiks Preemptive Solutions -i lühikesed püksid (väga imelik kink :) ).
Võibolla mõni keegi lugejatest on kasutanud mõnda muud tarkvara või teab tasuta toodet, mida julgeb soovitada?
Microsofti enda poolt on alustatud Software Licensing and Protection Service, mille üheks osaks on minu teada ka koodi obfuskeerimine. Neil on niisugune vahend nagu SLP Code Protector, mis loob turvalise virtuaalse masina koodi (SVML), krüpteerib selle ära ja seejärel on elu turvalisem, et jagada välja oma koodi. Ma ei ole seda proovinud ja lähiajal ei usu, et leian aega ka.Seega vajalikud viited teile uurimiseks.
Kas on olemas Visual Studio 2008 -l Sharepoint -i arendusvahendid?
Jah, on olemas vahendid VS2008 -s Sharepointi arendamiseks. Workflow arendamise vahendid on VS2008 -ga kaasas (alates Pro versioonist). Leiate VS2008 vahendid järgnevalt aadressilt:
Kus saaks .Net -i nimeruumide ja klasside diagrammid, et välja printida ja näiteks seinale panna?
Kui mõni küsimus on vastuseta jäänud, siis vabandan juba ette ja palun sellest teada anda kommentaarina ja vastan kommentaaridele.
Edu nippide ja trikkide rakendamisel!
Kuulujutud vastavad tõele, Silverlight 2.0 on jõudnud lõpuks RTW (Release to Web) staatusesse - ei ole enam Beta. See tähendab ainult ühte - saame näha veel vägevaimaid kasutajakogemusi ja elamusi veebi vahendusel, kuna Silverlight 2.0 lihtsustab .Net -s Silverlighti rakenduste ehitamist ja sisaldab endas näiteks Deep Zoomi. Täpsem loetelu:
- .NET Framework support with a rich base class library. This is a compatible subset of the full .NET Framework.
- Powerful built-in controls. These include DataGrid, ListBox, Slider, ScrollViewer, Calendar controls and more.
- Advanced skinning and templating support. This makes it easy to customize the look and feel of an application.
- Deep zoom. This enables unparalleled interactivity and navigation of ultrahigh resolution imagery.
- Comprehensive networking support. Out-of-the-box support allows calling REST, WS*/SOAP, POX, RSS and standard HTTP services, enabling users to create applications that easily integrate with existing back-end systems.
- Expanded .NET Framework language support. Unlike other runtimes, Silverlight 2 supports a variety of programming languages, including Visual Basic, C#, JavaScript, IronPython and IronRuby, making it easier for developers already familiar with one of these languages to repurpose their existing skill sets.
- Advanced content protection. This now includes Silverlight DRM, powered by PlayReady, offering robust content protection for connected Silverlight experiences.
- Improved server scalability and expanded advertiser support. This includes new streaming and progressive download capabilities, superior search engine optimization techniques, and next-generation in-stream advertising support.
- Vibrant partner ecosystem. Visual Studio Industry Partners such as ComponentOne LLC, Infragistics Inc. and Telerik Inc. are providing products that further enhance developer capabilities when creating Silverlight applications using Visual Studio.
- Cross-platform and cross-browser support. This includes support for Mac, Windows and Linux in Firefox, Safari and Windows Internet Explorer.
Lisalugemist teemal:
Hetkel on allatõmbamislingid põhisaitidel uuendamisel ja kui need on uuendatud, siis saate Silverlighti alla tõmmata tavapäraselt http://silverlight.net (võiks lõpuni jõuda pärast lõunal).
Testimata Tip: Visual Studio vahendid Silverlighti jaoks on juba uuenenud ja väidetavalt sisaldavad need ka Silverlight 2.0 -i ja SL 2.0 SDK -d :) Seega arendada juba saab!
Tip: Silverlight 2.0 -i alla tõmbamise otselink (tunneb ära teie OS -i ja pakub vastavalt õige versiooni).
Tip: Kui teil on Silverlight 2.0 Beta 2 või RC0 arendusvahendid (SDK, Tools) installeeritud, siis enne Silverlight 2.0 -i upgrade -i on vajalik ka nende uninstall (vähemalt mul oli).
Ahhoi!
Järgmisel nädalal leiab aset arendusseminar, kus räägin Visual Studio 2008 ja C# -i keele põhiseid nippe ning trikke. Mul üks suur ja üllas eesmärki:
Aidata Visual Studio 2008 arendajatel olla vahendit kasutades efektiivsemad (see on julge eesmärk ja loodetavasti lahkub iga kuulaja vähemalt paari uue nipiga).
Proovin aidata maksimaalselt välja pigistada vahendist ilma Resharperi või sarnase vahendi kasutamist. Mitte, et mul oleks midagi Resharperi vastu, vaid ma usun, et alles siis kui tead tootest piisavalt, suudad valida juurde komponendid, mis puudu on.
Ma kindlasti ei tea kõike VS2008 -st ning võtan seda üritust kui võimalust saada ka ise kõigi teie abiga teadlikumaks ja produktiivsemaks.
Seoses sellega kutsun üles kõikki VS2008 arendajaid antud postitusele kommentaaridega oma huvidest ja küsimustest teada andma ning luban proovida neile vastused/soovitused leida. Ei garanteeri, et oskan alati vastata või super lahenduse pakkuda, aga proovin. Huvid ja küsimused, millele soovitakse vastuseid üritusel kohapeal, palun esitada hiljemalt 12 -nda oktoobri õhtuks.
Aga nüüd täpsem seminari info.

Kutsume Sind arendusseminarile, kus tutvustame Visual Studio 2008 ja C# keele põhiseid nippe ning trikke. Ürituse eesmärk on anda arendajatele soovitusi, kuidas tõsta produktiivsust ja võtta arenduskeskkonnast viimast.
Osalema on oodatud igapäevased Visual Studio kasutajad (tase 300).
Microsofti arenduskonsultandi Taavi Kõosaare poolt läbiviidava tunniajase demoderohke esitluse neli peamist teemat on 1) koodist arusaamine, 2) koodi kirjutamine, 3) koodi muutmine ja silumine ja 4) Visual Studio produktiivsemaks muutmine läbi lisavahendite (Power Toys jm).
TOIMUMISAEG: 15. oktoober, kell 17:30 – 18:45
KOHT: Radisson SAS hotell, konverentsiruum Cuxhaven+Bremerhaven (Rävala pst. 3, Tallinn).
REGISTREERIMINE: palun teata osavõtusoovist e-postiga eesti@microsoft.com hiljemalt 13. oktoobriks. Osavõtmine on tasuta ja seminar toimub eesti keeles. Kõiki osavõtjaid ootab väike kingitus :)
Registreeri end kohe!
LISA KALENDRISSE:
More Posts
Next page »