Saturday, May 15, 2010

Technology Stack in Market

Technology Stack

For building any application Web or Windows from scratch requires a technology stack. Most popular technology stack can be divided into 3 main groups:

1) Microsoft Technologies
a. .Net Technologies which support building Windows and Web application
b. .Net CE (Compact edition) for embedded and mobile applications.
c. Classic Windows C++ legacy for windows applications, components and device drivers

2) Java Technologies which is supported by big non-Microsoft vendors like IBM, Oracle (includes Sun and BEA), JBOSS
a. JEE Java Enterprise Edition for building Windows and Web application
b. J2ME for Mobiles
c. Java Card etc.

3) LAMP which includes (PHP, PERL, Ruby, and other RAD scripting) getting very popular for web systems because of open source supported community , fast development and easy learning path.

These technology stacks are being supported by available industry framework for fast track development and has built-in best practices. These are very important to add to your skill because they are now integral part of any application development large project development.

Frameworks

1) Microsoft Technologies
         a. Enterprise blocks, OpenMVC framework for (MVC), NHibernate for ORM
2) Java Technologies
         a. Hibernate, Spring, Struts, JSF etc
3) LAMP Technologies
         a. Symfony, Zend

Development environment: includes tools for development of large project. These again are very important for skill and development in large projects.

1) Microsoft Technologies
       a. IDE - Visual Studio for Integrated development. It is must know in Microsoft technology.
       b. Version Control - Visual source Safe is used for synchronized development of projects, modules in a large team. No large project can be successful without it.
       c. Auto Build/Deploy – is usually done by using scripts like nmake.
       d. Code checker – Like FxCop
       e. Tools for checking security -
       f. Code Generators – Like CodeSmith
       g. Testing Tools – like ACT, nUnit etc.
      h. Profilers

2) Java Technologies
        a. IDE – Eclipse/NetBeans for Integrated development. Eclipse is must know in Java technology.
        b. Version Control – CVS, Subversion. They are technology independent and can be used for any type of code.
        c. Auto Build/Deploy –Maven, Ant. CruiseControl for auto build.
        d. Code checker –
        e. Tools for checking security -
        f. Code Generators – AndroMDA etc.
        g. Testing Tools – like JUnit etc.
        h. Profilers : JProfiler

3) LAMP Technologies

        a. IDE – Eclipse.
        b. Version Control – CVS, Subversion. They are technology independent and can be used for any type of code.
        c. Auto Build/Deploy –Framework like Symphony provides this.
        d. Code checker –
        e. Tools for checking security -
        f. Code Generators – Framework like Symphony provide this.
       g. Profilers
       h. Testing – Selenium, PHPUnit etc.

Products: Vendors in this market are also coming out with many products in horizontal as well as verticals space to fast track the people requirements. Some of these product are tied to the technologies some are not.

1) Horizontal products are not specific to any domain but utilized across domains for building scalable, high performance applications.
       a.Application Server : They are used for deploying large scale application because of out-of-box     functionalities like scalability, clustering, deployment, caching. Ex – WebSphere, Web logic, JBOSS AS,
       b. Databases: Persistence requirement.
       c. Reporting: Reporting requirement.
       d. Portal Server: For building portals by aggregating from smaller parts.
       e. Content Management System: For managing content i.e text, digital media like audio, video etc. It also has component like Web Content Management System, workflow for document work flow. Also comes by name of ECM (Enterprise content Management), WCMS, Digital Content Management, and Document Management System.
              i. Microsoft ‘s Sharepoint, Documentum , Interwoven, OpenContent
              ii. Alfresco, Drupal etc.
       f. Data warehouse /BI: For building data warehouse for data mining and business intelligence for decision making. Ex – Cognos, WebMethod, SQL Server DW etc
       g. Enterprise Service Bus: For building SOA architecture, integrating multiple technologies. Ex - Biztalk, Aqualogic Service Bus, IBM WebSphere ESB , Oracle ESB, JBOSS ESB etc.
       h. Security and Identity Products: For providing security needs for the application like User Database. Forefront Identity Manager, Sun Identity Manager etc.
        i. Virtualization: Fro deploying application in virtualized environment. Ex- Microsoft VM, VMWare etc.

2) Vertical products are for specific domains. Like education, e-commerce etc.

a. Commerce Server: For building commerce site. IBM Websphere Commerce, Microsoft’s Commerce Server, SAP Ecommerce etc.

b. CRM : For building Customer Relationship system in a company. Ex- CRM Dynamics, Siebel etc.
etc.

Combination of all above makes up the major S/W technology stack. Technology, Frameworks and Development Processes and Tools are very important skill required of any Developer.

No comments:

Post a Comment