Tuesday, November 25, 2014
Monday, October 20, 2014
Software Engineering Videos
Software Engineering apply the principles of engineering to the design, development, maintenance, testing, and evaluation of the software and systems that make computers or anything containing software work.
Click on the links to Download or Watch
01 Introduction to Software Engineering
02 Introduction to Software Engineering
03 Overview of Phases
04 Overview of Phases
05 Requirements Engineering Specification
06 Formal Specification
07 Algebraic Specification Methods
08 Systems Modelling Overview
09 Process Modelling - DFD
10 Process Modelling - DFD
11 Data Modelling - ER Diagrams, Mapping
12 Data Modelling - ER Diagrams, Mapping
13 Production Quality Software - Introduction
14 Software Design - Primary Consideration
15 Design Patterns
16 Class and Component Level Design
18 Software Testing - I
19 Software Testing - II
20 Structural Programming and Some implementation
22 Verification and Validation
25 Software Evolution
26 Agile Development
28 Reuse Continued
30 Project Scope Management
32 Estimation - I
33 Estimation - II
34 Project Quality Management
36 Quality Management Systems
37 Project Configuration Management
38 Project Risk Management
39 Other PM Processes
40 XML Databases
41 Case Study - Part 1 Database Design
42 Case Study - Part 2 Database Design
Note : Page is Under Maintenance...
Saturday, October 18, 2014
Struts 2 Videos
- The struts 2 framework is used to develop MVC-based web application.
- Struts 2 is the combination of webwork framework of opensymphony and struts 1.
- The struts framework was initially created by Craig McClanahan and donated to Apache Foundation in May, 2000 and Struts 1.0 was released in June 2001.
- The Struts 2 provides supports to POJO based actions, Validation Support, AJAX Support, Integration support to various frameworks such as Hibernate, Spring, Tiles etc, support to various result types such as Freemarker, Velocity, JSP etc.
Click on the links to Download or Watch
01 - Introduction To MVC
02 - Introduction to Struts 2
03 - Setting Up
04 - Writing a Struts 2 Application - Part 1
04 - Writing a Struts 2 Application - Part 2
05 - Understanding Namespaces
06 - A Tag And A Business Service
07 - The ValueStack
Tuesday, September 30, 2014
AngularJS : Introduction and Hello example
Angular JS is a JavaScript MVC framework created by Google that lets you build well structured, easily testable, and maintainable front-end applications that makes it easier to implement RIA web applications.
What is AngularJS?
AngularJS is based on the MVC pattern (Model View Control). Therefore AngularJS separates your RIA application into models, views and controllers.
The views are specified using HTML + AngularJS's own template language.
The models and controllers are specified via JavaScript objects and JavaScript functions.
Thus, the views are specified declaratively, as HTML normally , and the models and controllers are specified imperatively, as JavaScript normally is.
If you don't know the difference between declarative and imperative programming, don't worry. It is not important to know before learning AngularJS. Besides, it is pretty simple to find the definition on the web.
And Why Should I Use It?
- If you haven’t tried AngularJS yet, you’re missing out. The framework consists of a tightly integrated toolset that will help you build well structured, rich client-side applications in a modular fashion—with less code and more flexibility.
- AngularJS extends HTML by providing directives that add functionality to your markup and allow you to create powerful dynamic templates. You can also create your own directives, crafting reusable components that fill your needs and abstracting away all the DOM manipulation logic.
- It also implements two-way data binding, connecting your HTML (views) to your JavaScript objects (models) seamlessly. In simple terms, this means that any update on your model will be immediately reflected in your view without the need for any DOM manipulation or event handling (e.g., with jQuery).
- Angular provides services on top of XHR that dramatically simplify your code and allow you to abstract API calls into reusable services. With that, you can move your model and business logic to the front-end and build back-end agnostic web apps.
- Finally, I love Angular because of its flexibility regarding server communication. Like most JavaScript MVC frameworks, it lets you work with any server-side technology as long as it can serve your app through a RESTful web API. But Angular also provides services on top of XHR that dramatically simplify your code and allow you to abstract API calls into reusable services. As a result, you can move your model and business logic to the front-end and build back-end agnostic web apps. In this post, we’ll do just that, one step at a time.
Example : Hello , AngularJS
Note : The {{ }} are a declarative way of specifying data binding locations in the HTML. AngularJS will automatically update this text whenever the yourName property changes.
Watch another example
Monday, September 29, 2014
Hibernate Videos
- Hibernate is an Object-Relational Mapping(ORM) solution for JAVA, providing a framework for mapping an object-oriented domain model to a traditional relational database.
- It is a powerful, high performance Object-Relational Persistence and Query service for any Java Application.
- Hibernate maps Java classes to database tables and from Java data types to SQL data types.
- Hibernate sits between traditional Java objects and database server to handle all the work in persisting those objects based on the appropriate O/R mechanisms and patterns.
01 - Setup
02 - Setup
03 - Customize cfg.xml
04 - Our First Class
05 - Create table from Class
06 - Schema Change
07 - Insert record (object)
08 - Chapter 1 Review 1
09 - more annotations
10 - Auto Generate Primary key
11 - One class to Two tables
12 - Two classes to One table
13 - Compound Primary Key
14 - Inheritance Mapping
15 - One to One Mapping
16 - One to One Bi-directional
17 - One to Many Mapping
18 - Many to Many Mapping
Thursday, July 3, 2014
Unmarshalling and Marshalling
Unmarshalling is the process of binding the XML document using JAXB compiler and generating mapping java classes then constructing the instances with values available in XML document.
Marshalling is the reverse process of it. First we construct the instances and then write a XML document using the constructed instances.
In both the cases, we need create POJO classes first. If we have the XML schema that can be used to generate those classes using a JAXB binding compiler. If the XML schema is not available, then we should manually code those POJOs. Only then we can do Marshalling or Unmarshalling in an application.
Marshalling and Unmarshalling can be done with other sources. That means, the XML need not be in file form. It can be a InputStream object, a URL, a DOM node, SAXSource.
To Unmarshal
Marshalling is the reverse process of it. First we construct the instances and then write a XML document using the constructed instances.
In both the cases, we need create POJO classes first. If we have the XML schema that can be used to generate those classes using a JAXB binding compiler. If the XML schema is not available, then we should manually code those POJOs. Only then we can do Marshalling or Unmarshalling in an application.
Marshalling and Unmarshalling can be done with other sources. That means, the XML need not be in file form. It can be a InputStream object, a URL, a DOM node, SAXSource.
To Unmarshal
- Create POJOs or bind the schema and generate the classes.
- Create a JAXBContext object. (javax.xml.bind.JAXBContext)
- Create an Unmarshaller object. (javax.xml.bind.Unmarshaller)
- Call the unmarshal method.
- Use the get methods available in schema-genearated classes to access the values.
To Marshal
Marshalling provides a client application the ability to convert a JAXB-derived Java object tree back into XML data. By default, the Marshaller uses UTF-8 encoding when generating XML data. Client applications are not required to validate the Java content tree before marshalling. There is also no requirement that the Java content tree be valid with respect to its original schema to marshal it back into XML data
Marshalling provides a client application the ability to convert a JAXB-derived Java object tree back into XML data. By default, the Marshaller uses UTF-8 encoding when generating XML data. Client applications are not required to validate the Java content tree before marshalling. There is also no requirement that the Java content tree be valid with respect to its original schema to marshal it back into XML data
- Create POJOs or bind the schema and generate the classes.
- Create the content tree by using set methods.
- Create a JAXBContext object. (javax.xml.bind.JAXBContext)
- Create a Marshaller object. (javax.xml.bind.Marshaller)
- Call the marshal method to persist the created content tree as XML document.
Validation:
It is the process of verifying that an XML document meets all the constraints expressed in the schema. JAXB 1.0 provided validation at unmarshal time and also enabled on-demand validation on a JAXB content tree. JAXB 2.0 only allows validation at unmarshal and marshal time.
It is the process of verifying that an XML document meets all the constraints expressed in the schema. JAXB 1.0 provided validation at unmarshal time and also enabled on-demand validation on a JAXB content tree. JAXB 2.0 only allows validation at unmarshal and marshal time.
Advantages :
- JAXB requires a DTD.
- Using JAXB ensures the validity of your XML.
- A JAXB parser is actually faster than a generic SAX parser.
- A tree created by JAXB is smaller than a DOM tree.
- It’s much easier to use a JAXB tree for application-specific code.
- You can modify the tree and save it as XML.
Dis-Advantages:
- JAXB requires a DTD.
- Hence, you cannot use JAXB to process generic XML (for example, if you are writing an XML editor or other tool).
- You must do additional work up front to tell JAXB what kind of tree you want it to construct.
- But this more than pays for itself by simplifying your application.
JAXB : Architecture & Binding Process
Binding Customizations : By default, the JAXB binding compiler binds Java classes and packages to a source XML schema based on rules. In most cases, the default binding rules are sufficient to generate a robust set of schema-derived classes from a wide range of schemas.
Binding Compiler : The JAXB binding compiler is the core of the JAXB processing model. Its function is to transform, or bind, a source XML schema to a set of JAXB content classes in the Java programming language.
Implementation of javax.xml.bind : The JAXB binding framework implementation is a runtime API that provides interfaces for unmarshalling, marshalling, and validating XML content in a Java application. The binding framework comprises interfaces in the javax.xml.bind package.
Schema-Derived Classes: These are the schema-derived classes generated by the binding JAXB compiler. The specific classes will vary depending on the input schema.
Java Application : In the context of JAXB, a Java application is a client application that uses the JAXB binding framework to unmarshal XML data, validate and modify Java content objects, and marshal Java content back to XML data.
XML Input Documents: XML content that is unmarshalled as input to the JAXB binding framework -- that is, an XML instance document, from which a Java representation in the form of a content tree is generated.
XML Output Documents : XML content that is marshalled out to an XML document. In JAXB, marshalling involves parsing an XML content object tree and writing out an XML document that is an accurate representation of the original XML document, and is valid with respect the source schema.
Binding Process :
Generate classes: An XML schema is used as input to the JAXB binding compiler to generate JAXB classes based on that schema.
Compile classes : All of the generated classes, source files, and application code must be compiled.
UnMarshal: XML documents written according to the constraints in the source schema are unmarshalled by the JAXB binding framework.
Note : JAXB also supports unmarshalling XML data from sources other than files/documents, such as DOM nodes, string buffers, SAX Sources, and so forth.
Generate content tree: The unmarshalling process generates a content tree of data objects instantiated from the generated JAXB classes; this content tree represents the structure and content of the source XML documents.
Validate (optional) : The unmarshalling process optionally involves validation of the source XML documents before generating the content tree. Note that if you modify the content tree in Step 6, below, you can also use the JAXB Validate operation to validate the changes before marshalling the content back to an XML document.
Process content : The client application can modify the XML data represented by the Java content tree by means of interfaces generated by the binding compiler.
Marshal : The processed content tree is marshalled out to one or more XML output documents. The content may be validated before marshalling.