Programiści niskopoziomowi często narzekają na brak pewnych możliwości w C# znanych im z C++ (często ze względu na brak znajomości ich odpowiedników w C#. Po dzisiejszej rozmowie z kolegą na ten temat stwierdziłem, że pokażę jak wykorzystać takie funkcje jak memset, a przy okazji jak pisać biblioteki DLL w C++ dla C# i jak z nich korzystać. Sprawdzimy także, czy zastosowanie takich bibliotek przyśpieszy działanie...
Sztuka programowania 4314 dni, 23 godziny, 56 minut temu 317 źrodło rozwiń
AppDomain.AssemblyResolve - zdarzenie to pozwala załadować assembly jeśli standardowy mechanizm platformy .NET nie poradzi sobie z tym zadaniem. Aplikacja działała poprawnie aż do migracji na platformę .NET 4.0 Czemu? O tym właśnie będzie post. Zwrócę w nim uwagę na dość istotną różnicę pomiędzy platformą .NET 4.0, a jej wcześniejszymi wersjami jeśli chodzi o wspomniane zdarzenie. Różnica ta, w określonych warunkach, może napsuć krwi.
autor: Platforma .NET, dzięki mechanizmowi refleksji, pozwala na dynamiczne wczytywanie do programu podzespołów (ang. assembly). Pozwala to w łatwy sposób pisać rozszerzane przy pomocy pluginów aplikacje i na wiele innych rzeczy. Ostatnio potrzebowałem wykorzystać ten mechanizm do własnych celów. Aby zwiększyć bezpieczeństwo, postanowiłem ładować podzespoły do odzielnych domen aplikacyjnych. W ten sposób, jeśli po załadowaniu podzespołu i wykonaniu jego kodu pojawi się błąd, główna domena aplik...
Dziś stanąłem przed zadaniem skopiowania konkretnej biblioteki DLL z Global Assembly Cache (czyli de facto z folderu C:\Windows\Assembly). Była mi ona potrzebna do uruchomienia pewnej aplikacji na innym komputerze, a niestety ta wersja pliku nie była łatwo dostępna w żaden inny sposób.
Tworząc programy, bardzo często wykorzystuje się różne biblioteki stworzone przez inne osoby. Dopóki kod jest tworzony na potrzeby własne, nie patrzy się na to jak zostały przygotowane użyte biblioteki. Pierwszy momentem, kiedy zaczyna się zwracać na to uwagę jest podjecie decyzji o publikacji rozwiązania dla większego grona odbiorców. W tym momencie zaczynają się pojawiać myśli o zabezpieczeniu kodu. Najprostszym sposobem...
Korzystając z Viusal Studio i .NET mamy łatwy sposób konfigurowania aplikacji przy pomocy plików app.config oraz Settings.Settings. Pisałem już o tym na tym blogu w artykule: „Przechowywanie i edycja ustawień aplikacji w .NET (prosto, szybko, sprawnie i elegancko)(przykłady oparte o .NET, w języku C#)”. Niestety można natknąć się na „schody”, gdy ustawienia chcemy przenosić pomiędzy różnymi assembly. Zobaczmy na prostym przykładzie jak to rozwiązać...
Jak przekierować wersję assembly w pliku app.config.
ILMerge – dołączanie zewnętrznych bibliotek Rzadko kiedy przy dużych przedsięwzięciach zdarza się trzymanie całego kodu w jednym projekcie (używam tu nomenklatury Visual Studio: solution/project). Duże części kodu używanego w wielu miejscach mogą zostać wydzielone do odrębnych assemblies (tłumaczenie tego słowa jako “zgromadzenie” nie jest zbyt fortunne, dlatego nie będę się bawił w słowotwórstwo i pozostanę przy angielskiej nazwie). Również typowa aplikacja .NET składa się z assembly wykonywalnej (zawi...
Rozwiązanie problemu pojawiającego się gdy często kopiowane są biblioteki *.dll do katalogu $:\Windows\assembly (inaczej GAC)
Chyba każdy kto operował ścieżkami plików pod .NET zauważył, że ścieżki te mogą występować w dwóch postaciach:standardowej - typu: c:\katalog\plikprzypominającej URL, czyli file:////c:/katalog/plik Różnicę widać właśnie porównując właściwość CodeBase i Location klasy Assembly.
Czyli jak wykorzystać WCF do separacji kodu w przypadku gdy nie mamy fizycznego podziału na warstwy, oraz jakie dodatkowe korzyści możemy mieć z takiego podziału.
Architektura 5725 dni, 20 godzin, 46 minut temu 70 źrodło rozwiń