Feeds

New Development. Where do we go?

This topic was created by MJI .

MJI
Silver badge

New Development. Where do we go?

OK currently our software is a WIN32 application with a client server ISAM database, but how longer will we be able to sell WIN32 systems when everything else is coming along. All are part of the XBASE family.

So where do we go?

We will need to be able to go SQL despite it not being as quick at certain tasks as our current database engine, I would be happy to keep it as it is on all 3 server platforms, and does have an SQL mode.

The language is a minority database handling language, but pretty good to use, but very few people use it.

We are considering .NET, there is precompiler for the language we use which works with C, and the server work with .NET, still even have ISAM. This would possibly be the lowest risk, easiest move for us.

However there is an antipathy toward MS now which is making us wonder. Win 8 is generally hated, and we are hearing thoughts of MACs and Linux from our customers. Also some people would like to use Android tablets.

So what other options are there?

I have over 25 years as a developer. Happy with object oriented programming, database access, prefer to be able to strict type, hate bossy IDEs.

Some C, a little C++, lots of Clipper, lots of VO, quite a bit of Alaska Xbase++, some VB (I hate VB6 - evil).

I would be happy to go to a more main stream environment, as long at the IDE did not make me want to kill its designer.

I have not even thought about a web environtment yet either.

0
0
Bronze badge

Re: New Development. Where do we go?

It's HTML5. A Chrome Packaged App for the desktop. Cordova (phonegap) on mobile. There are plenty of holes but new APIs every month. You can always spin your own plugins. (Node.js would deserved a mention but it can't compile plugins on windows using the mingw toolchain - which limits it.)

I've transitioned from assembly to C/C++. I think we're transitioning from C/C++ to javascript - it will be the "C" of the web.

0
5
Anonymous Coward

Re: New Development. Where do we go?

.Net has historically been by miles the easiest and cheapest to maintain solution. It might not have been very scalable in the early days, but that certainly isn't an issue anymore.

The vast choice of underlying code flavours you can plug into .Net is a major benefit - and even really ancient .Net versions are still supported on the latest platforms....Plus of course the best IDE that there is in Visual Studio...

4
4

Re: New Development. Where do we go?

Slightly off what you are asking but instead of proposing a platform I'm going to propose a methodology for finding your platform (or platforms - I think you'll need to master more new technologies than you might initially realise).

Have a look at your app and try to pick out one small part of it that could stand alone but does touch most of your current system - a full back-end to front-end slice, if you will. The smaller the better. Now try to describe it with use cases or, my recommendation, some user stories that add up to a minimum viable feature (I'm not going to explain terms here, you can look them up).

With this ready, pick up copies of "Seven [languages|databases|web frameworks|] in seven weeks" and get some ideas. Don't limit your tech choices to these publications' suggestions. Add in JavaScript and C# and Java. Look at Node.js and Angular.js. Get busy on StackOverflow.

Create fully functional spikes of your mini app. You need to set strict time-boxes on each spike - if it ain't done in the time then the review with your team at the end should ask why. Do work with a team, preferably half a dozen programmers, although even if it's just two of you doing a lot of pair programming it will be better than one person on their own. Making the time to do this may be hard but as you are planning such a major rewrite I hope you'll find your MD/CEO is supportive.

The advantages will be a good look at the architecture of your app rewrite; learning a lot of new development methodology *and* really getting stuck in to the new technologies that are available to us all.

Enjoy it! It should be fun.

0
0
MJI
Silver badge

Re: New Development. Where do we go?

Well my abilites are important as I am the main programmer, my boss does some C but to 1980s standard, no multithreading, the new chap is reasonably competent we have some assistance from an Indian programmer (the one who set his own company up) who maintains a shape designing screen for us.

The bulk will end up on my plate and the new chaps plate if he sticks around.

I do get our office manager to knock up screens, not a programmer but knows enough to produce a flat edit screen.

Small bites do make sense.

I have had the OO pain and the event driven pain, so many languages now are so similar you can almost search replace the code.

I have found that people who class them selves as users and non programmers but who understand computers are pretty good at user interfaces.

I think our intention is to make a workable choice, get me to oversee it and use cheap programmers to do the grunt work, leaving me to do the analysis and the more complex code.

As before I also need to be able to leave it in a state someone else can look after it as this software would be released around 3 to 4 years time, and if this has a ten year life I would be looking at its replacement about the time I would be slowing down.

.NET even though it is MS is still looking like a good choice due to Vulcan, but I will be looking at Mono.

0
0

Re: New Development. Where do we go?

I know this isn't an answer to your question, but my two cents anyway.

Having been in exactly your shoes for the last several years, and 4 apps down, here is my solution.

First I use one of a couple of programs to publish my VFP apps the the web. This allows me to say that my app is web based and allows the clients to launch them using most common browsers from any desktop (Windows, Apple, Linux) and most Tablets. With minimal coding in VFP I can create screens specifically for the tablets and smart phones if necessary.

Next I convert that back end to SQL. I find that the SyBase Advantage database has some specific useful features for some of my projects but if the VFP code was written using Database containers this is also pretty minimal task.

This can all be accomplished in weeks instead of years and allows you to stop hemorrhaging clients to your competitor (if this is problem) or at least immediately allows your users to work from anywhere.

Once having accomplished this you can now start rewriting sections of you product without having to necessarily rewrite it all in one piece.

From there you have to make a choice. There are several good products out on the market such as Westwinds Web Connect that allow you to rewrite the front end in HTML 5 and still leverage you VFP knowledge for the back end. Otherwise for reasons that have as much to do with personnel choices as technological choices we've been using C++ and are quite happy with the results.

Jay

0
0

This post has been deleted by a moderator

The trend

Is all very web-based, which if you want to target the biggest audience then it makes sense.

Something like a SQL DB backend, .Net middle-tier and a web front end in HTML5. Anything with a modern browser can access it, and .Net is going pretty strong plus you have a choice of languages too.

Can have any SQL backend you like, only MS tie in would be for the middleware so forking out for Windows Server to host and using VS 2012 for the IDE which is pretty good to be honest. IMHO I would suggest SQL Server, .Net middle-tier and IIS presenting the web front end in HTML5, tied up with ASP.Net maybe?

3
1
Anonymous Coward

Re: The trend

"I would suggest SQL Server, .Net middle-tier and IIS presenting the web front end in HTML5, tied up with ASP.Net"

+1

1
4
Gold badge
Thumb Down

AC:12:58

""I would suggest SQL Server, .Net middle-tier and IIS presenting the web front end in HTML5, tied up with ASP.Net""

I would suggest such comments from AC's are either trolls or PR.

No name == No worth.

3
1
Anonymous Coward

Re: AC:12:58

Yes if an anonymous user states that 2+2 = 4, it actually becomes false.

2
0
Silver badge
Boffin

Re: AC:12:58

If one company sold all the 2s in the world, a load of anonymous users saying 'buy two 2s to get your 4' wouldn't make it false but it might make that advice a little suspect, especially if it sounds like a sales brochure and it's obviously ignoring the fact that a 3 and a 1 might also do the job just as well for a fraction of the price. You only have to read these comments to see some examples.

1
1
paj

We're all web apps now

It sounds like you currently have a "Fat client" app that talks directly to the database. The trend is to have the client talk to a mid-tier that implements the business logic, and the database sits behind this.

One benefit of this architecture is that it's easier to have a variety of clients - Win32, GTK, iOS, Android, etc. And HTML5 is a very capable client, especially if you use an advanced JavaScript framework like Angular or Backbone. And it avoids a lot of deployment issues, like needing to create an update system.

There are various protocols for client to mid-tier communication (SOAP, XMLRPC, Thrift), but HTTP with REST and JSON seems to be a winner.

Also many choices for implementing your mid-tier. Java and .Net are the mature ones, while Python and Ruby have innovative new features. And there's many more. Personally, I like Python.

Another benefit of introducing a mid-tier is that it's easier to change your database technology. Traditional RDBMS (Oracle, SQL Server, Postgres, etc.) are a fine choice - although there's growing use of NoSQL databases (Mongo, Couch, Neo4J, etc.) Personally, I like Postgres.

9
0

Dev Platform

Our main product has been developed in time through various languages, Retrieve4GL (Sage Line 100 DOS language), Clipper 86/87, 5 and 5.2.

We also had a parallel (albeit far behind in feature set) product written in 4th Dimension (a database/IDE/runtime client/server all-in-one product) for use on Mac's.

As Clipper was coming to the end of it's shelf life, we started dabbling in Visual Objects and also Visual Foxpro, to see if they were worthwhile development platforms to take the product forward.

We wanted a cross-platform product, hence dabbling in Visual Foxpro 3... luckily we didn't go that route, as VFP3 was the last version for both platforms.

As Visual Objects was also proving to be a non-starter, we pulled out the old 4th Dimension Mac product, and with 4th Dimension becoming a cross-platform product, we quickly ramped up the feature set of the 4th Dimension product and created an export from our Clipper product and import for the 4th Dimension version.

4th Dimension, evolved it's name into http://www.4D.com , and as it's products matured, they added more features, (all built into the same single product/exe file)... odbc, web server, sql server, php server.

The language has evolved to allow native SQL statements, in addition to it's traditional query/'venn diagram style' sets.

Now, it's not perfect, (as if anything could be!), and we are now pretty much tied into it, but it has served our purposes well.

The ability to just copy a single folder on your PC/Mac, and suddenly you have a working database/web server/sql server/IDE, is many degrees of complexity different, to say SQL Server+IIS+IDE. It makes it also relatively simple for our customers, who know they have one server App, which takes minimal configuration for it's setup, and then for the client, either a browser to open, or the client software to simply copy in and run.

I post, only becuase you appear to have had a similar early development path as our product.

0
1

Re: Dev Platform

In response to JASR's post, I have worked on 4D for 11 years now, primarily on Windows and while I agree with the deployment aspects (really easy) and it is great to have an integrated db engine; however I feel as though I should pass on the other side of my experience with 4D. It's terrible.

As a company we waste so much time trying to track down and work around bugs in 4D, the performance is awful (it's essentially single-threaded, all of your code runs in 1 thread although the db engine can now use extra threads, which makes little difference), they don't have any degree of object-oriented code, their development environment is a nightmare to use and there is basically no practical source control tools that work properly.

It may meet your requirements but the only reason we are still using it is inertia. It would take a monumental effort to port onto another platform, although when you look at the time we waste due to 4D's inadequacies, I wonder how long it would take to make that time back. We are still thinking of moving away

I have used .net based languages and c++ in visual studio quite a bit on my own projects and feel they are just 10-20 years ahead of where 4D are (I'm not exagerating) and advancing faster. It's always amazing when I suddenly find that tapping the tab key will automatically do something that would require me to write 50-100 lines of code in 4D to achieve.

If I were looking at a new platform I would certainly start my search with c#, it's just fantastic. MS do seem to be trying to shift platforms a lot at the moment, silverlight being ended and WinRT coming in for example but most of these platforms are actually based on the same technology (.net / XAML) and moving between them wouldn't be that hard. They're more like variants of the same platform.

Hope this helps.

2
0

Re: Dev Platform

Hi Mog0.

Yep, it's bugs are a right pain if you are on bleeding edge. We tend not to be on the bleeding edge, and hence keep our customers hair attached.

Note: Database is multi threaded since v11 (2009), and web server since v13 (2012)

As per original post, I was just mentioning my own experience, as it seems to have mimiced the original posters early experiences... and now, also, yours :-)

0
0

Solid Servers

While Microsoft seems to be taking a real hammering on the client side of the ecosystem, I think the server side is actually pretty solid. While the stupid Metro start menu made it's way into the Server 2012 UI, the server manager is really nice. IIS is solid and the .NET 4.5 framework is awesome with the enhancements made for parallelism and other such things.

Using SQL Server, IIS and .NET you can build a solid foundation as a back-end for just about any front end you like from .NET WinForms/WPF to HTML5 to iOS and Android apps.

4
2
Bronze badge

Re: Solid Servers

"While the stupid Metro start menu made it's way into the Server 2012 UI"

2012 doesn't have any UI by default and there is no need to install one. Use the Remote Admin tools if your PowerShell isn't good enough....

1
3
Silver badge

Re: Solid Servers

"2012 doesn't have any UI by default"

Actually that is one of the best things MS has done for ages, dropping bloat and avoiding the temptation of someone, somewhere, deciding to surf the net on a critical box. Never thought I would up-vote TheVogon!

0
0

New Dev; Old Dog

Damn did you read my CV?

I find myself in almost exactly the same situation with a slight twist , I moved from Clipper\XBase to VB6 about 10 years ago as the App the company sold (Epos) was moved from DOS to Windows. ( IMHO Clipper is still way better for Rapid dev than VB-SQL.) The only way to getthe best out of VB6 is to get your head around "IMPLEMENTS" and it's version of inheritance\polymorphism.

An additional problem for us is the soon to be expired XP which by comparision is a doddle to install apps on compared to WIN7 and don't even think about 8 The nightmares of UAC, the virtual store directories lack of serial ports on new hardware etc..

Stateless Web Based Solutions have severe limitations for anything other than the simple data capture\entry or shopping cart apps. Want to print securely, or use a bar code scanner etc.. Yes JAVA and HTML5 may well offer more but the time taken to become Fluent, Elegant and Productive in a new language is going to be the killer.

As for the future, one of our sideline (non-retail) customers wants a remote data capture app for his field staff written in FIleMaker for iOS on iPads. It's terrible for anyone with any form of client server mindset. Plus would anyone seriously bet their pension on Apple being dominant in 5 years so requiring yet another career reboot.

My personal choice for a route outa' here is on the Android platform using a tool called Basic4Android, (It looks just like VB.) Purely because it seems to leverage my existing knowledge. But what to make, how to market it and will it pay the bills are the really worrying questions

The simple truth may well be that the days of "traditional" custom app, PC hosted, Software Development outside of sizeable companies who always seem to write their own, is over. Put simply, us Old Dogs might have seen the best of our carreers.

1
0
Bronze badge

As far as database engine, you should be able to replace ISAM with SQLLite with relatively few problems. ISAM is really, really old technology and I would urge you to migrate away from it as a priority. Of course there are similar engines to SQLLite, just givning you some starting point.

However if you have a GUI then you also probably want to migrate this; I would suggest something like Qt - while not cheap (assuming you are not doing open source), it will give you ability to move between platforms.

1
0

Embarcadero Delphi?

This might be a long shot.... what about Embarcadero Delphi XE5? It is a Pascal based development environment. Much underrated IMO and a bit minority perhaps but very powerful. But I have used it for 20 years and created major projects with it inc a complete Factory Management System, a full blown Mail Order program which handles everything from the web ordering through to despatch inc credit card processing, stock control etc etc etc and an EPOS backend system.

It is at home knocking up a small utility as it is creating major projects. People ofetn ask what my software is written in because the end results are very professional (happy to supply example screenshots of what iots is capable of). And it has some great VCL components e.g. direct databse access using Devart components.

The environment is fine, been around long enough to make it just right.

The latest version can target Windows, Mac, iOS and Android.

Just a thought and perhaps something you might want to consider.

2
0
MJI
Silver badge

Re: Embarcadero Delphi?

That would be sideways, not really any benefits over VO, except that I know VO pretty well. But the multiplatform looks usefull.

0
0
Silver badge

Re: Embarcadero Delphi?

Well Delphi is kinda dead, use Lazarus instead, that's an open source clone of it.

0
1

Go C#

You should definitely be looking at the Microsoft stack, I have yet to see many bespoke business apps built on anything else. Have a google around to see what skills recruiters are currently looking for... ASP.NET MVC 4 Razor is the hot one currently. That gives you RESTful WCF end points (so you can easily change your front end) and C# for your services. You could even look to a no SQL DB like Mongo running locally or in the cloud (Azure supports it and is now both cheaper and fast than AWS) and keep your data in JSON format and avoid the cost/performance of SQL Server.

Stay clear of OSX development - it is painful as hell! Objective C is a horribly syntax and XCode is a joke - not for professional development. Java is... barely changed since the 90's - still comes with awful tools like Eclipse. Don't be fooled, it is free for a reason!

Nothing compares to VS2012 + Resharper for productivity. Light years ahead of the competition.

Antipathy toward MS comes from the iOS / Android fanboys that have polluted tech websites over the last few years. Non of them are developers, most of them are idiots.

5
5
Bronze badge

Re: Go C#

I'm not a professional developer - I code, but I don't do it as my sole and only job.

As a user, though, I want it to "just work". I don't particularly care for being tied into any single platform, so all that matters is the end-interface to me, and that it works anywhere. Now that we have web-based technologies, that solves a lot of the problems there. So the question then really becomes "What do we run that site on?", which is an answer few care about outside the company. Sure it can be MS with the licensing and other hassles, but it honestly DOES NOT MATTER.

Which I think is why a lot of non-coders / amateur coders don't get why you'd then go with MS. Running ASP.NET, you'd never Server 2012 back-ends. That's a licence cost and a bit more right there. Then you'll need SQL (although, as you say, there are other alternatives and then we get into things like Azure). C# development tools basically require some piece of software from one company at the moment (you said it yourself, VS), and who knows how long they'll be supporting it or what they'll do to it (did you witness the evolution of VB at its beginnings?).

All of these are expensive, tied-in commodities that have a vast range of knock-on effects (if you do things PROPERLY, you should never need your users to have .NET Frameworks installed, or use a particular browser, but it's increasingly common for such things to slip into client requirements for software that absolutely DOES NOT need them as they are only a front-end to something else).

Sure, you *might* get better productivity with the right, very expensive, tools, but it's not out of naivety that some people see that and recoil, where a 1980's--terminal style interface would cost them nothing, with an ongoing licence of nothing, and a license audit cost of nothing, and where back-end development, although a skilled task, has specialised tools that are specific to the case but can ALSO be ripped out and replaced with anything else with minimal cost (e.g. just as analogy rather than a real-world example, replacing MySQL with PostgreSQL, or Apache with something else, or Linux with FreeBSD or WHATEVER).

The world today (and historically) means that NOTHING on the back-end matters to the user, so long as they get the interface they need. Which leaves it down to developer preference vs cost.

The interfaces are commonplace now and everyone knows how to work a web-based app, or even a dedicated app on their smartphone, or whatever. The question really is: How do you want to get there? By buying into MS and betting your business on them and their increasing licence and maintenance costs, or seeking alternatives that MIGHT be a bit more uncomfortable to code on if you're not used to them but are much more flexible in their execution and can be moved onto other platforms and other cloud providers as needs change?

It's that that really causes amateur geeks and people who don't code all day long to look up and think: Hold on. I'd rather put in more effort with less popular tools and end up with something better in the long run. There's a reason that an awful lot of OpenSource software does not come with a VS project file. Because it's never touched by one, and when it is, it's solely for building the Windows executables. I seriously doubt that a whole breed of operating system, driver and application programmers for huge, mission-critical, global pieces of software are struggling with sub-standard tools "just because" they are free. They either buy something in to fix the shortcomings (there's nothing wrong with buying a tool to save you time on a job), or the tools are perfectly fine.

Fact is, almost every piece of software I deal with as a user / IT guy that has gone down the .NET route has suffered from it. We've abandoned several companies as they announce that the next version of their software will be Silverlight/.NET based and gone with alternatives (sometimes more expensive but not always) that don't place restrictions on us.

In some cases they were only able to recoup their customers by moving to web-based things where THEY had to deal with all the problems of which service packs were installed, etc. And then they often found that the cost of using those tools is more expensive than just buying a coding team that are prepared to put in the work and getting a nice, modular, portable, flexible codebase on something they can swap out any day.

The OP is asking about cross-platform stuff here. That's because his users are probably requesting cross-platform tools, which is an indication of how much they want to put trust into any one entity or system type, or even deciding whether to do most of their work on their PC or their phone (a blanket decision like that can kill the flexibility of a workforce). They are asking for that for a reason. And although not a requirement, it pays to think about why they are asking that and whether the same reasons should apply to the back end that NOBODY but yourselves have to manage. If users aren't putting their faith in having a single environment around next year, why should your developers and their network support? It then makes sense to code things in a similar way, to provide modularity and flexibility.

If you base code on C#, ASP.NET, Windows Servers and Azure, you lose a lot of that almost immediately. You're forever condemned to code only on such platforms and run your code only on such platforms, even if your users never know that. Sure, if you insulate and modularise properly, it will never be an issue (and it is MUCH easier to find a C# programmer in the business world) because it will never leave your company, but you have to cost it properly and that includes the savings such tools will give you over their alternatives. Does C# *really* save you that much time over C++ or Java that it's worth committing an awful lot of resources to a product-lifetime running MS software for everything from the OS upwards, even internally? And the answer to that is NOT a simple Yes or No, but depends on a myriad factors to do with the kind of application, the kind of business and the scale of just about everything.

It's really a business-case decision, in terms of how you code. And in those terms, I could make a business case for coding my stuff in an MS-only environment with MS-only tools for deployment on MS-only machines, of course, but it would really grate against my better sense when there are alternatives that don't tie my coding to a single platform.

I would have serious concerns about the longevity of any coder that can only code on one platform, not just from an obsoletion basis but just simple concerns about what they will do when other changes are needed.

6
2
Anonymous Coward

Re: Go C#

I have to agree with much of this.

However there is an antipathy toward MS now, which is making us wonder. Win 8 is generally hated,

Here on the Register, yes. Here it's hated. Partly that's because of retards and professional evangelists but mainly it's first-line IT support drones wanting to avoid get any calls from their users.

Our clients (who are the UK's various police forces and some organizations who it seems have been grabbing entirely too much data) are more than happy with it and with what we can make it do for them. Is there a learning curve? No, just a familiarity curve. The support drones are too lazy to bother with that, though (even while they consistently advocate a full-scale move to linux secure in the knowledge that it'll never happen and they can bitch about Windows forever).

I also have to second the recommendation of Resharper. If you're any kind of serious developer and you want your OO code to fully exploit the OO paradigm, Resharper's refactoring tools are second to none.

5
6
Anonymous Coward

Re: Go C#

" you'd never Server 2012 back-ends. That's a licence cost and a bit more right there."

Most sane / experienced architects would. License costs are a tiny proportion of the TCO. Plus Windows Server is substantially cheaper than say licensing Redhat or Suse....

"and who knows how long they'll be supporting it "

Longer than any competitors will commit to.

"you should never need your users to have .NET Frameworks installed, or use a particular browser"

You don't need to care within reason - they are already a default part of the enterprise client OS.

"every piece of software I deal with as a user / IT guy that has gone down the .NET route has suffered from it"

Cant say that's my experience at all - and I was responsible for 8,000 client applications at one point. The biggest nightmare by some distance is Java based applications.

"Which leaves it down to developer preference vs cost."

Quite - and .Net is usually by far the lowest TCO for multi-tier applications

"You're forever condemned to code only on such platforms and run your code only on such platforms"

Just rubbish. You can run .Net on Linux if you really want to. .Net also supports dozens of programming languages.

4
6
Bronze badge

Re: Go C#

> Java is... barely changed since the 90's - still comes with awful tools like Eclipse

Not so. Firstly Java has moved on a great deal from the language I was programming in during the 90s, I still prefer it to C#. As for IDEs,..

For Java development I've been using IntelliJ Idea since V2 and it's clearly better than anything else out there. The community edition is free, and if you decide you need the paid for version, the personal license won't break the bank. When I first started using it the community version didn't exist, so I chose to pay for a personal license rather than use Eclipse. It has support for languages other than Java.

If you go the C# route, I'd strongly recommend investing in Intellij Resharper. It makes MSDEV a tolerable environment.

I'm not associated with Intellij in any way, I just think their developer tools are excellent...

3
0

Re: Go C#

I don't know where to begin.

Your entire post is ridiculous.

1
1

Re: Go C#

Microsoft stack is "okay", but proprietary & will cost you (up to mega-bucks) in license fees. Many many enterprise level applications are built in Java, as it runs from desktop to server up to mainframe.

I wouldn't build an enterprise level app in Microsoft.

I will note that Microsoft copied C# and the "virtual machine" almost entirely off Java, originally, and that major libraries like Hibernate and JUnit were invented for Java -- then ported. The poster is wrong -- Eclipse is one of the best & most powerful IDEs ever made. Java was the first modern language, and has advanced constantly.

Have a look at the recruitment ads. You should consider Java and open-source platforms, but definitely not rule out Microsoft. MS are still a major player, but the days of proprietary lock-in are ending.

A proper development stack would look like:

- HTML, CSS and jQuery for the front-end

- Tomcat (Java, free, excellent, globally used web-container) or IIS (proprietary, buggy & difficult)

- Java or C# (either is fine)

- Hibernate or Hibernate.Net (persistence layer)

- PostgreSQL, FireBird, MySQL or SQLite (database)

Open standards, non-proprietary technology & open-source enable a vast amount of intellectual innovation, technological development & advancement. (As well as making it possible to clearly see & debug everything). MS can only try & counter this with "fear, uncertainty & doubt".

1
1

Re: Go C#

Yes Java, because .Net and C# are not as portable and more messy to deploy.

Not Hibernate, it is obese, config heavy, and slow; better the leaner less obfuscated MyBatis 3 for database based persistence, or even just JDBC to start with.

NetBeans and Maven for development; Maven makes use of your own and 3rd party libraries so much easier than Ant, and the build process is far less likely to go wrong than Ant or nasty IDE projects setups like in Eclipse.

If you want to do Android too without a server, best use libraries and frameworks which are similar or available for both desktop and Android.

It would be helpful to look at logging too, because a lot of people neglect this or do it badly; I prefer the SL4J framework and the logback logger.

1
0
Silver badge

Rub the genie

And get a LAMP.

3
0

You could try Python

Instead of .NET/Java/etc... could try with a Python backend/framework. Then use whatever DB you want that is supported(either noSQL or SQL evaluate what works for you). And I agree HTML 5 for the web frontends if any and possibly QT and WFP(since I don't believe QT is supported on the new interface yet) for any other clients.

1
1
xyz
Bronze badge

I presume someone above will have said similar....

In a nutshell, you're thinking in yesterday. You should be providing data driven web services (written in anything you feel like against any database you fancy) returning jSon (or XML or even bog standard html if you're all in the same domain) and your clients can really be any device (subject to security yada yada etc) calling those services via Ajax or whatever. The old idea of the client server PC is long long dead.

You end up with 2 tiers...the client (whatever it is) and the web service heads.

The web service heads can have multiple tiers or layers underneath, but none of this has anything to do with the client side.

HTH

4
1
MJI
Silver badge

OK Some more details

The server we use can mix ISAM and SQL access see below, I can even navigate SQL results with DO WHILE ect

The main issue is that some people mention they want this or that SQL engine, but no one has yet said no to our current engine.

// Here is ISAM mode

SELF:dbBarList:ResetNotification()

SELF:dbBarList:Close()

uErr := AdsConnect60( String2PSZ(cPath), ADS_REMOTE_SERVER,String2PSZ(""), String2PSZ(""), ADS_DEFAULT,@hConnect )

//hit_key(AsString(uErr)+' '+cPath+str(hconnect))

AX_SetConnectionHandle( hConnect )

cSQL := "DELETE FROM "+cFile+" WHERE PL_PDate <= '"+SQLDate(dClear)+"';"

oSvr := AdsSQLServer{ csql, , , "AXSQLCDX" }

oSvr:Close()

AX_SetConnectionHandle( 0 )

// Need a delay here - 5 seconds as a test

Sleep(5000)

SELF:dbBarList := dbBarList{,FALSE}

SELF:dbBarList:SuspendNotification()

0
1
MJI
Silver badge

Our database server

http://www.sybase.co.uk/products/databasemanagement/advantagedatabaseserver

0
1

what will your customers want in 2020?

It sounds like you don't refresh your software too often, so you need to consider what your customers will want in 2020. If you don't have a crystal ball, you need to keep your options open.

Unless you have an overwhelming reason, choose a platform - any platform - that doesn't tie you to a specific vendor or operating system on the client, app server or database server. For me - and I'm a business bloke rather than a techie - that rules out most of the Microsoft tools.

6
0
MJI
Silver badge

Re: what will your customers want in 2020?

Our systems seem to have a life of around ten years, our previous software started in 1995 and some mods made in 2013 (sectioning off a field I have removed), but developement stopped in 2005.

Current software is about 7 years old and still under active development, bespoke mods, general improvemements ect.

We sell to a limited market, basically running SOP and manufacturing for a specific industry, and we are a market leader in the UK, but you will never heard of us unless you are in the industry.

Platforms well, we have had the following questions.

One company would love to use Macs even as a thin client. Most are buying PCs with Win 7 on, but we keep hearing requests for Linux support in the future. Also with the move towards TIKFAM businesses are feeling that MS do not care.

Server wise, there is still a proper server out there, but most are now NT family, there seems to be more acceptance there except for a couple of sites, again enquiring about Linux,

2
0
Silver badge

Re: what will your customers want in 2020?

We operate in a rather specialised area as well, and over the years have done DOS, Win32, Solaris and Linux code (lets forget about x86 and DSP Assembler, and FORTRAN on a PDP11/32 shall we?).

At one point we thought NT would triumph and I did some stuff but the dumb changing directions of MS and the rise of Linux as a decent platform means that now we have a couple of legacy DOS applications to support (running on Linux under dosemu, cheaper and much less effort than porting and debugging them) and are moving off Solaris to Linux as fast as we can following Sun's borging by Oracle.

If you really want to keep your options open, then use something very generic like C++ and the Qt cross-platform tools. I still use MS Visual Studio for a lot of Linux development (where no really Linux-specific stuff is needed) because it is a jolly good IDE!

Avoid being too vendor-specific, and if you can make sure all new stuff is developed & tested for two different platforms (like Win32 + Linux) as then moving to a 3rd/newer/different platform is relatively easy because nothing already used is too propitiatory.

0
0
MJI
Silver badge

Some great suggestions here

Thank you for all of your suggestions, a lot for me to take in.

We know have a new programmer with Delphi and SQL experience, but knew Clipper, picking up VO pretty well.

Well from what I can see a gradual move would work well.

Start with a fat client cross compiled with Vulcan, new code would be in C#, I will need to learn HTML 5.

Stage 0 ADS - Visual Objects

Stage 1 ADS - Vulcan.net

Stage 2 ADS - C#

Stage 3 ADS - C#-HTML5

Stage 4 SQL - C#-HTML5

Vulcan is a .net version of VO and is known to be one of the few .net clients capable of ISAM with ADS.

Changing our database server is not a priority but moving to SQL opens up more possibilities.

I am a little unsure of being MS only on middle ware on a just in case basis but there is Mono I can look at.

0
0

Re: Some great suggestions here

Looks like a good plan.

If you make the whole front-end C# MVC(4+) Razor then you don't need to worry about the browser other than on Windows machines, where it may need to be forcibly upgraded to cope (yes, I know). This makes your server ONLY reliant on Windows - oh and the option in Tools > Compatibility Settings to force broken mode for intranet is flipping annoying. However you can probably get MVC happily running on Mono/Linux.

As for code, JS is very fast at computation, so anything that doesn't need securing but needs calculations, farm out to the client side JS. I can provide you with some test cases.

Licensing costs; MS SQL is expensive, but there are some niceties, most can be replicated with something like Postgre or My. I would advise writing T-SQL and using a factory and an interface with implementations for Postgre, MS and My. The reason for this is T SQL's use of [] as an identifier is easier to convert to other languages. You can also maintain SProcs easier. And, cope with @@IDENTITY. The cost of putting this effort in is minimal, and would allow you to profile usage and performance based on a test workload for you to select what is best for your customer.

0
0
MJI
Silver badge

Re: Some great suggestions here

In a perfect world I would stick with Advantage, as I have nearly 20 years experience of it, but you never know what will happen, hence my thoughts about moving from ISAM to SQL. Currently with ADS anything server only based is SQL best and client ISAM best.

Running SQL queries against DBFCDX files is brilliant, as is the ability to support a huge number of client languages including the worlds favourite DOS database compiler.

0
0
Silver badge

It's the protocols

Clients, databases, and even languages may change but I'm pretty sure that SQL and HTTP/REST/JSON will still be around.

A LAMP stack (or if you insist MS's equivalent) can talk to the middle tier and serve up mobile web pages which work for iOS and Android as well as Mac and PC. Later on native iOS and Android clients can be written if the need arises.

If you think native Android clients will become popular then that kind of goes with Java as the language for the middle tier. No need for your development team to be so much of a Jack of all trades.

2
0

abap is the fastest

sap backend with abap and html5 frontend in sapui5 (javascript/jquery)

0
2

Look at your use cases!

Do not listen to people telling you that everything has to be browser and HTML5-based if this thing is designed to run on desktops in the corporate LAN space. You will go through a world of hurt trying to get a UI anything like as rich as a desktop application.

4
1
paj

Re: Look at your use cases!

I agree that looking at use cases is good - build what your users need, not what you think is cool.

But with HTML5 and some good libraries you can build better UIs than desktop for many applications. With something like JQueryUI you have all the same widgets you'd use in a desktop app plus a whole bunch of extras, like animations. And then AngularJS takes this to another level and you can build responsiveness rarely seen in desktop apps.

0
1
MJI
Silver badge

Re: Look at your use cases!

It can be mixed, when you go to a customer and the main system is running in VO, but they stil llike using an old Clipper application, the older barcode server is in XBase++ and another module I personally do not maintain written in VB.

And at another customer then run lots of SQL against our server for a web app they wrote.

0
0

This post has been deleted by its author

Re: Look at your use cases!

Most sensible comment so far.

preceded by the most ridiculous:

*abap is the fastest

*sap backend with abap and html5 frontend in sapui5 (javascript/jquery)

Most comments seem to follow the usual internet meme, what i'm using is the best.

To the OP,

If you're going web and must use the MS stack, although if you're starting from scratch I wouldn't recommend it, don't go MVC/Web API/EF, just go Dapper(or equivalent) and Nancy. Your codebase will be simpler, smaller and more maintainable.

Node is years ahead of where MS is going with OWIN, etc.

Take a look at mean.io

C# is the only thing pulling me back to MS-land, all my own time is spent on the above.

TBH, I don't see a bright future based on the fact that you still love xbase, it's 2013 FFS, and that you posted *that* code as an exemplar.

0
0

Page:

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon