SCRIPTCS
C# als Skriptsprache!?

Fabian Deitelhoff

@FDeitelhoff
Was ist scriptcs?
Vollständige Engine für C#-Code

Fabian Deitelhoff

@FDeitelhoff
Wer hat‘s erfunden?
Glenn Block (@gblock)
Justin Rusbatch (@jrusbatch)

Filip Wojcieszyn (@filip_woj)

Fabian Deitelhoff

@FDeitelhoff
Was will scriptcs?
C# mit einem Texteditor schreiben & ausführen

Fabian Deitelhoff

@FDeitelhoff
Ziele & Werte?
Öffentliche Werte, Anwendungsfälle & Akzeptanzkriterien

Fabian Deitelhoff

@FDeitelhoff
Werte
Einfachheit, Agilität, schnelle Entwicklung

Fabian Deitelhoff

@FDeitelhoff
Anwendungsfälle
Rapid Prototyping, Anwendungen, Erweiterungen, Skripte

Fabian Deitelhoff

@FDeitelhoff
Akzeptanzkriterien
Kein Handbuch, keine Abhängigkeiten, lose Skripte, Pakete

Fabian Deitelhoff

@FDeitelhoff
Fabian Deitelhoff

@FDeitelhoff
Ein paar kurze Fakten
Open Source (GitHub), sehr aktiv, sehr beliebt

Fabian Deitelhoff

@FDeitelhoff
Technische Basis
Basiert hauptsächlich auf Roslyn und NuGet

Fabian Deitelhoff

@FDeitelhoff
Roslyn?
C#- und VB.NET-Compiler als Dienste

Fabian Deitelhoff

@FDeitelhoff
Fabian Deitelhoff

@FDeitelhoff
Und was genau?
Ein bestimmter Aspekt von Roslyn

Fabian Deitelhoff

@FDeitelhoff
NuGet?
Paketverwaltung für die Microsoft-Plattform & .NET

Fabian Deitelhoff

@FDeitelhoff
Installation
Zwei Varianten. Eine schnell, die andere schneller

Fabian Deitelhoff

@FDeitelhoff
Variante 1
Quellen von GitHub besorgen
Die Datei build.cmd ausführen

Fabian Deitelhoff

@FDeitelhoff
Variante 2
Chocolatey installieren
Den Befehl cinst scriptcs ausführen

@powershell
-NoProfile
-ExecutionPolicy Unrestricted
-Command "iex ((New-Object Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
&& SET PATH=%PATH%;%systemdrive%chocolateybin

Fabian Deitelhoff

@FDeitelhoff
Alles startklar?
Auf die Plätze, fertig, los!

Fabian Deitelhoff

@FDeitelhoff
Erste Gehversuche mit REPL
Read-Eval-Print-Loop. Schnell, unkompliziert, für zwischendurch

Fabian Deitelhoff

@FDeitelhoff
REPL-Features
DEMO

Fabian Deitelhoff

@FDeitelhoff
REPL-Features
Direkte Ausführung, multiline, nette Gimmicks

Fabian Deitelhoff

@FDeitelhoff
C# Skriptdateien
REPL ist schön, aber schnell zu eingeschränkt

Fabian Deitelhoff

@FDeitelhoff
C# Skriptdateien
Datei auf, relevanter Code rein, speichern, fertig

Fabian Deitelhoff

@FDeitelhoff
Editoren?
Vollkommen egal! Ich bevorzuge Sublime Text 2

Fabian Deitelhoff

@FDeitelhoff
C# Skriptdateien
Keine Namespaces, keine Klassen, nur wichtige Dinge

Fabian Deitelhoff

@FDeitelhoff
Features
#load, #r, Parameter, Standards, Pakete

Fabian Deitelhoff

@FDeitelhoff
C# Skriptdateien
DEMO

Fabian Deitelhoff

@FDeitelhoff
C# Skriptdateien

Fabian Deitelhoff

@FDeitelhoff
Standards
• System

• System

• System.Core

• System.Collections.Generic

• System.Data

• System.Linq

• System.Data.DataSetExtensions

• System.Text

• System.Xml

• System.Threading.Tasks

• System.Xml.Linq

Fabian Deitelhoff

@FDeitelhoff
Pakete
scriptcs Script Packs & „normale“ Pakete

Fabian Deitelhoff

@FDeitelhoff
Pakete
Verwaltung läuft über NuGet
scriptcs -install <Paketname>

Fabian Deitelhoff

@FDeitelhoff
Script Packs
Simplere Anwendung, Automatismen, Factory-Methode

Fabian Deitelhoff

@FDeitelhoff
Weitere Pakete
Identische Installation, „normale“ NuGet-Pakete

Fabian Deitelhoff

@FDeitelhoff
Pakete
DEMO

Fabian Deitelhoff

@FDeitelhoff
Debugging
Auch bei Skriptdateien tauchen Fehler auf…

Fabian Deitelhoff

@FDeitelhoff
Debugging
Läuft über Visual Studio

Fabian Deitelhoff

@FDeitelhoff
Debugging
DEMO

Fabian Deitelhoff

@FDeitelhoff
Was können wir?
Installation, REPL, Skripte, Referenzen, Pakete, Debugging

Fabian Deitelhoff

@FDeitelhoff
That‘s it!
Wir kennen scriptcs

Fabian Deitelhoff

@FDeitelhoff
Anwendungsbeispiele
Und was macht man jetzt damit?

Fabian Deitelhoff

@FDeitelhoff
PDF-Datei manipulieren
Ich brauche Seite 2 und 3

Fabian Deitelhoff

@FDeitelhoff
Konfigurationen
Können auch als C# Skriptdateien abgelegt werden

Fabian Deitelhoff

@FDeitelhoff
scriptcs ebnet den Weg
Die Anwendungsszenarien kommen von uns!

Fabian Deitelhoff

@FDeitelhoff
Zukunft
Export als exe-Datei & Visual Studio Projekt

Fabian Deitelhoff

@FDeitelhoff
Vielen Dank für die Aufmerksamkeit!

Fabian Deitelhoff

@FDeitelhoff
Fabian Deitelhoff
Informatikstudent Master of Science
Schwerpunkt Biomedizinische Informatik

Autor, Speaker, Trainer, Softwareentwickler

Kontaktinformationen
E-Mail: Fabian@FabianDeitelhoff.de
Twitter: @FDeitelhoff
Blog:
http://www.fabiandeitelhoff.de
Fabian Deitelhoff

@FDeitelhoff

Scriptcs NRW Conf 2013