Piszemy złożoną, bogatą aplikację komputerową i musimy oferować elastyczność formatów raportowania, więc pomyśleliśmy, że po prostu przedstawimy nasz model obiektowy językowi skryptowemu. Był czas, kiedy oznaczało to VBA (który nadal jest opcją), ale zarządzany pochodna kodu VSTA (myślę) wydaje się, że uschło na winorośli.
Jaki jest obecnie najlepszy wybór dla wbudowanego języka skryptowego w systemie Windows .NET?
Odpowiedzi:
Użyłem CSScriptu z niesamowitymi wynikami. To naprawdę ograniczyło konieczność tworzenia powiązań i innych rzeczy niskiego poziomu w moich skryptowych aplikacjach.
źródło
Osobiście użyłbym C # jako języka skryptowego. Framework .NET (i Mono, dzięki Matthew Scharley) w rzeczywistości zawiera kompilatory dla każdego języka .NET w samym frameworku.
Zasadniczo implementacja tego systemu składa się z 2 części.
Pozwól użytkownikowi skompilować kod Jest to stosunkowo łatwe i można to zrobić tylko w kilku wierszach kodu (chociaż możesz chcieć dodać okno dialogowe błędu, które prawdopodobnie będzie kilkadziesiąt kolejnych wierszy kodu, w zależności od tego jak użyteczne chcesz, żeby tak było).
Tworzenie i używanie klas zawartych w skompilowanym zestawie Jest to trochę trudniejsze niż poprzedni krok (wymaga odrobiny refleksji). Zasadniczo powinieneś po prostu traktować skompilowany zestaw jako „wtyczkę” programu. Istnieje wiele samouczków na temat różnych sposobów tworzenia systemu wtyczek w C # (Google jest twoim przyjacielem).
Zaimplementowałem „szybką” aplikację, aby zademonstrować, jak można wdrożyć ten system (zawiera 2 działające skrypty!). To jest kompletny kod aplikacji, wystarczy utworzyć nowy i wkleić kod do pliku „program.cs”. W tym momencie muszę przeprosić za duży fragment kodu, który zamierzam wkleić (nie zamierzałem, aby był tak duży, ale trochę mnie poniosło)
źródło
csscript.net
wygląda na to, że jest to jakiś rodzaj opakowania. Jest to w zasadzie implementacja podstawowa. Myślę, że lepszym pytaniem byłoby „co robi dla mnie csscript.net, a co nie”. Nie wiem, co robi csscript, ale na pewno wiedzą, co robi powyższy kod, mają go (lub coś bardzo podobnego) w swojej bibliotece.IronPython . Oto przegląd tego, jak go osadzić .
źródło
Silnik PowerShell został zaprojektowany w taki sposób, aby można go było łatwo osadzić w aplikacji, aby była ona skryptowalna. W rzeczywistości interfejs wiersza polecenia programu PowerShell to tylko tekstowy interfejs do silnika.
Edycja: zobacz https://devblogs.microsoft.com/powershell/making-applications-scriptable-via-powershell/
źródło
Język boo .
źródło
W dzisiejszych czasach moim ulubionym językiem skryptowym byłby Lua . Jest mały, szybki, czysty, w pełni udokumentowany, dobrze obsługiwany, ma świetną społeczność , jest używany przez wiele dużych firm z branży (Adobe, Blizzard, EA Games), zdecydowanie warto spróbować.
Aby używać go z językami .NET, projekt LuaInterface zapewni wszystko, czego potrzebujesz.
źródło
Dlaczego nie spróbować C #? Mono ma świetny nowy projekt, szczególnie do dynamicznego oceniania C #:
http://tirania.org/blog/archive/2008/Sep-10.html
źródło
IronRuby, jak wspomniano powyżej. Ciekawym projektem dla mnie jako programisty C # jest obsługa C # Eval w Mono . Ale nie jest jeszcze dostępny (będzie częścią Mono 2.2).
źródło
Kolejny głos na IronPython. Osadzanie go jest proste, współdziałanie z klasami .Net jest proste i, cóż, to jest Python.
źródło
Mogę zasugerować S #, które obecnie utrzymuję. Jest to projekt open source, napisany w C # i przeznaczony dla aplikacji .NET.
Początkowo (2007-2009) był hostowany pod adresem http://www.codeplex.com/scriptdotnet , ale ostatnio został przeniesiony na github.
źródło
Wypróbuj Eli . Jest to język funkcjonalny podobny do języka Haskell i może być osadzony w dowolnej aplikacji .Net. Nawet ma proste, ale użyteczne IDE.
źródło
Jeszcze tego nie próbowałem, ale wygląda całkiem fajnie:
http://www.codeplex.com/scriptdotnet
źródło
Właśnie stworzyłem wtyczkę dla klienta, umożliwiającą pisanie kodu C # w modułach, które działają jak VBA dla Office.
źródło
Użyłem Lua wcześniej; w aplikacji Delphi, ale można ją osadzić w wielu rzeczach. Jest używany w programie Adobe Photoshop Lightroom .
źródło
Lubię pisać skrypty z samym C # . Teraz, w 2013 roku, jest całkiem dobre wsparcie dla skryptów C #, dostępnych jest coraz więcej bibliotek.
Mono ma świetne wsparcie dla skryptowania kodu C # i możesz go używać z .NET, po prostu dołączając do
Mono.CSharp.dll
aplikacji. W przypadku aplikacji skryptowej C #, którą zrobiłem, sprawdź CShellSprawdź także `` ScriptEngine '' w Roslyn, który pochodzi od firmy Microsoft, ale to tylko CTP.
Jak niektórzy już wspominali, CS-Script istnieje już od dłuższego czasu.
źródło