rozszerzanie visual studio .net 2008
DESCRIPTION
Rozszerzanie Visual Studio .NET 2008. Wrocławska Grupa .NET. Paweł Hofman Wrocławska Grupa .NET http://wroc.net.isvclub.com http://groups.google.pl/group/wroc-net?hl=pl. Software Engineer Silicon & Software Systems (S3) www.s3group.com. Agenda. Extensibility - O czym mowa ? - PowerPoint PPT PresentationTRANSCRIPT
RozszerzanieVisual Studio .NET 2008
Wrocławska Grupa .NET
Paweł Hofman
Wrocławska Grupa .NET
http://wroc.net.isvclub.com
http://groups.google.pl/group/wroc-net?hl=pl
Software Engineer
Silicon & Software Systems (S3)
www.s3group.com
Agenda
Extensibility - O czym mowa ?
Nowości w wersji 2008
Sposoby rozszerzania i dostosowywania
Własny Add-in
Własny pakiet (VS Package)
Języki dziedzinowe - DSL
Pytania
O czym mowa ?
Visual Studio Extensibilityzmiana wyglądu IDEwłasne edytory (lub zmiana istniejących)nowe języki programowanianowe rodzaje projektówszablony i kreatorzy (wizards)okna narzędziowedostawców usługpliki pomocy
Co nowego w wersji 2008
nowy look-and-feel
Visual Studio 2008 Isolated Shell
jak .NET to tylko .NET
przykłady
dokumentacja
wersja beta
Jak zacząć ?
SDK do wersji 2008
Opcje rozszerzania VisualStudio
dostosowanie IDE(Tools Customize)
makra
dodatki (add-in)
pakiety (VS Packages)
Wzrost:
nakładu pracy
możliwości(integracji)
SDK
Opcje - szczegóły
Typ Plusy Minusy
dostosowywanie bardzo proste
zero możliwości kontroli IDE prócz wyglądu
makra automatyzacja pełna kontrola IDE
nie można dodać nowych funkcjonalności tylko język Basic jako kod źródłowy
Dostosowywanie i makra
Demo
Opcje – szczegóły (2)
Typ Plusy Minusy
dodatki (add-ins)
kompilowalne DLL / .NET assembly szybkie umożliwia:
- okna narzędziowe
- polecenia menu
- strony ustawień
nie umożliwia:
- dokumentów
- projektów
pakiety(VS Packages)
to co dodatki podpis i wersja dostęp ten sam co drużyny piszące obsługę języków: C++ / C# w Microsofcie
bardzo skomplikowany model wymaga znajomości COM praktycznie brak dokumentacji
Dodatek (add-in)
Demo
IDTExtensibility2
IDTCommandTarget
- inicjacja- uruchomienie dodatku
- status polecenia menu- wykonanie
Jak to działa ?
plik .AddIn
zapamiętanie odwołania do obiektu DTE (DTE2)
wykonanie akcji po wywołaniu polecenia menu
Dodatkowe schemat XSD
<Visual Studio Install Path>\Common7\Packages\schemas
Zawierają schematy XSD:
walidację
IntelliSense
podczas pracy z dokumentami XML (lub podobnymi).
Strzępki kodu (CodeSnippets)
<Visual Studio Install Path>\VC#\Snippets
*.snippet
technika kopiuj-wklej ?
vs
nowa funkcja lub klasa
Architektura pakietu
Visual Studio
(platforma)
interfejsy COM (Native Interfaces)
kod pośredniczący
(Interop Assemblies)
Własny pakiet w .NET
Managed Package Framework
(MPF)Własny pakiet w kodzie
niezarządzanym C++
Jak to działa ?
Wideo instruktażowegoogle + „visual studio videos 2008 extensibility”
Experimental Hive"<VS Installation Path>\Common7\IDE\devenv.exe" /RootSuffix Exp 9.0Exp
Reset
/SETUP
/InstallVSTemplates
HKLM vs HKCU = /RANU
Partner VSIP
www.vsipmebers.comAffiliate (darmowy)
Alliance (płatny)
Premier (płatny)
DLK, PLK i SLKDeveloper Licence Key
Package Licence Key
Shell Licence Key
Jak to działa ? (2)
.VSCT(VS 2008)
kod źródłowy .CTC(VS 2005)
.CTO
VS Package .NET PLKSNK.CTO
ustawienia
okna narzędziowe
edytory
Pakiet (VS Package)
Demo
Package (IVsPackage, IServiceProvider)
ToolWindowPane (IVsWindowPane)
- inicjacja- uruchomienie pakietu (także opóźnione)- rejestracja i dostęp do usług
- implementuje okno narzędziowe
Języki dziedzinowe - DSL
dziedzina (encje)
relacje
Przykłady:SQL
.VSCT
...
DSL – Model języka
diagram (encje)
obiekty graficzneDefinicja
języka
VS Projekt(.dsl, .tt)
VS Exp(testy diagramu)
Produkt
DSL – Model języka (2)
Projekt DSL (VS DSL Package)
Demo
DslDefinition.dsl
DslPackage
- opis modelu (pojęć dziedzinowych oraz kształtów)- walidacja- definicja dostępnych narzędzi
- automatyczne generowanie pakietu VS dla zadanego modelu
Pytania
?
Źródła
Filmy instruktarzowe:google + „visual studio videos 2008 extensibility”
Kody źródłowe:www.codeplex.com
www.codeproject.com
Strona domowa:msdn.microsoft.com/vsx
msdn.microsoft.com/vstudio/dsltools
blogs.msdn.com/vsxteam/
Rozwinięcia skrótów
CTC = Command Table Configuration
DTE = Development Tools Environment
MPF = Managed Package Framework
TT = Text Templates
VSCT = Visual Studio Command Table