Tuesday, 12 February 2013

DJANGO





Django is a high level python web framework. First of all, why we need a framework?

Because frameworks intended to solve these problems:

1.  When multiple parts of our application needs to connect to the database.
2.  When the developer needs to worry about printing the "Content Type" line and remembering to close a 
     database connections.
3. When this code is reused in multiple environments with a 
     separate database.
4. When novice wishes to redesign the page.

MVC Design Pattern

In Django we split python code to over four Python files 
*Models.py 
*Views.py  
*Urls.py 
*HTML Template


1. Models : The file model.py contains the database description 
                   and is represented as Python class. This class is called Model. 
                   Using models we can create, retrieve, update and delete  the
                   records in our database. This makes it simple compared to 
                   SQL statements.

2. Views : The views.py file contains the business logic for the page.

3. Urls : The Urls.py file directs to the views corresponding to their 
              URL patterns.

4. HTML : The HTML templates gives designs to the web pages. 

These sections follows a pattern called Model-View-Controller (MVC).
Here database data (the model) is separate from request-routing logic (the controller), which in turn is separate from the user interface.

Advantage of this Model-View-Controller approach is that, the components are loosely coupled:

* Developer can change the URL for a part of the application without 
   affecting its implementation.
* Designers can change a page’s design in HTML code without modifying 
   Python code.
* Simple to rename a database table,since we need to specify the change in 
   a single place.

Here is the code simple paint application that i made using Django:

And here you will get the paint application that i developed in django and deployed in heroku free web server:



[Expecting Your Valuable Comments]
Thank You


Friday, 18 January 2013

Software as a service ( SaaS )





Different kinds of software codes

* Legacy code
* Beautiful code
* Unexpectedly short lived code

Legacy code : Old software meet customer's needs, but difficult to evolve due to design inelegance.

Beautiful code : Software meet customer's needs and easy to evolve.

Unexpectedly short lived code : Softwares that doesn't meet customer's needs. It takes long period to develop and it disappears within a short period.

Software development life cycles

* Waterfall model
* Spiral model
* Agile model

Waterfall model : It is a sequential design process , in which progress is seen as flowing  downwards through the phases, such as:

*Requirement specification
* Design
* Coding
* Integration
* Testing and debugging
* Installation
* Maintenance

Spiral model : This process combines prototyping with the designs in each steps. This model combines prototyping features and waterfall model. Thus it allows for incremental releases of the product through each time around the spiral.

Agile model : Continuous improvements and continuously refine working but incomplete prototype until customers happy, with customer feedback on each iteration and Test Driven Development (TDD) to reduce mistakes.

Assurance


* Verification - Did you build the thing right
* Validation - Did you build the right thing
* Testing - Not a exhaustive testing 
* Use Automation, Coverage, Regression testing, Integration testing, Test Driven Design


Productivity


* Clarity via conciseness
         - Syntax: short and easier to read
         - Raise the level of abstraction
* Synthesis
         -Automatic code generation
* Reuse
         - Procedures and functions
         - Standardized Libraries
         - OOP
         - Design Patterns
* Automation and tools
         - Replace long and dull manual tasks with automation to save time and 
            improve accuracy
         - Dependability or User interface

Software as a service ( SaaS )


* SaaS delivers software & data as a service
* No worries in installation
* No data loss
* Easy for groups to interact with same data
* Easier upgrading features

Service oriented architecture ( SOA )

* Software architecture, where all components are designed to be services
* Applications composed of inter operable services

Demands of SaaS    

* Communication
* Scalability
* Dependability
* Cluster - commodity hardware
* Utility Computing / Public Cloud Computing

Cloud Computing

font-size: 15px; In the SaaS model, cloud providers install and operate application software in the cloud and cloud users access the software from cloud clients. The cloud users do not manage the cloud infrastructure and platform on which the application is running. This eliminates the need to install and run the application on the cloud user's own computers simplifying maintenance and support. What makes a cloud application different from other applications is its scalability. This can be achieved by cloning tasks onto multiple virtual machines at run-time to meet the changing work demand.



[Expecting Your Valuable Comments]
Thank You