Tales from under the Mountain

May 2010 - Posts

Doing PHP in Tallinn, Estonia

I recently had the immense pleasure of presenting Microsoft’s PHP story in Tallinn, Estonia for around 2.5 hours. Since this blog post is also for the people who attended, it wil be in English (most of my other blog posts are in Serbian).

In case you didn’t know, Microsoft has done a lot in the past 4 years in terms of getting PHP running smoothly and speedely on Windows. This is not just to say that we wanted to improve the dev/test cycle of developing PHP apps, since Windows is used as a development operating system, but also the deployment part of the things. In order to do that, we implemented a lot of features in IIS 7.0 and onwards to that regard. The main one is FastCGI, an extension to the venerable CGI protocol, that allows the server to pool external processes, thus decreasing the cost of starting new PHP interpreter process, which on Windows is slow.

On top of that, we have developed a huge amount of stuff around PHP, like WinCache, the caching solution for PHP opcode, or the new SQL Server drive (currently in 2.0 development, you can get the CTP) to target SQL Server.

I have made the deck I presented available on my SkyDrive, and I would just like to provide several important links to all those who are interested in this topic.

That’s it from my side. Remember, make Web, not War. :)

Out.

B.D.

Posted: May 28 2010, 05:36 PM by blackdwarf | with 2 comment(s)
Filed under:
Web deploy je…čudo…

Ova priča će početi malo zaokolno. Kao što ste sigurno svesni, Microsoft je već nekoliko puta tokom (veoma intezivnog) testiranja Visual Studia 2010 objavio virtuelne mašine za testiranje proizvoda. Brian Keller je, međutim, izdao pravi dragulj, a to je jedna vrituelna mašina (u tri različita formata), sa sve podacima i napakovana do vrha svim mogućim softverom radi testiranja ALM mogućnosti VS2010 familijie proizvoda. Istu možete da skinete na ovom linku.

Gdin. Keller nije još uvek izdao refresh, a pošto svi znamo da se Visual Studio 2010 lako instaslira, odlučio sam da prosto napravim svoju kopiju ove mašine i da na nju instaliram RTM verzije svih potrebnih alata (uglavnom VS2010 Ultimate i TFS 2010).

Šok #1: TFS 2010 se deinstalira i instalira za oko 20-ak minuta!

Zaista za razliku od prethodne verzije (2008), TFS 2010 se deinstalirao dok sam rekao “keks”, a instalacija je trajala sveukupno 10 minuta. Jedan confg wizard posle instalacije, dobio sam kompletne podatke, pošto TFS 2010 sada konačno ima “upgrade” opciju koja radi savršeno.

Šok #2: web deployment zaista radi kako je reklamirano!

Naravno, da je sve prošlo kako treba, ne bi bilo ovog posta. Da bih se uverio da sve radi kako treba, pokrenuo sam Test Manager i pregledao postojeće testove za web aplikaciju koja se isporučuje uz ovu virtuelnu mašinu (radi oprobavanja svih novih funkcionalnosti, naravno).

Pokrenuo sam test, sve je lepo krenulo, do…recimo 2 koraka, kada mi je test runner javio da ne može da nađe link koji je potrebno da “pritisne” da bi se test nastavio na sledeći korak. Zbunjen, pogledao sam šta je došlo u instanci browser-a, i video samo prosto error stranu. Posle par pokušaja, shvatio sam da bi popravka tog web sajta, odnosno podešavanja, previše drugo trajala. Uostalom, isti taj projekat postoji i u source control sistemu, pa prema tome…krenuo sam ovako:

  1. Otvorio source control, i iz Main grane otvorio ceo solution.
  2. Lokalni build, ok, sve naizgled radi na development serveru.
  3. Pogledao podešavanja za publish/deploy za web projekte
  4. Napravio deployment package
  5. Napravio novi sajt u IIS-u, kliknuo desnim dugmetom na njega i rekao “Import application…”

I…novi sajt naravno radi. Jednu smicalicu kasnije, u kojoj sam prosto promenio binding-e dva sajta, svi testovi prolaze.

Koristite normalne alate

Naravno, cela pouka posta je u tome da se koriste normalni alati. Odnosno, koristite sisteme za verzioniranje koda i ako radite sa web aplikacijama, koristite web deployment alate koji su došli sa Visual Studiom 2010 pošto zaista olakšavaju život.

Out.

B.D.

Visual Studio 2010 Launch post-event, erratas et al.

Kao što svi verovatno znate, i kao što vam vaše MSDN pretplate mogu reći, Visual Studio 2010 je lansiranj 12. Aprila 2010. godine širom sveta. U Beogradu smo imali zvanični Launch događaj 27. Aprila 2010. godine, pa tim povodom želim da obavestim ljude da su prezentacije dostupne preko zvaničnog sajta VS2010 Launch-a. Ukoliko biste drugačiji pregled, iste možete da preuzmete i sa mog SkyDrive-a.

Slike i video fajlovi će biti dodati uskoro, dobićete obaveštenje blagovremeno.

Errata

Ko radi taj i greši, a u najboljem maniru izdavaštava želeo bih da dodam nekoliko ispravki, odnosno komentara na pitanja koja sam dobio tokom svojih sesija.

  1. RedirectPermenant() metod koji sam pominjao da je nov u ASP.NET Web forms 4 šalje HTTP zahtev 301, “Moved”, ne 302. 302 status kod označava standardnu redirekciju, odnosno šalje se kada server “nađe” resurs. 301 klijentu kaže da se resurs permanetno pomerio sa starog URL-a, te da stoga uvek taj resurs treba da traži na novom. Wikipedia vam je primarni resurs ako želite da se upoznate sa ostatkom HTTP status kodova.
  2. Web routing engine koji je deo .NET sveta još od 3.5 SP1 izdanja je sasvim sposoban, da se tako izrazim, da podnese i URL-ove koji su sa srpskim dijakriticima, odnosno u ćirilici. Ovo je imalo smisla i kada se malo bolje razmisli, jer se “šema” URL-a koji želimo da mapiramo uskladištena kao string, za kojeg znamo da je po default-u Unicode enkodovan. Naravno, ostaje da koristite i adekvatni URL, kao i da u RouteData.Values kolekciji ključ koristite u onom enkokdingu u kom ste definisali i šemu URL-a.
  3. TFS2010 “Basic” mod može da se instalira i na serveru. Ovo nisam napomenuo, odnosno nisam bio dovoljno jasan. Međutim, ideja je da ako već želite da imate dedikovan server za TFS, onda ne postoji razlog zašto ne biste instalirali i Reporting Services, odnosno SharePoint (WSS) i imali pune pogodnosti koje TFS donosi.

 

Out.

B.D.

Posted: May 01 2010, 10:45 AM by blackdwarf | with 1 comment(s)
Filed under: