2009-03-09 24 views
8

Tôi sắp bắt đầu một ứng dụng Windows mới. Nó sẽ là một công cụ xử lý âm thanh được viết bằng C++. Nó sẽ cần tất cả các công cụ GUI thông thường như menu, thanh công cụ, vv Nó cũng sẽ có một trình duyệt web nhúng.Bạn có thể viết ứng dụng mới cho .NET chưa?

Tôi đang nghĩ đến việc xây dựng nó trên .NET nhưng tôi muốn nghe từ tất cả các bạn về việc liệu .NET vẫn là một nỗi đau để triển khai. Tỷ lệ phần trăm người dùng thông thường đã có thời gian chạy .NET? Tôi không muốn gây ra bất kỳ đau đớn cho người dùng của tôi như phải tải xuống một thời gian chạy 100MB chỉ để khởi chạy ứng dụng của tôi.

Bạn nghĩ gì? Tôi có nên đi. NET hay tôi nên dính vào đồng bằng 'ol Win32 API? Hoặc thậm chí có thể là một hệ thống bên thứ 3 như QT hoặc wxWidgets?

+0

Bạn cần phải xem đối tượng mục tiêu của mình và xác định xem đó có phải là vấn đề cho họ hay không. Trong môi trường công ty mà tôi hiện đang làm việc trong .NET 3.5 không được triển khai đến các máy trạm của chúng tôi. Tôi hiện phải nhắm mục tiêu .NET 3.0. – bruceatk

+0

3.5 sẽ được đẩy ra ngoài cửa sổ cập nhật khá sớm từ những gì tôi nghe thấy. – Echostorm

Trả lời

22

Bạn có thể trỏ người dùng của mình đến .Net bootstrapper, Đây là bản tải xuống 100kb sẽ phát hiện các bit của khung .Net mà họ hiện có và sẽ tải xuống bất kỳ thứ gì bị thiếu.

Cũng http://smallestdotnet.com/ là một sáng kiến ​​từ @shanselman

13

Tôi không biết số chính xác, nhưng Vista có .NET được tích hợp sẵn và các phiên bản khác của Windows có thể dễ dàng tắt Microsoft Update một cách dễ dàng. Bạn cũng có thể phân phối lại thời gian chạy .NET với ứng dụng của bạn.

Tôi sẽ không lo lắng quá nhiều về việc liệu người dùng của bạn có cài đặt .NET hay không.

+0

Các phiên bản khác nhau của .Net vẫn có thể là một vấn đề. Ví dụ, không có hệ điều hành nào có tàu .Net 3.5. Nếu bạn muốn nhắm mục tiêu đó, bạn phải mong đợi người dùng của bạn cài đặt nó. –

+0

"sẽ không lo lắng quá nhiều về việc liệu người dùng của bạn có cài đặt .NET" Tôi nghĩ rằng nó phải là một vấn đề !! –

5

.NET Framework download/cài đặt là không rằng phiền hà. Nhưng tôi khuyên bạn nên xem xét vấn đề của mình từ một góc độ khác.

Nếu bạn biết rằng tất cả người dùng của bạn đã cài đặt Framework, bạn có chọn tham gia C++ hoặc bạn sẽ sử dụng .Net không? Bởi vì các yêu cầu GUI của bạn, tôi đoán bạn đang sử dụng. Net cho tất cả các niceties mà nó mang đến cho bảng.

Các tùy chọn khác mà bạn liệt kê có thể chấp nhận được, nhưng thật khó để đánh bại Khung .Net về hỗ trợ cho các thành phần phía máy khách đó.

Tất cả mọi thứ được xem xét, sự cân bằng của một lượt tải xuống đơn lẻ so với hỗ trợ ứng dụng tốt hơn bạn sẽ nhận được có vẻ như là một ứng dụng tốt.

2

.NET giống như Java - bạn cần đảm bảo thời gian chạy thích hợp là ở đó. D/l không phải là 100mb! HA! Đó là 196mb. Nhưng có một "hồ sơ khách hàng" mà làm giảm nó đến 26mb, vì vậy tôi nghe.

Triển khai thời gian chạy .NET là một nhược điểm, nhưng đối với tôi, năng suất của nhà phát triển được cải thiện nhiều trong C# trên C++. Tôi sẽ sẵn sàng làm cho người dùng của tôi chịu đựng 45 giây thời gian tải xuống, để đạt được thứ tự năng suất tốt hơn. Nhưng đó chỉ là tôi. (ps: Thời gian chạy yêu cầu có thể được trình cài đặt tự động tải xuống).

+0

Bạn sẽ sẵn sàng làm phiền người dùng của mình! tất nhiên, ai quan tâm đến người dùng của mình? – hasen

+0

Chính xác! 45 giây thời gian của họ, một lần, cũng đáng để tiết kiệm 4 tuần đau đầu cho tôi. – Cheeso

+1

Đồng thời tiết kiệm 4 tuần thời gian làm việc của bạn ra khỏi ví của họ –

0

Không có lời khuyên nào về .Net, nhưng nếu bạn quyết định, vì một lý do nào đó, không sử dụng .Net, tôi khuyên bạn nên sử dụng QT qua Win32 API. Tôi thấy API Win32 thực sự lộn xộn và khó sử dụng hơn QT, theo ý kiến ​​của tôi, thực sự rất hay.

11

Microsoft đang đẩy .NET framework rất mạnh mẽ. Tôi tin rằng bạn thậm chí không thể cài đặt Microsoft Office 2007 mà không cần cài đặt .NET framework trên máy tính của bạn. Vì vậy, nếu Microsoft yêu cầu .NET cho các chương trình Office mới nhất của họ, bạn có thể an toàn khi giả định rằng các khách hàng dựa trên Microsoft của bạn sẽ cài đặt các thư viện nền tảng tiên quyết .NET. Các khóa học, điều này sẽ phụ thuộc rất nhiều vào loại ứng dụng bạn đang xây dựng.Tôi cũng đã nghe nói về một số nhà phát triển trò chơi video vận chuyển gói trò chơi của họ bằng phiên bản Mono mã nguồn mở của .NET. Tin tưởng rằng nó hay không, có thực sự là một xây dựng rất mạnh mẽ và ổn định của Mono cho Microsoft Windows.

+0

Không - đó là một cái mới của tôi. Không thể cài đặt Office 2007 mà không cần cài đặt .NET? Chưa từng nghe về nó. Có một số phần của Office sử dụng .NET ... Tôi tin rằng BCM cho Outlook 2007 là một. Nhưng MSWord và MSExcel không yêu cầu nó. – Cheeso

1

Bạn đang xây dựng loại ứng dụng nào? Điều đó thực sự quan trọng. Nếu bạn đang lo lắng về người dùng của bạn sau đó:

  • nếu bạn kiểm soát người dùng của bạn thì không có vấn đề - bạn kiểm soát máy tính của họ và bạn có thể chắc chắn rằng NET đã được cài đặt
  • nếu bạn đang nói về người dùng bên ngoài (đối với tổ chức của bạn) thì tôi sẽ đề nghị ứng dụng ASP.NET hoặc Silverlight

Quyết định cho chính bạn. Tôi có lẽ sẽ đi với Silverlight vì đây là gần nhất với các ứng dụng máy tính để bàn (mà tôi nghĩ bạn đang đề cập đến) và vẫn tải về là rất nhỏ (tôi đoán một cái gì đó như 2MB). Hãy xem http://silverlight.net.

+0

Tôi thực sự nghi ngờ rằng việc chỉnh sửa âm thanh sẽ là điều bạn muốn thực hiện trong một ứng dụng trực tuyến. –

+0

* editing = processing –

0

. Net sẽ giúp cuộc sống của bạn dễ dàng hơn so với C++ và API cửa sổ gốc hoặc thậm chí QT. Nhưng nếu GUI không phức tạp thì tốt hơn nên sử dụng QT làm kích thước khung .Net tương đối lớn

2

.NET Framework 2.0 Runtime chỉ là 22MB, và đó là một khung tốt để nhắm mục tiêu, đặc biệt nếu bạn không cần WPF hoặc WCF. Người dùng Vista sẽ có ít nhất 3.0 cài đặt, vì vậy họ không cần phải làm bất cứ điều gì, và rất nhiều ứng dụng khác đã nhắm mục tiêu 2.0, do đó, họ sẽ cài đặt nó.

Bên cạnh đó, ứng dụng của bạn trong .NET sẽ nhỏ hơn đáng kể so với những gì bạn viết trong C++. Các tập tin thực thi là rất nhiều nhỏ hơn trong quan điểm riêng của họ, và kết quả MSI tập tin từ xây dựng một dự án thiết lập trong VS là nhỏ hơn bất cứ điều gì khác tôi đã nhìn thấy sản xuất.

+0

Không phải khi bạn thêm thời gian chạy. Lấy một hệ thống từ không có .net đến 3.5 là một tải xuống đáng kể và tôi đã có cài đặt thất bại trên một số hệ thống lần đầu tiên nó được thực hiện. – bruceatk

+0

Điều đó không làm cho câu trả lời của tôi kém hiệu quả hơn. Bạn không cần 3.5 ngày hôm nay trừ khi bạn cần một số công nghệ mới hơn. Và việc cài đặt thất bại bạn * hệ thống * của bạn có thể do thiếu điều kiện tiên quyết. –

+0

Tôi nhận xét về "Các tệp thực thi của bạn nhỏ hơn rất nhiều ...". Tôi luôn phải cân nhắc toàn bộ tải trọng của những gì tôi đang phân phối và đó là phụ thuộc. – bruceatk

2

Chúng tôi triển khai một số ứng dụng cho khách hàng trong các ngành khác nhau và hiện tại .NET Framework 2.0 không phải là vấn đề gì cả. (Và nó chỉ là 22 MB tải về anyway.) Bạn vẫn có thể sử dụng Visual Studio 2008 và C#, nhưng bạn phải chọn .NET 2.0 là khung mục tiêu và bạn phải sử dụng Windows Forms thay vì WPF cho GUI (có thể là tùy thuộc vào trải nghiệm của bạn,

.NET Framework 3.0 và 3.5 (và 3.5 SP1, v.v.) dường như không phải là dòng chính ít nhất trong mạng công ty, lớn hơn đáng kể, có nhiều cạm bẫy tiềm năng trong quá trình cài đặt và không hỗ trợ Windows 2000 và Windows 98 nữa (mà .NET 2.0 vẫn còn)

1

Đối với những gì tôi đã đọc Mono (việc triển khai phần mềm miễn phí của .NET) gửi cùng với trình liên kết - bạn có thể biên dịch ứng dụng của mình bằng Mono, liên kết với tất cả các thành phần cần thiết.

Phần tốt là bạn sẽ nhận được một gói độc lập: không cần người dùng cuối cài đặt một khuôn khổ .NET cụ thể nếu họ chưa có. Nhược điểm là: tùy thuộc vào số lượng thư viện .NET bạn đang sử dụng, tệp thực thi của bạn có thể kết thúc là lớn, phủ nhận lợi ích.

0

API ClickOnce cũng là điều đáng xem xét. Bạn có thể sử dụng nó để phân phối ứng dụng của mình qua internet và ứng dụng có thể gọi về nhà để nhận các bản cập nhật tự động (nếu muốn).

Tôi sử dụng công việc của mình ngay bây giờ và nó giúp phân phối và cập nhật phần mềm máy tính một cách dễ dàng.

+0

Câu trả lời này không giải quyết được mối quan ngại về việc nên viết cho .NET dựa trên kích thước của thời gian chạy. –

Các vấn đề liên quan