Before we continue our series of posts capturing Programming with C#, let’s first understand the concept of Software Framework. Imagine that an inventory control system is to be developed. Will it not be better to focus on the main objective and utility of the project as a first step rather than focusing on technicalities of the project and how database will connect with business layer of the architecture among others.
These tasks will only be possible if a more standard system is provided to the developer, which is what software framework intends to do.
A software framework provides the developer with standard low level features. These features result in reduction of development time of our project but at the same time results in increase of the size of program. This phenomenon is called Code Blot. Although due to advancement in technology and reduction in prices along with increase in hardware capacity, the increase in size of program, in spite of being undesirable, is not a big problem these days.
Another negative thought about software framework is that it increases the development time instead of decreasing it, as the time required for developers to learn and understand the software framework will also be in project development time. The simple answer to this is that – it’s a one-time investment and developers won’t spend time learning a software framework again if they have understood and learnt it once.
The software framework will be used multiple times in different projects so it’s not a completely valid argument that software framework increases the development time.
The concept is quite similar to setting up Pizza factory. The setting up of the unit may require, say, a hundred thousand dollars; but the cost of first pizza produced cannot be considered as hundred thousand dollars plus the cost of material required to produce the pizza. In same way, time taken to learn the framework cannot be included in cost of project.
So, that’s all about the concept of Software framework and we’ll be discussing various aspects such as user interface, data access, database connectivity, cryptography, web application development, network communications and graphics of .NET Framework along with a few others. Programmers can develop software by combining their own source code with the .NET Framework and other libraries. We’ll also talk about an integrated development environment (IDE) called Visual Studio for .NET software to facilitate this feature.
Until next time, that's all from my side. Feel free to reach out to me @Nowayhecodes!