1. Chocolatey

Geliştirme ortamları için gerekli program ve araçların daha etkin ve hızlı kurulumlarını sağlamak amacıyla linux - unix base sistemlerde kullanılan apt-get paket yönetim komutunun Windows işletim sistemi versiyonu olarak değerlendirebiliriz.
Chocolatey i bilgisayarınıza yüklemek için cmd.exe Administrative olarak açılır ve aşağıdaki satır çalıştırılır.

C:\> @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

2. Node.js

Cross Platform Development ile öne çıkan bir çok gereksinimi javascript kullanarak da çözebilmenizi sağlayan, network, web ve front-end uygulamalar geliştirmek amacıyla da kullanılan Node.js sayesinde gerek IDE (Integrated Development Environment) gerekse geliştirme ile ilgili süreçler otomatikleştirilebilir. Belli formattaki dosyalarda meydana gelen değişikleri takip etmek, yazdığımız javascript kodlarının jshint ile denetlenmesini sağlamak, kod birleştirme, küçültme ve daha bir çok farklı yapıda tekrar gerektiren işlemleri command-line aracılığıyla veya Visual Studio 2015 ile entegre hale getirilmiş Task Run Explorer ile çalıştırabilmekteyiz.

3.Npm Paket Yöneticisi

Açık kaynak kodlu bir çok geliştirme aracının gereksinimlerini karşılamak amacıyla Nodejs beraberinde kullanılan ve paket gereksinimlerini otomatik yönetebilen npm Nodejs kurulumu ile birlikte otomatik olarak yüklenmiş olacaktır.

4. Grunt

Javascript görev çalıştırıcısı olarak adlandırılan grunt sayesinde yukarıda belirtilen otomatikleştirilmiş süreçler çalıştırılır ve özel eklentiler geliştirilebilir.

5. Kurulumlar

a) Chocolatey ile nodejs

choco install nodejs

Nodejs ve npm in doğru kurulduklarından emin olmak için yeni bir command line administrative olarak açılır ve sırasıyla

node --version
npm --version

komutları çalıştırılır. Sürüm bilgilerinin elde edilmesi beklenmektedir.

Grunt' ın global path olarak ayarlanması için aşağıdaki komut kullanılır. Bu sayede "grunt" command line üzerinden her hangi bir dizinde direk kullanılabilir.

npm install -g grunt-cli

Proje Örneği

Proje Team Foundation Server (TFS) ile geliştirilmekte ve her geliştirici Lokal IIS (Internet Information Service) kullanmaktadır. Proje Root.MVC isminde bir web uygulaması içermekte ve fiziksel yolu her kullanıcıda farklılık göstermektedir. IIS' in 8091 portunda site ismi RootMVC olan ve fiziksel yolu Root.MVC yi işaret eden bir tanım içermesi gerekmektedir. Belirtilen hususların ve süreçlerin her geliştirici bilgisayarında hızlı ve etkin bir şekilde yönetilebilmesi için sırasıyla aşağıdaki adımları uygulayacağız.

Cmd.exe - Administrative :

%systemroot%\system32\inetsrv\APPCMD add site /name:RootMVC /bindings:"http/*:8091:" /physicalPath:"C:\WebDevelopment\ModulerMVCApplication\Root.MVC"

Bu komut lokal IIS de belirtilen isimde ve proje fiziksel dizinini gösteren bir site tanımı oluşturmaktadır.

Proje Dizin Yapısı

Module1 MVC projesinin kontrolleri (dll) post build ile root MVC bin dizinine taşınmaktadır. Global area registration ile tanımlı module namespace leri register edilmektedir.

Her modul Gruntfile.js ve package.json dosyalarını içermektedir. Gerekli paketlerin yüklenmesi için package.json un bulunduğu dizinde;

npm install

komutu command line üzerinden çalıştırılır. Böylelikle gruntfile da tanımlı watch, concat, jshint vb. görevler için gerekli paketler yüklenmiş olur. "node_modules" ismiyle otomatik olarak oluşturulan lokal dizin projeye dahil edilmez.

Grunt görev çalıştırıcısı sayesinde her modülün Views klasörü içerisindeki ('.cshtml' ve '.js') belirli tipteki dosyalarda meydana gelen değişikler takip edilir ve her hangi bir değişiklikte ilgili dosyanın Root.MVC/Areas/{{ModuleName}}/Views klasörüne taşınması - güncellenmesi sağlanır. Böylelikle lokal IIS de çalışan ve register edilmiş kontroller her zaman güncel view e ulaşabilecek ve publish yapılmasına gerek kalınmayacaktır. Görev tetikleyici komut:

grunt

Çalışılan modüle ait tüm view dosyalarının anlık senkronlanması gerektiğinde ise

grunt sync

komutu çalıştırılmalıdır. Bu sayede toplu dosya karşılaştırılması ve değişikliklerin Root.MVC uygulaması ile sync edilmesi sağlanmaktadır.

Javascript dosyalarının syntax kontrolü ve best practices önerilerinden faydalanmak amacıyla:

grunt jshint

komutu kullanılmaktadır. Ayrıca, concat, uglify, minify vb. işlemler yine grunt aracılığıyla yapılabilmektedir.

Projeye katkı sağlamak ve geliştirme süreçlerinin otomatikleştirilmesi, modüler yapının kazandırılması adına görüş ve önerilerinizi paylaşabilirsiniz.Github Project