-
71. Data: 2012-02-25 21:55:37
Temat: Re: [spam] ProCalc
Od: "Wojciech \"Spook\" Sura" <s...@s...please.op.pl>
Dnia 25-02-2012 o 22:06:36 szyk <s...@o...pl> napisał(a):
>
>>> 1. Jakie zastosowano wzorce projektowe przy projektowaniu?
>>> 2. Jakie testy były zastosowane przed publikacją?
>>
>> Na te pytania odpowiedziałem już Ci prywatnie, chyba, że coś pominąłem?
>
> Tak, bardzo dziękuję za wyczerpujące odpowiedzi. Trochę się zakręciłem
> bo Thunderbird wrzucił twoją odpowiedź do "Niechcianych".
:)
>>> 3. Po co te wszystkie biblioteki dzielone?
>
>> Co rozumiesz przez biblioteki dzielone?
> Chodzi mi o te pliki:
> ./Graph2DDrawer.dll
Natywna biblioteka silnika rysującego wykresy 2D
> ./Graph3DDrawer.dll
Natywna biblioteka silnika rysującego wykresy 3D
./pl/* i (w 1.0.2) ./it/* są pliki zasobów .NET dla odpowiednich języków.
Akurat taka struktura katalogów mi się średnio podoba, wolałbym je
przynajmniej wrzucić do wspólnego podkatalogu, ale z tym jeszcze będę
walczył. Każda assembly .NET ma swój własny plik zasobów.
> ./ProCalc.Core.dll
Podstawowa funkcjonalność ewaluatora wyrażeń, która może być potencjalnie
użyta w innych programach (wrapper .NET)
> ./ProCalc.Engine.dll
Natywna biblioteka silnika liczącego wyrażenia matematyczne
> ./ProTools.Common.dll
Elementy wspólne dla wszystkich programów z serii ProTools (na razie jest
tylko ProCalc, ale mam już pomysły na trzy kolejne ;)). Chcę utrzymać
spójny interface i dlatego programy będą współdzieliły tę asemblajkę.
Wydaje mi się, że podział jest w miarę sensowny - co najwyżej można byłoby
scalić GraphDrawer2D i GraphDrawer3D. Ale wygodniej mi się pracuje, gdy są
to dwa osobne projekty.
> Ale z kontekstu twojej odpowiedzi wnioskuję, że przynajmniej niektóre z
> nich używasz do innych celów. No i jedne chyba są w C++ a inne zawierają
> skrypty C# (ale tylko zgaduję, bo nie mam doświadczenia z C#).
Skrypty? C# jest językiem kompilowanym :) Ale faktycznie, część to
biblioteki natywne, a część to assemblies .NET, a tych scalić się nie da.
A przynajmniej nie "ładnie".
> Aha - tak na marginesie - jak robisz zip z wieloma plikami, to dobrze
> jest gdy są one w jednym katalogu, bo czasem z pośpiechu przy
> rozpakowywaniu robi się kogiel-mogiel w katalogu pobierania :)
Dorzucę do to-do-list :)
> Aha - ciekawe, że instalator odmawia zainstalowania ProCalc (rzekomo
> brak .Net4) a jak się rozpakuje zip, to śmiga aż miło :P
W instalatorze pomogłem sobie zewnętrznym skryptem InnoSetupa
sprawdzającym, czy jest zainstalowany .NET 4.0 Client lub .NET 4.0 Full.
Skrypt sprawdza te dane przeszukując rejestr, więc być może instalator był
uruchomiony z nieprawidłowymi uprawnieniami?
Mogę spróbować to poprawić, ale musiałbyś poszpiegować instalator
ProcMonem z SysInternals żeby stwierdzić, do czego próbuje się dobrać i
dlaczego mu się to nie udaje. U mnie działa ;)
Pozdrawiam -- Spook.
--
Używam klienta poczty Opera Mail: http://www.opera.com/mail/
-
72. Data: 2012-02-25 22:56:46
Temat: Re: [spam] ProCalc
Od: Karol Y <k...@o...pl>
> ./pl/* i (w 1.0.2) ./it/* są pliki zasobów .NET dla odpowiednich
> języków. Akurat taka struktura katalogów mi się średnio podoba, wolałbym
> je przynajmniej wrzucić do wspólnego podkatalogu, ale z tym jeszcze będę
> walczył. Każda assembly .NET ma swój własny plik zasobów.
Bo tak jest określone w manifeście assembly. Kolejność poszukiwania
zasobów jest następująca, przykład dla en-US:
1. GAC (Global Assembly Cache) -> en-US
2. Folder aplikacji -> en-US
3. GAC -> en (rodzic)
4. Folder aplikacji -> en (rodzic)
5. Standardowy zasób (culture independed)
6. Rzucenie wyjątkiem o niemożności załadowania zasobu (aplikacja się
sypnie)
Dlatego, jeżeli chcesz tutaj cokolwiek zmienić musisz użyć funkcji
"CreateFileBasedResourceManager", która pozwoli Ci wskazać inną lokację
dla zasobów od tej standardowo przyjętej.
Więcej na temat jest dobrze opisane tutaj:
-
http://www.codeproject.com/Articles/5447/NET-Localiz
ation-using-Resource-file
Dodatkowo AL (Assembly Linker) potrafi skleić wiele dllek z zasobami w
jedną. Z poziomu Visual Studio, tego nie zrobisz.
> Mogę spróbować to poprawić, ale musiałbyś poszpiegować instalator
> ProcMonem z SysInternals żeby stwierdzić, do czego próbuje się dobrać i
> dlaczego mu się to nie udaje. U mnie działa ;)
A mnie przy próbie włączenia widoku wykresów 2D czy 3D wyskakuje
komunikat o braku obsługi lub spełniania wymagań :( A program się
przecież uruchomił. Mam kartę DX10, runtimy directx też, system WinXP.
--
Mateusz Bogusz
-
73. Data: 2012-02-26 07:25:27
Temat: Re: [spam] ProCalc
Od: "Wojciech \"Spook\" Sura" <s...@s...please.op.pl>
Dnia 25-02-2012 o 23:56:46 Karol Y <k...@o...pl> napisał(a):
(...)
> Więcej na temat jest dobrze opisane tutaj:
>
> -
> http://www.codeproject.com/Articles/5447/NET-Localiz
ation-using-Resource-file
Dzięki wielkie! Zagłębiam się w lekturę.
>> Mogę spróbować to poprawić, ale musiałbyś poszpiegować instalator
>> ProcMonem z SysInternals żeby stwierdzić, do czego próbuje się dobrać i
>> dlaczego mu się to nie udaje. U mnie działa ;)
>
> A mnie przy próbie włączenia widoku wykresów 2D czy 3D wyskakuje
> komunikat o braku obsługi lub spełniania wymagań :( A program się
> przecież uruchomił. Mam kartę DX10, runtimy directx też, system WinXP.
Bo WinXP nie jest niestety wspierany - potrzebne są runtime'y DX11.
Sprawdzanie zainstalowanego DirectX 11 w instalatorze też mam w planach :)
Planów mam dużo, tylko czasu mało na ich realizowanie...
Pozdrawiam -- Spook.
--
Używam klienta poczty Opera Mail: http://www.opera.com/mail/