2012-04-25 31 views
6

tôi muốn có thể thực thi JavaScript ở phía máy chủ đang chạy môi trường .net.
để có thể làm như thế nào? chủ yếu là tôi cần chức năng xử lý văn bản, tôi sẽ nhập một chuỗi và nhận được một chuỗi được trả lại từ mã JavaScript.
không cần tương tác cửa sổ.là nó có thể thực thi mã javascript trong khuôn khổ .net?

+3

. Net khá tốt để xử lý văn bản. Có điều gì đó cụ thể mà bạn cần chỉ có JavaScript có thể cung cấp không? –

+0

Tôi muốn nhận xét thứ hai của @MarceloCantos. Lợi thế của việc đi ra ngoài. Net để xử lý văn bản là gì? –

+2

Điều này có vẻ giống như một điều kỳ lạ muốn làm. Chính xác thì bạn đang cố đạt được điều gì? – asawyer

Trả lời

11

Có, có một số công cụ JS mà bạn có thể sử dụng. Jurassic, JintIronJS là dựa trên .NET, nhưng bạn cũng có thể giao tiếp với những người khác như V8 từ trình duyệt Chrome hoặc ActiveScript từ IE.

EDIT: Năm năm sau các công cụ JS nguồn gốc từ NET được hơi tụt hậu so với (không hỗ trợ ES6 nêu ra, và IronJS dường như bị bỏ rơi), nhưng bây giờ chúng ta cũng có mã nguồn mở ChakraCore mà không phải là rất khó để tích hợp và sử dụng .NET với một trong các trình bao bọc có sẵn.

Ngoài ra, JavaScriptEngineSwitcher cho phép sử dụng hầu như bất kỳ công cụ JS hiện có nào từ bên trong mã .NET thông qua giao diện chung, do đó các công cụ chuyển đổi không cần thay đổi mã.

+0

bất kỳ liên kết nào về cách tương tác với chrome hoặc các công cụ javascript tức là? – Karim

+1

có vẻ như Jint là lựa chọn tốt nhất :) – Karim

3

Bạn có thể viết tệp JScript.Net và biên dịch nó thành một hội đồng với jsc, sau đó chỉ cần sử dụng hội đồng đó như bất kỳ tổ chức nào khác.

Ví dụ:

package Your.Desired.Package.Name { 
    Class SomeClassName { 
     public static function doSomething(foo) } 
      var bar; 

      // Fairly normal JavaScript code here 

      if (foo.match(/sometest/)) { 
       // Do something 
      } 
      else { 
       // Do something else 
      } 
     } 
    } 
} 

Khác với các cấu trúc packageclass, mã trong JScript.Net về cơ bản là JavaScript. Bạn thậm chí có eval nếu bạn muốn trở nên xấu xa. :-)

Sau đó bạn biên dịch đó vào một hội đồng như thế này:

jsc /target:library TheFileName.js 

... và nó sản xuất và lắp ráp trong TheFileName.dll.

+0

Điều đó khá gọn gàng. – asawyer

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