Autor Wątek: Windows Forms - alternatywa  (Przeczytany 3608 razy)

Offline Barthap

  • Użytkownik
    • Mój blog

# Marzec 04, 2010, 21:27:08
Witam!
Kiedyś napisałem program dla przychodni lekarskich do wypisywania danych pacjentów na recepcie, te dane zapisywał w bazie danych MS Access, aby bez powtórnego wprowadzania wszystkiego od nowa, wprowadzić jedną daną (np. nazwisko), a program uzupełniał resztę. Pisałem go w MFC, ponieważ miał łatwy dostęp do baz Accessa przez ODBC, poza tym miałem książkę o MFC.
Teraz mam zamiar tworzyć nowszą wersję. Pierwsze, co nasunęło mi się na myśl to Windows Forms i C# przede wszystkim dlatego, że w Windows Forms łatwo i bez dużego wysiłku stworzyć ładny interfejs użytkownika (MFC dawało możliwość tworzenia toolbarów, ale same 8-bitowe ikonki były tragiczne, poza tym jest już podobno przestarzałe). Napisałem podstawy tego programu, prawie cały interfejs, możliwość drukowania, do zaimplementowania pozostała tylko baza danych i operacje na niej wykonywane. Wszystko ładnie, ale jest duży problem, mianowicie to, że Windows Forms i cały C# korzysta z .NET, a użytkownik musi mieć .NET Framework 3.5 (na starszym się nie builduje), co na komputerach w przychodniach jest problemem, bo nie mają tego typu "śmieci", a na doinstalowywanie trzeba mieć zezwolenie administratora komputerów w przychodni, którego nie ma.
Więc moje pytania:
1. Czy w czystym WinAPI jest możliwość stworzenia aplikacji wyglądającej tak: http://img689.imageshack.us/i/receptka.png/, z drukowaniem i wykorzystaniem ODBC + MS Access?
2. Czy jest możliwość stworzenia aplikacji Windows Forms C# nie wykorzystującej .NET Frameworka 3.5 tylko np. 2.0, który jest na komputerach w przychodni? (słyszałem o Client-only Framework Subset, googlowałem, ale dalej nie wiem dokładnie, na czym to polega)

Jeśli to zły dział, proszę o przeniesienie, Jeśli to, co napisałem, jest niezrozumiałe, mogę opisać to dokładniej. Jeśli cokolwiek innego jest nie tak, piszcie ;D

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

st3tc

  • Gość
# Marzec 04, 2010, 21:37:11
Dlaczego nie możesz użyć 2.0 ?. Przecież to się zmienia w opcjach projektu ...
Pozdr.

Offline Barthap

  • Użytkownik
    • Mój blog

# Marzec 04, 2010, 21:46:06
tak ale mam błąd kompilacji
C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets : warning MSB3251: Could not resolve assembly System.Xml.Linq. The target framework required by this assembly (3.5) is higher than the project target framework. If this reference is required by your code, you may get compilation errors.
C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets : warning MSB3251: Could not resolve assembly System.Data.DataSetExtensions. The target framework required by this assembly (3.5) is higher than the project target framework. If this reference is required by your code, you may get compilation errors.
F:\programowanie\Receptka\main_form.cs(6,14): error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)
F:\programowanie\Receptka\Program.cs(3,14): error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)
F:\programowanie\Receptka\AboutBox.cs(5,14): error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)

Compile complete -- 3 errors, 0 warnings
Thx za szybką odpowiedź

st3tc

  • Gość
# Marzec 04, 2010, 21:48:44
Bo MS domyślnie założyl ze chcesz robić z 3.5, i w ramach kryptoreklamy pcha na na siłę linu i inne bzdetki. Wywal to z referencji (zrobi się przy nich znacznik z wykrzyknikiem), potem z kodu. Chyba, że używasz linq itp - wtedy przestań używać :).

Offline revo

  • Użytkownik

# Marzec 04, 2010, 21:55:54
Chyba, że używasz linq itp - wtedy przestań używać :).

Jak już raz spróbujesz to nie możesz przestać! ;)

Co do tego zezwolenia aministratora -- nie ma zezwolenia czy administratora? ;) Może da się to zainstalować z poziomu Windows Update.

Offline Barthap

  • Użytkownik
    • Mój blog

# Marzec 04, 2010, 22:00:53
Niby działa, ciekawe czy sprawdzi się to w przychodni. Dzięki za odp.
Następne pytanie:
Jakbym chciał taki program pisać na linuksa, to na czym go pisać, tak aby łatwo było wprowadzić taką funkcjonalność? Bazę danych napisałbym już w innym formacie, ale i w wersji windowsowej i linuksowej dałbym możliwość importu i exportu bazy danych do własnego formatu, aby zapewnić przenośność (wydaje mi się to najlepszym rozwiązaniem).

Co do zezwolenia administratora: Jest blokada na komputerach w przychodni, i tylko administrator może coś zainstalować, to samo dotyczy ściągania. I on nie chce instalować .NET Framework, poza tym chcę, aby program działał na starszych komputerach, a nie na takich "wypasionych" z win7, bo w przychodniach najczęściej takich nie ma.

Offline ropuch

  • Użytkownik

# Marzec 04, 2010, 22:44:31
Co do przenośnej bazy danych polecam ci zerknąć na SQLite.

Offline pinqwin

  • Użytkownik

# Marzec 04, 2010, 23:47:36
Wydaję mi się że powinieneś się skoncentrować właśnie na jakimś SQL serwerze, tak w ogóle to radzę odejść od Accessa i przejść na SQL Express, ja miałem problemy z bazami Accessowymi na systemach Vista oraz Windows 7,  generalnie problem polegał na konieczności uruchamiania aplikacji w trybie administratora działo się tak przez konieczność dostępu do plików, nie mówiąc o systemach 64 bitowych, które z natury nie chcą współpracować z bazami Accessowymi, występują problemy z silnikiem bazy.
A z innej beczki jeśli nie chcesz tego w całości przepisywać pod linuxa to zainteresuj się Mono, ponoć .NET 2.0 jest praktycznie w 100% kompatybilny a w zasadzie na odwrót Mono jest kompatybilne ;]

Offline Zielony

  • Użytkownik
    • Ghurund Engine

# Marzec 05, 2010, 00:44:11
Jeśli jest serwer, różne systemy i ograniczenia na komputerach klienckich, to może jakaś technologia webowa? Skoro znasz C#, to może warto rozważyć przeniesienie aplikacji na ASP, C# i MSSQL?

Offline Barthap

  • Użytkownik
    • Mój blog

# Marzec 05, 2010, 07:53:41
Hmm... Popróbuję waszych rad, jeśli mam się przenieść z Accessa, to musiałbym napisać jakiś konwerter, aby osoby przenoszące się na nową wersję programu mogły zaimportować bazę, ale to akurat powinno być proste. Dzięki za pomoc :)

P.S.
@pinqwin: Mi access i połączenie ODBC z moim programem działa bez najmniejszego problemu na vista i win7, ale chyba ustawiłem "Uruchamiaj jako administrator"

Offline Wyszo

  • Użytkownik

# Marzec 05, 2010, 08:09:02
Trochę zaofftopuję.

@Barthap:
Jeśli (sądząc po Twojej sygnaturce) faktycznie masz 12 lat - i w wieku 12-stu lat piszesz takie rzeczy, to wróżę Ci świetlaną przyszłość :D Stary, prawdę mówiąc już w tym momencie przewyższasz wielu starszych wiekiem warsztatowiczów - często ludzie zaczynają programować dopiero na studiach.

W dodatku do tej pory na odpowiedzi w swoich wątkach nie dostałeś postów w stylu "wtf, dzieciaku! RTFM!!!!!" (czego mi, mając swego czasu kilka lat więcej (15? 16?) od Ciebie nie udało się osiągnąć :D).

Więc witam w społeczności i życzę wszystkiego dobrego w karierze nolife'a ;)

Offline Barthap

  • Użytkownik
    • Mój blog

# Marzec 05, 2010, 08:20:32
@up: Dzięki serdeczne! Na prawdę mam 12 lat, właściwie nie wiem do końca, co mam powiedzieć. Choć nie jestem takim wyjątkiem, przecież jest jeszcze Anonim, który jest moim rówieśnikiem. Ja po prostu staram się być kulturalny i wiem "jak nie lamić", bo często na przeróżnych forach widziałem, jak to jest z takimi, co piszą: "zrób za mnie grę". Szczegóły w dziale PoL :D Dobra przestanę już bo wyjdzie na to, że ktoś mnie pochwalił a ja już zaczynam sam się dochwalać ;)

Offline siso

  • Użytkownik

# Marzec 05, 2010, 12:13:50
Szacunek, Ziom ;)

Jesli miałbyś ochotę przesiąść się z lokalnej bazy na serwer i zacząć zabawę webowo, to nie widzę przeciwskazań, żeby zacząć ją od Oracle'a . Może i ciężki, na pierwszy rzut oka, może za duży, ale nie bez powodu jest w czołówce. Do niewielkich zastosowań - nie wymaga konfiguracji. Instalujesz i użytkujesz :)

A - i jeszcze ma jeden ficzer: APEX. To takie cacko, które pozwoli Ci wyklikać prostą aplikację webową w samej bazie. Potrafi zaczytać baze MSAccess i na jej podstawie zbudowac szkielet do migracji. Zassie Ci wszystko - od struktury po dane. Robi sie to wskazując tylko plik accessowy. Rezultat dostaniesz w bardzo ładnym opakowaniu. Nie potrzebujesz żadnych dodatkowych serwerów. Odpalasz tylko Oracle'a i działa :)
« Ostatnia zmiana: Marzec 05, 2010, 12:16:20 wysłana przez siso »

Offline Barthap

  • Użytkownik
    • Mój blog

# Marzec 05, 2010, 14:04:13
Dzięki za wszystko, teraz dzięki waszym podpowiedziom na pewno znajdę zestaw narzędzi do mojego do tej pory skromnego programiku

Offline .Dexter.

  • Użytkownik

# Marzec 05, 2010, 14:22:31
Jeszcze odnośnie pytania o WinAPI to - tak, da się, ale nie warto się w to pakować :P No chyba że nie ma już innego wyjścia :)