Arhn - архитектура программирования

Может ли Dart использовать службы WCF?

Может ли Dart использовать службы WCF? Если да, то как?

В более широком смысле, как можно перейти от веб-приложения «Javascript ‹--> ASP.NET ‹--> WCF Service ‹--> SQL» к приложению с интерфейсом Dart?

15.04.2014

  • Это не вопрос sql. Это вопрос wcf/dart 16.04.2014
  • Поищите в Интернете веб-сервис dart-consumer и попробуйте некоторые библиотеки, которые позволяют выполнять вызовы REST или SOAP. 16.04.2014

Ответы:


1

Да, это выполнимо - по крайней мере, в режиме отладки. Я немного боролся с этим, если не сказать больше. Я надеюсь, что другие люди могут извлечь из этого пользу.

Чтобы заставить его работать с дротиком, вам нужно поместить проект дротика в подпапку под папкой вашего решения и включить файлы (дротика) в ваш проект Visual Studio.

Попался: функция, которую я вызвал, является строкой с точки зрения Darts, но .NET должен потреблять поток. Я надеюсь, что кто-то может показать лучшее решение.

Итак, у меня есть это в моем ICalculationService. Я надеюсь, что кто-то может пролить свет на то, почему это должно быть так:

            [OperationContract]
            System.IO.Stream RunCalculation(System.IO.Stream calculation);

Код дротика прост (и программисты ценят простоту)

            void runCalculation() {
              String url = "http://localhost:5548/CalculationService.svc/RunCalculation";
              String data = "raw stuff to send to the service";
              Future<HttpRequest> request = HttpRequest.request(url, method: 'POST',sendData: data );
              request.then((HttpRequest resp) {
                DivElement div = querySelector("#someresult_div");
                div.text = resp.responseText;
              });
            }

Вот рабочая веб-конфигурация (проект является сервисным приложением WCF):

            <?xml version="1.0"?>
            <configuration>
              <appSettings/>
              <system.web>
                <compilation debug="true" targetFramework="4.0"/>
                <httpRuntime/>
              </system.web>
              <system.serviceModel>
                <behaviors>
                  <endpointBehaviors>
                    <behavior name="YourDefaultNamespace.CalculationService">
                      <enableWebScript/>
                    </behavior>
                  </endpointBehaviors>
                  <serviceBehaviors>
                    <behavior name="debug">
                      <serviceDebug includeExceptionDetailInFaults="true"/>
                      <serviceMetadata httpGetEnabled="true"/>
                    </behavior>
                    <behavior>
                      <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
                      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
                      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
                      <serviceDebug includeExceptionDetailInFaults="false"/>
                    </behavior>
                  </serviceBehaviors>
                </behaviors>
                <protocolMapping>
                  <add binding="basicHttpsBinding" scheme="https"/>
                </protocolMapping>
                <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
                <services>
                  <service name="YourDefaultNamespace.CalculationService" behaviorConfiguration="debug">
                    <endpoint address="" behaviorConfiguration="YourDefaultNamespace.CalculationService" binding="webHttpBinding" contract="YourDefaultNamespace.ICalculationService"/>
                    <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex"/>
                  </service>
                </services>
              </system.serviceModel>
              <system.webServer>
                <modules runAllManagedModulesForAllRequests="true"/>
                <!--
                    To browse web app root directory during debugging, set the value below to true.
                    Set to false before deployment to avoid disclosing web app folder information.
                  -->
                <directoryBrowse enabled="true"/>
                <staticContent>
                  <remove fileExtension=".dart"/>
                  <mimeMap fileExtension=".dart" mimeType="text/x.dart"/>
                </staticContent>
              </system.webServer>
            </configuration>

Если вы хотите делать что-то на чистом javascript, это может помочь понять, что происходит в малоизвестном мире wcf/asp.net: http://kinsey.no/blog/index.php/2009/10/28/using -wcfsvcs-automatically-generated-javascript-proxy-без-asp-net-ajax/

14.09.2014
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..