ribbon, mysql, cairo, .net, klient pocztowy

0

Witam,
dawno się nie odzywałem. Chcę napisać aplikację w C++ i bardzo mi się spodobał ribbon w visual studio. Ale nie do końca rozumiem kilka kwestii. Trochę szukałem w google, ale nadal mam wątpliwości.

  1. Czy jest sens łączyć ribbon z .net? Zależy mi na aplikacji wieloplatformowej.
  2. Wiem, że cairo z łatwością można dodać do ribbona? Bo jest napisany pod C++.
  3. Jaką bibliotekę polecicie do stworzenia Klienta pocztowego, oczywiście w połączeniu z ribbonem? (IMAP, SMTP, utf-8, autoryzacja, html, wiele kont)
  4. Jaką bibliotekę polecacie do połączenia z bazą danych MySQL?
  5. A co powiecie o zabezpieczeniach? Coś kupić? Jak stworzyć logowanie?

Programuję jakiś czas, ale z c++ dopiero zaczynam zabawę (podstawy znam :D )

0
  1. co to znaczy wieloplatformowej wg Ciebie? O jakie platformy Ci chodzi?
  2. Ribbon (jeśli chodzi Ci o wstążkę taką z Office np.) nie ma nic do rzeczy jeśli chodzi o inne biblioteki - to jest po prostu zastępnik menu i toolbara
0

Nie ma jednej biblioteki "ribbon".
To tak jakbyś mówił "menu bar" albo "button".

Ribbon, wstążka, to element GUI. Jest wiele bibliotek go implementujących.
Sam Microsoft napisał ribbona kilka razy od nowa.

Po raz pierwszy wstążka pojawiła się w Office 2007. Nie można jej użyć we własnym programie - a przynajmniej nie zostało to udokumentowane.

Potem jako dodatek do któregoś Visuala (2008?) pojawiła się wstążka dla biblioteki MFC. Jest to inny ribbon niż ten z Office 2007, mimo że wygląda podobnie. Z tego co kojarzę, to nie jest to dzieło Microsoftu, tylko odkupili od kogoś.

Potem w Windows 7 jeszcze inną wstążkę mają niektóre programy (Paint, Wordpad) a w Windows 8 systemowy Eksplorator. Ta wstążka jest elementem systemu operacyjnego [Visty (z Platform Update) i nowszych] ale można jej też używać we własnych programach.
Nazywa się Windows Ribbon Framework.

Oprócz tego istnieje niezliczona ilość „wstążek” zaimplementowanych w Windows Forms, WPF i innych bibliotekach.

0

Ok, co do ribbona to rozumiem. Wieloplatformowość - nie jest dla mnie aż tak istotna. Głównie pracuję na Windowsie, ewentualnie Linuxie. Można w sumie ten punkt olać.

To biorąc pod uwagę, że chcę pracować na .NET (WPF) możecie odpowiedzieć na pytania 3, 4 i 5?

0

Przede wszystkim jeśli chcesz pracować na .NET, to radzę Ci nie podchodzić do C++/CLI (ni to C++, ni to C#), tylko wziąć się za C#.

0

Może inaczej. Zależy mi na pracy w C++ bo główne zastosowanie to podczepienie biblioteki cairo (c# mnie nie interesuje). Stąd wspomniałem o ribbonie, bo fajnie tworzy się menu.

Proszę o info co z bibliotekami do mysql i klienta pocztowego?

0

Jeśli zależy Ci na C++, to nie .NET, tylko MFC lub QT, lub wxWidgets jeśli chodzi o okienka. Co do bibliotek do MySQL to daj spokój. Drugi wynik w google :| https://dev.mysql.com/doc/connector-cpp/en/connector-cpp-examples-complete-example-1.html

Poza tym masz też wersję dla C#: http://www.cairographics.org/bindings/
W prawdzie jest to Mono, więc nie wiem jak to będzie działało w normalnym Windowsie.

0

Sorry, z MySQL to się pospieszyłem. Jeżeli chodzi o cairo pod c# to wiem, że jest ale ja muszę działać w c++ :)

A co powiesz o GTK+ oraz ribbonie (WRF)? Większość programów CAD używa menu podobnego do Offica (stąd pisałem o ribbonie).

Za resztę informacji to wielkie dzięki.

P.S. A co z pocztą? Znalazłem VMime - wygląda ciekawie. Potrzebuję napisać klient pocztowy do obsługi kilku kont na raz (nie pytajcie czemu standardowe programy są niewystarczające) używając IMAP, SMTP oraz coś do kodowania? Właśnie co z kodowaniem, jak do tego się podchodzi - napisać samemu?

0

No i HTML :D

0

To Ci powiem, że większość programów CAD (jeśli nie wszystkie) używa MFC. Jeśli chodzi o ribbon, to część pewnie używa też ribbona z MFC, a część ma swój.

Kodowanie, masz na myśli kodowanie maila, czy zakodowanie treści maila?

0

Chodzi o kodowanie tj. utf-8.

0

No co z tym kodowaniem. Masz od tego google jak np. konwertować między UTF8, UTF16, czy jakimś iso. Np: http://stackoverflow.com/questions/4059775/convert-iso-8859-1-strings-to-utf-8-in-c-c Chociaż jestem pewien, że są do tego gotowe biblioteki. Pewnie nawet w boost. Musisz poszukać. Osobiście niczego takiego nie znam, bo nie używałem.

0

Jeśli zależy Ci na C++, to nie .NET, tylko MFC lub QT, lub wxWidgets jeśli chodzi o okienka.

To że niektórzy tu mają awersję do C++/CLI (podkreślając z uporem godnym lepszej sprawy że to nie C++) to nie powód by proponować MFC w miejsce Windows Forms ;-)

0

Poczytałem trochę o Qt i wxWidgets i wychodzi na to, że Qt jest dużo ciekawszy (prostszy) np.: ma coś ala CSS.
Jeżeli chodzi o MFC to wydaje mi się trochę.... starawe :D

Natomiast nie do końca rozumiem problemu z C++/CLI? Chodzi o to, że pisze się w C++ ale kod wychodzi taki jak z C# (w senie łatwiejszy do zdekompilowania)? Wiem, że też jest problem z edytorem GUI.
Rozumiem, że .NET daje mi ustandaryzowanie bibliotek niezależnie od wersji Windowsa, ale czy warto się w to pchać?

Szczerze jestem w kropce, nie wiem w co iść. W dodatku każdą z nich (Qt, wxWidgets i MFC) można zintegrować z ribbonem...

0

Ok, wiem trochę więcej:
MFC - z tym starawo to trafiłem :D czytałem, że zbliżony do tego jest wxWidgets
wxWidgets vs Qt - (cross-platform) czytałem, że Qt jest ciekawsze jeżeli chodzi o prostotę i możliwości, ale edytor do wxWidgets jest o niebo lepszy.

.NET - jak dobrze rozumiem, to .NET warto używać jak działa się w obrębie systemów Windows? Więc łączenie z Qt lub wxWidgets mija się z celem (chodzi o cross-platform).

Na podstawie tego wychodzę z założenia, że Qt jest dla mnie najlepszy bo:

  1. Wieloplatformowy
  2. Łatwy w obsłudze
  3. Ribbon
  4. Już kiedyś ktoś mi polecał to rozwiązanie
  5. Można połączyć z cairo - https://cgit.freedesktop.org/cairo/tree/src/cairo-qt.h

Porównywałem jeszcze Qt z GTK i powiem, że tutaj mam mały dylemat. Oczywiście Qt zwycięża jeżeli chodzi o ilość platform oraz różnorodność bibliotek, ale GTK jest chyba "niższego poziomu"? Jakie są zalety GTK nad Qt?

0

Jeśli MFC jest stare, to VCL też jest stare. Oczywiście, że są stare, ale są cały czas rozwijane i szeroko wykorzystywane. Osobiście nie lubię MFC, bo jak dla mnie jest strasznie toporne i nieznacznie wyżej niż WinAPI. Chociaż jak ktoś zna dobrze MFC to programy MDI(typu document-view) na pewno napisze szybciej niż z użyciem VCL(zakładając czystego VCL i czyste MFC - tzn. bez dodatkowych bibliotek). Ale i tak dla mnie VCL to potęga. Z tego co wiem to zarówno QT, jak i wxWidgets są wieloplatformowe. Kusiła mnie zabawa w QT, ale po zerknięciu na licencję wolałem w to nie wchodzić, bo sam nie wiem co mi wolno i kiedy, a czego nie. Ale to kwestia ogarnięcia tej licencji. Natomiast jeśli chodzi o C++\CLI, to fakt faktem, też kiedyś myślałem, że jest to C++ z okienkami. Ale, żeby się przekonać co to tak naprawdę jest, to musisz sam spróbować coś w tym napisać.

Widzę też, że pytający ma jednak dość dużą awersję do googla ;)
https://www.wikivs.com/wiki/GTK_vs_Qt
http://stackoverflow.com/questions/1887070/what-should-i-choose-gtk-or-qt
http://forum.unit1.pl/topic/3927-api-gtk-czy-qt/

0

Uwielbiam się uczyć, ale szybko :) Najpierw przeglądam internet, ale zawsze znajdę 100 000 pytań. Dlatego piszę na forum i dociekam aż znajdę odpowiedzi na wszystkie pytania ;)

Wolę rozmawiać niż czytać - czytanie to powolna nauka, rozmowa to zdobywanie wiedzy w tempie geparda :P

Qt - płacisz jak zarabiasz :D

0

P.S. Czytałem wszystkie te fora :) Serio - popatrz na moje mądrości i porównaj :D

P.S. Czyli Qt + ribbon wygrywa. Pobawię się i dam znać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1