Development z Zapomnianej Strony

..:: Paweł Hofman .NET Portal ::..

VisualSVN oprócz wersji klienta SVN, od niedawna udostępnia również instalator, który pomaga w łatwy i przyjemny sposób udostępniać usługę SVN-serwer na własnych serwerach developerskich poprzez HTTP/HTTPS. Razem z binariami do zarządzania repozytorium, instalowany jest serwer Apache (lub to co jest z niego wymagane) oraz autorski panel administracyjny. Poprzez niego zakładane są repozytoria, przypisywane uprawnienia użytkowników oraz generowane (przypinane) certyfikaty SSL dla połączeń HTTPS.

To co ucieszyć może domorosłych programistów i administratorów to fakt, iż nawet darmowa wersja pozwala na wykorzystanie go w pracach nad komercyjnymi produktami. Dodatkowym atutem jest fakt, iż bardzo łatwo integruje się z domeną Active Diretory.



Zadanie na dzisiaj: instalacja programu MediaGo na komputerze z systemem Windows XP SP3 PL, a dokładniej – próba instalacji pomimo błędu:

Installing Microsoft Windows Imaging Component
One or more features could not be installed. The installation has been stopped.
Click Cancel to exit.


Installing Microsoft Windows Imaging Component

Okazuje się, że Sony Ericsson przy pisaniu tego instalatora dał plamę na całej linii. Niezależnie od tego, co byśmy robili, instalacja zakończy się błędem w najmniej oczekiwanym momencie – podczas aktualizacji komponentu Windows Imaging. Można go również bezpośrednio pobrać tutaj i spróbować aktualizować samodzielnie.

Przy własnoręcznej próbie instalacji tego komponentu dowiemy się w końcu, gdzie tkwi błąd. Otóż w systemie jest już zainstalowana nowsza wersja (dokładniej, to o jakieś dwa lata) i jej nadpisanie nie jest dopuszczalne. Aby obejść ten problem należy wykonać trzy proste kroki:

  1. założyć nowy folder i przenieść do niego następujące pliki z katalogu C:\Windows\System32:

    windowscodecs.dll
    windowscodecsext.dll
    photometadatahandler.dll
    WMPhoto.dll
  2. ponownie uruchamiamy instalator MediaGo (tym razem wszystko się powiedzie)


    Installing MediaGo
  3. przywracamy przeniesione pliki w kroku (1) na ich właściwe miejsce w C:\Windows\System32, nadpisując te, które wgrał tam instalator.

Odtąd możemy cieszyć się naszą aplikacją i kopiować zdjęcia oraz wideo na telefon.



Najlepiej jest być na bakier z wszelkimi zasadami zdroworozsądkowymi. Dlatego też postaram się w skrócie opisać, w jaki sposób zwykłemu szarakowi (czytaj: użytkownikowi bez jakichkolwiek uprawnień w domenie) pozwolić logować się na głównym kontrolerze domeny z zainstalowanym Windows Server 2008. Większość administratorów uderzyła już w tym momencie głową w biurko, zastanawiając się nad celowością takiego postępowania… toteż nikt nie będzie przeszkadzał.

Do dzieła, a zatem:

  1. Na kontrolerze domeny w narzędziu Server Manger znajdujemy gałąź Default Domain Policy (najszybciej po ścieżce: Features\Group Policy Manager\Fores: <domena>\Domains\<domena>\Default Domain Policy)
  2. Otwieramy Group Policy Management Editor poprzez wybranie Edit z menu kontekstowego.
  3. Dalej, nawigujemy do tej części, która pozwala nadawać i odbierać uprawnienia użytkownikom: Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment.
  4. Na koniec zezwalamy użytkownikowi na logowanie w trybie Terminal Services (KB278433), poprzez dodanie tam całej grupy Remote Desktop Users.
  5. Aby jeszcze wszystko szybko weszło w życie, wymuszamy odświeżenie polis w domenie: gpupdate /force.
  6. I to wszystko. Użytkownik nie musi mieć nawet uprawnień logowania lokalnego.

Dodatkowo uwaga:
- firewall musi mieć dziurę na przychodzące połączenia od usługi “Remote Desktop
- sama usługa natomiast musi być włączona :)
- użytkownik, któremu pozwalamy na logowanie musi należeć do grupy “Remote Dektop Users”, ale to już chyba zbyt oczywiste.



Visual Studio 2008 jako narzędzie developerskie dla programistów Windows (czytaj .NET i nie tylko) plasuje się na pierwszej pozycji. Jednak pod względem rozszerzania i dostosowywania plasuje się daleko w tyle za swoim największym konkurentem Eclipse. Prawdopodobnie dlatego też Microsoft zrezygnował z opłat licencyjnych, wymaganych przy pisaniu dodatków jeszcze przy pierwszej wersji Visual Studio 2008 SDK.

Dlatego też chciałem dzisiaj pokazać kilka przykładów, jak Visual Studio możemy dostosowywać do swoich potrzeb (z użyciem lub bez SDK):

  1. Korzystając z dostępnych w sieci narzędzi, zmieniamy aktualny motyw (theme) tak, aby nie raził i nie męczył wzroku. Milutki generator znajdziemy tutaj

    Visual Studio Generated Template

     

  2. Grzebiąc w rejestrach systemu możemy włączyć wskaźnik po prawej stronie tekstu tak, aby linie tekstu nie były zbyt długie. Wyróżniona 21-a kolumna zapewni nas, że pisząc tak krótkie linie, otworzymy pliki z kodem źródłowym nawet na najstarszej DOS-owej maszynie.

    Uaktualniamy rejestr systemowy dodając następujący wpis typu tekstowego (string):

    [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Text Editor]
    Guides = RGB(128,0,0) 20


    (dowolnie dobieramy kolor oraz po przecinku za liczbą 20 wpisujemy dodatkowe wartości, jeśli jeden przewodnik to za mało)
    Visual Studio - przewodnik
  3. Piszemy własny wizualizator danych.

    Wizualizatory to to, co tygrysy lubią bardzo. Bardziej lubią chyba tylko pakiety (VS Packages), ale o tym za chwilę. Idea wizualizatorów polega na tym, iż pisząc własne programy często tworzymy własne struktury danych, które łatwiej przestawiałyby się graficznie. Podczas debugowania Visual Studio udostępnia nam zatem kopię wskazanego obiektu, który możemy własnoręcznie przetworzyć i pokazać na ekranie. Poniżej znajduje się przykład wizualizatora obiektów System.__ComObject z wyszczególnieniem interfejsów i metod implementowanych przez tego CRW (Callable Runtime Wrapper).

    Visual Studio - wizualizator
    Oznaczone odpowiednimi atrybutami assembly wgrywamy do katalogu:

    %MyDocuments%\Visual Studio 2008\Visualizers

  4. Kolejnym ciekawym rozszerzeniem jest możliwość dodawania własnych słów kluczowych, które zostaną rozpoznane w edytorze tekstu dla VisualC++. Dotyczy się to przede wszystkim plików z rozszerzeniami .h, .c, .cpp, jednak bardzo dobrze sprawdza się również po przypisaniu edytora Microsoft Visual C++ do rozszerzeń takich jak .asm, .cu, czy tym podobnych (Tools->Options->Text Editor->File Extensions).

    W poniższym pliku umieszczamy nowe słowa kluczowe w kolejnych linijkach, a po ponownym uruchomieniu Visual Studio od razu zauważymy efekty:

    c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\usertype.dat

  5. Na sam koniec deser. Gdy wymienione powyżej przykłady nie spełniają naszych wymagań, to zwracamy się w stronę pisania własnych rozszerzeń z w pełni funkcjonalną logiką. Co chcielibyśmy tym uzyskać, ot np.: aby z poziomu Visual Studio uaktualniały się wpisy w narzędziach do zarządzania błędami (ticket'y w wybranym trackerze) lub po prostu potrzebujemy dokujące okienko narzędziowe, które ściąga nowinki ze świata, przekonując pracodawcę, że jednak dzielnie kodujemy. Piszemy wtedy własny dodatek add-in lub VS Package wykorzystując w pełni możliwości oferowane przez SDK.

    Należą do nich m. in.:
    - własne edytory (lub zmiana istniejących)
    - okna narzędziowe (tool windows)
    - pliki pomocy
    - nowe języki programowania (wraz ze schematami budowania nowych projektów)
    - nowe rodzaje projektów (bądź dodawanie funkcji do istniejących, tj.: .csproj)
    - szablony i kreatorzy (templates & wizards)
    - dostawców usług (dostawcy listy błędów, zadań)


    Więcej informacji o pisaniu dodatków do Visual Studio zamieściłem w Samouczku.
    Jako działający przykład posłużyć może autorski projekt TytanNET.

 

Wytrwałych odsyłam do bloga Sary Ford, która do niedawna jeszcze żywo publikowała nowinki w stylu Tips&Tricks o Visual Studio oraz była autorką kilku książek o podobnie brzmiącym tytule.

Jako książkę z tej tematyki polecam (czym prawdopodobnie zadziwię niektórych) Inside Visual Studio .NET 2003 (tak 2003!), gdyż ona najdokładniej omawia sposób pisania add-inów oraz interakcję z tego poziomu z edytorami, plikami projektu i kodem źródłowym.

 

Wesołego kodowania!



Magiczny system Mac OS X zawsze wie lepiej, co chce zrobić użyszkodnik. Aby jednak wiedział lepiej możemy go poinstruować takimi oto skrótami:

rozruch z płyty CD/DVD C
rozruch z dysku twardego D
pokazanie dostępnych źródeł do bootowania OPT
uruchom z określonego dysku SCSI ID=# CMD-OPT-SHIFT-DELETE-#
uruchom z serwera sieciowego N
   
bezwarunkowy restart CTRL-CMD-POWER
bezwarunkowe zamknięcie systemu CTRL-CMD-OPT-POWER
   
zamknięcie aktywnej aplikacji CMD+Q
przełączanie aplikacji CMD+TAB
przełączanie okienek w ramach aktywnej aplikacji CMD+~


Autor

Paweł Hofman [CodeTitans]

ASP.NET
C/C++, C#, Objective-C
SQL

License and Disclaimer

Moje Gry i Aplikacje

Zobacz mnie na GoldenLine

Zobacz mnie na LinkedIn
Supported by Polish SQL Server User Group (PLSSUG)

Supported by WrocNet.org

Zine.net.pl

Wpisy

Projekty

Moje projekty open-source:

Sign in