Windows Azure SDK 1.3 – wstęp

Udostępnij na: Facebook

Autor: Piotr Zieliński

Opublikowano: 2010-12-13

Wymagania

  • System operacyjny
    Najnowsze  SDK dostępne jest wersji 64- i 32-bitowej. Minimalne wymagania dotyczące systemu to  Windows 7, Windows Vista Service Pack 2 lub  Windows Server 2008 SP2.
  • .NET Framework
    Najnowsze SDK wspiera .NET Framework 3.5 SP1 oraz wersję 4.0.
  • Baza danych
    Aby móc wykorzystać emulator Azure Storage, należy zainstalować SQL Server 2005 Express lub SQL Server 2008 Express.

Co nowego?

Azure 1.3 wprowadza kilka istotnych zmian:

  • Virtual Machine (VM) Role
  • Dostęp ze zdalnego pulpitu
  • Windows Azure Connect
  • Extra Small Instance – „mała” instancja, przeznaczona dla mniej skomplikowanych aplikacji, dzięki czemu można zredukować koszty utrzymania konta Azure w przypadku niskiego ruchu.
  • Nowy panel zarządzania – portal Windows Azure został całkowicie przebudowany – teraz oparty jest na Silverlight.
  • Windows Server 2008 R2 – możliwe jest uruchamianie ról na systemie kompatybilnym z Windows Server 2008 R2.
  • Możliwość wykonywania skryptów startup o podwyższonych pozwoleniach.
  • Role web w pełni wykorzystują IIS – hosting niczym już się nie różni od usług hostowanych na klasycznych systemach Windows.
  • Aktualizacja w emulatorach. Ponadto nazwa Development Fabric  została zmieniona na compute emulator, z kolei Development Storage na storage emulator.
  • Przykłady nie stanowią już części SDK i dostępne są teraz online.

Aktualizacja projektu

Aktualizacja już istniejących projektów Azure do wersji 1.3 jest automatyczna i nie powinna powodować problemów. Po włączeniu starego projektu pojawi się po prostu kreator konwersji:

Struktura pliku csdef (definicja usługi)

Wersja 1.3 wprowadza kilka zmian do struktury pliku ServiceDefinition.csdef:

  • Moduły
    Pierwszą nowością jest element XML imports, w którym określamy moduły do zaimportowania, np.:

    <WebRole name="WebRole2">
           <Imports>
                  <Import moduleName="Diagnostics"/>     
           </Imports>
    </WebRole>

    Atrybut moduleName w tej chwili może przyjmować następujące wartości:
    RemoteAccess – moduł odpowiedzialny za zdalny pulpit,
    RemoteForwarder – również potrzebne w przypadku zdalnego pulpitu,
    Diagnostics – diagnostyka,
    Connect – Windows Azure Connect.

  • Runtime, Enviroment, Variable
    Runtime jest elementem nadrzędnym dla Enviroment, który z kolei służy do definiowania zmiennych środowiskowych dla roli:

    <WebRole name="WebRole1">
           <Runtime>
                  <Environment>
                         <Variable name="NazwaZmiennej" value="Wartosc" />
                  </Environment>
           </Runtime>    
    </WebRole>

  • Site, Sites
    Można hostować kilka aplikacji webowych w jednej roli. Służy do tego element Site:

    <Site name="nazwa>" physicalDirectory="sciezka">
           <Bindings>
                  <Binding name="nazwa endpointName="endpoint hostHeader="url" />
           </Bindings>
    </Site>

  • Startup, task
    Możliwe jest wykonanie skryptów (o podwyższonych przywilejach) w momencie uruchamiania roli. Służą do tego elementy startup oraz task:

    <WebRole>
           <Startup>
                 <Task commandLine="skrypt.cmd" executionContext="elevated" taskType="simple" />
         </Startup>
    </WebRole>


          

Piotr Zieliński

Absolwent informatyki o specjalizacji inżynieria oprogramowania Uniwersytetu Zielonogórskiego. Posiada szereg certyfikatów z technologii Microsoft (MCP, MCTS, MCPD). W 2011 roku wyróżniony nagrodą MVP w kategorii Visual C#. Aktualnie pracuje w General Electric pisząc oprogramowanie wykorzystywane w monitorowaniu transformatorów . Platformę .NET zna od wersji 1.1 – wcześniej wykorzystywał głównie MFC oraz C++ Builder. Interesuje się wieloma technologiami m.in. ASP.NET MVC, WPF, PRISM, WCF, WCF Data Services, WWF, Azure, Silverlight, WCF RIA Services, XNA, Entity Framework, nHibernate. Oprócz czystych technologii zajmuje się również wzorcami projektowymi, bezpieczeństwem aplikacji webowych i testowaniem oprogramowania od strony programisty. W wolnych chwilach prowadzi blog o .NET i tzw. patterns & practices.