Biblioteki rozszerzeń aplikacji desktopowych

Biblioteki rozszerzeń (plik *.dll) to pliki zawierające implementacje kodów dowolnych podprogramów lub zasobów programu, które mogą być wykorzystywane przez dowolne pliki wykonywalne (niekończenie z sobą powiązanych). Biblioteka DLL musi zostać połączona podczas kompilacji aplikacji, która tę bibliotekę będzie wykorzystywać.

Korzystanie z bibliotek DLL ułatwia rozszerzanie, modyfikowanie funkcjonalności aplikacji bez konieczności ponownej instalacji programu, wystarczy tylko uaktualnić pliki *.dll.

Indeksy tekstowe

W celach ćwiczeniowych tworzenia i dołączania bibliotek DLL do aplikacji desktopowej utworzymy bibliotekę rozszerzającą funkcjonalność pisania łańcuchów znaków typu String o możliwość używania indeksu górnego i dolnego. Tworzona biblioteka będzie zawierać klasę z funkcją piszącą indeks górny lub dolny przy podanym znaku na przykład x12, 52, H2 itp. Gotowa biblioteka pozwoli rozszerzyć funkcjonalność każdego przyszłego projektu o te funkcje

Inicjowanie biblioteki klas

Aby rozpocząć tworzenie biblioteki musimy zainicjować projekt tworzenia bibliotek rozszerzeń. W oknie dialogowym tworzenia nowego projektu wybierz jak poniżej

Inicjowanie biblioteki klas. Visual Studio C#

Następnie w oknie dialogowym Konfiguruj nowy projekt podaj nazwę tworzonej biblioteki, która stanie się również nazwą przestrzeni nazw (patrz po słowie kluczowym namespace)

podaj nazwę tworzonej biblioteki. Visual Studio C#

Nazwę klasy w tworzonej bibliotece można zawsze zmienić po przejściu do funkcji okna Eksploratora rozszerzeń- patrz poniżej

zmiana nazwy klasy. Visual Studio C#

Wprowadzanie kodu

Wprowadzanie kodu odbywa się na tych samych zasadach jak każdego innego rozwiązania. Różnica jest w sposobie kompilacji. Nie mamy również możliwości bezpośredniego sprawdzenia działania kodu pisanego rozwiązania.

W omawianym pomyśle pisania indeksów cyfrowych górnych i dolnych jest wykorzystanie wybranych znaków ze zbioru znaków UNICOD. Wybrane znaki przechowywane są w łańcuchu typu string. Dostęp do wybranego znaku odbywa się przez wykorzystanie stylu lambda przy wyborze znaku z ciągu znaków (instrukcja ToString().Select().ToArray()). Więcej o stylu lambda znajdziesz pod linkiem:

Przejdź do artykułu

Proponowany kod rozwiązania pisania indeksów

Wskazówka:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IndeksyTekstowe
{
    public static class Indeks
    {
        public static string Gorny(this int liczba)
        {
            if (liczba == 0 ||
                liczba == 1)
                return "";
            //zbiór znaków indeksów górnych
            const string Cyfry =
                "\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079";

            string wynik = "";

            if (liczba < 0)
            {
                //ewentualny znak minus dopisz przed ciąg znaków
                //na przykład potęga ujemna x^-2
                wynik = ((char)0x207B).ToString();
                liczba *= -1;
            }

            wynik += 
                new string(liczba.ToString().Select(x => Cyfry[x - '0']).ToArray());
            return wynik;
        }

        public static string Dolny(this int liczba)
        {
            if (liczba == 0 ||
                liczba == 1)
                return "";
            //zbiór znaków indeksów dolnych
            const string Cyfry =
                "\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089";

            string wynik = "";

            if (liczba < 0)
            {
                //ewentualny znak minus dopisz przed ciąg znaków
                //na przykład potęga ujemna x^-2
                wynik = ((char)0x208B).ToString();
                liczba *= -1;
            }

            wynik +=
                new string(liczba.ToString().Select(x => Cyfry[x - '0']).ToArray());
            return wynik;
        }

    }
}

Kompilowanie rozwiązania

Gotowy kod tworzonej biblioteki musi zostać skompilowany. Kompilacja sprawdza czy nie ma błędów składniowych i tworzy gotowy plik *.dll

kompilacja biblioteki dll. Visual Studio C#

Dodawanie biblioteki do projektu

Aby dodać gotową bibliotekę do dowolnego projektu należy otworzyć istniejący projekt aplikacji konsolowej lub utworzyć nowy. Poniżej wersja z tworzeniem nowego projektu

dodawanie biblioteki dll do projektu. Visual Studio C#

Utwórz nowy projekt aplikacji desktopowej

Utwórz nowy projekt aplikacji. Visual Studio C#

Dodaj odwołanie do biblioteki

Dodaj odwołanie do biblioteki dll. Visual Studio C#

W oknie dialogowym przejdź do lokalizacji pliku *.dll

przejdź do lokalizacji pliku biblioteki dll. Visual Studio C#

Po wyborze pliku *.dll wybierz opcję Dodaj

opcja dodaj bibliotekę dll. Visual Studio C#

Zatwierdź wybór w Menadżerze odwołań

Menadżerze odwołań dll. Visual Studio C#

Jeżeli wszystko prawidłowo zrobimy to w Eksploratorze rozwiązań zobaczymy dodaną bibliotekę, a w kodzie programu po słowie kluczowym using będziemy mogli tę bibliotekę zaimportować. Patrz poniższa ilustracja

w kodzie programu po słowie kluczowym using. Visual Studio C#

Układ kontrolek

Przygotowujemy formatkę tworzonej aplikacji konsolowej wykorzystującej napisaną wcześniej bibliotekę. Użyte kontrolki to:

Proponowany układ ułożenia przedstawiony jest poniżej

układ kontrolek dll. Visual Studio C#

Wywołanie indeksu górnego lub dolnego obsługuje zdarzenie Click kontrolek Button. Cały kod programu zapisany jest poniżej

Wskazówka:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using IndeksyTekstowe;

namespace IndeksGornyDolny
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int indeks=Convert.ToInt32(textBox2.Text);
            label1.Text = textBox1.Text + indeks.Gorny().ToString();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int indeks = Convert.ToInt32(textBox2.Text);
            label1.Text = textBox1.Text + indeks.Dolny().ToString();
        }
    }
}

Jak widać jest prosty, ponieważ wykonywany jest w kodzie biblioteki DLL

Działający program

aplikacja z biblioteką dll, Visual Studio C#

Utworzona aplikacja wykorzystująca bibliotekę rozszerzeń wymaga rozprowadzania pliku wykonywalnego *.exe wraz z plikiem biblioteki *.dll. Poniżej oba pliki zapisane w jednym folderze wybranego dysku

aplikacja wykorzystująca bibliotekę rozszerzeń. Visual Studio C#
Układ okresowy- kod qr
Układ okresowy

Układ okresowy pierwiastków- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Alkomat- wirtualny test kod qr
Alkomat- wirtualny test

Alkomat- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Taklarz- olinowanie stałe kod qr
Olinowanie stałe- kalkulator średnic

Olinowanie stałe- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
przepis na gogfry

Przepis na gofry

zobacz
przepis na bitą śmietanę

Przepis na bitą śmietanę

zobacz