Pergunta

Eu vou prefácio a esta pergunta dizendo isto é para um Microsoft única loja.

Se você fosse escrever um aplicativo de console para gerenciar um data warehouse que você usaria:
1) Escrever um ambiente personalizado para PowerShell (ala as últimas sabores do Exchange / SQL Server)
2) Escreva como um C # Console App

Se # 2 existem quaisquer estruturas que descarregam escrevendo um "sistema de menu" ou quaisquer outras tarefas para você.

Se este aplicativo necessário para a última 6 a 8 anos - você usaria PowerShell? Ninguém na equipe atualmente tem experiência PowerShell, mas somos aprendizes rápidos.

Foi útil?

Solução

Se você escrever sua funcionalidade de gerenciamento como cmdlets PowerShell, então você pode superfície que a funcionalidade seja por deixar as pessoas executar cmdlets diretamente, ou por envolvê-los em uma GUI. Indo com PowerShell, provavelmente, lhe dá a flexibilidade mais longo prazo e, como MS implementa mais cmdlets PowerShell, isso significa que o gerenciamento de seu data warehouse poderia ser incorporado com outros processos de negócios, maiores, se necessário. Eu provavelmente não optar por escrever um console aplicativo C # - mas eu tenho um mais perspectiva distintamente "administrador". Nós admins está cansado de ter console personalizado os aplicativos lançados para nós -. A idéia de PowerShell é padronizar tudo de uma forma que a administração suporta tanto de linha de comando e GUI

Outras dicas

Eu acho que você pode ser bem sucedido com ambos, e deve ser capaz de alternar entre os dois sem ter muito trabalho. Se você começar a construção de um aplicativo de console, mas aprender PowerShell depois, você pode jogar fora um monte do código específico do aplicativo console (linha de comando análise de código, por exemplo) e construir alguns cmdlets PowerShell para envolver sua API existente. Ou, se você construir um monte de Cmdlets para fora do portão, mas precisa mudar para um console app mais tarde, você não vai ter desperdiçado muito tempo escrevendo os Cmdlets.

Então, eu realmente não tenho conselhos forte de uma forma ou de outra. Eu vou dizer: hey, ir experimentar PowerShell. Se você não gosta dele, não é muito difícil de switch.

Eu descobri que PowerShell é uma solução muito mais sustentável para as coisas menores. aplicações de console exigem religação em novas bibliotecas e recompilar e redistribuir para fora quando as bibliotecas você depende de mudança (no meu caso vai a partir do Visual Studio 2005 - Visual Studio 2008 do codecoverage e outras coisas), bem como executáveis ??seus scripts podem chamar vsinstr, mstest, etc . onde como com scripts do PowerShell você pode facilmente personalizar para cada ambiente que você tem e não tem que ir através da compilação, link, o material implantar para cada ambiente que você escolher. De fato, se você receber suas informações caminho a partir do registro do mesmo script pode ser executado em ambos os ambientes.

Você pode fazer tudo o que quiser com qualquer um, eu prefiro ter que manter um único arquivo de texto simples, em seguida, um aplicativo de console. preferência apenas pessoal.

Quando você está dizendo gerenciar um data warehouse, que tipo de tarefas que você está falando?

A maior parte da gestão de I faria em T-SQL (purga, arquivamento, transformando) -. A interface para que possa ser muito fina (mesmo inexistente)

OK, com base no seu comentário que gostaria de ter o código que faz todo o trabalho em um procs armazenados com uma .NET assembly (biblioteca de classes API típico), tanto em procedimentos armazenados quanto possível, com a montagem para o material que é mais fácil feito lá ou o que requer COM ou qualquer outra coisa. Eu, então, quer envolver a biblioteca de classes em cmdlets ou apenas chamar os objetos .NET do PowerShell (lembre-se que PowerShell pode instanciar objetos.).

Agora você tem uma biblioteca de .NET que também pode ser chamado a partir de páginas web, aplicações GUI, qualquer que seja, se você nunca querem, e você tem um cmdlet e uma interface direta .NET - além da opção de chamá-los a partir do SQL se eles estão totalmente implementado na camada de SQL.

A beleza da implementação PowerShell em vez de um aplicativo cosole é que você não tem que código de toda a análise parâmetro ou toda a formatação. PowerShell cuida de tudo isso para você. Você pode, é claro, os padrões de substituição, se você precisa. Você pode obter wildcards gratuitamente. Você também pode ter o seu Cmdlet (s) assumir valores do gasoduto que abre todos os tipos de possibilidades e usos para automação. Com PowerShell, tanto o usuário final e o desenvolvedor terá uma experiência muito melhor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top