I have been working for SingularLogic for more than a decade. The primary language of the company was Delphi. I helped in the creation of the ERP's 3-tier framework (Singular Enterprise a.k.a SEn), while I also developed many different standalone applications (to be used for setups, as scheduler daemons, services, security validation, licensing, financial box communicators, distribution systems).
I have also used Delphi for the creation of a robust client application used by World Karate Federation for the management of Championships. This application communicates with a live website via SOAP Web Services to keep live feeds on results during the tournaments. It also handled registration procedures, drawing, reporting, and import / export to PDF, Excel and Access
Using BEA Weblogic Application Server, I created a Java Client that communicated via the use of JMS and J2EE with the server in order to export a list of documents from the installed Eurofasma and transfer/import them to the central management system of Panafon. The client was installed in 315 stores around Greece. A JSP control panel was also developed for the administrator to be able to issue commands for the clients to execute. The installed client had full auto-upgrade capabilities.
Although I am a fun of PHP and MySQL, I have used .NET technology to create a robust web application. The application's purpose was to monitor the character sheets of 45 players for a Live Role Playing Game we were playing back in 2005. Extensive use of DHTML was used along with the creation of many ASPX Web Components. It started as a small project and ended up being a really big application. We used an MS SQL Server for database storage and of course IIS for the Web Server.
My personal opinion is that you can write very good internet applications with ASPX.NET, but if you are NOT already a senior web developer then the platform (Visual Studio.NET) can easily lead you in making huge mistakes during the implementation (server side round-trips, viewstates, using the default components' settings etc)
All applications handle some kind of data. Whatever that data may be, they will be almost certainly required to be transported. Be it from one client to another, or from your application to some other external application (e.g. Excel), an exporting/importing utility is something a developer must have in mind when designing the system.
By keeping in mind that your application will need to import and export it's data, you can create a flexible framework (at the beginning) that will allow you to easily create different types of data structures, targeting different types of platforms (Other Databases e.g. MS Access, Excel, Office, CSV etc)
When you import or export data to/from your application, your target might not always be a software but it might be a hardware device. As a software developer you need to be prepared to communicate with anything that comes with a Communication Protocol. I have implemented such communications with Fiscal Boxes (SingularLogic Fiscal Processor), Fiscal Printers (SingularLogic IPos) and Barcode Readers (for WKF). Each hardware device is written by a different developer, thus it comes with a different communication protocol (API).
With the use of web services you can easily create communication bridges between all your applications even if they are written in different languages. Nowadays all applications that respect themselves are accompanied by an official website where users can find information about the application, newer versions/patches, issues etc. Since a website exists, an application specific web services set can be built to allow exchange of information either between clients or for statistical / monitoring processes.
For example, I have created a set for web services implementing a "Stock Online" functionality for a retail application. With that set, if a customer wanted an item (e.g. a shirt) that was not available in the specific shop, the user could query for the item in other shops, inform the customer of it's existence and even reserve it in his/her name.
Another example is an application that can use Web Services to enable the transfer of data between a Back Office (e.g. SingularLogic Hospitality System) and a website create with Joomla, with custom components to provide online reservation functionality (e.g. SingularLogic WebHotel). For that to happen, I created a Delphi Application that acted as a WebServer running in the same machine as the Back Office, while at the same time a set of Web Services were created on the website.
This is a very crucial functionality, required by all applications. No matter how small your application may be, you will always have the need to create some update or patch for it. If your client's are located all our the world then you will need an easy to use and automated distribution system. Using web services (to locate information about newer version), FTP/HTTP components to transfer the Setups and Wise Installation System to create efficient and easy-to-use setup applications, I have implemented the distribution system for all the applications of SingularLogic (called SingularLogic Live Update a.k.a. SLUC) and a custom system for World Karate Federation's app.
As you may understand by now, the creation / distribution and deploy of an application may require a very broad set of skills to be done correctly and efficiently. When you call yourself a Software Developer you are expected to know all those practices and be able to use the right tools for each job to get it done!