As the title says... I've been using C# MVC for most of my web dev needs for many years. We have a bunch of legacy systems here so my technology choices have been set in stone.
New system time! Looking at React, dotnetify seems cool but it pushes towards Core. Core is so very very different to what I'm used to. As an example, no FormsAuthentication.
I'm obviously fine with learning a new tech if that's what "everybody is doing" -- but are they? Or is the .NET world split between .NET 5 and Core?
In short, if your Application have dependency on Legacy Libraries and tools, which runs only on Windows Server for example SQL Server Reporting Services, there is no benefit of using .Net Core in terms of cross platform support
In such case, when there is dependency on legacy Libraries and tools, but you are still ready to deploy final application on Windows Server (and not targeting Linux)- then you can go ahead with .Net Core
Why isn't Solace .Net API targeting AnyCPU? I've compared both SolaceSystems.Solclient.Messaging.dll and SolaceSystems.Solclient.Messaging_64.dll assemblies in Reflector and they are absolutely identical except for one class SolaceNativeAPI which points to libsolclient.dll and libsolclient_64.dll. It seems it would be very easy to convert this class to a non-static, expose common interface ISolaceNativeAPI which would be used instead of SolaceNativeAPI and create a factory that checks current process architecture and returns 32 or 64 bit implementation.
I'd be happy to submit a pull request if Solace code repository was public because it'd make my current work easier.
The Solace .NET API does not currently have an 'Any CPU' .NET binary because it was found in the past to slightly degrade performance. The Solace .NET API makes use of a native adapter layer that wraps a native library. To achieve run-time selection of the correct native library (32 or 64-bit) we need to introduce an indirection layer between the .NET API and the native adapter. This was tested in the past but found it degraded API performance by 5% to 10%, which was deemed too high to be released.
Made a research before asking this but I couldn't really understand much of differences between what I'm asking above. In-depth information would be much appreciated. Thanks in advance.
API - a set of functions and structures (classes?) for performing a selected task (e.g. libcurl API for network requests)
A Framework is something you can build upon. Usually it is complete (or almost complete) to a point it can be started out of the box (but probably would`nt do anything useful) and provides APIs to override some functionality
a toolkit is a set of utilities/tools you can use for some task (e.g. Kali Linux is a network penetration toolkit)
SDK (Software Developer`s Kit) is a toolkit (usually official) that can be used to interact with/program some device/entity. It also may provide APIs and frameworks internally. (e.g. Android SDK allows to develop, build, test and deploy applications for, well, Android. it describes APIs accessible from different OS versions. )
A toolkit is a set of utilities/tools you can use for some task (e.g. Kali Linux is a network penetration toolkit)
In section "other features under consideration", the RAD Studio / Delphi / C++Builder Roadmap for Pulsar lists
Additional cross-cloud API support
This sounds interesting - what does cross-cloud API mean technically?
Is this an API which integrates different cloud providers as explained in the Wikipedia article?
It just means re-factoring to make it easier to switch between the two (as demonstrated on the XE2 World Tour). There is a lot of commonality across the two services so as much as they can they have tried to make their use compatible.
I'm toying around with Delphi. Most of my desktop development is done in .Net, and embedded systems with C. I've done some web development in RoR & Python (Django, CherryPy) I am interested in taking a crack at a project that would be a web service (REST or SOAP) with a native client and a web client.
Because I've recently been re-inspired to learn Delphi, I'm curious what the options are to build the web service and web client with Delphi. Most of the Delphi documentation is a little dated but so far I've found these choices:
DataSnap
WebSnap
WebBroker
IntraWeb
Data Abstract and RemObjects SDK from RemObjects
I get the impression that WebSnap is dead, but the other technologies are still being developed. Is there any guidance about which technology to investigate?
p.s. I realize that Delphi isn't a wildly popular choice for web development, but I'm curious to try since I've been having fun learning the VCL.
You could perhaps add our Synopse SQLite3 Framework to your list.
There is some interresting features:
ORM approach to manage your data (i.e. define and access your data as regular Delphi classes), on both Server and Client Side - similar to ActiveRecord in RoR ;) ;
Multi-tier architectured;
no database or dll to deploy (uses embedded SQLite, without any external dll) - you can even not use SQLite, but a simple and fast in-memory database written in pure Delphi (I've begun a fork of Zeos, to be database independent);
Very optimized HTTP/1.1 multi-threaded Server (but you can communicate via other protocols, or even purely locally within the same process, without any Client/Server);
Data transmission uses standard JSON, so you can receive the same data in either a Delphi client, either an AJAX client;
Client/Server is RESTful and written in very optimized Delphi code (some part were even written in asm after profiling, for speed and low memory use);
Can also be used to define DataSnap-like Client-Server JSON RESTful Services, if the RESTful approach is not enough for you;
Full Open Source, compiles and work from Delphi 6 up to XE (with full Unicode support for all versions, because it's based on UTF-8 from the engine core).
Web Service Toolkit is a web services package for FPC, Lazarus and Delphi; “Web Service Toolkit” is meant to ease web services consumption and creation by FPC, Lazarus and Delphi users. Better check out from svn as the 0.5 release is actualy outdated.
RESTful server side method calls hosted as an ISAPI dll or just use the Indy HTTP Server component. It's really a quite simple and powerful approach and lets you get started quickly without a big learning curve.
DelphiMVCFramework is a powerful RESTful framework used also for website development
https://github.com/danieleteti/delphimvcframework
DMVCFramework features
RESTful (RMM Level 3) compliant
Fancy URL with parameter mappings
Server side generated pages using Mustache templates
Messaging extension using STOMP and Apache ActiveMQ or Apache Apollo (beta)
Can be used in load balanced environment using Redis or MySQL as state server
Integrated RESTClient
Works with DelphiXE3 or better
Integrated Logging System
It is really simple to use. You can be productive in minutes!
Here's the DMVCFramework Developers Guide
https://danieleteti.gitbooks.io/delphimvcframework/content/
If you need support, there is the official facebook group with more than 600 users https://www.facebook.com/groups/delphimvcframework/
I'm the main developer but there are more than 6 active contributors.
WebHub is another well established, though lesser known third party Delphi web framework.
Couple other choices that can be used to build a webservices server, somewhat simlar to datasnap or remobjects/dataabstract, are below. I did some work years ago with kbmMW and it's a solid library. I think both kbmMW and RealThinCLient have free and/or open source versions:
RealThinClient
kbmMW
We have a web front end for our Delphi server app written in Delphi Prism/ASP.NET. It works great and allows us to leverage our Delphi language skills in a .NET environment.
This one is very old,but a lot of things have changed,I myself had left Intraweb and gone to UNIGUI,since its based on EXTJS and produces single page applications.
Well Its been two years since I left my last message on this posts,
although uniGUI is still the only solution already made for creating SPA in Delphi,it seems that IW17 will be a real cutting edge,an waters divisor in the history of Delphi.Client side rendering without needing server communication,Wordpress integration,no need to write a single line in javascript like other frameworks,websockets,fibers,our "Delphi React".