Scriptcs NRW Conf 2013

47
SCRIPTCS C# als Skriptsprache!? Fabian Deitelhoff @FDeitelhoff

Transcript of Scriptcs NRW Conf 2013

Page 1: Scriptcs NRW Conf 2013

SCRIPTCS

C# als Skriptsprache!?

Fabian Deitelhoff @FDeitelhoff

Page 2: Scriptcs NRW Conf 2013

Was ist scriptcs?

Fabian Deitelhoff @FDeitelhoff

Vollständige Engine für C#-Code

Page 3: Scriptcs NRW Conf 2013

Wer hat‘s erfunden?

Fabian Deitelhoff @FDeitelhoff

Glenn Block (@gblock)

Justin Rusbatch (@jrusbatch)

Filip Wojcieszyn (@filip_woj)

Page 4: Scriptcs NRW Conf 2013

Was will scriptcs?

Fabian Deitelhoff @FDeitelhoff

C# mit einem Texteditor schreiben & ausführen

Page 5: Scriptcs NRW Conf 2013

Ziele & Werte?

Fabian Deitelhoff @FDeitelhoff

Öffentliche Werte, Anwendungsfälle & Akzeptanzkriterien

Page 6: Scriptcs NRW Conf 2013

Werte

Fabian Deitelhoff @FDeitelhoff

Einfachheit, Agilität, schnelle Entwicklung

Page 7: Scriptcs NRW Conf 2013

Anwendungsfälle

Fabian Deitelhoff @FDeitelhoff

Rapid Prototyping, Anwendungen, Erweiterungen, Skripte

Page 8: Scriptcs NRW Conf 2013

Akzeptanzkriterien

Fabian Deitelhoff @FDeitelhoff

Kein Handbuch, keine Abhängigkeiten, lose Skripte, Pakete

Page 9: Scriptcs NRW Conf 2013

Fabian Deitelhoff @FDeitelhoff

Page 10: Scriptcs NRW Conf 2013

Ein paar kurze Fakten

Fabian Deitelhoff @FDeitelhoff

Open Source (GitHub), sehr aktiv, sehr beliebt

Page 11: Scriptcs NRW Conf 2013

Technische Basis

Fabian Deitelhoff @FDeitelhoff

Basiert hauptsächlich auf Roslyn und NuGet

Page 12: Scriptcs NRW Conf 2013

Roslyn?

Fabian Deitelhoff @FDeitelhoff

C#- und VB.NET-Compiler als Dienste

Page 13: Scriptcs NRW Conf 2013

Fabian Deitelhoff @FDeitelhoff

Page 14: Scriptcs NRW Conf 2013

Und was genau?

Fabian Deitelhoff @FDeitelhoff

Ein bestimmter Aspekt von Roslyn

Page 15: Scriptcs NRW Conf 2013

NuGet?

Fabian Deitelhoff @FDeitelhoff

Paketverwaltung für die Microsoft-Plattform & .NET

Page 16: Scriptcs NRW Conf 2013

Installation

Fabian Deitelhoff @FDeitelhoff

Zwei Varianten. Eine schnell, die andere schneller

Page 17: Scriptcs NRW Conf 2013

Variante 1

Fabian Deitelhoff @FDeitelhoff

Quellen von GitHub besorgen

Die Datei build.cmd ausführen

Page 18: Scriptcs NRW Conf 2013

Variante 2

Fabian Deitelhoff @FDeitelhoff

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%\chocolatey\bin

Page 19: Scriptcs NRW Conf 2013

Alles startklar?

Fabian Deitelhoff @FDeitelhoff

Auf die Plätze, fertig, los!

Page 20: Scriptcs NRW Conf 2013

Erste Gehversuche mit REPL

Fabian Deitelhoff @FDeitelhoff

Read-Eval-Print-Loop. Schnell, unkompliziert, für zwischendurch

Page 21: Scriptcs NRW Conf 2013

REPL-Features

Fabian Deitelhoff @FDeitelhoff

DEMO

Page 22: Scriptcs NRW Conf 2013

REPL-Features

Fabian Deitelhoff @FDeitelhoff

Direkte Ausführung, multiline, nette Gimmicks

Page 23: Scriptcs NRW Conf 2013

C# Skriptdateien

Fabian Deitelhoff @FDeitelhoff

REPL ist schön, aber schnell zu eingeschränkt

Page 24: Scriptcs NRW Conf 2013

C# Skriptdateien

Fabian Deitelhoff @FDeitelhoff

Datei auf, relevanter Code rein, speichern, fertig

Page 25: Scriptcs NRW Conf 2013

Editoren?

Fabian Deitelhoff @FDeitelhoff

Vollkommen egal! Ich bevorzuge Sublime Text 2

Page 26: Scriptcs NRW Conf 2013

C# Skriptdateien

Fabian Deitelhoff @FDeitelhoff

Keine Namespaces, keine Klassen, nur wichtige Dinge

Page 27: Scriptcs NRW Conf 2013

Features

Fabian Deitelhoff @FDeitelhoff

#load, #r, Parameter, Standards, Pakete

Page 28: Scriptcs NRW Conf 2013

C# Skriptdateien

Fabian Deitelhoff @FDeitelhoff

DEMO

Page 29: Scriptcs NRW Conf 2013

C# Skriptdateien

Fabian Deitelhoff @FDeitelhoff

Page 30: Scriptcs NRW Conf 2013

Standards

Fabian Deitelhoff @FDeitelhoff

• System

• System.Core

• System.Data

• System.Data.DataSetExtensions

• System.Xml

• System.Xml.Linq

• System

• System.Collections.Generic

• System.Linq

• System.Text

• System.Threading.Tasks

Page 31: Scriptcs NRW Conf 2013

Pakete

Fabian Deitelhoff @FDeitelhoff

scriptcs Script Packs & „normale“ Pakete

Page 32: Scriptcs NRW Conf 2013

Pakete

Fabian Deitelhoff @FDeitelhoff

Verwaltung läuft über NuGet

scriptcs -install <Paketname>

Page 33: Scriptcs NRW Conf 2013

Script Packs

Fabian Deitelhoff @FDeitelhoff

Simplere Anwendung, Automatismen, Factory-Methode

Page 34: Scriptcs NRW Conf 2013

Weitere Pakete

Fabian Deitelhoff @FDeitelhoff

Identische Installation, „normale“ NuGet-Pakete

Page 35: Scriptcs NRW Conf 2013

Pakete

Fabian Deitelhoff @FDeitelhoff

DEMO

Page 36: Scriptcs NRW Conf 2013

Debugging

Fabian Deitelhoff @FDeitelhoff

Auch bei Skriptdateien tauchen Fehler auf…

Page 37: Scriptcs NRW Conf 2013

Debugging

Fabian Deitelhoff @FDeitelhoff

Läuft über Visual Studio

Page 38: Scriptcs NRW Conf 2013

Debugging

Fabian Deitelhoff @FDeitelhoff

DEMO

Page 39: Scriptcs NRW Conf 2013

Was können wir?

Fabian Deitelhoff @FDeitelhoff

Installation, REPL, Skripte, Referenzen, Pakete, Debugging

Page 40: Scriptcs NRW Conf 2013

That‘s it!

Fabian Deitelhoff @FDeitelhoff

Wir kennen scriptcs

Page 41: Scriptcs NRW Conf 2013

Anwendungsbeispiele

Fabian Deitelhoff @FDeitelhoff

Und was macht man jetzt damit?

Page 42: Scriptcs NRW Conf 2013

PDF-Datei manipulieren

Fabian Deitelhoff @FDeitelhoff

Ich brauche Seite 2 und 3

Page 43: Scriptcs NRW Conf 2013

Konfigurationen

Fabian Deitelhoff @FDeitelhoff

Können auch als C# Skriptdateien abgelegt werden

Page 44: Scriptcs NRW Conf 2013

scriptcs ebnet den Weg

Fabian Deitelhoff @FDeitelhoff

Die Anwendungsszenarien kommen von uns!

Page 45: Scriptcs NRW Conf 2013

Zukunft

Fabian Deitelhoff @FDeitelhoff

Export als exe-Datei & Visual Studio Projekt

Page 46: Scriptcs NRW Conf 2013

Vielen Dank für die Aufmerksamkeit!

Fabian Deitelhoff @FDeitelhoff

Page 47: Scriptcs NRW Conf 2013

Fabian Deitelhoff @FDeitelhoff

Fabian Deitelhoff

Informatikstudent Master of Science

Schwerpunkt Biomedizinische Informatik

Autor, Speaker, Trainer, Softwareentwickler

Kontaktinformationen

E-Mail: [email protected]

Twitter: @FDeitelhoff

Blog: http://www.fabiandeitelhoff.de