28578


C＃で作成されたWindowsアプリケーションを、Xamarinを使ってMacアプリに変換したいと考えています。画面はWindows
Formsで作成されており、ロジックはWindows APIを使用しているため、mono上では動作しないと思われます。

  * solutionの変換ツール等はありますか？
  * 変換ツールがなければ、手順等はありますか？


CC BY-SA 3.0
2016-08-29T01:11:29.473
28543
2016-08-30T05:24:30.293
2016-08-29T04:56:46.610
4236
18630
question
c# xamarin
c#からxamarin macへの移行方法について


[Xamarin.Forms Requirements - Target
Platforms](https://developer.xamarin.com/guides/xamarin-forms/getting-
started/installation/#Target_Platforms)は次のようになっていてMacではそもそも動作しません。

>   * Android 4.0.3 (API 15) or higher
>   * iOS 6.1 or higher
>   * Windows Phone 8.1 (WinRT, using Visual Studio)
>   * Windows 8.1 Tablet/Desktop Apps (WinRT, using Visual Studio)
>   * Windows 10 Universal Apps (Phone/Tablet/Desktop, using Visual Studio)
>

* * *

指摘のあったように上記はXAMLベースのUIなので移行先としては不適切でした。

ところでWindowsとMacとではUIが異なります。例えばメニューバーの位置がウィンドウ上部ではなくスクリーン上部ですし、そうなるとツールバーをどこに置くのかという問題も出てきます。更に言うとWindowsではメインウィンドウのクローズがアプリケーションの終了を表しますが、Macではそうとは限らず基本的にはウィンドウを閉じても動き続きます。

というような違いを考慮すると、単純な移行は困難で、アプリケーションの再設計を行うべきではないでしょうか？


CC BY-SA 3.0
2016-08-29T05:03:02.517
28549
2016-08-29T21:43:15.073
2016-08-29T21:43:15.073
4236
4236
28543
answer


Monoのメインターゲットの遷移としては、

  1. Linuxのデスクトップツール(Win, Macも)
  2. ASP.NETなどサーバー側
  3. Silverlight互換のブラウザプラグイン Moonlight(現在廃止)

  4. スマホのクロスプラットフォーム(MoonlightをAndroid,iOS拡張)  
(iOSからdarwinデスクトップ[osx]を少々)

という歴史があります。

1.をやっていたNovel時代には、WinFormsアプリをMonoに移植するために、変更が必要なAPIを提示するようなツールを用意してましたが、現在はありません。  
<http://www.mono-project.com/docs/gui/winforms/porting-winforms-applications/>

最近は、スマホGUI向けにクロスプラットフォームのGUIを用意してますが、デスクトップは、各プラットフォームのGUIが独立してるため移植先のGUIを勉強して移植する形になります。  
<http://www.mono-project.com/docs/gui/>

最近は、少しクロスプラットフォームの機運があるようですが。  
サードパーティ製のeto  
<https://github.com/picoe/Eto>

JavaのAWT/SwingのようなXwt  
<https://github.com/mono/xwt>


CC BY-SA 3.0
2016-08-30T02:31:46.887
28576
2016-08-30T03:47:29.290
2016-08-30T03:47:29.290
8000
18647
28543
answer


まずソリューションはXamarin Studioでそのまま開くことができます。変換の必要性は特にありません。

WindowsAPIをお使いとのことなので，この部分をMacで実現する方法を探していくのが第一ステップです。  
ウィンドウ部品については，Mono上のWindows Forms実装でサポートしている範囲であれば，ビルドすればそのまま実行することができます。  
macOSのユーザーインタフェースデザインにされたいということであれば，第二ステップとしてXcodeを使ってUI部分を作っていくこととなります。

Windows FormsアプリケーションをXamarin.Macに移行した実例としては，Gochiusearch リポジトリが参考になるかと思います。  
<https://github.com/ksasao/Gochiusearch>

どのように実装を進めたのか，プロジェクトファイルの作成から順を追って解説している記事も合わせて参照ください。  
<http://aile.hatenablog.com/entry/2016/05/11/224854>


CC BY-SA 3.0
2016-08-30T05:24:30.293
28578
2016-08-30T05:24:30.293
109
28543
answer