250 likes | 403 Views
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 ?
E N D
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 Extensibility • zmiana wyglądu IDE • własne edytory (lub zmiana istniejących) • nowe języki programowania • nowe rodzaje projektów • szablony i kreatorzy (wizards) • okna narzędziowe • dostawców usług • pliki 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 Wzrost: • nakładu pracy • możliwości(integracji) SDK
IDTExtensibility2 IDTCommandTarget Dodatek (add-in) Demo • 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
Własny pakiet w .NET Własny pakiet w kodzieniezarządzanym C++ Managed Package Framework (MPF) kod pośredniczący (Interop Assemblies) interfejsy COM (Native Interfaces) Visual Studio (platforma) Architektura pakietu
Jak to działa ? • Wideo instruktażowe google + „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.com • Affiliate (darmowy) • Alliance (płatny) • Premier (płatny) • DLK, PLK i SLK • Developer Licence Key • Package Licence Key • Shell Licence Key
Jak to działa ? (2) kod źródłowy .VSCT (VS 2008) .CTC (VS 2005) edytory okna narzędziowe .CTO ustawienia VS Package .NET .CTO SNK PLK
Package (IVsPackage, IServiceProvider) ToolWindowPane (IVsWindowPane) Pakiet (VS Package) Demo • 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 • ...
Definicjajęzyka VS Exp (testy diagramu) VS Projekt (.dsl, .tt) Produkt DSL – Model języka • diagram (encje) • obiekty graficzne
DslDefinition.dsl DslPackage Projekt DSL (VS DSL Package) Demo • 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