2013-05-10 2 views
0

Я новичок в пространстве WinRT. Наша компания приступила к разработке приложения для магазина Windows 8. Сначала я начал делать это в XAML/C#, пока не понял, что могу использовать javascript и html с WINJS;).WinRT WinJS + C#

Я написал много кода на C#, чтобы делать вызовы специально с помощью HTTPClient для вызовов REST.

1. Могу ли я повторно использовать эти методы и называть их из своего JS? 2.Do Мне нужно повторно упаковать их в классе lib или компоненте времени выполнения 3. Как мне получить доступ к этим классам в javascript?

Любое нажатие в правильном направлении было бы очень полезно.

Большое спасибо.

+0

Если ваше приложение подключается к веб-сервису через api rest, возможно, вы можете подумать о том, чтобы положить клиентскую оболочку сервиса в winrt и использовать ее из модели просмотра в js-коде. – Sushil

+0

У вас есть пример этого? – vanzylv

+0

На данный момент я не использовал повторное использование кода между C# и JS для своих приложений. Я написал их полностью в winjs или C#. следовательно, у меня нет образца кода. – Sushil

ответ

2

Да, вам нужно переупаковать их. Создайте проект компонента Runtime Windows из нового проекта (а не типа библиотеки классов). Когда вы компилируете, вы увидите, что вам нужно исправить, так как есть некоторые ограничения на типы.

Классы должны быть запечатаны, не могут наследоваться (за исключением случаев с ограниченным доступом) и других ограничений. Этот тип проекта создает .winmd (метаданные), которые могут использоваться вашим приложением JavaScript.

Важное примечание здесь: .NET Framework Support for Windows Store Apps and Windows Runtime

Если компонент будет использоваться только с C# или Visual Basic, нет никаких причин, чтобы сделать это компонент среды выполнения Windows. Если вы сделаете его обычной библиотекой классов .NET Framework, вам не нужно ограничивать свою открытую поверхность API до типов Runtime Windows.

+0

Спасибо за ответ. Чем больше я смотрю в WinJS, тем больше у меня возникают сомнения. Кажется, что вы много теряете на пути создания данных? Будет ли это быть точным? У меня есть куча объектов JSON, определенных для работы с моим HTTP-клиентом. Я не вижу прямого способа связать их с html? – vanzylv

+0

plennntttty вариантов привязки через WinJS или любую фреймворк привязки - см. Мое сообщение в блоге: http://completedevelopment.blogspot.com/2013/04/windows-8-listview-data-binding.html, если вы смотрите на разные сценарии я, конечно, могу что-то придумать. –

+0

Спасибо, мои объекты сидят в C#. Я буду одурачить немного больше. – vanzylv

0

Если вы меняете типы C#, чтобы быть типами WinRT, вы должны иметь возможность называть их из JS. Вот MSDN documentation, чтобы вы начали

+0

Спасибо за ответ – vanzylv

+0

Имейте в виду, что его не рекомендуется смешивать C# и JS в одном приложении. Поскольку загрузка .net-компонентов приводит к запуску .net Runtime в процессе wwahost.exe, значительно увеличивает объем памяти приложений. – philk

+0

@philk, где его рекомендуется избегать? Эта опция доступна для таких ситуаций. Я бы не рекомендовал переписывать вашу базу кода, чтобы этого избежать. –

Смежные вопросы