Category Archives: .NET 4.5 és Visual Studio 2012

A VS 2013 preview-val csak Windows 8.1-re lehet fejleszteni?

Aki a Visual Studio 2013 új preview változatával Windows 8.1-en próbált meg létrehozni új Windows Store projektet, annak feltűnhetett, hogy a projekt neve mellett a Solution Explorer ablakban megjelenik a “(Windows 8.1)” jelzés:

vs2013-solution-explorer

A projekt tulajdonságait megnézve észrevehetjük a Target Platform Version opciót, azonban ezt nem lehet állítani:

vs2013-target-platform

Az az alapelv továbbra is igaz, hogy Windows 8-on lehet csak Windows Store alkalmazásokat fejleszteni, ám most már a verziókra is oda kell figyelnünk (legalábbis a mostani preview-nál biztosan).

A lényeg:

  • Létező Windows 8 projekteket meg lehet nyitni és lehet módosítani VS 2013-mal Windows 8.1-en.
  • Új Windows 8 projektet nem lehet létrehozni VS 2013-mal Windows 8.1-en.
  • Windows 8.1-en új Windows 8 projekt létrehozásához VS 2012-t kell használni.

 

Technorati-címkék: ,
Advertisements

Content Injector for ASP.NET MVC

Aki készített már újrafelhasználható elemeket ASP.NET MVC-ben, bizonyára találkozott már azzal a problémával, hogy egy partial view vagy egy HTML helper működéséhez szükséges egy CSS stíluslap vagy egy külső JavaScript fájl. Ha odafigyelünk a kódunk minőségére, akkor a CSS-t mindig az oldal tetején, a szkriptet pedig mindig az oldal alján töltjük be, gondosan ügyelve arra, hogy ezek a külső erőforrások akkor is csak egyszer töltődjenek be az oldalra, ha több helyen is szükség van rájuk. Viszont ezt csöppet sem egyszerű megoldani, hiszen a partial view-k és a HTML helperek teljesen önállóan, egymástól függetlenül renderelődnek. Bár a probléma egyáltalán nem újkeletű, még ASP.NET WebFormsban sem egyszerű megoldani, MVC-ben viszont kifejezetten nehéz.

Talán nem is meglepő, hogy a készre sütött megoldást Peter Blum tálalja nekünk a Content Injector for ASP.NET MVC formájában. Az öreg motoros ASP.NET fejlesztők már sokszor találkozhattak Peter nevével, aki egyszemélyes cégében leginkább ASP.NET web controlokat készít. Ezek közül a legismertebb a Peter’s Data Entry Suite, amely több, mint 100 WebForms vezérlőt tartalmaz, melyek elsősorban az adatbevitelt és a validációt teszik egyszerűbbé. Igen hasznos csomagról van szó, nem véletlenül kapott már értük számos pozitív értékelést.

Így csöppet sem csodálkoztam, amikor pár héttel ezelőtt Peter bukkant fel egy ötlettel az ASPInsiders listán, ami nagyon kényelmesen megoldja a fenti problémát. Sokan kipróbáltuk, kapott is pár visszajelzést, amit villámgyorsan át is vezetett a kódon, így most már bátran merem ajánlani a Content Injector for ASP.NET MVC projektet, leginkább NuGet csomag formájában.

A használata pofonegyszerű. Először is jelöljük meg az oldalunkon, tipikusan a Layout.cshtml fájlban, azokat a helyeket, ahova majd beszúródnak a tartalmak:

@Injector.InjectionPoint("ScriptFiles")

Ezek után ha például egy view-nak szüksége van a jQuery Validate szkript fájljaira, akkor a view-ból szúrjuk be őket a korábban megjelölt helyekre:

@Injector.ScriptFile("~/Scripts/jquery.validate.min.js");
@Injector.ScriptFile("~/Scripts/jquery.validate.unobtrusive.min.js");

Ez persze csak a legegyszerűbb használati eset, meg lehet adni még további paramétereket (például sorrend), valamint beszúrhatunk stíluslapot, szkriptet, meta tag-et, rejtett mezőt, szkript blokkot, vagy bármi mást, hiszen a rendszer jól kiterjeszthető és konfigurálható (például tracing). Minderről elég részletesen tájékoztat a 23 oldalas User’s Guide.

További érdekesség, hogy a visszajelzések alapján Peter összekapcsolta a Content Injectort a Microsoft Web Optimization Frameworkkel, így a ContentInjector.WOF NuGet csomag telepítése után már StyleBundle is ScriptBundle is beszúrható.

Letöltések:

 

Technorati-címkék: ,,

Forráskód source control mentesítése

Van úgy, hogy az ember egy source controlhoz (pl. TFS-hez) kapcsolt projektet source control nélkül szeretne megnyitni. Akár például azért, mert meg kellene osztani valakivel a kódot, aki nem fér hozzá a forráskódkezelő szerverünkhöz, vagy egyszerűen épp úgy akarunk garázdálkodni a kódban, hogy a source control kapcsolat csak zavarna. Persze a Studioban van Unbind lehetőség, de ahhoz, hogy odáig eljussunk, át kell verekednünk magunkat számos furcsa hibaüzeneten.

Én ilyenkor eddig mindig azt csináltam, hogy letöröltem a .vssscc és a .vspscc fájlokat, majd töröltem az Scc-vel kezdődő sorokat a projekt fájlokból, és csak ezek után nyitottam meg a projektet. Ez működő megoldás, de sok projekt esetén fájdalmas. Ezért is örültem nagyon, amikor Kovács Ferenc barátom figyelmembe ajánlotta a CodePlexen elérhető VS Unbind Source Control nevű eszközt, amivel mindezt egy csapásra elvégezhetjük parancssorból:

  VSUnbindSourceControl.exe W:\MyFolder

 

Mockupkészítő eszközök

Kevés olyan hasznos dolog van a fejlesztő életében, mint a mockupkészítő eszközök. Ezek olyan szoftverek, amelyek segítségével leskiccelhetjük, hogyan fog kinézni az alkalmazásunk. Bár a mockupok tipikusan fapadosan kinéző drótváz ábrák, mégis számtalan előnyük van:

  • Legalább egyszer mi is végiggondoljuk, hogy milyen funkciókat szeretnénk, és azok hogyan fognak megjelenni a felhasználói felületen. Akár a teljes alkalmazást lerajzolhatjuk, és a hagyományos képfájlokkal ellentétben a mockupkészítő eszközök által biztosított interakcióknak köszönhetően akár ki is próbálhatjuk.
  • Az ábra felett eszmét cserélhetünk másokkal, akár a megrendelővel, akár más tervező/fejlesztő kollégákkal. Amikor mindkét fél látja, amiről beszélnek, sokkal fókuszáltabb és hatékonyabb tud lenni a megbeszélés. Ha valakinek ötlete van, azt sokkal gyorsabban át lehet vezetni egy statikus ábrán, mint egy élő kódon.
  • Az ábra mellé villámgyorsan feljegyezhetjük a legjobb ötleteinket (pl. “A Mentés működjön Ctrl+S-re is.”), ami sokkal gyorsabb, mint dokumentációt írni, arról nem is beszélve, hogy egy rövid feljegyzést sokkal valószínűbb, hogy elolvas az implementációt végző fejlesztő.
  • A mockup alapján szinte mindenki, a grafikus, a sitebuilder, a fejlesztő azonnal el tud kezdeni dolgozni és még a megrendelő is látja, hogy halad a projekt.
  • Egyes eszközök kódvázat is tudnak generálni az ábrából, ami talán még használható kiindulópont is lehet a fejlesztés során.

Összességében azt tapasztaltuk, hogy a mockupok egyértelműbbé teszik mindenki életét, és bár látszólag plusz munkát igényelnek, a félreértések megszűntetésével végül spórolhatunk velük.

Szerintem teljesen mindegy, hogy milyen eszközzel készülnek a mockupok, a lényeg, hogy a rajzolás ne igényeljen több időt, mint majd az implementáció. Ennek fényében én sokáig papíron mockupoltam, de ma már vannak egészen hatékony eszközök.

Balsamiq Mockups

A Balsamiq egy Adobe Air-re épülő, kifejezetten statikus mockup készítésére tervezett alkalmazás. A használata pofonegyszerű, talán ennek köszönhetően vált a legelterjedtebb eszközzé ezen a piacon. A Balsamiq nem ingyenes, de 79 dollárt simán megér, mi is ezt használjuk már évek óta.

Ami tetszik benne:

  • Bármilyen alkalmazást megtervezhetünk benne, legyen az desktop, webes vagy mobil app:

balsamiq-components

  • A Balsamiq már annyira elterjedt, hogy kis keresgéléssel kész template-eket találhatunk a neten, például akár Windows Phone vagy Windows 8 fejlesztéshez.
  • Ahogy a fenti ábrán is látszik, a beépített vezérlők kifejezetten rondák (bár az újabb Balsamiq verzióban már “szép” skint is lehet rájuk húzni), ami azért nagyon praktikus, mert egy megbeszélés során a dizájn nem vonja el a figyelmet a lényegről, ami mockupok esetén a funkció, a layout és a navigáció. Aki találkozott már olyan ügyféllel, aki 2-3 órát képes volt elfilózni azon, hogy egy-egy ikon mennyire felismerhető, az tudja, hogy miért preferálom a ronda mockupot.
  • Az ábrák képesek minimális interakcióra, ugyanis valamennyi vezérlő kattintható és a kattintás hatására képes elnavigálni minket egy másik oldalra. Egy popup ablakot ennek megfelelően úgy rajzolunk, hogy duplikáljuk a teljes ábrát, majd a másolatra rárajzoljuk a felugró ablakot. Ez ugyan plusz munka, de szinte mindent kipróbálhatóvá tesz.
  • A vezérlők újrafelhasználható egységekbe csomagolhatók, így például egy menüt, vagy egy master page-et elég egyszer megrajzolnunk és egy helyen karbantartanunk.
  • A Balsamiq-nak van teljes képernyős vetítő üzemmódja, ami egyeztetéseken nagyon praktikus szokott lenni.
  • Az ábrákat képes PDF dokumentumba exportálni, ráadásul úgy, hogy kattinthatóak maradnak, tehát egy sima PDF olvasóval kipróbálhatóvá válik a mockup.

Néhány tanács azoknak, akik most kezdenek a Balsamiq megismeréséhez:

  • Vásárlás előtt próbáld ki a szoftvert, van belőle trial és böngészőben futtatható próba változat is.
  • Nézd végig a vezérlőket, hiszen nincs bosszantóbb annál, mint amikor az ember megrajzol egy összetettebb UI elemet, azután pedig kiderül, hogy készen is behúzhatta volna az eszköztárról.
  • Mielőtt nagyobb rajzolásba fogsz, keress a neten kész template-eket, például a MockupsToGo oldalán jó adag található.
  • A Balsamiq használata egyszerű, hamar rá lehet érezni, mégis azt javaslom, hogy fusd végig a dokumentációt, megéri. Sőt, ha van 2 órád, végigolvasni is megéri. Az újrafelhasználható komponensek (azaz Symbols) használata talán nem teljesen magától értetődő, de arról is van doksi.
  • A gyorsbillentyűk használata sokat dobhat a tempón.
  • A fájlnevekhez már az elején találj ki egy elnevezési konvenciót. Ez azért fontos, hogy az oldalak közötti linkelés tisztán fájlnév alapján megy (nincs projekt fájl), és ha átnevezel egy fájlt a diszken, nem fognak működni a rá mutató linkek.

Honlap: http://balsamiq.com

Infragistics Indigo Studio

Az Indigo Studio egy pár hete megjelent új eszköz, ami a Balsamiq monopóliumát igyekszik megdönteni az alábbiakkal:

  • Szebb, élethűbb mockupok készíthetők vele (bár szerintem ez nem előny).
  • Képes összetettebb interakciókra és animációkra.
  • Tud Balsamiq fájlt importálni (ez mekkora ötlet ;-).
  • A V1 verzió ingyenes és az is marad, majd csak annak kell fizetni, aki a V2 verziót akarja használni. Ez egy érdekes megoldás arra, hogy egy új termék betörjön a piacra (még érdekesebb lenne, ha a letöltés egyszerűbb lenne).

Az első ismerkedéshez készítettek egy 6 részes videó sorozatot, szerintem azzal érdemes kezdeni.

Mivel futó projektjeinkben nem akarunk váltani, ezért még nem ástam bele magam az Indigo Studio használatába, de majd a következő projekt előtt megnézem. Van már vele valakinek gyakorlati tapasztalata?

Visual Studio 2012

A VS 2012 egyik rejtett szépsége, hogy beépít a PowerPointba egy Storyboarding nevű fület, amely olyan elemeket tartalmaz, amiket akár mockup rajzolásra is használhatunk. Azért “akár”, mert ahogy a neve is mutatja, itt nem kifejezetten a UI a fontos, hanem a felhasználáshoz kapcsolódó sztori.

powerpoint-storyboard-shapes

A panel alján található Find more Storyboard Shapes online link a Visual Studio Gallery Storyboard Shapes kategóriájába visz, ahonnan további rajzelemeket tölthetünk le. Ez a kategória egyelőre nem tartalmaz sok elemet, de azért vannak már használhatók, természetesen némelyik fizetős. Itt van például a Windows8Templates:

Windows8Templates-Storyboard-Shapes-Capture1

A PowerPoint óriási előnye, hogy alig kell tanulni a használatát, ráadásul minden gépen elérhető. Ha bővülne a közösségi kínálat, gyorsan nagyon használhatóvá válna.

Pár bevezető link:

 

Ti szoktatok mockupolni, és ha igen, milyen eszközt használtok mockup elkészítésére?

 

Meghalt a BIDS, éljen az SSDT BI!

Az SQL Server csapat tegnap bejelentette, hogy letölthető a Visual Studiohoz az a kiegészítés, aminek segítségével Reporting, Analysis és Integration Services projekteket készíthetünk a 2012-es verzióban.

ssdt-bi

A korábban Business Intelligence Development Studio néven futó csomag mostantól SQL Server Data Tools – Business Intelligence (SSDT BI) néven érhető el, és mindenféle upgrade/downgrade nélkül képes kezelni a VS 2010-ben készült projekteket, tehát immár nem szükséges csak emiatt telepítenünk a Studio korábbi verzióját.

A bejelentés: http://blogs.msdn.com/b/sqlrsteamblog/archive/2013/03/06/sql-server-data-tools-business-intelligence-for-visual-studio-2012-released-online.aspx

Letöltés (782 MB): http://www.microsoft.com/en-us/download/details.aspx?id=36843

 

Technorati-címkék: ,

Biztonsági fejlesztések az ASP.NET 4.5-ben

Az ASP.NET számos funkcióját már kezdettől fogva a biztonsági szempontok szem előtt tartásával tervezték, – lásd például a ViewState védelmét – ez a kezdet azonban nem tegnap volt. A funkciók többsége utoljára a .NET 2.0-ban változott komolyabban és annak is már pár nap híján 7 éve, márpedig a biztonság alapjául szolgáló kriptográfia felett pedig ennyi év alatt könnyen eljárhat az idő. A másik probléma a kriptográfiával, hogy tudni kell helyesen használni, ami viszont nem mindig magától értetődő, és ez könnyen óriási hibákhoz vezethet (lásd MS10-070).

Ezen elvektől vezérelve az ASP.NET 4.5-ben jelentős változásokat vezettek be a biztonsági szolgáltatásokban, melyekről a .NET Web Development and Tools Blogon az elmúlt napokban Levi Broderick egy kiváló háromrészes sorozatot publikált Cryptographic Improvements in ASP.NET 4.5 címmel:

  1. Background regarding the use of cryptography in ASP.NET 4.
  2. Changes that were introduced in ASP.NET 4.5.
  3. Usage notes and miscellaneous Q&A.

Mindenkinek javaslom a teljes cikkek végigolvasását, nem zavaróan hosszúak, de azért röviden összefoglalom a lényeget:

  • Megnövelték a machine key entrópiáját, biztonságosabbá tették a használatát és újabb alkalmazás izolációs lehetőségeket vezettek be.
  • Szétválasztották a machine key felhasználási területeit (purpose), így ha az egyik helyen (például ScriptResource.axd) később hibát találnak, az nem veszélyeztet másik helyeket (például ViewState).
  • Új MachineKey.Protect és MachineKey.Unprotect függvények, ahol megadható a felhasználási terület, valamint egyszerre titkosít és MAC-kel. Egyúttal a korábbi Encode és Decode függvények deprecated-dé váltak.

Mindez persze nagyon mélyen érinti az ASP.NET számos területét, ami kompatibilitási problémákhoz vezethet. A problémák minimalizálása érdekében a fejlesztő csapat minden felhasználási területre egyedileg meghatározta, hogy alapértelmezés szerint a régivel kompatibilis, vagy az új rendszer szerint működik-e ASP.NET 4.5 esetén. Ezek gyönyörűen le vannak írva a sorozat 2. és a 3. részében az ide kapcsolódó web.config beállításokkal együtt, érdemes őket átnézni.

Ide kapcsolódó hír, hogy a Windows Azure Web Site-ok már ASP.NET 4.5-ön mennek, ami ugye in-place upgrade!

 

Technorati-címkék: ,

Alkalmazásfejlesztés Windows RT tableten

Most, hogy hivatalosan is megjelent a Windows 8 és elérhetővé váltak a Windows RT-t futtató tabletek, végre nem csak az emulátoron próbálhatjuk ki az alkalmazásainkat, hanem valódi hardveren is. Ilyenkor persze azonnal felmerül a kérdés, hogyan kell tableten fejleszteni?

A legelső, amit érdemes tudnunk, hogy a Visual Studio nem fut ARM-os eszközön, hanem csak x86/x64 platformon. Helyette a Remote Tools for Visual Studio 2012-t kell letöltenünk és elindítanunk az eszközön. Ne akadjunk fenn azon, hogy egyáltalán nem tűnik Metrós alkalmazásnak, fog működni.

Térjünk vissza a Visual Studiohoz és az alkalmazás indításakor válasszuk a Remote Machine opciót:

remote-machine

Innentől kezdve szinte elrontani sem lehet: varázsló, távoli gép megadása, tűzfal nyitása, fejlesztői licenc igénylése stb.

Hasonlóan egyszerűen működik a távoli tesztelés és a profilozás is, melyekről bővebben Jason Zander cikkében olvashatunk.

 

Technorati-címkék: ,,