2010-10-05 17 views
18

Tôi đang nghiên cứu các công cụ xây dựng để sử dụng với ứng dụng ASP.NET MVC 2. Tôi thích ý tưởng sử dụng một ngôn ngữ kịch bản hơn là XML, và đã thu hẹp các lựa chọn của tôi xuống psake hoặc rake. Tôi không có nhiều kinh nghiệm với Ruby hoặc PowerShell, nhưng tôi cũng sẵn lòng học. Tôi không ngại cài đặt Ruby trên máy chủ xây dựng của tôi nếu đó là lựa chọn tốt nhất của tôi.psake vs. rake cho .NET builds

Không có gì quá phức tạp hoặc bất thường về bản dựng của tôi. Nó sẽ cần phải kéo nguồn của tôi từ một repo Mercurial, xây dựng một giải pháp Visual Studio 10, làm một số biến đổi của tập tin cấu hình, xây dựng/chạy một kịch bản SQL dựa trên một dự án cơ sở dữ liệu (Data Dude), nhân rộng thực hiện một số đồng bộ hóa tệp cơ bản khác.

Bất kỳ ai có kinh nghiệm với cả rake và psake có thể so sánh chúng? Có ai có một lợi thế hơn khác về tính năng, hoặc nó chỉ đi xuống để tùy chọn ngôn ngữ kịch bản?

Xin cảm ơn trước.

EDIT: Tôi chưa có giải pháp CI, nhưng tôi đang hướng tới việc sử dụng TeamCity. Nghĩ rằng tôi sẽ đề cập đến nó trong trường hợp một công cụ xây dựng chơi đẹp hơn với nó.

Trả lời

18

Nếu bạn chưa làm như vậy, hãy xem dự án Albacore của tôi. đó là một bộ công cụ cào để xây dựng các giải pháp .NET và sẽ làm việc với Rake dễ dàng hơn nhiều đối với các giải pháp .NET. Bạn có thể nhận được tất cả thông tin bạn cần từ http://albacorebuild.net

đã nói rằng - tôi rõ ràng có thiên vị và sở thích riêng của mình cho công cụ tôi muốn sử dụng. vì vậy, hãy lấy điều này bằng một hạt muối và hiểu các sở thích của tôi ...

..................

Tôi thành thật nghĩ rằng đó không phải là câu hỏi công cụ làm những gì bạn muốn, và nhiều hơn nữa một câu hỏi trong đó công cụ phù hợp với thiết lập kỹ năng của bạn và mức độ thoải mái. cả psake và rake + albacore có khá nhiều chức năng tương tự. cả hai đều hoạt động rất tốt. cả hai đều làm cho công việc của bạn rất dễ dàng so với các công cụ khác. nhưng họ có những cách tiếp cận khác nhau và bộ tư duy, dựa trên nền tảng của họ và họ đến từ đâu.

bạn có thoải mái hơn với một chồng công cụ là nền tảng Microsoft không? hoặc bạn cảm thấy thoải mái với các công cụ nằm ngoài ngăn xếp MS điển hình, nhưng vẫn cung cấp giá trị cho những người đang xây dựng phần mềm trên ngăn xếp MS.

bạn có muốn hỗ trợ công cụ xây dựng của mình ngay ngoài hộp, với PowerShell không? bạn sẽ có một kinh nghiệm C# -like, với khả năng kết hợp C# và mã .NET khác vào quá trình xây dựng của bạn? Bạn có muốn khả năng sử dụng các plugin khác nhau cho PowerShell giúp tự động hóa các khía cạnh khác nhau của cửa sổ, cho việc triển khai không?

hoặc bạn muốn có một hệ thống đa nền tảng, rất cởi mở mang lại cho bạn trải nghiệm ngôn ngữ tự nhiên hơn với mã bạn viết, bằng ruby ​​/ cào? Bạn có cảm thấy thoải mái với các công cụ và lệnh theo kiểu * nix, ssh và thực thi quy trình từ xa cho các triển khai của bạn không?

bạn nói rằng bạn không ngại cài đặt ruby ​​trên máy chủ xây dựng, câu trả lời một phần của câu hỏi này và để bạn mở cho các tùy chọn. có rất nhiều câu hỏi vẫn cần được trả lời.

nếu bạn cảm thấy thoải mái hơn với ngăn xếp MS và muốn trải nghiệm out-of-the-box của một công cụ dựa trên MS, sau đó đi với PowerShell. nếu bạn muốn mở rộng tầm nhìn của mình và thoát ra khỏi ngăn xếp MS một chút, với một bộ công cụ dễ tích hợp và làm việc với, để có được hương vị của thế giới Ruby, hãy đi với ruby ​​/ rake/albacore.

tôi hy vọng điều đó sẽ giúp, mặc dù tôi chưa đưa ra câu trả lời trực tiếp cho bạn nên sử dụng câu trả lời nào. hy vọng tôi đã cho bạn đủ để suy nghĩ về để xác định cái nào tốt hơn cho bạn/nhóm của bạn.

+0

Nhờ Derick và James, luôn luôn tốt đẹp để có được câu trả lời trực tiếp từ miệng ngựa! Mặc dù tôi không có vấn đề gì với việc đi ra ngoài ngăn xếp MS, tôi đã kết thúc với psake. Tính di động và bề rộng của các lệnh ghép ngắn có sẵn đã giành chiến thắng cuối cùng, và mặc dù PowerShell không thể chạm vào Ruby trong kho dữ liệu mát mẻ, nó là một ngôn ngữ khá rõ ràng và rất phù hợp với nhu cầu của tôi. Cảm ơn một lần nữa! –

+0

ya - các lệnh ghép ngắn là những điều tuyệt vời. chúng tôi sử dụng PowerShell cho các triển khai tự động của chúng tôi và nó khá tuyệt vời. công cụ thích hợp cho công việc, phải không? :) –

24

Tôi sẽ phải đồng ý với đánh giá của Derick. Nó thực sự phụ thuộc vào việc bạn và nhóm của bạn cảm thấy thoải mái hơn với Ruby hay Powershell (và bạn cũng thấy nhiều giá trị hơn trong việc học). Cả hai đều có điểm mạnh và điểm yếu của họ. Hoặc là tốt hơn so với IMHO XML. Và như Derick đã nói, tôi cũng có sự thiên vị của riêng mình vì tôi là tác giả gốc của psake. :)

Một vài ưu điểm của psake/PowerShell:

  1. PowerShell đã được cài đặt trên Windows 7 và Server 2008. Dễ dàng cài đặt trên XP và 2003.
  2. một cách dễ dàng kèm theo giải pháp của bạn trong kiểm soát phiên bản. (Ít bộ phận chuyển động hơn.)
  3. Bạn có thể lấy một dòng lệnh PowerShell và dán nó vào một tác vụ psake.
  4. Microsoft và bên thứ ba tạo nhiều lệnh ghép ngắn.
  5. Các bạn/anh chàng CNTT của bạn có thể biết một số PowerShell, điều này có thể khiến họ cảm thấy thoải mái hơn khi tự động triển khai. (Các kịch bản triển khai không phải là một hộp đen như thế.)

Một vài ưu điểm của cào/Ruby:

  1. Rake có một cộng đồng lớn hơn khi nó được sử dụng rộng rãi thông qua các cộng đồng Ruby.
  2. Ruby là một ngôn ngữ biểu cảm hơn PowerShell, mặc dù bạn có thể muốn giữ mọi thứ đơn giản trong các tập lệnh xây dựng của mình.
  3. Albacore làm cho việc xây dựng các dự án .NET bằng cào dễ dàng hơn nhiều.
  4. Rake có cơ chế đánh máy tên tốt để nhóm các nhiệm vụ lại với nhau.

Cả hai giải pháp đều hoạt động để xây dựng giải pháp của bạn. Chọn một trong những hoạt động cho nhóm của bạn. Hy vọng rằng sẽ giúp.

+2

chúng tôi sử dụng PowerShell để triển khai ngay bây giờ. trong các eval giữa ruby ​​/ rake/capistrano/đầu bếp và powershell với tất cả các cmdlets của nó, powershell có ý nghĩa nhất cho tất cả những lý do bạn liệt kê. nó thực sự tốt đẹp cho rằng loại công cụ trên một cửa sổ hộp. nhưng chúng tôi vẫn sử dụng ruby ​​/ rake/albacore để xây dựng :) –

+0

Tôi là một fan hâm mộ lớn của Powerhsell và vì vậy Psake đã là sự lựa chọn tự nhiên cho các dự án của tôi.Một hệ thống xây dựng bắt buộc là một hơi thở của không khí trong lành so với các hệ thống xây dựng khai báo truyền thống hơn. –

0

Tôi hiện đang phát triển các công cụ xây dựng dựa trên PowerShell kết hợp cấu hình XML với khả năng sử dụng và mở rộng hệ thống bằng chính PowerShell. Tôi muốn có một công cụ xây dựng đơn giản có thể được mở rộng và tùy chỉnh để phù hợp với hầu hết các quy trình xây dựng. Đây là trang mẫu dự án:

Crawler-Lib Build-Tools Samples