Tôi đang tìm cách xuất một số HTML sang trang web bằng F #. Bất kỳ ý tưởng?Phát triển web .NET đơn giản với F #
Trả lời
Để cung cấp cho một số "HOWTO" cụ thể, tôi đã thử tạo một ứng dụng ASP.NET MVC đơn giản thực hiện các phần chính trong F #. Như đã lưu ý trong câu trả lời được tham chiếu, cách tốt nhất để sử dụng F # để phát triển web là tạo một ứng dụng web C# và di chuyển tất cả các kiểu thực hiện hành vi thực tế đến thư viện F #.
Mặc dù có thể tạo trực tiếp dự án F # web, nhưng có rất nhiều hạn chế (ví dụ: không hoàn toàn intellisense và các vấn đề khác), vì vậy việc quản lý các tệp aspx
trong C# có lẽ là một ý tưởng tốt hơn.
Đây là những gì tôi đã làm (sử dụng Visual Studio 2010):
- Tạo một C# dự án mới "ASP.NET MVC Application 2 Web". Điều này tạo ra một dự án C# mới với một số mẫu ban đầu và một vài trang. Tôi sẽ bỏ qua trang xử lý các tài khoản (bạn có thể xóa nó).
- Có
HomeController.cs
tệp trongControllers
, chứa chức năng cho trang chủ (tải dữ liệu, v.v.) Bạn có thể xóa tệp - chúng tôi sẽ triển khai lại nó trong F #. - Thêm dự án "F # Library" mới và thêm tham chiếu đến các hội đồng ASP.NET MVC. Có rất nhiều người trong số họ (xem dự án C#), nhưng quan trọng nhất, bạn sẽ cần
System.Web.Mvc.dll
và những người khác được tham chiếu bởi cái này (trình biên dịch F # sẽ cho bạn biết cái nào bạn cần). - Bây giờ, hãy thêm mã bên dưới vào
Module1.fs
- công cụ này thực hiệnHomeController
gốc được sử dụng để viết bằng C#. đang
Nguồn trông như thế này:
namespace MvcApplication1.Controllers
open System
open System.Web.Mvc
[<HandleError>]
type HomeController() =
inherit Controller()
member x.Index() =
x.ViewData.["Message"] <- "Welcome from F#"
x.View() :> ActionResult
member x.About() : ActionResult =
x.View() :> ActionResult
này chỉ đơn giản là một tái thực hiện các mã C# ban đầu (tạo một lớp duy nhất). Tôi đã sử dụng không gian tên C# ban đầu, để khung MVC có thể dễ dàng tìm thấy nó.
Tệp Views\Home\Index.aspx
từ dự án C# xác định giao diện người dùng và sử dụng dữ liệu mà bạn đặt thành từ điển ViewData
từ dự án F # của bạn.
"HOWTO" này cho thấy cách sử dụng F # để viết ứng dụng ASP.NET MVC, nhưng các bước để tạo một ứng dụng WebForms bình thường về cơ bản sẽ giống nhau - tạo ứng dụng web C# và di chuyển các lớp thực hiện sang thư viện F #, sẽ được tham chiếu từ ứng dụng web C# (mà thực sự sẽ không chứa nhiều mã C#).
Cảm ơn bạn! Đây chỉ là những gì tôi đã được sau khi! = D Một điều: Tôi nhận thấy rằng thao tác này: "thành viên x.Index() = x.Xem()" Lưu ý việc thiếu chú thích và truyền kiểu. Được không? Nó hoạt động tốt, nhưng tôi tò mò là tại sao bạn đã làm bạn khác nhau. –
@Matt: Nếu nó hoạt động, thì tôi cho rằng đó là Ok :-). Tôi nghĩ rằng MVC sử dụng Reflection trong nội bộ, vì vậy nó có thể là một chút linh hoạt. Tôi đã làm phiên bản của tôi khác nhau, bởi vì tôi chỉ đơn giản là phiên dịch C# (chính xác như nó đã được, để tránh các vấn đề có thể với các chi tiết khác nhau). –
Trong trường hợp ai đó quan tâm đến một cuộc thảo luận chi tiết hơn, tôi đã viết một bài báo về chủ đề này:
bài viết cho thấy một ứng dụng web MVC tương đối đơn giản được tạo ra trong F #. Các bộ điều khiển và mô hình được thực hiện trong một thư viện F # riêng biệt (cùng với ánh xạ tuyến đường). Mẫu cũng trình bày cách sử dụng LINQ từ F # để truy cập dữ liệu (bao gồm một số mẹo nhỏ gọn như thành phần trích dẫn).
- ASP.NET and F# (I.) - Creating MVC web applications in F#
- Visual Studio 2010 Template - Thêm MVC Web Application để "New Project"
- 1. Visual Studio đơn giản nhất hỗ trợ C# và F #
- 2. Chương trình dành cho nhà phát triển iPhone cung cấp cho tôi việc đăng ký đơn giản và đơn giản như một nhà phát triển iPhone là gì?
- 3. Phát triển Web .NET Các thực tiễn tốt nhất
- 4. CMS đơn giản cho .Net Webshop
- 5. cách đơn giản triển khai KeyListener?
- 6. Phát triển Java cho web
- 7. Phát triển web với Jetty & Maven
- 8. python tkinter với một wrapper web đơn giản
- 9. API truy cập đơn giản (Khóa nhà phát triển) với Google Cloud Endpoint (Python)
- 10. REST của so với SOAP và so với trang web đơn giản, vv
- 11. Mã hóa chuỗi đơn giản trong .NET và Javascript
- 12. Framework for .net Reflection.Emit đơn giản hóa?
- 13. Ví dụ đơn giản ASP.NET đơn giản (không có biểu mẫu web và MVC)
- 14. Môi trường phát triển .NET "Hoàn hảo"?
- 15. Phát triển Aldon và .Net
- 16. Sự khác biệt lớn giữa J2EE và C# /. Net khi phát triển các Dịch vụ Web
- 17. IDE để phát triển web Django
- 18. Mã F # đơn giản nào tạo ra lệnh .tail IL?
- 19. Chuyển từ Phát triển Desktop sang Phát triển Web
- 20. Git thanh toán thưa thớt cho việc triển khai web đơn giản
- 21. Triển khai ứng dụng web .NET 4.5 với Triển khai Web
- 22. Mẹo để phát triển máy chủ web
- 23. QT và cầu phát triển web
- 24. Máy chủ web đơn giản trong C++?
- 25. Phát triển .NET của ứng dụng iPhone với MonoTouch - môi trường phát triển nào?
- 26. Máy phát CRUD đơn giản cho C#
- 27. Quy trình phát triển Web SVN
- 28. Máy chủ web Python đơn giản để lưu tệp
- 29. Viết một máy chủ web đơn giản trong Ruby
- 30. Làm thế nào để tạo trang web đơn giản với python?
Có xem xét câu hỏi này: http: // stackoverflow.com/questions/1135959/f-and-asp-net –
Nếu bạn đang hỏi về ASP.NET (tôi nghĩ vậy, dựa trên các thẻ) thì có lẽ nó là một bản sao. Tuy nhiên, có nhiều cách khác để tạo HTML từ F # (ví dụ: trực tiếp, nhưng đó có thể không phải là những gì bạn đang theo dõi). –
Tất cả các câu hỏi liên quan mà tôi đã xem xét nói rằng có thể nhưng thiếu bất kỳ chi tiết nào trong việc giải thích cách bạn thực sự làm điều đó. –