Có rất nhiều yếu tố liên quan đến việc lựa chọn của bạn. Điều đầu tiên tôi hỏi là bạn biết gì? Nếu câu trả lời chỉ là "duy trì hệ thống kế thừa" thì bạn đang trong bản chất bắt đầu từ đầu về mặt kiến thức về các công nghệ mới.
Trước tiên, tôi muốn làm sáng tỏ những gì tôi cảm nhận như một quan niệm sai lầm trong câu hỏi ban đầu của bạn:
Chúng tôi đang xem xét Silverlight, Flex và của Ruby
- Silverlight là một công nghệ máy khách, về cơ bản là thời gian chạy.
- Flex là tên của SDK được sử dụng để xây dựng ứng dụng cho Adobe's Flash Nền tảng.
- Ruby là ngôn ngữ lập trình .
Dường như bạn đang kiểm tra nhiều công nghệ cực kỳ khác nhau được thiết kế cho các mục đích khác nhau. Họ sẽ không so sánh rất tốt.
So sánh trực tiếp hơn là so sánh Silverlight với Trình phát Flash với HTML/JavaScript. Hoặc để so sánh MXML của Flex với XAML của .NET. Ruby, theo như tôi biết được sử dụng chủ yếu ở phía máy chủ, thường với HTML và JavaScript làm giao diện người dùng. Nếu giải pháp giao diện người dùng của bạn là bắt buộc để tương tác với các dịch vụ web .NET và ColdFusion, tôi không chắc chắn tại sao bạn lại ném công nghệ bên thứ ba vào hỗn hợp.
Điều đó nói rằng, tôi sẽ khuyên bạn nên sử dụng Flex/The Flash Payer làm công nghệ giao diện người dùng của bạn và ColdFusion làm công nghệ phía máy chủ của bạn. Có một lý do tôi khuyên bạn nên điều này và đó là bởi vì đó là những gì tôi biết. Hy vọng rằng một người hiểu biết hơn về .NET/Silverlight/Ruby có thể kêu vang về những lợi ích của mỗi người.
tôi sẽ kiểm tra nhiều hơn tại các điểm của bạn, từng người một:
Sourced by a company or user community that is robust enough to be
xung quanh cho 5-7 năm tới (chúng tôi hiện thực về vấn đề này).
Tôi hy vọng Silverlight, Nền tảng Flash và Ruby sẽ còn sống và đá trong thập kỷ tới.
Nền tảng Flash và Flex đặc biệt, có cộng đồng sống động. Tôi tin rằng một trong những điều tốt nhất mà Adobe làm là thúc đẩy cộng đồng phát triển xung quanh nền tảng và công cụ của họ.
Flex vẫn còn mới và đang phát triển, nhưng nó đã chứng kiến sự tăng trưởng rất lớn trong vài năm qua. Mặc dù Adobe đã chặt chẽ về số lượng nhà phát triển, nhưng hầu hết các ước tính tôi thấy đều đặt ở mức 250K-350K, cao hơn gấp đôi so với 3 năm trước. Có podcasts, rất nhiều blogs, nhiều khung hơn bạn có thể lắc một thanh tại (RobotLEgs là Yêu thích hiện tại), tấn hội nghị (Ưa thích của tôi là 360|Flex) và lots of open source projects.
ColdFusion là hơn 10 tuổi, hiện đang ở trong đó là phiên bản thứ 9, và có một cộng đồng lớn với thịnh vượng mailing list (như House of Fusion và các diễn đàn Adobe), nhiều Podcast (như CFHour và cfconvesations), blogs, sách, khung (chẳng hạn như Fusebox, Model Glue và Mach-II), open source projects và conferences.
Một số người nói thật khó để tìm các nhà phát triển ColdFusion, và điều đó đôi khi đúng bởi vì cộng đồng tương đối nhỏ so với .NET. Thời gian qua tôi đã thấy ước tính, họ ước tính 750 nghìn nhà phát triển trên toàn thế giới. Bạn có thể có vấn đề tương tự với các nhà phát triển Flex. Nhưng có vẻ như bạn đã có một đội mà bạn muốn đào tạo, vì vậy có lẽ bạn không tìm kiếm người mới thuê và điều đó sẽ không là vấn đề.
Cũng có nhiều Nhóm người dùng Adobe trên toàn thế giới. Vui lòng dừng lại một và/hoặc hỏi người quản lý nhóm về công nghệ mà anh chọn. Hầu hết các nhóm mà tôi biết là Flex hoặc ColdFusion.
Tôi sẽ thêm rằng ColdFusion và Nền tảng Flex/Flash đều đến từ Adobe và Adobe đã nỗ lực rất lớn để đảm bảo chúng hoạt động tốt. Tôi nghĩ rằng sự tích hợp của họ là vô song.
Tất cả điều này nói, .NET cũng có công ty lớn ủng hộ nó và cơ sở phát triển lớn hơn Coldfusion và/hoặc Flex. Tôi nhận thấy bạn có nhiều khả năng tìm thấy các giải pháp thương mại được hỗ trợ trong thế giới .NET hơn là trong không gian Flex hoặc ColdFusion; nhưng không thể nói từ kinh nghiệm cá nhân.
Tôi không nghĩ Ruby có một công ty đằng sau nó, nhưng tôi hiểu nó có một cộng đồng rất sôi động. Bạn có thể dễ dàng sử dụng Ruby để xây dựng một phụ trợ cho một ứng dụng Nền tảng Flash hoặc một ứng dụng Silverlight.
Able to quickly interface to use stored procedures from Oracle and web
dịch vụ sản xuất trong ASP.NET và ColdFusion như các nguồn dữ liệu.
Bạn đã đề cập đến khả năng thay thế Oracle. Tôi sẽ khuyên bạn nên chống lại điều này. Có vẻ như bạn sẽ có rất nhiều việc phải làm. Nếu bạn chỉ có thể thay đổi một "lớp" của ứng dụng cùng một lúc, hãy làm điều đó.
ColdFusion có thể nhanh chóng và dễ dàng truy cập dữ liệu trong Oracle bằng cách sử dụng Thủ tục được lưu trữ hoặc truy vấn trực tiếp. Tôi không có nghi ngờ rằng NET có thể làm như vậy. [và tôi cho rằng Ruby cũng không có vấn đề gì với điều đó].
Silverlight và Flash Player (Flex) được thiết kế như công nghệ giao diện người dùng và tôi không khuyên bạn nên truy cập cơ sở dữ liệu trực tiếp từ chúng. Hầu hết các ứng dụng tôi đã nhìn thấy sử dụng một lớp trung gian (chẳng hạn như ColdFusion hoặc .NET) để truy cập cơ sở dữ liệu, và sau đó Flash sẽ chỉ truy cập lớp trung gian đó. Trong kiến trúc Service View Controller Service, bạn thường có thể triển khai Model làm lưu trữ cơ sở dữ liệu (Oracle), các dịch vụ trong phần mềm trung gian (ColdFusion/.NET), và khung nhìn trong công nghệ đầu cuối (Flash Player/Flex hoặc Silverlight hoặc HTML)/AJAX). Bộ điều khiển trong ứng dụng Flex/Flash có nhiều khả năng sẽ được tạo trong Flash/Flex. Tôi giả sử Silverlight là tương tự.
Sử dụng ColdFusion bạn sẽ sử dụng cfstoredproc để truy cập các thủ tục được lưu trữ hoặc truy vấn cfquery để chạy trực tiếp truy vấn đối với cơ sở dữ liệu. Bạn đã đặt các truy vấn đó vào một dịch vụ và sau đó từ Flex/Flash Player, bạn sẽ truy cập dữ liệu đó bằng RemoteObjects (giao thức AMF mà tôi khuyên dùng) hoặc WebService (cho các cuộc gọi SOAP) hoặc HTTPService (Đối với các cuộc gọi REST)). AMF là một định dạng nhị phân, có thể dẫn đến thời gian truyền dữ liệu nhanh hơn nhiều giữa máy khách và máy chủ. CNTT cũng sẽ tự động dịch các đối tượng phía máy chủ sang các đối tượng phía máy khách và ngược lại. Đó là một liên lạc rất tốt đẹp và ngăn cản bạn phải viết thói quen chuyển đổi của riêng bạn.
Deployable on virtualized clients as well as thick client
Máy Windows và Apple.
Tôi đoán tôi không chắc chắn ý bạn là khách hàng ảo hóa so với khách hàng dày.
Trình phát Flash và AIR dễ dàng được triển khai cho cả Windows và Mac. Adobe đang làm rất nhiều công việc để chuẩn bị cho làn sóng thiết bị di động nếu điều đó quan trọng đối với bạn. Mặc dù các đối số của Adobe/Apple năm ngoái, Adobe có một trình đóng gói để triển khai cho các thiết bị iOS. Đó là trong giai đoạn đầu của nó, nhưng tôi hy vọng sẽ thấy một số cập nhật lớn trong nửa đầu năm nay.
Adobe đã bị chỉ trích vì hoạt động trên máy Mac và có nhiều lý do cho việc này. Nhưng, mọi thứ liên tục cải thiện.
Tôi biết rằng Silverlight có hỗ trợ Mac, nhưng tôi không biết phạm vi của nó. Tôi không mong đợi để xem Silverlight trên thiết bị di động ngoài hệ điều hành Windows Phone.
Về mặt Ruby, có thể bạn sẽ không muốn triển khai Ruby tới máy tính để bàn dưới mọi hình thức. Tuy nhiên, bạn có thể tạo AJAX/HTML hoạt động với trình duyệt bạn chọn (và/hoặc sử dụng một khung công tác AJAX liên quan đến các vấn đề tương thích với trình duyệt). Như mọi thứ đứng ngay bây giờ, HTML/AJAX có lẽ sẽ là lựa chọn tốt nhất cho việc triển khai thiết bị di động, vì hầu hết các trình duyệt di động đều dựa trên Webkit, vì vậy thường có mức độ nhất quán cao về cách ứng dụng HTML chạy trên các thiết bị. Và cách tiếp cận này rất có thể sẽ mang lại hiệu suất tốt hơn so với sử dụng Flash [hoặc Silverlight] trên thiết bị đã nói.
Extra points if there is some way to reuse the old Delphi code (but
một lần nữa, chúng tôi hiện thực vì vậy chúng tôi không mong đợi điều này sẽ xảy ra).
Tôi không thể giúp bạn ở đây. Đặt cược tốt nhất của bạn là tạo lại từ đầu hoặc cố gắng viết một số dạng công cụ tạo mã/chuyển đổi. Tôi không chắc chắn nếu sau này là thực tế. Nếu bạn chuyển mã Delphi thành các đối tượng COM, như được gợi ý ở nơi khác, chúng có thể được sử dụng từ ColdFusion tương tự như cách chúng có thể được sử dụng từ .NET.
Điều này có hữu ích không? Bạn muốn biết điều gì khác?
Ý tưởng trên HTML5. Trình duyệt hiện không thực hiện các cấu trúc HTML hiện tại như nhau. Một trong những lợi ích của Flash/Silverlight là tính thống nhất trên các trình duyệt. Không có gì khiến tôi nghĩ rằng chiếc mũ HTML5 sẽ mang lại tính nhất quán của trình duyệt chéo. Nếu áp phích gốc có thể tiêu chuẩn hóa trên một trình duyệt, thì HTML (và JavaScript) sẽ là một lựa chọn tuyệt vời. Vì anh ta muốn hỗ trợ các máy Windows và Apple, anh ta có lẽ không thể tiêu chuẩn hóa trên một trình duyệt. Tôi nghi ngờ chuyển từ Delphi sang một ứng dụng HTML "old school" sẽ là một cơn ác mộng khả năng sử dụng. – JeffryHouser
Cảm ơn rất nhiều vì phản hồi của bạn Justin. Cửa hàng của chúng tôi chủ yếu là C# nhưng tôi muốn có một cách tiếp cận thuyết phục cho việc lựa chọn môi trường mới. Tất nhiên, nếu tất cả các câu trả lời đều ủng hộ những gì bạn đã nói, tôi sẽ không thất vọng! – ProgramsUnlimited