2011. november havi bejegyzések

Adobe: Nincs több Flash Player, irány a HTML5!

Danny Winokur, az Adobe alelnöke nemrég bejelentette, hogy felhagynak a Flash Player fejlesztésével mobil eszközökre:

“Our future work with Flash on mobile devices will be focused on enabling Flash developers to package native apps with Adobe AIR for all the major app stores.  We will no longer continue to develop Flash Player in the browser to work with new mobile device configurations (chipset, browser, OS version, etc.)”

És a magyarázat:

“HTML5 is now universally supported on major mobile devices, in some cases exclusively.  This makes HTML5 the best solution for creating and deploying content in the browser across mobile platforms. We are excited about this, and will continue our work with key players in the HTML community, including Google, Apple, Microsoft and RIM, to drive HTML5 innovation they can use to advance their mobile browsers.”

Persze desktopon a helyzet változatlan, készül a Flash Player 12 és mindenki “super excited”.

Szerintetek ez mit jelent?

 

Technorati-címkék: ,,,,

Projektenként eltérő kódformázási beállítások a Studioban

A Visual Studio egyik kiváló szolgáltatása, hogy segít nekünk megformázni a forráskódot, mégpedig olyanra, ahogyan mi szeretnénk. Irány a Tools > Options > Text Editor beállítások, ahol kedvünkre kapcsolgathatunk (katt a teljes képért):

Visual Studio Text Editor beállítások

Az így összeállított beállításainkat exportálhatjuk, majd később importálhatjuk más gépen vagy éppen megoszthatjuk másokkal. Ehhez van egy Import and Export Settings varázsló a Tools menüben:

Import and Export Settings varázsló

A bökkenő ezzel csak az, hogy ez felhasználónkénti beállítás, és nem projektenkénti. Azaz ha több projekten is dolgozunk, ahol más a kódformázási standard, akkor bajban vagyunk, mert a beállítások hozzánk kötődnek és nem az egyes projektekhez.

Nem vagyok egyedül ezzel a problémával, már más is felvetette, és itt lehet szavazni, hogy megoldódjon a következő Studioban: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2089769-store-per-project-source-formatting-settings-with-

Szerencsére a devenv.exe-nek van egy /ResetSettings parancssori kapcsolója, ami után megadhatjuk a használni kívánt és korábban az export varázslóval létrehozott .vsssettings fájl nevét és elérési útját. Nincs más hátra, minden különböző beállításhoz létre kell hozni egy-egy önálló parancsikont:

Visual Studio indítása ResetSettings kapcsolóval

A dolog működőképes, de nem olyan kényelmes, mint ahogy szeretnénk:

  • A Studio lassabban fog elindulni, gyakorlatilag a háttérben lenyomja az import varázslót. Ez nem gond, ha naponta egyszer indítjuk el, de ha gyakran, akkor zavarni fog.
  • A saját parancsikonnal elindított Studio beállításai lesznek “A Studio beállítások” a gépen (pontosabban az aktuális felhasználónál), azaz ha utána bármikor, bárhogy (Start menüből, .sln fájlra kattintva) indítunk egy Studiot, akkor az utoljára importált beállítások lesznek érvényben. Nincs automatikus visszaállás a gyári értékekre.
  • Le kell szokni arról, hogy az .sln fájlra kattintva nyitjuk meg a forráskódot, hiszen akkor az utoljára importált beállítások lesznek érvényben. Tehát a kötelező ügymenet ezek után mindig az, hogy először elindítjuk a Studiot a  projekt saját parancsikonjával, majd a menüből megnyitjuk a projekthez tartozó solutiont.

Tudtok jobb megoldást?

 

Technorati-címkék:

Ajax hívásnál 401 Unauthorized

Érdekes hibával találkoztam a héten. Adott egy jQuery-vel meghívott WebMethod, ahonnan a HTTP kérések kiválóan kimennek, de a válasz mindig ez:

{ "Message":"Authentication failed.",
  "StackTrace":null,
  "ExceptionType":"System.InvalidOperationException" }

Különlegességként a válaszban még érkezik egy jsonerror: true fejléc sor is.

Amit ilyenkor célszerű ellenőrizni:

  • Jogosultságok a web.configban ne tiltsák a hozzáférést.
  • Ha esetleg kell Session is, akkor a szerver oldalon a WebMethod attribútumnál legyen beállítva az EnableSession=true tulajdonság.
  • Ha a szerver oldali metódus ASPX-ben van, akkor legyen static.
  • És a ráadás: az ASMX fájlban lévő @WebService direktíva Class tulajdonsága az .ASMX.CS fájlban lévő névtérre és osztályra mutasson. Ez utóbbi azért huncut, mert a Solution Explorerben az .asmx fájlra kattintva az .asmx.cs nyílik meg, nincs fordítási hibaüzenet és a futás idejű hibából sem derül ki, hogy ez a gond.

 

Technorati-címkék: ,,,,

HTML5 média formátumok böngésző támogatása

Az idei Web Konferencián Dávid Zoli barátom tartott egy remek előadást a HTML5 játékfejlesztésről JavaScript reneszánsz címmel, amelynek a felvétele egyébként megtekinthető a devPortal TV oldalán.

Az előadás utáni kérdések között merült fel, hogy tényleg nincs egy olyan audio formátum, amit minden böngésző támogatna? A HTML5 támogatja az AAC, MP3 és Ogg Vorbis audio formátumokat, illetve az Ogg Theora, WebM és MPEG-4 video formátumokat, de hogy állnak ezzel a böngészők?

A novemberi MSDN magazin egyik cikke pont ezzel a kérdéssel foglalkozik és egy az aktuális állapotot bemutató táblázat is szerepel benne:

Videó formátum Audió formátum
Böngésző

Ogg Theora

H.264

VP8 (WebM)

Ogg Vorbis

MP3

WAV

IE Telepíthető 9.0 Telepíthető +
Firefox 3.5 4.0 + +
Chrome 3.0 6.0 + + +
Safari Telepíthető 3 Telepíthető + +
Opera 10.50 10.60 + +

 

Technorati-címkék: ,,,,,

Orchard előadássorozat és letöltések

orchard-logoA WebMatrix Klub színeiben az utóbbi hónapban négy előadást készítettem az Orchard testreszabásával kapcsolatban, melyek elérhetőek az alábbi oldalakon:

  1. Az Orchard keretrendszer telepítése
  2. Tartalomkezelési lehetőségek
  3. Webhely navigáció és oldalelrendezések
  4. Webmesteri feladatok

A nagy igazság az Orcharddal kapcsolatban, hogy egy igen modern keretrendszer, jól kitalált modularitással, viszont kevés beépített gyári modullal. Gyakorlatilag a legalapvetőbb feladatokat is csak úgy tudjuk megoldani, ha az arra szolgáló modulokat telepítjük az online galériából. Ez a valóságban nem olyan szörnyű, mint ahogy itt hangzik, mert az Orchard csapat nagyon sok modult publikál, melyeket így a keretrendszertől függetlenül lehet fejleszteni, javítgatni.

Az előadások során nagyon sok modult és kiegészítőt használtunk, ezeket – és még néhányat –  itt most referenciaként csokorba gyűjtöm:

Telepítés

Tartalomkezelés

Mezőtípusok:

Tartalomrészek:

Keresés:

Továbbiak:

Navigáció és oldalelrendezések

Rétegek:

Webmesteri feladatok

Felhasználókezelés:

Levélküldés:

SEO:

Beállítások és tartalom mentése és visszatöltése:

Ez persze nem a teljes lista, hiszen jelenleg a galériában több, mint 500 csomag érhető el, melyek közül az Orchard Team által készítettekre mindenképp érdemes odafigyelni.

Ezeken kívül ti találtatok még hasznos modulokat? Esetleg készített már valaki saját modult?

 

Technorati-címkék: ,

IIS AppPool kontra SQL Server Agent

Írtam már párszor, hogy nagy híve vagyok az IIS 7-ben bevezetett ApplicationPoolIdentity-nek, éppen ezért mindig elszomorít, amikor valahol kiderül, hogy nem lehet használni. Legutóbb az SQL Server Agentnél futottunk bele egy problémába.

Van egy webalkalmazásunk, ami AppPoolIdentity-vel kapcsolódik az SQL Serverhez. Mivel az alkalmazás SQL Server Agent jobokat kezel, ezért a fiók annak rendje és módja szerint megkapta az SQLAgentUserRole és az SQLAgentReaderRole szerepköröket az msdb adatbázisban. Ennek ellenére az sp_add_job tárolt eljárás az alábbi hibával elszáll:

Msg 14234, Level 16, State 1, Line 3
The specified ‘@owner_login_name’ is invalid (valid values are returned by sp_helplogins [excluding Windows NT groups]).

Ilyenkor az ember jóhiszeműen követi az utasításokat, lekérdezi a helyes értékeket az sp_helplogins meghívásával és szomorúan tapasztalja, hogy a kérdéses fiók szerepel a listában. WTF?

Semmi gond, hiszen az sp_add_job kódját könnyen meg lehet találni Management Studioval, amiből rövid bogarászás után kiderül, hogy ez a tárolt eljárás meghívja az sp_verify_job SP-t és valójában az dobja a hibát ennél a sornál:

IF (@owner_sid IS NULL) OR (EXISTS (SELECT *
                                 FROM master.dbo.syslogins
                                 WHERE (sid = @owner_sid)
                                   AND (isntgroup <> 0)))
BEGIN
  SELECT @res_valid_range = FORMATMESSAGE(14203)
  RAISERROR(14234, -1, -1, '@owner_login_name', @res_valid_range)
  RETURN(1) -- Failure
END

Innen már nem kell messzire menni: kérdezzük le a master.dbo.syslogins tartalmát és látni fogjuk, hogy a kérdéses sorban az isntgroup értéke bizony 1. Deadlock Mérges

Jobb ötlet híján feldobtam bugként a Connectre, ha ez szerinted is probléma, szavazz rá:

Microsoft Connect: IIS ApplicationPoolIdentity cannot be a SQL Agent job owner