Frage

Ich werde diese Frage Vorwort sagen, dies für ein einziges Geschäft Microsoft ist.

Wenn Sie eine Konsolenanwendung schreiben sind ein Data Warehouse zu verwalten, was würden Sie verwenden:
1) Schreiben Sie eine benutzerdefinierte Umgebung für die Powershell (ala die neuesten Varianten von Exchange / SQL Server)
2) Schreiben Sie es als C # Console App

Wenn # 2 Gibt es Rahmenbedingungen, die ein „Menüsystem“ oder andere Aufgaben für Sie Offload zu schreiben.

Wenn diese App benötigt 6 bis 8 Jahre dauern - würden Sie Powershell verwenden? Keiner im Team hat derzeit Powershell-Erfahrung, aber wir sind schnell lernen.

War es hilfreich?

Lösung

Wenn Sie Ihre Management-Funktionalität als Powershell-Cmdlets schreiben, dann können Sie diese Funktionalität Oberfläche entweder von Menschen direkt Cmdlets lassen laufen, oder indem sie in einem GUI Verpackung. mit Powershell gehen gibt Ihnen wahrscheinlich die langfristige Flexibilität und als MS mehr Powershell-Cmdlets implementiert, bedeutet dies, dass Ihre Data Warehouse-Verwaltung konnte mit anderen, größeren Geschäftsprozessen bei Bedarf eingearbeitet werden. Ich würde wahrscheinlich wählen, um nicht eine C # Konsolenanwendung zu schreiben - aber ich habe eine deutlich „Administrator“ Perspektive. Wir admins sind es leid, benutzerdefinierte Konsole apps bei uns geworfen -. Die Idee der Powershell ist alles in einer Art und Weise zu standardisieren, die sowohl die Befehlszeile und GUI Verwaltung unterstützt

Andere Tipps

Ich denke, man kann mit den beiden erfolgreich sein und sollte zwischen den beiden, ohne allzu viel Aufwand zu wechseln. Wenn Sie eine Konsole app bauen beginnen aber lernen Powershell später, können Sie eine Menge von der Konsole app-spezifischen Code (Befehlszeile Parsing-Code zum Beispiel) und bauen ein paar Powershell-Cmdlets wickeln Ihre vorhandene API wegzuwerfen. Oder, wenn Sie eine Reihe von Cmdlets aus dem Tor bauen, müssen aber später zu einer Konsole App wechseln, werden Sie nicht viel Zeit verschwendet haben die Cmdlets schreiben.

Also, ich habe nicht wirklich stark Rat eine oder andere Weise. Ich will sagen: hey, gehen Powershell versuchen. Wenn Sie es nicht mögen, es ist nicht allzu schwer zu wechseln.

ich gefunden habe, dass Powershell eine viel wartbare Lösung für kleinere Dinge. Konsolenanwendungen erfordern erneutes Verknüpfen in neue Bibliotheken und neu zu kompilieren und Umverteilen, wenn die Bibliotheken, die Sie auf Änderung abhängig (in meinem Fall von Visual Studio gehen 2005 - Visual Studio 2008 die Testabdeckung und anderes) sowie ausführbare Ihre Skripte aufrufen können vsinstr, mstest, etc ., wo, wie mit Powershell-Skripts Sie leicht für jede Umgebung haben Sie anpassen können und müssen, um die Kompilierung, Link, bereitstellen Sachen wählen Sie für jede Umgebung nicht durchlaufen. In der Tat, wenn Sie Ihren Weg Informationen aus der Registrierung erhalten die gleiche Skript in beiden Umgebungen ausgeführt werden kann.

Sie können entweder mit allem, was Sie wollen tun, ziehe ich nur eine einzige einfache Textdatei pflegen zu müssen, dann eine Konsole App. Nur persönliche Präferenz.

Wenn Sie sagen, ein Data Warehouse verwalten, welche Art von Aufgaben reden Sie?

Ein großer Teil der Verwaltung I in T-SQL (Spülen, Archivierung, Transformation) tun würde -. Die Schnittstelle das kann sehr dünn sein (auch nicht existent)

OK, basierend auf Ihren Kommentar würde ich den Code haben, der die ganze Arbeit in einem gespeicherten Procs mit einer .NET-Assembly (typische API-Klassenbibliothek), so viel in gespeicherte Prozeduren wie möglich mit der Montage für Sachen, die ist leichter dort getan oder was erfordert, COM oder was auch immer. Ich würde dann entweder wickeln die Klassenbibliothek in Cmdlets oder nur die .NET-Objekte von Powershell aufrufen (denken Sie daran, dass Powershell-Objekte instanziieren.).

Jetzt haben Sie eine .NET-Bibliothek, die auch von den Webseiten, GUI-Anwendungen aufgerufen werden, was auch immer, wenn Sie jemals wollen, und Sie haben ein Cmdlets und eine direkte .NET-Schnittstelle - und die Möglichkeit, sie von SQL Aufruf wenn sie in der SQL-Schicht vollständig umgesetzt werden.

Die Schönheit Powershell anstelle einer cosole App der Implementierung ist, dass Sie müssen alle Parameter Parsing nicht codieren oder alle Formatierungen. Powershell kümmert sich um alles für Sie. Sie können natürlich außer Kraft setzen Standardwerte, wenn Sie benötigen. Sie können Platzhalter kostenlos. Sie können auch Ihre Cmdlets (n) nehmen Werte aus der Pipeline haben, die alle Arten von Möglichkeiten eröffnet und nutzt für die Automatisierung. Mit Powershell sowohl die Endbenutzer und der Entwickler werden eine viel bessere Erfahrung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top