Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
TMS ile RADical Web Geliştirme (TMS WEB Core)
#1
webcore.png

TMS 1.0 sürümünü duyurduğu TMS Web Core yazılımını anlatmaya başladı. Beta sürümünün duyurulduğu gün adından çokça bahsettirse de gelişimi ve takibi o kadar ilgi görmedi. Sizin TMS Web Core'a bakış açınız nedir? Sizce yatırım yapmaya değer mi? Gelişen web teknolojilerinde backend ve frontend yazılımlarla her kulvarda mücadele edebilecek türden uygulamalar üretilebilir mi?

Yoksa SaaS ticari uygulamaları hedef alarak planlanan bir Delphi Web platformu mu olacak?

TMS Web Core'u inceleyin

tmswebcore_brescia.png



DnYIea0W4AA-zg7.jpg:large
Bugün Utrecht, Hollanda'da yapılan TMS etkinliğinden çekilmiştir.



----

    RADical Web
  • Modern SPA web application model
  • Pure HTML5/CSS3/Javascript based applications
  • Standard component framework for common UI controls and access to browser features
  • Debugging in Pascal code via the browser
  • Backed by a solid & proven Delphi Pascal to Javascript compiler that was years in development
    Reuse skills and components
  • Component based RAD development integrated in the Delphi IDE
  • A truly revolutionary & innovative TMS FNC component framework that is now also web enabled, allowing to create UI controls that can be used on VCL, FMX, LCL and WEB!
  • Open to consume other existing Javascript frameworks & libraries
  • Open to use HTML/CSS for design
  • Open to use other jQuery controls or even other Javascript frameworks
  • Offers Pascal class wrappers for jQuery controls from the jQWidgets library
  • Easy interfacing to REST cloud services including to TMS XData for database
    Easy Deployment
  • Application consists of HTML & Javascript files only that can be easily deployed on any light or heavyweight webservers
  • Use any existing load-balancing software and/or techniques for highest performance
  • Small and convenient debug webserver is included for fast RAD development
Demos

Basics FNC jQuery Services Web XData
Cevapla
#2
Doğru anladıysam en büyük artısı client tarafında render yapabilmesi.

intrawebde basit ekran işleri bile sunucuya binmekte. unigui de de böyle galiba.

örneğin intraweb'de ekrana bir image koyup mouse ile sürükleyebildiğiniz bir kod yazdınız. internet bağlantısını kapattığınız anda uygulama çalışmıyor. Çünkü sunucu tarafında işleniyor.

TMS web core da ise aynı işi yapan kod tamamen client tarafında sunucu bağlantısız js kodu olduğu için sayfa yüklendikten sonra internet olmasa da çalışmakta.

Demolardan bunu test ettim. Eğer bu tespitler doğru ise çok güzel bir seçenek.
Cevapla
#3
(18-09-2018, Saat: 17:08)sekemado Adlı Kullanıcıdan Alıntı: Doğru anladıysam en büyük artısı client tarafında render yapabilmesi.

intrawebde basit ekran işleri bile sunucuya binmekte. unigui de de böyle galiba.

örneğin intraweb'de ekrana bir image koyup mouse ile sürükleyebildiğiniz bir kod yazdınız. internet bağlantısını kapattığınız anda uygulama çalışmıyor. Çünkü sunucu tarafında işleniyor.

TMS web core da ise aynı işi yapan kod tamamen client tarafında sunucu bağlantısız js kodu olduğu için sayfa yüklendikten sonra internet olmasa da çalışmakta.

Demolardan bunu test ettim. Eğer bu tespitler doğru ise çok güzel bir seçenek.

İnternet olmasada çalışıyor şöyle ise çok faydalı olur. Örneğin bir uygulama yaptık ve içine html değilde bu linkin uzantısını çağırdık, internet olmadığında eski verilere göre çalışabiliyorsa çok güzel projeler yapılabilir fakak durum bu şekilde değil gibi gözüküyor.

Şu durumda server ile senkron olmayan bir yapı hangi alanlarda ne amaç için kullanılabilir?
Cevapla
#4
Demek istediğim asıl konu internetin olup olmaması değil. Gereksiz yere benim sunucuma yük getiriyor mu getir miyor mu? 

Bunu test etmek için sayfayı yükledikten sonra interneti kesip görsel nesneleri test ettiğimden bahsetmek istedim.

Bir tane pop up menü yaptım. Sayfayı yükledim. Menü seçenekleri üzerinde mouse ile gezinirken dahi sunucuda bir trafik oluşuyorsa bu kötü bir şey demektir.

Gerçekten sunucuya gitmesi gereken durumlardan bahsetmiyorum. Kullanıcı ekranında sunucuya gitmesine gerek kalmayan yerlerde de intraweb de sunucuya gidiyor.

Örneğin ekrana bir imaj koydum bunu mouse ile sürüklüycem. Sürükleme anında sunucuyla hiç bir işim yok. Ama intraweb de her şey sunucuya gidiyor. Müthiş bir trafik oluşturuyor.

Örneğin tek kişilik bilgisayara karşı oynanan bir sos oyunu yaptınız. Normal şartlarda javascript ile yapsanız oyunu sayfa yüklendikten sonra sunucu ile bir işiniz kalmıyor. Puanı db ye kaydetmek isterseniz sunucuya ulaşırsınız.  Ama ekrana tıkladım diye sunucuya gitmezsiniz. Tıklandığında ekranda grafiksel olarak ne olacağına clienttaki script karar verir ve yapar.
intraweb de ekran işlemleri bile sunucuda işleniyor bu da gereksiz yere trafiğe sebep oluyor.

web core da bu böyle olmadığı için iyi demek istedim. Direk sunucudan bağımsız clientta render edilen js kodu üretebiliyor gibi geldi.
Cevapla
#5
Merhaba.

- 295 Euro bana geldiği gibi size de pahalı gelirse, bu yapıyı biraz çaba ile ( HTML bilgisi lazım ) kendiniz de kurabilirsiniz.

- Anılarım canlandı; bir raporlama aracı olarak benzeri bir yapı istemiş ama iş güç kalmıştı.  

- Aşağıdaki şekilde her nesnenin karşılığını html üzerinde üretebilir ve aksiyonu, belirleyeceğiniz "/sonuc" gibisinden URL path ile geri dönüş şeklinde interaktif bir şekilde yapılandırabilirsiniz. 

- Örneğin veritabanı sorgusunu Win32 layer'de içeriği HTML olarak derleyip dışarı Response.Content halinde sunabilirsiniz. 


g5qlm4e9cz6q3hd7b3up.png

Ben şöyle başlamıştım. ( sadece Form, TButton ve TEdit destekli küçük bir kısmı )

WSDL_Helper için forumda paylaşmıştım. bu link

uses Unit_WSDL_Helper;

function FormToHtml( aForm: TForm ): String;
Var
 i : Integer;
 strStyle : String;
begin
 strStyle := 'div.'+aForm.Name
 + '{position: absolute;'
 + '     left: '+IntToStr(aForm.Left)   +'px;'
 + '      top: '+IntToStr(aForm.Top )   +'px;'
 + '    width: '+IntToStr(aForm.Width)  +'px;'
 + '   height: '+IntToStr(aForm.Height) +'px;'
 + '   border: 3px solid #73AD21;'
 + '}';
 Result   := '<div class="'+aForm.Name+'"></div>';

 for i := 0 to aForm.ComponentCount-1 do
 begin
   if aForm.Components[i] is TEdit then
   begin
     strStyle := strStyle + 'div.'+TEdit( aForm.Components[i] ).Name
     + '{position : absolute;'
     + '     left: '+IntToStr( aForm.Left + TEdit( aForm.Components[i] ).Left  ) +'px;'
     + '      top: '+IntToStr( aForm.Top  + TEdit( aForm.Components[i] ).Top   ) +'px;'
     + '}';
     Result := Result + '<div class="'+TEdit( aForm.Components[i] ).Name+'"><input type="text" name="'+TEdit( aForm.Components[i] ).Name+'" value="'+ TEdit( aForm.Components[i] ).Text +'" size="'+IntToStr(TEdit( aForm.Components[i] ).Width div 12)+'"></div>';
   end;

   if aForm.Components[i] is TButton then
   begin
     strStyle := strStyle + 'div.'+TButton( aForm.Components[i] ).Name
     + '{position : absolute;'
     + '     left: '+IntToStr( aForm.Left + TButton( aForm.Components[i] ).Left  ) +'px;'
     + '      top: '+IntToStr( aForm.Top  + TButton( aForm.Components[i] ).Top   ) +'px;'
     + '}';
     Result := Result + '<div class="'+TButton( aForm.Components[i] ).Name+'"><button type="button" name="'+TButton( aForm.Components[i] ).Name +'" style="width:'+IntToStr(TButton( aForm.Components[i] ).Width)+'px; height:'+IntToStr(TButton( aForm.Components[i] ).Height)+'px;" onclick="alert(''Button click edildi'')">'+TButton( aForm.Components[i] ).Caption+'</button></div>';
   end;
 end;
 Result := '<html>' + '<style>' + strStyle + '</style><body>' + Result + '</body></html>';
end;

procedure TForm1.OnWebCagriGeldi(Sender: TObject; Request : TWebRequest;
                                                 Response: TWebResponse );
begin
 Response.Content := FormToHtml( self ); //'<html><body>Muharrem</body></html>';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 xWSDLHelper.DefaultPort  := 7000;
 xWSDLHelper.ServerActive := True;
 xWSDLHelper.OnWebCagriGeldi := OnWebCagriGeldi;
end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#6
Bu yapılar ilgi çekici gelmeye başladı. Özellikle kirala kullan uygulamalar açısından güzel bir olay. Çok kullanıcılı yapıda kullanıcıları yönetmek daha kolay. Sanırım yasadışı kullanımın önüne de geçiyor. Acaba kod güvenliği ölçüde sağlanıyor?
Büyük firmalarda standart ürünleri yanında sunucu tabanlı uygulama çıkarıyorlar.
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla
#7
Böyle çağın gerisinde kalmış component setlerini görünce Embercaderonun neden RadPHP'yi geliştirmeyi durdurduğunu merak ediyorum. Delphi ve Php açıkcası bana göre mükemmel ikili olurdu.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#8
Konu dışına çıkıyoruz ama Rad php'yi bende çok beğenmiştim kylix gibi yarım bırakıldı malesef.
https://www.phprad.com/
Bakınırken denk geldi.Müsait bir vakitte incelemek lazım.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  WebBroker ve TMS Web Core ile REST WEB API Yaklaşımı 2 delphi.developer 0 150 04-03-2024, Saat: 16:14
Son Yorum: delphi.developer
  WebBroker ve TMS Web Core ile REST WEB API Yaklaşımı delphi.developer 3 360 14-02-2024, Saat: 15:22
Son Yorum: parlakcuma
  TMS Web Core - Database bcore 5 620 08-02-2024, Saat: 14:07
Son Yorum: bcore
  TMS Web Core - Genel Bakış rmzgenius 61 18.926 22-01-2024, Saat: 18:47
Son Yorum: delphi.developer
  TMS Web Core : Güzel Özellikler-2 rmzgenius 13 3.273 08-01-2024, Saat: 11:57
Son Yorum: rmzgenius



Konuyu Okuyanlar: 1 Ziyaretçi