Posts

Showing posts from May, 2021

IronPython

IronPython is an open-source implementation of the Python programming language which is tightly integrated with .NET.  IronPython can use .NET and Python libraries, and other .NET languages can use Python code just as easily. Why IronPython? IronPython is an excellent addition to .NET, providing Python developers with the power of the .NET. Existing .NET developers can also use IronPython as a fast and expressive scripting language for embedding, testing, or writing a new application from scratch. The CLR is a great platform for creating programming languages, and the DLR makes it all the better for dynamic languages.  Calling (Iron)Python code from a C# app? The process is simple, especially in a C#/.NET 4 application where support for dynamic languages have been improved via usage of the dynamic type. But it all ultimately depends on how you intend to use the (Iron)Python code within your application. You could always run ipy.exe as a separate process and pass your source files in so

Server Side Technologies

Image
Server side web technology is used to develop dynamic web resource programs that having the capability to generate dynamic web pages. Server side web technologies are two types. Process based                 Thread based    Process based Technologies are CGI and thread based technologies are Servlet, JSP, ASP.net. A light weight sub process is called Thread. Operating system controls processes but threads can be controlled through java programming using JRE support. Transferring control between two processes (or) between two threads is called as “Context switch” (or) “Control jumping” (or) “scheduling”. The scheduling on processes takes more time compare to the scheduling on threads. Since processes based scheduling takes more time, the CGI web applications performance will be degraded when multiple requests are given simultaneously. This makes the CGI web applications as non-scaleable web applications (If application gives good performance respective of increase (or) decrease in reque

AGILE Estimation Methods

  AGILE Estimation Methods Many people have used a variation of Planning Poker to do Agile estimation.  Here is a reference of 9 different Agile estimation techniques for different circumstances.   Planning Poker: Participants use specially-numbered playing cards to vote for an estimate of an item.  Voting repeats with discussion until all votes are unanimous.  There are lots of minor variations on Planning Poker.  Good technique to estimate a very small number of items (2 to 10). Bucket System: Using the same sequence as Planning Poker, a group or a team estimate items by placing them in “buckets”.  The Bucket System is a much faster Agile estimation technique than Planning Poker because there is a “divide-and-conquer” phase.  The Bucket System can also be used with larger groups than Planning Poker and with very large numbers of items to be estimated (50 to 500).  I teach this agile estimation technique in my Certified Scrum Master (CSM) and Certified Scrum Product Owner (CSPO) learn

MEF Framework

Image
This article provides an overview of the Managed Extensibility Framework that was introduced in the .NET Framework 4 What is MEF? The Managed Extensibility Framework is a library for creating lightweight, and extensible applications.  It allows application developers to discover and use extensions with no configuration required.  It also lets extension developers easily encapsulate code and avoid fragile hard dependencies.  MEF not only allows extensions to be reused within applications, but across applications as well. The problem of extensibility? Imagine that you are the architect of a large application that must provide support for extensibility. Your application has to include a potentially large number of smaller components, and is responsible for creating and running them The simplest approach to the problem is to include the components as source code in your application, and call them directly from your code. This has a number of obvious drawbacks. Most importantly, you cannot

Effort Estimation in Software Development.

Effort estimation is one of the initial steps in software development projects. Despite its complexity, when performed right, effort estimation creates a basis for all subsequent stages related to project planning and management. What is effort estimation?   There are three main factors when planning and estimating a software development project: The Scope(or the deliverables) The Resources (the budget and the team’s effort) The Timeline Software development effort estimation deals with predicting the effort required to develop quality product.  Effort estimation (and other estimates) create some certainty and commitment and are used for planning and making decisions for the project (planning budget, investment, and pricing).  How do you estimate efforts in software development using agile process? Effort estimation happens during the initial stages of software projects. Inaccurate estimations cause complications during the implementation of the project and further development processe