Łukasz Sarnecki

Łukasz Sarnecki System Engineer
(Inżynier do spraw
systemu i
oprogramowania)

Temat: Visual Studio czy Monodevelop

Witam

Chcę zacząć programować w .Net z użyciem C#. Mam pytanko co lepiej się do tego nada VS 2010 czy może Monodevelop z Mono?
Tomasz M.

Tomasz M. never go full
retard!

Temat: Visual Studio czy Monodevelop

Łukasz Sarnecki:
Chcę zacząć programować w .Net z użyciem C#. Mam pytanko co lepiej się do tego nada VS 2010 czy może Monodevelop z Mono?

Ja bym zaczął od VS, ale należy sobie odpowiedzieć na pytanie czy chcę pisać tylko na platformie Windows. Jeśli chcesz uruchamiać program też na linuchu, no to Mono.

No i tak btw, to Mono jest trochę w tyle za frameworkiem, ale zadziwająco szybko nadgania ;]Tomasz M. edytował(a) ten post dnia 13.06.12 o godzinie 09:59

Temat: Visual Studio czy Monodevelop

Jeśli ma być pod Pingwina, to tylko Mono. Wtedy nie zacznie się nadużywać PInvoke (DllImport) i będzie bazować na tym, co jest dostępne na tę platformę, zamiast potem dokonywać "downgrade'u" funkcjonalności z pełnego .NET na Mono. W dodatku nauczy się pracy z np. Apachem, zamiast z marszu startować z IIS.

Jeśli pod Windows - tylko VS (+ jakieś wtyczki, np. ReSharper), bo MonoDevelop jest w tyle nawet za SharpDevelopem. Ot - po prostu rozbudowany edytor z kolorowaniem składni i możliwościami uruchomienia programu.

Aha, no i wybierając platformę, jeśli będą to aplikacje okienkowe (fat client), to trzeba się zdecydować na jakąś bibliotekę "formsów". Pod Windows to albo Windows Forms (plus jakieś zewnętrzne płatne bądź darmowe kontrolki, np. Krypton toolkit czy DevExpress) albo WPF. Jeśli Linuks, to brak tam edytora WinFormsów (będą działać, choć wyglądają biednie, ale nie da się projektować formatek z designera, można je tylko klepać w kodzie), za to jest szereg innych bibliotek, jak GTK# czy binding do QT.
http://www.mono-project.com/Gui_Toolkits
Niestety, to są różne koncepcje budowania GUI. Np. mnie początkowo wkurzały "kontenery" w GTK# (a potem je polubiłem :) ) i "sygnały" zamiast "zdarzeń" :] http://zetcode.com/tutorials/gtksharptutorial/layout/ W każdym razie aplikacja napisana w "przenośny sposób" pod .NET zadziała w Mono i vice versa (po instalacji bibliotek np. GTK).

Co do ASP.NET, to w Mono 2.10 można korzystać MVC3
http://www.mono-project.com/Release_Notes_Mono_2.10#AS...

Warto na początek rozeznać się, co można zrobić w Mono i czy nam to wystarczy: http://www.mono-project.com/StartAdrian Olszewski edytował(a) ten post dnia 13.06.12 o godzinie 11:28
Łukasz Sarnecki

Łukasz Sarnecki System Engineer
(Inżynier do spraw
systemu i
oprogramowania)

Temat: Visual Studio czy Monodevelop

Adrian Olszewski:
Jeśli ma być pod Pingwina, to tylko Mono. Wtedy nie zacznie się nadużywać PInvoke (DllImport) i będzie bazować na tym, co jest dostępne na tę platformę, zamiast potem dokonywać "downgrade'u" funkcjonalności z pełnego .NET na Mono. W dodatku nauczy się pracy z np. Apachem, zamiast z marszu startować z IIS.

Jeśli pod Windows - tylko VS (+ jakieś wtyczki, np. ReSharper), bo MonoDevelop jest w tyle nawet za SharpDevelopem. Ot - po prostu rozbudowany edytor z kolorowaniem składni i możliwościami uruchomienia programu.

Aha, no i wybierając platformę, jeśli będą to aplikacje okienkowe (fat client), to trzeba się zdecydować na jakąś bibliotekę "formsów". Pod Windows to albo Windows Forms (plus jakieś zewnętrzne płatne bądź darmowe kontrolki, np. Krypton toolkit czy DevExpress) albo WPF. Jeśli Linuks, to brak tam edytora WinFormsów (będą działać, choć wyglądają biednie, ale nie da się projektować formatek z designera, można je tylko klepać w kodzie), za to jest szereg innych bibliotek, jak GTK# czy binding do QT.
http://www.mono-project.com/Gui_Toolkits
Niestety, to są różne koncepcje budowania GUI. Np. mnie początkowo wkurzały "kontenery" w GTK# (a potem je polubiłem :) ) i "sygnały" zamiast "zdarzeń" :] http://zetcode.com/tutorials/gtksharptutorial/layout/ W każdym razie aplikacja napisana w "przenośny sposób" pod .NET zadziała w Mono i vice versa (po instalacji bibliotek np. GTK).

Co do ASP.NET, to w Mono 2.10 można korzystać MVC3
http://www.mono-project.com/Release_Notes_Mono_2.10#AS...

Warto na początek rozeznać się, co można zrobić w Mono i czy nam to wystarczy: http://www.mono-project.com/Start

No właśnie jestem ciekaw pod jaką platformę bardziej opłaca się programować. Jestem użytkownikiem Linuxa jak i Windowsa. Rozumiem, że jeśli chciał bym zacząć programować pod obie platformy to lepiej wybrać Monodevelop i Mono?
Tomasz M.

Tomasz M. never go full
retard!

Temat: Visual Studio czy Monodevelop

Łukasz Sarnecki:
No właśnie jestem ciekaw pod jaką platformę bardziej opłaca się programować. Jestem użytkownikiem Linuxa jak i Windowsa. Rozumiem, że jeśli chciał bym zacząć programować pod obie platformy to lepiej wybrać Monodevelop i Mono?

No innego wyjącia nie ma raczej ;] Poza tym Mono jest sportowane na Androida, więc double-win - można od razu trzaskać gold na Andro-Markecie - z tymże trzeba zakupić licencję.
Łukasz Sarnecki

Łukasz Sarnecki System Engineer
(Inżynier do spraw
systemu i
oprogramowania)

Temat: Visual Studio czy Monodevelop

A co jeśli chodzi o bazy danych. Czytałem, że do .net lepiej używać MSSQL, czy bazy MySQL też będą działać?
Łukasz Kaszubowski

Łukasz Kaszubowski Student, Wyższa
Szkoła Gospodarki w
Bydgoszczy

Temat: Visual Studio czy Monodevelop

Jeśli chodzi o bazy danych to do każdego jest napisany jakiś provider, więc bez problemu połączysz się z MySql, PostrgeSQL czy nawet z Firebirdem :)

Temat: Visual Studio czy Monodevelop

Tak. Niestety, musisz wtedy zrezygnować z DllImport, COM, Rejestru i innych technologii/komponentów właściwych dla Windows, np. kontrolka przeglądarki internetowej (w Windows jest to silnik Trident, a więc IE, w Linuksach inne, np. WebKit czy Gecko). A także pamiętać, by wraz z aplikacją dystrybuować biblioteki GUI (np. GTK#). Jeśli zamierzasz komunikować się z jakimś konkretnym softem, który wystawia interfejs przez COM, to wtedy z tego nie skorzystasz. A przynajmniej nie bez "obejść".

Co do tego "pod jaką platformę opłaca się programować" - to zależy co i dla kogo.

"Od zawsze" zajmuję się systemami medycznymi i OSy inne niż Windows mnie nie interesowały. A to ze względu na fakt, że klienci używali wyłącznie systemu z Redmond. Mój znajomy nadal programuje pod Windows Mobile, chociaż na rynku od kilku lat króluje Android i OS - i jeszcze ma kilka lat ma zajęcie. Z drugiej strony, gdy zacząłem ostatnimi laty zajmować się tworzeniem systemów do statystycznej analizy danych, przenośność GNU R, MONO, Oracle'a, SQLite czy Postgresa bardzo mi pomogła, ponieważ klienci mogli wykorzystać istniejącą infrastrukturę serwerową, nie musieli kupować Windows Server albo mogli wykorzystać słabsze maszyny z np. Debianem. Możesz także pisać komercyjnie (czyli za $) pod Windows, a w ramach "promocji marki" - wersję Linuksową wydawać za free.

Jeśli zamierzasz skupić się na algorytmice (kodeki, kompresory, audio-video), to oczywiście przenośność jest priorytetem. Jeśli na bogatych interfejsach graficznych, to zapewne nie raz skorzystasz z PInvoke (czyli funkcji zależnych od systemu).

Możesz oddzielić warstwy softu i logikę pisać przenośnie, warstwę dostępu do danych - na tyle przenośnie, na ile się da (pomoże Ci tu jakiś ORM). Obie warstwy zamkniesz w serwisie (czy to WebSerwice, czy to gniazda TCP/IP, czy to potoki, czy coś jeszcze innego), zaś warstwa graficzna będzie "konsumować" ów serwis. I napisana może być w czymkolwiek. Wtedy soft pod Windows może być pisany w WPFie ze wszystkimi bajerami, soft pod Linuksa - w języku jakim zechcesz ( C++/Javie/.NET/Mono) i z użyciem dowolnych bibliotek GUI: GTK, QT, Swing, TclTk, WxForms, albo po prostu będzie to "thin client" w ASP.NET czy PHP.

Dodatkowo powyższą separację warstw możesz powiązać z mechanizmem "pluginów", gdzie podstawowa część będzie niezależna od platformy i pisana np. w Mono, zaś do obsługi bardziej złożonych i zależnych od OS zadań pisane będą dedykowane pluginy - i te mogą być już zależne od OSa. Przykład: odtwarzanie treści multimedialnych możesz wydelegować do pluginów, gdzie windowsowy wykorzysta MCI albo WMPlayer (bo to jest praktycznie w każdym systeime), zaś linuksowy - właściwe mu narzędzia (i tu już - zależnie od dystrybucji).

---
Co do baz danych - większość baz ma swoje providery, w tym PostgreSQL, MySql, Firebird, Oracle, SQLite i kilka innych.

Warto także pamiętać, że do komercyjnych celów za darmo możesz wykorzystać Oracle XE (podobnie, jak pod Windows - MS SQL Express).

---
Tomek ma rację co do Androida, ale pamiętajmy także o Win Phone ;)Adrian Olszewski edytował(a) ten post dnia 16.06.12 o godzinie 15:20

konto usunięte

Temat: Visual Studio czy Monodevelop

Witam

Chcę zacząć programować w .Net z użyciem C#. Mam pytanko co lepiej się do tego nada VS 2010 czy może Monodevelop z Mono?

Visual Studio. Może nie jest idealne, ale na pewno dużo lepsze do Monodevelop.
Z resztą, po kilku miesiącach zabawy z Mono zdecydowanie odradzam ten framework.

Temat: Visual Studio czy Monodevelop

Jeśli pozostanie tylko pod Windows, to oczywiście VS. A dodatkowo, do prac "w terenie" polecam jeszcze Sharp Developa (ficzery), da się uruchomić z pendrive'a i jest IMHO dość dopracowany. Używam go od pierwszych wydań.

Jeśli jednak będzie zmuszony (jak np. ja) do pisania także pod Pingwina, to nie ma innej alternatywy. A ile radości podczas instalacji ;) Pamiętam, jak w zeszłym roku walczyłem z instalacją ze źródeł (2.8 nie było jeszcze w repo "squeeze'a"). Część apt-getem, część ze źródeł - wszystkie komponenty - od core'a przez tony lib*ów (np. libglade do GTK, odpowiednie kodeki do PNG, GIF i takie tam, Cairo) i bindingów, monodevelop, debugger, webkit... Myślałem, że oc*pieję przy tym, tym bardziej, że na stronach Mono i samouczkach nazwy plików były czasem różne, nie wspomnę o kolejności instalacji. Ale ile było radochy, kiedy odpaliłem Monodevelopa i zrobiłem pierwsze okno w GTK# :D Jak prawie dekadę temu przy pierwszym projekcie w .NET 1.0 :D

Swego czasu były i inne projekty, np. dot GNU, ale ów chyba umiera/umarł.

Poza tym... korzystając z MONO będzie (być może) zgłaszał błędy i uwagi, a to przyczyni się do rozwoju Mono. A fajnie byłoby, żeby jednak "wieloplatformowość" .NETa zaczęła być "true" a nie "ersatz" :) Tak przy okazji - nawet SharpDevelop korzysta z PInvoke i nie pójdzie pod Mono. A miałem nadzieję na bardzo fajne środowisko.

Jeśli jednak chce komfortowo uczyć się .NETa ze wszystkimi bajerami, to Windows. Na Mono zawsze przyjdzie czas. Poza tym, jeśli będzie pisał przenośnie, to assembly skompilowane pod VSem odpali spokojnie pod Mono.Adrian Olszewski edytował(a) ten post dnia 17.06.12 o godzinie 02:51

konto usunięte

Temat: Visual Studio czy Monodevelop

tylko VS. W końcu to MS zrobił cały .NET jak również środowisko VS, dlatego sądzę że lepiej od razu od tego zacząć. Tym bardziej jeśli ktoś jest początkującym programistą.

Temat: Visual Studio czy Monodevelop

Jeśli chce programować pod Win, Maca i Linuksa, to pracując z VS szybko się przyzwyczai do dobrego środowiska i do formsów oraz czysto windowsowych funkcjonalności. A potem będzie tego brakować pod Mono. Nieuchronnie będzie frustracja, że "taka fajna aplikacja napisana w .NET, a nie uruchamia się pod Linuksem i trzeba ją przerabiać". Jeśli ma być wieloplatformowo, IMO lepiej od razu porzucić formsy i VS na rzecz np. GTK# i Monodevelop (pójdzie też pod Makiem i pod Windowsami), czyli samemu nałożyć sobie pewne ograniczenia. Dopiero potem, jak już nabierze doświadczenia w prostszym środowisku i w pisanie przenośnego kodu, warto siąść do VS, gdzie też będzie mógł pisać programy pod Mono, choć będzie się musiał pilnować no i nie będzie designera GTK# (choć zawsze można tworzyć formatki w kodzie).

W przeciwnym razie - oczywiście VS. Dodatkowo radziłbym też uczyć się równolegle pracy z SharpDevelopem, który pomoże "w terenie"; można go uruchamiać z pena, a możliwości ma naprawdę duże.Adrian Olszewski edytował(a) ten post dnia 03.07.12 o godzinie 14:04



Wyślij zaproszenie do