Effi (C++)
Deweloperzy | Miękka |
---|---|
Wersja stabilna | 01.05.00.156 / 6 maja 2010
|
Magazyn | |
Napisane w | C++ |
System operacyjny | Podobny do systemu Unix , Mac OS |
Typ | Ramy |
Licencja | GPL , komercyjny |
Strona internetowa |
Effi to framework do tworzenia aplikacji w C++ .
Przegląd
Effi to framework do tworzenia aplikacji . Zapewnia pełną gamę narzędzi programistycznych do tworzenia internetowych aplikacji C++ z bogatym graficznym interfejsem użytkownika podobnym do systemu Windows .
Framework zawiera język deklaratywny do opisu aplikacji, zapewnia API do manipulowania dokumentami XML , narzędzia do reprezentacji dużych list danych, synchronizacji wątków , lokalizacji i rejestrowania danych. Effi zawiera również dedykowane biblioteki do interakcji z RDBMS , a także do przechowywania danych, serializacji/odtwarzania itp. - pełna lista bibliotek znajduje się poniżej.
Poszczególne komponenty Effi są dystrybuowane jako darmowe i otwarte oprogramowanie .
Obsługiwane przeglądarki
Aplikacje oparte na Effi mają interfejs internetowy dostępny w następujących przeglądarkach:
- Internet Explorera 7.0+
- Mozilla Firefox 3.5+
- Chrome 4.0+
- Safari 4.0+
Lista bibliotek Effi
- Pakiet EffiDB to implementacja zunifikowanych interfejsów Effi do komunikacji z systemami zarządzania relacyjnymi bazami danych. Celem EffiDB jest zapewnienie ujednoliconego dostępu do różnych systemów RDBMS i odizolowanie programisty aplikacji od wszelkich interakcji niskiego poziomu z bazą danych. EffiDB zarządza połączeniami z bazami danych, buduje i wykonuje instrukcje SQL oraz analizuje wyniki zapytań. Zapewnia również mechanizm buforowania wyników żądań i automatycznie zarządza pamięcią. Obecnie (od czerwca 2010) obsługiwane RDBMS to MySQL, MSSQL, Oracle i SQLite.
- Pakiet EffiValue zapewnia uniwersalny mechanizm przechowywania i serializacji/odtwarzania dla dowolnego typu danych C++. Pozwala na tworzenie i przesyłanie heterogenicznych struktur złożonych o dowolnej złożoności bez definiowania dedykowanych klas C++.
- acommon - zbiór podstawowych narzędzi Effi, w tym inteligentnych wskaźników , funkcji lokalizacyjnych, obsługi wyjątków itp.
- alink - biblioteka dla modułów (.so) dynamiczne ładowanie . Pozwala wywoływać funkcje i pobierać instancje klas z modułów.
- athread - biblioteka zarządzania wątkami . Domyślnie pliki wykonywalne C++ nie są wątkowo bezpieczne, to znaczy ich poprawna praca podczas jednoczesnego wykonywania przez wiele wątków nie jest gwarantowana. athread zapewnia funkcje synchronizacji wątków do tworzenia wątków, izolacji, uruchamiania, usuwania i zarządzania pamięcią.
- adecimal - dziesiętna implementacja zmiennoprzecinkowa dla C++ analogiczna do implementacji C# i Java. Obliczenia dziesiętne są przeprowadzane w celu spełnienia wymagań dotyczących precyzji i zaokrąglania określonych przez aplikacje finansowe.
- aparser - biblioteka udostępnia API do czytania i manipulowania dokumentami XML . W rzeczywistości biblioteka aparser jest opakowaniem C++ dla wspólnej biblioteki parsera XML Libxml2 napisanej w C. aparser obsługuje główną funkcjonalność Libxml2 bez wprowadzania żadnych nowych funkcji. Korzystanie z biblioteki C++ w przeciwieństwie do biblioteki C zwiększa produktywność pisania kodu aplikacji, a mianowicie zapewnia automatyczne zarządzanie pamięcią w typowych przypadkach i upraszcza notację dla twórców aplikacji. Biblioteka aparser może analizować dokument XML: wczytywać go do pamięci, sprawdzać poprawność danych, budować drzewo dokumentów. Umożliwia to prowadzenie wyszukiwania w drzewie, modyfikowanie danych XML jako obiektów tej struktury drzewiastej i tworzenie wyniku do pliku lub std::string. Biblioteki można również używać do tworzenia od podstaw nowych dokumentów XML.
- ardbms - biblioteka to implementacja zunifikowanych interfejsów Effi do komunikacji z systemami zarządzania relacyjnymi bazami danych. ardbms zapewnia jednolity dostęp do zestawu RDBMS i zapewnia niskopoziomową interakcję z bazą danych. ardbms zarządza połączeniami z bazami danych, buduje i uruchamia zapytania SQL oraz analizuje wyniki zapytań. Zapewnia również buforowanie wyników żądań i automatycznie zarządza pamięcią. ardbms obsługuje MySQL, MSSQL, Oracle i SQLite DBMS poprzez odpowiednie biblioteki:
- mssql_impl
- mysql_impl
- oracle_impl
- sqlite_impl
- aserializer - serializacja/przywracanie danych. Serializacja w ramach Effi to proces konwersji danych (być może skomplikowanej struktury danych) na sekwencję bajtów, aby sekwencja mogła być przechowywana lub przesyłana przez sieć. Odwrotną operacją jest Przywrócenie. Obecnie Effi ma zaimplementowane 3 serializowane formaty strumieni: XML, binarny i URL.
- data - uniwersalna pamięć masowa dla dowolnego typu C++, w tym struktur podobnych do XML i tablic heterogenicznych danych.
- datalist - biblioteka przeznaczona do reprezentacji list danych (zwłaszcza długich list, takich jak 1 milion pozycji) w GUI. Biblioteka zapewnia operacje na listach, takie jak sortowanie, filtrowanie, wyszukiwanie i dzielenie listy na krótkie części; zapewnia przewijanie na żywo i paginację. Dostępne są dwie implementacje: DataList i DBList. DBList zajmuje się danymi pobieranymi z bazy danych. DataList sugeruje, że istnieje lokalna kopia zebranych danych i wszystkie operacje są wykonywane na tej kopii danych; w ten sposób DataList daje możliwość pracy nie tylko z danymi wyodrębnionymi z bazy danych, ale także z danymi zebranymi w inny sposób.
- protokół - serwer aplikacji przeznaczony do zarządzania współzależnymi aplikacjami w czasie wykonywania. Biblioteka wysyła żądania wykonania serwera, aby zoptymalizować ogólną wydajność. Na żądanie biblioteka protokołów składania wniosku określa najskuteczniejszego wykonawcę żądania (żądanie może być wykonane w tym samym procesie lub na tym samym komputerze lub w innym miejscu) i tam przekazuje żądanie. Wynik wykonania (jeśli istnieje) jest zwracany do pierwotnego wywołującego.
- jss - interfejs dla JavaScript Server, który pozwala wywoływać JavaScript z kodu C++ i odwrotnie.
- Persistent Storage Service (PSS) - narzędzie umożliwiające przechowywanie danych na sesję, na użytkownika lub na okno. Dzięki temu stanowi depozytariusz danych określających stan systemu. Biblioteka posiada dwie implementacje do przechowywania danych w bazie danych oraz w pliku:
- PSSDB
- PSSFlik
- Usługi — istnieje wiele bibliotek, które można wykorzystać jako przydatne aplikacje do różnych celów.
- Bridge - narzędzie komunikacyjne, które przekazuje dane pomiędzy aplikacjami. Istnieją 2 implementacje dla różnych protokołów:
- http
- Usługi internetowe
- DLLoader (Dynamic Library Loader) - umożliwia uruchomienie kilku aplikacji (ładowanie kilku bibliotek) w ramach jednego procesu. Pozwala konfigurować dystrybucję bibliotek pomiędzy procesami.
- TaskMan - zarządza zachowaniem aplikacji przy określonych wywołaniach funkcji (zdarzeniach). Charakter niektórych takich zdarzeń nie pozwala programiście określić, jakie działanie ma zostać wykonane, gdy zdarzenie wystąpi. TaskMan pozwala skonfigurować to zachowanie warunkowe, można je również skonfigurować za pomocą GUI. Dostępne jest zarówno wykonywanie akcji synchronicznych, jak i asynchronicznych.
- Autoryzator — zapewnia funkcje uwierzytelniania i autoryzacji. Uwierzytelnianie odbywa się nie tylko w przypadku logowania użytkownika, ale także w komunikacji między komponentami aplikacji. Prawa dostępu są weryfikowane przy każdym wywołaniu metody.
- DynAttrMan (Dynamic Attribute Manager) - zapewnia mechanizm przechowywania niestandardowych atrybutów obiektów. Czasami programista potrzebuje elastycznego podejścia do zarządzania dowolnymi atrybutami obiektów, którymi zajmuje się aplikacja. DynAttrMan umożliwia obsługę takich atrybutów bez zmiany schematu bazy danych.
- FileMapper - umożliwia edycję dużych obiektów danych przechowywanych w bazie danych za pomocą odpowiednich edytorów. Dane są pobierane z bazy danych do pliku tymczasowego i mogą być obsługiwane jak zwykły plik przez odpowiednią aplikację. Zapisanie pliku natychmiast synchronizuje bazę danych.
- Multimedia - narzędzie obsługujące obrazy i dane multimedialne. Biblioteka w połączeniu z dedykowanymi kontrolkami JavaScript oferuje zestaw narzędzi do pełnej obsługi multimediów i obrazów. Biblioteka izoluje programistę aplikacji od specyficznych danych multimedialnych i pozwala na wykonywanie działań takich jak konwersja formatu, skalowanie, skalowanie, miniaturowanie itp.
- SMS-gate - aplikacja umożliwiająca integrację z dostawcami usług SMS.
- Bridge - narzędzie komunikacyjne, które przekazuje dane pomiędzy aplikacjami. Istnieją 2 implementacje dla różnych protokołów:
- sws - usługa internetowa , która przekształca opis XML okien i elementów UI w reprezentację GUI.
- zautomatyzowany framework testowy - biblioteka oparta na Selenium zawiera zautomatyzowany framework testowy, który można zaadaptować do stworzenia zestawu testów aplikacji. Effi posiada wbudowany mechanizm automatycznego generowania prymitywów do automatycznej biblioteki testów.
Produkty oparte na Effi
ASoft wykorzystuje framework Effi do własnego rozwoju. Dzięki platformie Effi powstała szeroka gama produktów:
- System informacji geograficznej do przechowywania, zarządzania i reprezentacji danych kartograficznych
- Konstruktor raportów udostępniający narzędzia do tworzenia i uruchamiania zapytań do baz danych o dowolnej złożoności oraz przedstawiania wyników przy użyciu wstępnie skonfigurowanego układu
- Produkty dla Ministerstwa Spraw Wewnętrznych Rosji:
- System przechowywania i wyszukiwania materiałów spraw karnych.
- Wyszukaj federalny system identyfikacji genetycznej.
- Zunifikowany zautomatyzowany system informatyczny dla jednostek dyżurnych.