19 listopada 2009, 01:13 dario Komentarze (0)

Mini Static Content Delivery - paczki i konfiguracja

W poprzednim poście poświęconym Mscd opisałem możliwości. Teraz zajmę się sposobem tworzenia paczek. Tak jak już wspominałem Paczki dają możliwość upakowania wielu plików jednego rodzaju i wysłanie zawartości w odpowiedzi na jedno żądanie. Paczka do działania nie potrzebuje żadnej konfiguracji. Wystarczy utworzyć katalog i wgrać do niego pliki. Mamy do dyspozycji dwa rodzaje paczek. Paczki z kontentem JavaScript (pliki *.js) oraz Stylesheet aka styles (pliki *.css).

Tworzenie paczki

Zakładając, że stworzymy paczkę styli należy w katalogu głównym naszej aplikacji serwującej kontent statyczny utworzyć katalog "styles". Każdy katalog znajdujący się w styles będzie paczką, która może zawierać zero lub więcej plików. Paczkę ze skryptami robi się analogicznie, przyczym katalog z takimi paczkami nazywamy "scripts". Przykład:

  • styles
  • ....admin
  • ....portal

Powyższy układ katalogu definiuje nam dwie paczki dla cssów. Paczkę admin co sugeruje, że tu będą się znajdować pliki formatujące wyświetlanie części administracyjnej oraz paczkę portal, czyli style dla stron portalu. :)

Jak używać?

Nie pisałem o tym wcześniej, ale w projekcie klienckim, czyli takim, który korzysta z usług Mscd korzystamy z metod, które dostarcza "Softio.Mscd.Client". Biblioteczka ta definiuje szereg metod, które pozwalają nam w zautomatyzowany sposób odwoływać się kodzie HTML po zasoby wystawiane przez Mscd. Wszystkie metody są zaimplementowane w klasie StaticFile. Przykładowe użycia są dostepne w projekcie Mscd.Example, który można pobrać z CodePlex.

Metody StylesPackage/ScriptsPackage

Metoda ta tworzy link odwołujący się do paczki o podanej nazwie.Na przykład:

<link
    type="stylesheet"
    type="text/css"
    media="projection, screen"
    href="<%=StaticFile.StylesPackage("portal") %>" />

Oczywiście lepiej mieć metodę, która nam zbuduje tag LINK i wtedy wywołanie wyglądało by tak:

<%=Html.StyleSheet(StaticFile.StylesPackage("portal")) %>

Wynik działania:

<link
    href="http://static.softio.pl/styles/Site_Default_vFF05165E.css"
    media="all"
    rel="stylesheet"
    type="text/css" />

Wywołanie dla skryptów działa analogicznie.

Metoda Href

Metoda Href pozwala na odwołanie się do dowolnego (pojedynczego) pliku, który jest wystawiany przez Mscd oraz nie znajduje się w paczce. Bardzo dobrze sprawdza się do obrazków. Odwołanie takie daje nam buforowanie i wersjonowanie, o czym już wcześniej pisałem. Przykład:

<%=Html.Image(StaticFile.Href("images/bizpark.png"), "Softio jest uczestnikiem programu Microsoft BizPark") %>

Wynik działania metody:

<img src="http://static.softio.pl/images/bizpark_vC45B22D2.png" alt="Softio jest uczestnikiem programu Microsoft BizPark" title="Softio jest uczestnikiem programu Microsoft BizPark" />

Konfiguracja Mscd.Server

Po stronie projektu serwującego kontent mamy możliwość ustawienia kilku parametrów. Poniżej spis wszystkich możliwości, które definiuje się w pliku web.config w sekcji appSettings.

MSCD.ExpiredInDays (domyślnie 0) Określa ilość czasu (w dniach) ile kontent ma pozostać w buforze przeglądarki.

MSCD.ContentEncoding (domyślnie UTF8) Określa kodowanie plików js i css.

MSCD.AllowedFileTypes (domyślnie: .CSS, .JS, .HTML, .HTM, .PNG, .JPEG, .JPG, .GIF, .BMP, .SWF, .TXT) Określa rozszerzenia plików, które są obsługiwane przez Mscd. W innym przypadku plik będzie wystawiany standardowo przez IIS.

MSCD.CompressedFileTypes (domyślnie: .CSS, .HTML, .HTM) Określa rozszerzenia plików, które będą kompresowane (GZip lub Deflate).

MSCD.RootDirectory (domyślnie: pusty_string) Określa nazwę katalogu, gdzie znajdują się katalogi styles i scripts. Dzięki temu można przenieść je z katalogu głównego w inne miejsce, na przykład: /packages.

Konfiguracja Mscd.Client

Po stronie HTMLa,  gdzie wstawiamy kod odwołujący się do zasobów mamy następujące możliwości konfiguracji:

MSCD.ResourcesDirectory (wymagane) Określa katalog fizyczny na dysku, gdzie znajdują się zasoby udostępniane przez Mscd. Potrzebne jest to do kontrolowania zmiany wersji. Jeśli aplikacja Mscd jest podkatalogiem dla aplikacji głównej (bardzo często tak jest w przypadku usług hostingowych) lub Mscd.Server jest tą samą aplikacją co aplikacja główna to można podać ścieżkę virtualną, na przykład "~/static", która zostanie zamieniona wewnątrz na fizyczną.

MSCD.StaticSiteAddress (wymagane) Adres aplikacji Mscd, na przykład: http://static.softio.pl. Ciekawostką jest to iż  adres także można podać jako adres virtualny, na przykład: ~/static. Takie użycie ma sens, kiedy aplikacja Mscd nie ma osobnej domeny, a jest jednie katalogiem virtualnym na tym samym serwerze co aplikacja główna.

MSCD.StaticSiteSecuredChannel (nie wymagane, domyślnie: false) Określa czy dostęp do aplikacji Mscd jest kanałem szyfrowanym (https).

Pełny opis API na CodePlex już niedługo, a w następnym poście o Mscd - instalacja.

Tagi:

Projekty

Komentarze zablokowane

O autorze

Dariusz Gil - projektant i programista aplikacji internetowych budowanych na platformie Microsoft w technologii ASP.NET (C#) oraz MS SQL Server. Obecnie właściciel (narazie :)) jednoosobowej firmy Softio.

Filtruj używając APML