W tym konkretnym przypadku muszę uruchomić .komplikowaną aplikację NET dla systemu Linux. Przez skomplikowane oznacza - ten projekt został opracowany przez 3 lata i nie chcę pisać go ponownie w java lub coś innego i rozwijać i wspierać zarówno wersję .NET i Java później.Jak pisać programy w C# .NET, aby uruchomić je w systemie Linux/Wine/Mono?
Aplikacja generuje zdarzenia myszy i klawiatury (przez import winapi/dll) i używa portu szeregowego. Mam też kilka minut na opóźnienia - do komunikacji z portem szeregowym (10-20ms, nie potrzebuję tu dużej precyzji).
Reszta jest po prostu dużo prostego kodu, nic specjalnego, bez żadnych dziwnych kontrole, directx itp
Czego mam się spodziewać? Czy to zadziała?
Jeśli jakaś część kodu się nie powiedzie - mogę ją nieco zmienić, nawiązać połączenie sieciowe między aplikacją .net i mini-aplikacją na Linuksie, którą mogę zapisać do wysyłania zdarzeń myszy i klawiatury lub komunikacji RS232.
Dodatkowo chcę zapytać o winie i .NET ogólnie:
Jak napisać aplikacji .NET, który powinien działać na Linux/wino/Mono?
- której wersji framework? (1.x, 2.0 lub 3.5 można używać?)
- co należy unikać
Edycja/przeniesiony z komentarzem (import z dll okien liczniki?):
widziałem mono kilka lat temu, ale było strasznie. Teraz widzę, jak wyrosło, obsługuje LINQ, wątki i inne skomplikowane funkcje. Poza tym teraz pomoc wygląda naprawdę poważnie. Nie akceptuję jeszcze odpowiedzi, ponieważ widzę, że ludzie nadal publikują bardzo przydatne linki. Jeśli to pytanie otrzyma wiele +1, przepisuję je i być może to pomoże innym.
Mam nadzieję, że ktoś tutaj ma jakieś praktyczne doświadczenia z .NET na linux tutaj ...
[Mono] (http://www.mono-project.com/Main_Page) to open sourceowa implementacja platformy .NET Microsoftu, którą prawdopodobnie można do tego wykorzystać. –
Dzięki. Widziałem to gdzieś, ale zapomniałem. W każdym razie nadal potrzebuję praktycznych informacji od kogoś, kto opracował coś, co działa w Mono. – Kamil
W przypadku niepokojącej kompatybilności dostępny jest [Mono Migration Analyzer] (http://www.mono-project.com/MoMA), który może pokazywać potencjalne problemy. –