HUGO (Hızlı Uygulama Geliştirme Ortamı)
Transkript
HUGO (Hızlı Uygulama Geliştirme Ortamı)
HUGO (Hızlı Uygulama Geliştirme Ortamı) Hızlı, kolay, sağlam, güvenli ve kullanıcı dostu veritabanı uygulamaları geliştirmek amacı ile oluşturuldu. 1. Teknik Bilgiler Geliştirme Ortamı olarak Visual Studio 2010 kullanılmıştır Geliştirme Dili C#’dır DevExpress Enterprise Bileşen Kütüphanesini kullanmıştır. Uygulama Geliştirme / Tasarlama Ortamı : Project Designer o Aynı anda birden fazla kullanıcının uygulama geliştirmesine uygundur. Açık kaynak kodludur Kodlar dünya standartları kullanılarak geliştirilmiştir ve optimize edilmiştir. 32 bit ve 64 bit Windows ve Web uygulamaları geliştirmek için uygundur. 2006 yılından bu yana geliştirilmeye devam etmektedir. 2. Proje Tasarımcısı (Project Designer) 2.1. Projeler Uygulama geliştirme ortamında geliştirilecek olan projeye dair ayarların yapıldığı yerdir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 1 2.1.1. Script Dili Proje tasarımı yaparken hangi script dilinde uygulama geliştirileceği belirlenebilir. Desteklenen Script Dilleri: C# Vb.NET Java Script 2.1.2. Veritabanları Proje tasarlanırken proje içerisinde birden fazla veritabanı kullanılabilir. Bu veritabanlarının tanımı buradan yapılır. Desteklenen Veritabanı Türleri: Microsoft SQL Server MySQL Microsoft Access Oracle (Yakında) Foreign Key’ lerin kullanılabilirliği buradan belirlenir. 2.1.3. Desteklenen Kültürler (Diller) Türkçe İngilizce Almanca Fransızca vs. HUGO (Hızlı Uygulama Geliştirme Ortamı) 2 2.1.4. Güvenlik Haklar : Nerelerde yetkilendirme yapılacağı, “Audit Logging” işleminin yapılıp yapılmayacağı vb. ayarlar buradan yapılır. Yetki Öndeğerleri HUGO (Hızlı Uygulama Geliştirme Ortamı) 3 2.1.5. Pencere Proje içerisinde pencerelerin nasıl davranacağı buradan belirlenir. Örneğin; pencere pozisyonları kayıt edilsin ve yüklensin fakat pencere boyutları her zaman aynı kalsın gibi. 2.1.6. Pencere Tasarımı Pencere tasarımı esnasında kullanılacak ayarlar buradan proje bazlı olarak belirlenir. 2.2. Kütüphaneler Script’in yeterli olmadığı noktalarda, tasarlanan uygulamanın heryerine kod ile müdahale etmek mümkündür. Bunu yapabilmek için derlenmiş kodların olduğu DLL dosyalarını sisteme kütüphane olarak tanımlamak gerekir. 2.3. Komutlar Komutları tanımlamak amacı ile kullanılan bölümdür. Örneğin; bir düğmeye basıldığında bir web servisindeki bir metodu çağırıp, dönen değeri kullanıcıya mesaj ile göstermek istediğimizde, bunun için bir komut yazmamız ve bu komutu düğmeye bağlamamız gerekir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 4 2.4. Tablolar Veritabanındaki tabloların tanımlanması amacı ile kullanılır. 2.4.1. Alanlar Desteklenen Veri Tipleri: Text, Byte, Short, Int, Long, Float, Double, Decimal, Currency, Date, Time, DateTime, Bool, Memo, Image, Binary, Guid Alanlara hem veritabanı seviyesinde hem de yazılım seviyesinde “Öndeğer / Varsayılan Değer” verilebilir. “Görsel / Sanal” alanlar tanımlanabilir. Bu tür alanlar fiziksel olarak veritabanında yer işgal etmezler fakat kullanılacağı zaman hesaplanırlar veya ilişkili bir tablodan, görünümden vs. gelirler. Alanın değeri belli bir hesaplama neticesinde oluşabilir. Bunun için alana ifade / script (C#, Vb.NET, Java Script) yazmak gerekir. Alanın değeri veritabanı seviyesinde hesaplanarak da getirilebilr. Bunun için “Sql İfadesi” (SQL) yazmak gerekir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 5 Script yazılarak alanların pencereler üzerinde koşula bağlı “Görünür”, “Yalnızca Okunabilir”, “Boş Geçilemez”, “Sınırlı” yapılması sağlanabilir. Alana bir “Kurallı İfade / Regular Expression” bağlanıp o kurallar çerçevesinde veri girişi yapılması sağlanabilir. Maske verilebilir. (Telefon, Faks vb. Veri girişleri için.) Alanlar görünüm biçimi verilebilir. (Bold, Italik, Courier, Sarı Zemin vs.) Alanın pencere üzerinde veya kayıt listelerinde (Izgaralarda) görüntülenirken ne türde bir editör ile görüntüleneceği belirlenebilir. Örneğin; Boolean türündeki bir alan pencerede görüntülenirken CheckBox yerine “Evet, Hayır” değerleri içeren bir ComboBox atanabilir. Alanın pencerede veya kayıt listelerinde (Izgaralarda) görüntülenirken hangi renk ve font ile görüntüleneceği belirlenebilir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 6 2.4.2. Alan Grupları Tablo içindeki alanları özelliklerine göre kategorize edip burada belirlemiş olduğunuz grupları atayabilirsiniz. Yaptığınız gruplamaya göre gruplanmış alanları pencerelerde ve kayıt listelerinde (Izgaralarda) otomatik olarak gruplanmış şekilde gösterebilirsiniz. 2.4.3. İndeksler Tabloların fiziksel olarak indekslenmesi için kullanılır. Sınırsız sayıda indeks oluşturabilirsiniz. Desteklenen indeks türleri; Primary Key, Unique Index, Unique Constraint, Index, Virtual Unique Index, Clustered Index. Oluşturulan unique indekslere göre, sistem tabloya mükerrer kayıt girişi yapılmak istendiğinde otomatik olarak uyarı verir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 7 2.4.4. Tetikler (Triggers) Her tablo için sınırsız sayıda trigger tanımlanabilir. 2.4.5. Sıralanmış Alanlar Veritabanından tabloya ait veriler çekilirken default olarak hangi alanlara göre sıralanarak çekileceği buradan belirlenir. 2.4.6. Üst Tablo Bağlantıları Hiyerarşik (Master / Detail) olarak tabloların birbirleri ile olan ilişkilerini belirlemek amacı ile kullanılır. Örneğin; Bir cari hesabın birden fazla adresi olabilir. “Cari Hesaplar” ve “Cari Hesap Adresleri” tablomuz olduğunu varsayalım. “Cari Hesap Adresleri” tablomuzun üst tablosu “Cari Hesaplar” tablosu olsun ve aralarındaki ilişki de iki tabloda da var olan “Cari Hesap ID” alanı üzerinden yapılsın. Bu durumu HUGO üzerinde tanımlamak için “Üst Tablo Bağlantıları” kullanılır. 2.4.7. Nesne Bağlantıları İlişkisel veritabanı (Relational Database) yapısını tanımlamak amacı ile kullanılan yapıdır. Başka bir tablo, görünüm, yönetilmiş görünüm vs. arasında bağlantı kurup, bu bağlantılara ait ForeignKey’leri tanımlayabilirsiniz. Örneğin; Faturada kullanılacak malzemeleri seçebilmek için “Fatura Malzemeleri” ve “Malzemeler” tablosu arasında ilişki kurma işini bu yapı sağlar. Bu sayede “Malzeme ID” alanı üzerinden “Malzeme Adı” alanı görüntülerinir ve malzeme seçimi de yine bu yapı üzerinden sağlanır. HUGO (Hızlı Uygulama Geliştirme Ortamı) 8 2.4.8. Kayıt Güncellemeleri Tabloya eklenmiş bir kaydı başka bir tabloya daha eklemek veya tablodaki bir alanın değerini başka bir tabloya daha yansıtmak için kullanılan yapıdır. Örneğin; “Cari Hesap Fişi” kestiğinizde “Cari Hesaplar” tablosundaki “Borç” ve “Alacak” alanlarını güncellemek için bu yapı kullanılır. Aynı şekilde bir “Cari Hesap Fişi” kesildiğinde “Cari Hesap Hareketleri” tablosuna yeni bir kayıt eklemek için de bu yapı kullanılır. 2.4.9. Gruplanmış Alanlar Kayıtlar listelenirken, ızgaralarda gruplanmış bir şekilde görünmesini sağlamak amacı ile kullanılır. HUGO (Hızlı Uygulama Geliştirme Ortamı) 9 2.4.10. İfadeler (C#, Vb.NET, JavaScript) Tabloya kayıt eklenirken, güncellenirken ve silinirken yapılmak istenen kontrollere ait scriptler buradan tanımlanır. Örneğin; Kayıt edilmiş bir sözleşme silinmek isteniyor. Normalde silme işlemi olmamalı fakat olduğunu varsayalım. Silinmek istendiğinde “İmzalandı” alanının değeri “Evet” ise “İmzalanmış sözleşmeler silinemez !” uyarısının verilip işleme devam etmesinin engellenmesi istendiğinde bu yapının kullanılması gerekiyor. Uygulamanın herhangi bir yerinde silme işlemi yapılmak istendiğinde sistem her seferinde kontrol edecek ve silinmesine izin vermeyecektir. 2.4.11. SQL Göster Tasarlanmış olan tablonun SQL’ini göstermek için kullanılır. SQL’in oluşturulması için SQL yazılmaz. Sistem tasarıma göre en optimize SQL’i kullanılacağı zaman kendisi oluşturur. HUGO (Hızlı Uygulama Geliştirme Ortamı) 10 2.4.12. Scriptleri Göster Tablo içinde yazılmış olan scriptlerin bütününü bir arada gösterir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 11 2.5. Görünümler (Views) Veritabanında görünüm(View) oluşturmak amacı ile kullanılır. Görünüme ait SQL komutu buraya yazılır. o Alanlar Görünüme ait veriler çekildiğinde görüntülenecek alanlar ve alanlara ait görsel ayarlar buradan tanımlanır. o Alan Grupları Alanların kayıt listelerinde kategorize edilmiş şekilde görünmesini sağlamak amacı ile kullanılır. o Sıralanmış Alanlar Görünüm verilerinin hangi alanlara göre sıralanmış olarak getirileceği buradan belirlenir. o Gruplanmış Alanlar Kayıtlar listelenirken, ızgaralarda gruplanmış bir şekilde görünmesini sağlamak amacı ile kullanılır. 2.6. Yönetilmiş Görünümler HUGO (Hızlı Uygulama Geliştirme Ortamı) 12 SQL yazmadan görünüm (View) tanımlamak amacı ile kullanılır. Veritabanı bağımsız olarak bir tasarım ekranı kullanılarak tanımlanır. Bu sayede projede ileriki zamanlarda farklı veritabanı kullanım ihtiyacı doğduğunda hiçbir değişiklik yapmaya gerek kalmadan kullanılabilir. o Alanlar Görünümde kullanılacak alanların ve alanlara ait görsel ayarların tanımlandığı yerdir. o Alan Grupları Alanların kayıt listelerinde kategorize edilmiş şekilde görünmesini sağlamak amacı ile kullanılır. o Sıralanmış Alanlar Görünüm verilerinin hangi alanlara göre sıralanmış olarak getirileceği buradan belirlenir. o Gruplanmış Alanlar Kayıtlar listelenirken, ızgaralarda gruplanmış bir şekilde görünmesini sağlamak amacı ile kullanılır. o Nesne Bağlantıları Başka bir tablo, görünüm, yönetilmiş görünüm vs. arasında bağlantı kurmak amacı ile kullanılan yapıdır. HUGO (Hızlı Uygulama Geliştirme Ortamı) 13 2.7. Yönetilmemiş Görünümler SQL yazılarak oluşturulan görünümlerdir. Veritabanı üzerinde görünüm(View) olarak oluşturulmazlar. Gerektiğinde SQL komutu olarak çağırılırlar. Parametrik çağırımlar mümkündür. o Alanlar Görünümde kullanılacak alanların ve alanlara ait görsel ayarların tanımlandığı yerdir. o Alan Grupları Alanların kayıt listelerinde kategorize edilmiş şekilde görünmesini sağlamak amacı ile kullanılır. o Parametreler Görünüm içinde kullanılan parametrelerin tanımlandığı yerdir. o Gruplanmış Alanlar Kayıtlar listelenirken, ızgaralarda gruplanmış bir şekilde görünmesini sağlamak amacı ile kullanılır. HUGO (Hızlı Uygulama Geliştirme Ortamı) 14 2.8. Metodlar (Stored Procedures / Functions) Veritabanında “Stored Procedure / Function” oluşturmak amacı ile kullanılan bölümdür. o Alanlar Eğer metoddan bir tablo dönüyor ise kullanılan alanların ve alanlara ait görsel ayarların tanımlandığı yerdir. Tanımlanması mecburi değildir. o Alan Grupları Alanların kayıt listelerinde kategorize edilmiş şekilde görünmesini sağlamak amacı ile kullanılır. o Parametreler Metod içinde kullanılan parametrelerin tanımlandığı yerdir. o Gruplanmış Alanlar Kayıtlar listelenirken, ızgaralarda gruplanmış bir şekilde görünmesini sağlamak amacı ile kullanılır. HUGO (Hızlı Uygulama Geliştirme Ortamı) 15 2.9. Bölümler Projenin “İş Mantığı / Business Logic ” tasarımının yapıldığı yerdir. Veri manipülasyonu (Kayıt Ekleme / Kayıt Değiştirme / Kayıt Silme) da burada tanımlanan bölümler üzerinden yapılır. Tablolar arasında çok kolay bir şekilde sonsuz seviyeli “Master / Detail“ tanımı yapabilirsiniz ve sistem sizin yapmış olduğunuz bu tanıma göre çalışır. 2.9.1. Tablolar Bölümde kullanılacak tablolar daha önceden tanımlanmış olan tablolar arasından seçilerek burada tanımlanır. Birden fazla tablodan oluşan bir bölüm yapılmak istendiğinde tablolar arasındaki hiyerarşik ilişki (Master / Detail) buradan tanımlanır. Alanlar Seçilmiş olan tablolara ait alanlarda bölüm bazlı olarak görsel değişiklikler yapılmak istendiğinde buradan yapılabilir. Burada fiziksel olarak yeni bir alan tanımlanamaz fakat görsel alan tanımlanabilir. Eğer seçilen tablodaki alanlar hiçbir değişiklik yapılmadan kullanılacaksa alan eklenmez. Sıralanmış Alanlar Tablodaki alanların hangi sıra ile görüntüleneceğini belirtir. Eğer hiçbir alan seçilmezse gerçek tablodaki sıralama ile çalışır. HUGO (Hızlı Uygulama Geliştirme Ortamı) 16 Üst Tablo Bağlantıları Bölüm içindeki tablolar arasında Master / Detail yapısını oluşturmak amacı ile kullanılır. Nesne Bağlantıları Tablodaki gibi nesne bağlantısı tanımlamak amacı ile kullanılır. İstenirse tabloda yapılmış nesne bağlantılarına ek bağlantılar yapılır, istenirse de gerçek tablodaki bağlantılar iptal edilip tümü buradan yeniden tanımlanır. Kayıt Güncellemeleri Tablodaki gibi kayıt güncellemesi tanımlamak amacı ile kullanılır. İstenirse tabloda yapılmış kayıt güncellemelerine ek güncellemeler yapılır, istenirse de gerçek tablodaki kayıt güncellemeleri iptal edilip tümü buradan yeniden tanımlanır. Alan Özetleri (Field Summaries) Detay tablosundaki alanı, master tablosundaki alana özetlemek amacı ile kullanılır. Örneğin; “Fatura Malzemeleri“ tablosundaki “Tutar” alanının tüm satırlardaki toplam değerini “Faturalar” tablosundaki “Toplam Tutar” alanına aktarmak istediğimizde bu yapı kullanılır. Yapılabilecek özetleme (Summary) işlemleri şunlardır. o Toplam (Sum) o En Küçük (Min) o En Büyük (Max) o Adet (Count) o Ortalama (Average) İfadeler Gerçek tablodaki ifadelere ek ifadeler eklemek amacı ile kullanılır. Gerçek tablodaki ifadeler gibi çalışır. Gruplanmış Alanlar Kayıtlar listelenirken, ızgaralarda gruplanmış bir şekilde görünmesini sağlamak amacı ile kullanılır. HUGO (Hızlı Uygulama Geliştirme Ortamı) 17 2.9.2. Pencereler Verilerin görüntülendiği / değiştirildiği pencereler tasarım aracı ile burada tasarlanır. Pencere üzerindeki nesnelere script yazılabilir. Örneğin koşula bağlı olarak pencere üzerindeki bir kontrolün gizlenmesi, pasif olması veya başlığının değiştirilmesi sağlanabilir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 18 HUGO (Hızlı Uygulama Geliştirme Ortamı) 19 Araç Çubukları Pencere üzerinde kullanılacak araç çubuklarının tanımlandığı yerdir. Alt Pencereler Bir pencere başka bir pencerenin içerisinde görüntülenenir. Bu şekilde o pencere sanki o pencerenin bir parçasıymış gibi görüntülenir. Bu sayede bir pencere tasarımı, birden fazla noktada tekrar tasarlamaya gerek duymadan kullanılabilir. Düğmeler Pencere üzerinde kullanılacak düğmeler buradan tanımlanır. Resimler Pencere üzerinde kullanılacak resimler buradan tanımlanır. Menü ve Araç Çubuğu Parçaları Pencerenin standart menü ve araç çubuklarında görüntülenecek veya gizlenecek elemanlar buradan belirlenir. 2.9.3. Komutlar Çoğu zaman bölüm içerisinde o bölüme özel işlerin yapılması gerekir. Örneğin; bir düğmeye basıldığında ekrana girilen bir “TC Kimlik No” alanının “Mernis” üzerinden sorgulanması gerekiyor. Bunun için bu işlemi yapan bir kod yazılmalı ve bu kodun bölüm içerisinden kullanılabilir hale gelebilmesi için de bir komutun tanımlanması gerekiyor. Daha sonra oluşturulan bu komut, düğmeye, menüye, araç çubuğuna vs. bağlanıp istenildiği zaman kullanılabilir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 20 2.10. Sabitler (Enums) Sabit değerlerin tanımlandığı bölümdür. Örneğin; Sadece “Evet” ve “Hayır” değerlerini içeren bir ComboBox veya RadioGroup oluşturmak istediğinizde, “Evet” ve “Hayır” değerlerini içeren bir sabit tanımlarsınız ve bu sabiti o ComboBox veya RadioGroup’un bağlı olduğu alana bağlarsınız. 2.11. Karakter Setleri Hatalı veri girişini engellemek amacı bazı alanlara veri girişi yaparken sadece belli karakterlerin girişine izin verilmesine ihtiyacınız olabilir. Bu durumlarda girilmesine izin verdiğiniz veya girilmesine izin vermediğiniz karakterleri buradan tanımlarsınız ve bu tanımı ihtiyaç duyduğunuz alana bağlarsınız. HUGO (Hızlı Uygulama Geliştirme Ortamı) 21 2.12. 2.13. 2.14. Resimler Proje içerisinde kullanılacak resimlerin tanımlandığı yerdir. Görünüm Biçimleri Alanlara bağlı editörlerin görünüm biçimlerini belirlemek amacı ile kullanılan bölümdür. Kurallı İfadeler (Regular Expressions) Alanlara bağlanan kurallı ifadelerin tanımlandığı yerdir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 22 2.15. Raporlar Raporları tasarlamak amacı ile kullanılan bölümdür. HUGO (Hızlı Uygulama Geliştirme Ortamı) 23 2.16. 2.17. 2.18. Erişim Ağaçları Tanımlanan bölümlerin, komutların vs. çağırılabilmesi için menü ve araç çubuklarında kullanılmak üzere hiyerarşik tasarımın yapıldığı yerdir. Araç Çubukları Kullanılacak erişim ağacı seçilerek araç çubuğu tanımının yapıldığı yerdir. Editörler Bazı özel veri girişleri için özel editörler tanımlayıp bunları istenilen alanlara bağlamak mümkündür. Örneğin; IP adresi girişinin yapılabildiği editör özel bir editördür. Bu editör kod yazılarak oluşturulur ve editörler kısmında projeye tanıtılır ve istenilen alanda kullanılmak üzere alanın özellikleri içerisinden seçilir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 24 2.19. Güvenlik Proje içerisindeki tüm tanımlamalara erişim yetkisi verilebilir. Örneğin; Bölüm, Bölüm Penceresi, Bölüm Komutu, vs. Yazılım mimarisinde bir standart olarak kullanılan “Kullanıcı / Grup” yapısı üzerine kurulmuştur ve en detaylı yetkilendirmeleri dahi yapmanıza olanak verir. Kullanıcının bölüm içerisindeki hangi tablolarda değişiklik yapma yetkisinin olduğu, hangi alanları görebildiği, hangi kayıtları inceleyebildiği vs. buradan tanımlanır. 2.19.1. Kullanıcılar Gruplar Roller HUGO (Hızlı Uygulama Geliştirme Ortamı) 25 2.19.2. Kullanıcı Grupları Kullanıcılar Gruplar Roller Komut Yetkileri Rapor Yetkileri Bölüm Yetkileri Tablo Yetkileri o Alan Yetkileri Pencere Yetkileri o Düğme Yetkileri Komut Yetkileri Veri Nesne Yetkileri Tablo Yetkileri o Alan Yetkileri Görünüm Yetkileri o Alan Yetkileri Yönetilmiş Görünüm Yetkileri o Alan Yetkileri Yönetilmemiş Görünüm Yetkileri o Alan Yetkileri Metod Yetkileri o Alan Yetkileri HUGO (Hızlı Uygulama Geliştirme Ortamı) 26 o Roller o Hak Bağımlılıkları 2.19.3. Aktif Kullanıcılar Sistemde aktif olarak çalışmakta olan kullanıcıların ve hangi bölümleri kullanmakta olduklarının görüntülendiği bölümdür. Aktif kullanıcı istenirse sistemden atılabilir. Tüm tanımlanan projelerde bu özellik aktif hale getirilebilir. 2.20. Firmalar / Dönemler Bazı veritabanı uygulamalarında firma ve dönem bazlı olarak verilerin ayrı tutulması gerekebilir. Bu durumları yönetmek amacı ile firmalar ve dönemler tanımlanabilir ve veriler firma ve dönem bazlı olarak ayrılabilir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 27 2.21. Denetim Verileri (Audit Datas) Kullanıcıların yapmakta olduğu tüm işlemler loglanmaktadır. İstenirse kullanıcının yapmış olduğu tüm işlemler buradan incelenebilir. Kullanıcının yapmış olduğu hatalar da buradan geri alınabilir. Örneğin; bir kullanıcı hata sonucu bir kayıtı sildi veya değiştirdi. Kayıta ait önceki değere buradan ulaşıp kayıtı tekrar eski haline getirmek mümkündür. HUGO (Hızlı Uygulama Geliştirme Ortamı) 28 2.22. İşlemler 2.22.1. Veritabanı Oluştur Proje içerisinde tanımlanmış olan veritabanının oluşturulması için kullanılır. HUGO (Hızlı Uygulama Geliştirme Ortamı) 29 2.22.2. Veritabanı Şemasını Eşle Daha önceden oluşturulmuş olan veritabanında yapılan değişiklikleri fiziksel olarak veritabanına yansıtmak için kullanılan bölümdür. HUGO (Hızlı Uygulama Geliştirme Ortamı) 30 HUGO (Hızlı Uygulama Geliştirme Ortamı) 31 2.22.3. Sql Çalıştır Veritabanına ait araçları kullanmadan SQL işlemlerinin yapılabilmesi amacı ile kullanılan bölümdür. HUGO (Hızlı Uygulama Geliştirme Ortamı) 32 2.22.4. Veritabanı Şemasını İçeri Aktar “Project Designer” içerisinde tanımlanmamış olan bir veritabanını, bir veritabanı tanımı olarak projenin içerisinde alınabilir. HUGO (Hızlı Uygulama Geliştirme Ortamı) 33