Internship Report
Transcript of Internship Report
1
INTERNSHIP REPORTLiferay portal and developing portlets in Liferay IDE
Student: Bui Ta Duy.ID: IT060070.
Company: Phi Vien Website Solution Co., Ltd. Supervisor: Mr. Le Tri Bao Long.
From15th JUNE, 2010
To15th AUGUST, 2010.
VIET NAM NATIONAL UNIVERSITY – HO CHI MINH CITY
The International University
School of Computer Science & Engineering
Internship Report
2
INTERSHIP REPORT
By
BUI TA DUY
Submitted to School of Computer Science & Engineering
The International University, VNU – Ho Chi Minh city
August, 2010
Company: Phi Vien Website Solution Co., Ltd
Duration: 15th June 2010 - 15thAugust 2010.
Supervisor: Mr. Le Tri Bao Long
Approval
Internship Report
3
ACKNOWLEDGEMENTS
It is a great opportunity to intern at Phi Vien Web Solution Co., Ltd from 15th June 2010 - 15thAugust 2010. I have learnt a lot not only applying theories learnt in the office, but also making new friends at work. Additionally, the internship instills me in the right kind of work attitude and professionalism through interaction with people in the organization as well as working in team and employing IT in the real workplace.
The report consists of two separate projects whose topics are based documentation. The purpose of this report is to explain what I did and learnt during my internship period with Phi Vien Website Solution Co., Ltd. The report is also a requirement of School of Computer Science & Engineering for internship program. The report focuses on introduce information PhiVien Website Solution Co.,Ltd, working environment and my knowledge during internship period.
I would like to acknowledgement
Mr. Tran Manh Ha, summer internship advisor at International University who helped and allowed me to carry out my internship Phi Phi Vien Website Solution Co., Ltd.
Mr.Le Tri Bao Long , my advisor at Phi Vien Website Solution Co., Ltd who leads the development of internship’s team. He gave us a lot of helpful advices and technical training during our internship. Every question about technology which I asked he always had an inspirational and thoughtful answer for me.
Mr. Chuong Thai, my teammate at Phi Vien Website Solution Co., Ltd - a student of Polytechnic University. His experience in Liferay was very useful to me.
Thank again! I really thank to Phi Vien Website Solution Co., Ltd, already gave for me a good internship in this summer.
Internship Report
4
Table of figures:
Table of work….…………………………………………..………………………(p. 9)
Figure 2……………………………………………………..……………………(p. 12)
Figure 3……………………………………………………..……………………(p. 14)
Figure 4………………………………………………………..…………………(p. 15)
Figure 5…………………………………………………………..………………(p. 16)
Figure 6…………………………………………………………..………………(p. 17)
Figure 7……………………………………..……………………………………(p. 19)
Figure 8…………………………………………………..………………………(p. 20)
Figure 9…………………………………………………………..………………(p. 21)
Figure 10…………………………………………………………………………(p. 23)
Figure 11………………………………………………………...………..………(p. 24)
Figure 12…………………………………………………………………..………(p. 26)
Figure 13……………………………………………………………..……..……(p. 28)
Figure 14………………………………………………………………..………(p. 29)
Figure 15……………………………………………………………..…………(p. 30)
Figure 16…………………………………………………………..…….………(p. 31)
Figure 17……………………………………………………………..…………(p. 32)
Figure 18……………………………………………………………..…………(p. 33)
Figure 19………………………………………………………………………(p. 35)
Figure 20………………………………………………………………………(p. 35)
Figure 21,……………………………………………………………….………(p. 36)
Figure 22………………………………………………………………………..(p. 36)
Internship Report
5
Figure 23…………………………………………………………………………(p. 37)
Figure 24…………………………………………………………………………(p. 38)
Figure 25…………………………………………………………………………(p. 39)
Figure 26………………………………………………………………….………(p. 40)
Figure 27…………………………………………………………………..………(p. 40)
Figure 28…………………………………………………………………..………(p. 41)
Figure 29……………………………………………………………………..……(p. 42)
Figure 30…………………………………………………………………..………(p.43 )
Figure 31………………………………………………………………..…………(p. 44)
Figure 32…………………………….…….……………………………..…………(p. 45)
Internship Report
6
Table of Contents:
I.Description of Company:...........................................................................................................................5
II.Summary of internship:............................................................................................................................6
III.Planning:..................................................................................................................................................7
IV.Internship activities & achievements:.....................................................................................................8
Liferay Technologies:......................................................................................................................8
1. Portal:.............................................................................................................................8
2. Researching in Liferay portal :........................................................................................8
3. Installing liferay portal:.................................................................................................23
Portlet ………………………………………………………………………………………………………………………………………25
Using Subversion with Hosting on Google Code:..........................................................................26
1. Requirements...............................................................................................................26
2. Create your project on Google Hosting.........................................................................26
3. Check out the repository..............................................................................................31
4. Commit your changes to repository..............................................................................35
5. Update your working copy with changes from others..................................................38
SharePoint technologies:..............................................................................................................41
Microsoft .NET Framework...........................................................................................................42
PV portal.......................................................................................................................................44
V.Internship assessment:...........................................................................................................................45
References:................................................................................................................................................46
Internship Report
7
I. Description of Company:
Company Name: PhiVien Website Solution Limited Company.
Email: [email protected]
Address: 17C Tran Binh Trong, ward 5, Binh Thanh district, Ho Chi Minh city.
General information:
The PhiVien Website Solution Limited Company is operating in the field of website
design, supply domain, hosting – website graphic and advertising.
Trading name: Phi Vien Co., Ltd.
Founded: 2007.
Business activities:
Logo design.
Designed – updated the existing website: change the website design is available in
accordance with practical requirement of the business; add new feature makes use easily
than before; regularly monitor, check to overcome the errors website design techniques;
upgrade website without data loss before enterprises.
Specialized in website design: Website design actively complete, consulted designed to
target customers, business development; Design website with Flash action script.
Install and execute network system.
Internship Report
8
II. Summary of internship:
I was elected for my internship at Phi Vien Website Solution Co.,Ltd via International
University summer internship program held by School of Computer Sciences and
Engineering. I attended an interview at the company and started to work in the space of 6
weeks.
I worked starting on July through 15th June 2010 - 15thAugust 2010. I filled the position of
a full-time developer and participate in developing a demo company product called
PhiViet portal (PVportal), a kind of portal that help development in administrative their
own website. This product aimed at allowing any customer communicates easily with
their company and simplifies their tasks on administrative procedures.
Jumping in the real working environment was the best feature of my internship; it gave
me to a really motivated, hard-working, team of highly knowledgeable IT professionals
in practical. The most important skill I learnt was the ability to work in a tram, although I
got some team – working skill as I worked for some academic projects at school, it is still
really harder than it looks. I also picked up considerable skill in team communication and
software project management, discussing with the others, getting trained myself and the
ability to adapt to the ever – changing scenarios in process website design. In this
environment, I forced to gain some technical related experiences, like source code control
using SVN, ASP.NET technologies, Liferay technology, C# programming knowledge,
knowledge about domain, hosting … so on.
Internship Report
9
III. Planning:
Week Activities
Week1 ( 15/06/2010- 20/06/2010)Study about style working in Phi
Vien.Co,Ltd and received work.
Week2 ( 21/06/2010- 27/06/2010)Research about overview about Liferay
portal and PV portal project.
Week3 ( 28/06/2010- 03/07/2010)
Research about Architecture and
Framework of Liferay portal and submitted
report.
Week4 ( 04/07/2010- 11/07/2010)
Continue research about Liferay
Architecture and Framework, submitted
final report.
Week5 ( 12/07/2010- 18/07/2010)
Research overview about.NET; Share
Point; C#; and application in portal,
submitted report.
Week6 ( 19/07/2010- 25/07/2010)Research more about SharePoint; .NET, C#
submitted final report.
Week7 ( 26/07/2010- 01/08/2010) Research about SVN and submitted report
Week8,9 ( 01/08/2010- 15/08/2010)Finish Project; submitted final report in
order to approval from Phi Vien .Co; Ltd.
Figure1: Table of work in summer internship.
Internship Report
10
IV. Internship activities & achievements:
PhiVIen portal is a project which Phi Vien Wed Solution Co.,Ltd in initial deployment.
PhiVien portal is developed to base on combination of public portal, enterprise portal and
marketplace portal in order to spread images of Phi Vien Co.,Ltd to customers. During
my internship, I mainly spend to research in Liferay portal, Sharepoint, C#, .NET and
Subversion .
Liferay Technologies:
1. Portal: A portal is a web application that commonly provides personalization, single sign on,
content aggregation from different sources, and hosts the presentation layer of
information systems. Aggregation is the act of integrating content from different sources
within a web page.
Portal functionality can be divided into three main parts: portlet container, content
aggregator, common services (include single sign on, personalization…so on
2. Researching in Liferay portal :
2.1. Overview:Liferay Portal is the world’s leading open source enterprise portal solution using the
latest in Java and Web 2.0 technologies. Liferay portal provide a unified web interface to
the data and tools scattered across many sources. Within Liferay portal, a portal interface
is composed of a number of portlets – self-contained interactive elements that are written
to a particular standard.
Internship Report
11
Ready to go …
Built in Content Management System (CMS) and Collaboration Suite
Out-of-the-box usablility - choose from over 60 portlets and over 20 themes
Out-of-the-box development tools
Out-of-the-box support for 22 languages
Runs on all major application servers, databases and operating systems (over 700
deployment configurations)
Business-friendly MIT License
Easy to use …
AJAX-enabled user interface (e.g. Web OS)
Community-centric services for easy creation of extranets, intranets, and social
networks.
Familiar desktop UI and conventions.
Delegable granular security and role based authorizations.
Technically sound…
Service Oriented Architecture (SOA) with web services support
LDAP support and integration
Portal as a Platform services for rapid portal development and deployment
Secure enterprise application integration framework
Ready integration: Pentaho : Business Intelligence ; Intalio: Business Process
Management ; Terracotta : Scalability and high availability ; ICEfaces : Rich Internet
applications ; jQuery : Dynamic user experiences
Standards Compliant: JSR-286, JSR-170, JBI, WSRP
Internship Report
12
Figure2: Portal Framework
2.2. Liferay Content Management System (CMS) and Web Content Management (WCM):
Liferay's built-in CMS and WCM supports portal-based web content publishing and
document/content management. Liferay CMS and WCM haves at least the following
features:
- Document Library and Image Gallery—one central place to aggregate and
manage all content.
- Dynamic virtual hosting—allows using the same installation of Liferay portal to
spin off an infnite number of other portals.
- Publishing workfow, versioning, structured content, XSL content, breadcrumb,
navigation and Velocity templates, and WYSIWYG editing for end users.
Internship Report
13
- The Asset Publisher portlet—publishes any piece of content in your portal as
though it were a Web Content portal, either through a set of publishing rules or by
manual selection.
- The Web Content portlet (also called Journal, accessible through the Control
Panel)—helps create, edit, and publish articles, as well as article templates for
one-click changes in layout. It has built-in workfow, article versioning, search,
and metadata.
- The Web Content List (called Journal Articles)—displaying a dynamic list of all
journal articles for a given community.
- The Web Content Display (called Journal Content)—publishes any article from
the Journal CMS on a portal page.
- The Web Content Search portlet—it's powered by the Apache Lucene search
engine; search can be restricted to Journal CMS articles.
- The Nested Portlets portlet—allows the users to drag-and-drop portlets into other
portlets, making complex page layouts possible.
- Custom attributes—adds custom attributes to users and organization forms.It
provides a framework to add custom attributes to any ServiceBuilder entity at
runtime. Page staging, scheduling, and publishing, either locally or remotely.
- Integration with SharePoint—implementation of the SharePoint protocol allows to
save documents to Liferay as if it were a SharePoint server.
Internship Report
14
2.3. Architecture and frameworks:
The most important aspect of any portal is its underlying architecture. Liferay portal
architecture support high availability for mission-critical application using clustering,
fully distributed cache, and replication support across multiple servers.
Figure3: Various architecture layer and functionality of portlets.
2.3.1. Service Oriented Architecture:
Liferay portal uses SOA design principles throughout, and provides the tools and
framework to extend SOA to other enterprise application. The Liferay portal comes
packaged with a powerful tool known as ServiceBuilder to helps developer quickly
implement a Service-Oriented Architecture (SOA). Most technologies needed for SOA
Internship Report
15
(Web Services, Spring, Hibernate, etc.) require a tremendous amount of files to be
written and configured. For any developer, this can quickly become tedious and nurture
an environment of copy-and-paste purgatory.
Liferay's ServiceBuilder automates most of this so that you, the developer, can focus your
energy on your project's business logic. It only takes three steps to implement a powerful
SOA in Liferay.
Figure4: Define a data model
Define a Data Model
All you need to do is write an XML file called service.xml, based on a DTD provided by
Liferay. The file should specify all necessary fields, keys and finder methods. Run
ServiceBuilder using Ant, and done.
Over a dozen files were generated for you for each table you specified. This includes the
following types of files:
- Spring configuration files and Stubbed Remote/Local service classes
- SOAP and Tunnel classes; WSDL files and Javascript Web Services methods
- Data Model classes
Internship Report
16
- Hibernate classes and configuration files
- SQL create and index scripts
Figure5: Declare business methods
Declare Business Methods
Empty Remote and Local service classes have been stubbed out for your by
ServiceBuilder. All you have to do is declare the methods you want and run the
ServiceBuilder task in Ant again, and done.
Any business methods declared in the Remote service classes will be propagated into the
SOAP and Tunnel classes, WSDL files and added into the list of Javascript Web Services
methods. Like the definition of the data model, any subsequent changes should be
followed by a run of the ServiceBuilder and the methods will be appropriately
propagated.
Internship Report
17
Figure6: Implement business methods
Implement Business Logic
Like any other J2EE application, the Remote implementation class should do any security
and permission checks that you may need; the Local implementation class should contain
the business logic that you allow trusted sources to invoke. After you are done, compile
your code and you now have a SOA!
Liferay's ServiceBuilder has created all the necessary files you need for a Service-
Oriented Architecture. Rather than hours and hours of tedious copy and pasting, the
ServiceBuilder automates all of this in a matter of seconds. You can now spend all that
time saved on the place where your expertise should be focused: on the business logic.
2.3.2. Enterprise Service Bus:
The Enterprise Services Bus (ESB) is a central connection manager that allows
applications and services to be added quickly to an enterprise infrastructure. Without
getting into technical jargon, an ESB is basically just a switching station between
Internship Report
18
services. To use Liferay as an example, imagine that the portal needs a workflow
service/component. There are several different workflow engines out there that would
suit our needs, but we want to give users the flexibility to choose the one they want to
use. Therefore, instead of having the portal directly access the workflow service, it will
access the ESB, and the ESB will then determine which workflow component to use. No
matter how many times or in what ways the workflow service changes, the portal is never
directly impacted. ESBs provide a powerful mechanism to "plug in" new
services/components and modify them with little or no impact to the portal configuration.
2.3.3. Portal development strategies:
Liferay portal is extensible at least at three levels: Plugins SDK environment, extension
environment and Liferay portal source code. In general, each level of extensibility offers
a different compromise of flexibility with different migration requirements to future
version.
Extension Environment
The Extension environment provides capability to customize Liferay portal completely.
Since it is an environment which extend Liferay portal development environment, it have
a name “Extension”, or called “Ext”. By the Ext, we could modify internal portlets, or
called the out-of-the-box portlets. Moreover, we could override the JSP files of portal and
out-of-the-box portlets. This kind of customizations is kept separate from the Liferay
portal source code. That is, Liferay portal source code does not have to be modified, and
a clear upgrade path is available in the Ext.
As shown in following figure, custom code will override Liferay portal source code in the
Ext only. In deployment process, custom code is merged with Liferay portal source code
Internship Report
19
in the Ext. That is, developers override Liferay portal source code. Moreover, custom
code and Liferay portal source code will constructed as customized Liferay portal in the
Ext first, and then the customized Liferay portal will be deployed from the Ext to the
application server.
Figure7: Process code in Liferay portal
Plugins SDK Environment
The Plugins SDK is a simple environment for the development of Liferay plugins,
including themes, layout templates, portlets, hooks and webs (that is, web applications).
It provides capability to create hot-deployable portlets, themes, layout templates, hooks
and webs.
As shown in following figure, the Plugins SDK provides environment for developers to
build themes, layout templates, portlets, hooks or webs first. Afterwards, it uses the Ant
target Deploy to form WAR and copy it to the Auto Deploy directory. Then, Liferay
portal together with application server will detect any WAR files in the auto hot-deploy
folder, and automatically extracts the WAR files into the application server deployment
folder.
Internship Report
20
Figure8: Process of Plugin SDK in Liferay portal.
For more details, portlets go in the folder /portlets; themes go in the
folder /themes; layout templates go in the folder /layouttpl; web applications go in
the folder /webs; and hooks go to the folder /hooks. By the way, Ant scripts are
used to build and deploy plugins to a local application server.
Especially, portlets developed in the Plugins SDK may only import classes from the
portal API (Portal-Kernel and Portal-Service) and other JAR files contained in the
specific portlet folder /WEB-INF/lib. This forces portlets to rely completely on the Portal
API and not to depend on implementation classes defined in the Portal-Impl.
As you can see, portlets can make use of any application framework that Liferay
supports, Model-View-Controller (MVC) frameworks. Here is a list of application
frameworks, but not limited, Struts, Spring, Tapestry, JSF, Wicket, etc.
In addition, as mentioned above, Liferay portal can also integrate with certain web
applications as webs, for instance, solr-web - search engine integration plugin; jbpm-web
– workflow engine integration plugin; mule-web and servicemix-web - Enterprise Service
Bus (ESB) integration plugins.
Internship Report
21
2.3.4. Development Strategies .
As shown in following figure, Liferay Portal is extensible at least at three levels, e.g.
Plugins SDK environment (Level I), Extension environment (Level II) and Liferay Portal
Source Code (Level III). As you can see, each level of extensibility offers a different
compromise of flexibility with different migration requirements to future version. Thus,
we need to choose the appropriate level for the requirements at hand which allows for
easier future maintainability.
Figure9: Three level extensible of Liferay portal
In the Level I, we can develop portlets, themes, layout templates, hooks and webs as
independent software components, and moreover, these plugins could be distributed and
deployed as WAR files and could be organized in plugin repositories. Liferay portal
provides the Plugins SDK to help us with development of these plugins.
In the Level II, we can manage configuration files, custom source code, custom JSP files,
and modified JSP files, related to the Portal-Impl. That is, the Ext provides different sub-
levels (e.g., configuration files, custom source code, custom JSP files, and modified JSP
files) of extensibility.
Internship Report
22
In the Level III, we can modify the Liferay portal source code. This approach can only be
used for sponsored development. That is, we develop specific features for specific
projects first and then contribute back to Liferay portal source code.
In brief, if your requirements are related to customize and / or extend the Portal-Impl (e.g.
UI changing, LDAP import algorithms, Document Library lock mechanism, forms for
user registration or organization creation, integration, modifying the out-of-the-box
portlets, etc.), you should use the Ext. Otherwise, it is better to use Plugins SDK. Note
that with Hooks you can hook up portal properties, language properties and JSP files
related to the Portal-Impl.
3. Installing liferay portal:
Step1: you need to download the latest version of JDK. It is available at
http://java.sun.com for every OS. The installation instructions can also be found here.
When you install it, make a note of the location as you will need it when setting your
JAVA_HOME variable.
Next, you need to set the JAVA_HOME variable. The following steps can be used to set
up the JAVA_HOME variable in Windows. You can also set it up in Linux, Unix, and
Mac operating systems as you can run Liferay portal in any OS.R
- Right-click on My Computer and go to Properties.
- Go to the Advanced tab and click on Environment Variables and you will need to
add a new system variable.
- Set JAVA_HOME to the location you have noted above.
- Edit the path and add %JAVA_HOME%\bin to the beginning of the path system
variable.
Internship Report
23
- Click on OK.
Figure12: Set Java Environment.
Step2: You need to download the latest version of Apache Ant. It is available at
http://ant.apache.org for every OS. The installation instructions can also be found here.
When you install it, make a note of the location as you will need it when setting up your
ANT_HOME variable.Then you need to set the ANT_HOME variable in a similar
manner as JAVA_HOME variable was set.
Step3: You can check whether OS recognizes Ant, and also if it is the correct version, by
running the command ant –version and java –version.
Internship Report
24
Step4: Unzip liferay-portal-tomcat-6.0.5.zip into your folder need run for examples:
C:/liferay. Doble-click on startup.bat in folder C:\liferay\liferay-portal-6.0.5, liferay will
deploy about 30-60s and open internet browser default at address http://localhost:8080/ .
You can login with User name and Password:
Email address: [email protected]
Password: Bruno
Or
Email address: [email protected]
Password: test
Internship Report
25
Portlets:
Portlets are web components - like servlets - specifically designed to be aggregated in the
context of a composite page. Usually, many portlets are invoked to in the single request
of a portal page. Each portlet produces a fragment of markup that is combined with the
markup of other portlets, all within the portal page markup
Figure10: A set of portlets, for examples: Reports, Language, Sign in:
A portlet container is a server side software component that is capable of running
portlets. A portal is a wed application that includes a portlet container and may offer
additional services to the user. Liferay Portal includes its own portlet container and offers
lots of functionalities such as user and organization administration, creation of virtual
communities, having pages based on portlet layouts, graphical selection of portlets and
drag & drop to place them, grouping pages into websites, several bundled ready-to-use
portlets and much more.
Portlet lifecycle:
A portlet has a lifecycle defning how it is loaded, instantiated, and initialized, as well as
how it handles requests from clients, and how it's taken out of service. The lifecycle of a
Internship Report
26
portlet includes the Init, processAction, render, and destroy of the portlet interface, as
shown in the following figure:
Figure11: Portlet lifecycle.
Loading and instantiation: The loading and instantiation can occur when the portlet
container starts the portlet application, or it can be delayed until the portlet container
determines that the portlet needs to service a request.
Initialization: Portlets can initialize resources and perform other one-time activities.
Request handling: The portlet container may invoke the portlet to handle client requests.
The portlet interface defnes two methods for handling requests—the processAction
method and the render method, as shown in the next figure.
Generally speaking, during a render request, portlets such as Language, Sign
End of Service: When the portlet container determines that a portlet should be removed
from service, it calls the destroy method of the portlet interface, in order to allow the
portlet to release any resource it is using and save any persistent state.
Internship Report
27
Using Subversion with Hosting on Google Code:
In summer internship, I already study about using Subversion with Hosting on Google
Code. This is just a short tutorial about Subversion and Google Code, it is not a
Subversion detailed guide.
1. Requirements Before we start, we need to prepare some stuffs
a. A subversion client There are many of them, in this case I used TortoiseSVN,
download and install it on your computer http://tortoisesvn.net/downloads
b. A Google Account: We need a Google Account to put our project on Google
Hosting. If you do not have a Google Account already, create one
http://www.google.com/accounts/NewAccount
2. Create your project on Google Hosting a. Go to: http://code.google.com/hosting/createProject
Click on Create a new Project
Internship Report
28
Figure13: Screen step using SVN on Google Code #1.
b. Fill in you project information, notice that Version control system is Subversion
Click on Create project, you will be redirect to your Project Home
Internship Report
29
Figure14: Screen step using SVN on Google Code #2.
c. Go to tab Administer > Project Members Add owners, committers, contributors
by using their emails. Their accessible level to project depends on their roles.
Click Save changes to finish
Internship Report
30
Figure15: Screen step using SVN on Google Code #3.
d. Go to tab Source Find the URL of repository, it is something like this line svn
checkout https://testuportal.googlecode.com/svn/trunk/ testuportal --username
xxxxx. In this case, URL of repository is
https://testuportal.googlecode.com/svn/trunk/, we will use that URL in step 3
Internship Report
31
Figure16: Screen step using SVN on Google Code #4.
e. Find below line and click on the link When prompted, enter your generated
googlecode.com password. On the redirected page, you will see your
GoogleCode.com password; write down it to somewhere in case you need; we
will use that password in next step.
Internship Report
32
Figure17: Screen step using SVN on Google Code #5.
3. Check out the repository a. Create a folder in certain place in your computer, that folder will be a Subversion
working copy of our repository, I named my folder “testportal”
b. Right-click on that folder, choose “SVN Checkout…”
Internship Report
33
Figure18: Screen step using SVN on Google Code #6.
c. Enter your URL for repository (see 2.d for the URL), click OK
Internship Report
34
Figure19: Screen step using SVN on Google Code #7.
d. The Checkout dialog will appears, then you will be asked for authentication, enter
your username (username is your Google Account ID) and password (see 2.e)
Internship Report
35
Figure20: Screen step using SVN on Google Code #8.
e. Wait for seconds, the Checkout dialog will be something like this
Figure21: Screen step using SVN on Google Code #9.
Internship Report
36
f. Click OK, this step is done
4. Commit your changes to repository a. Create a certain file in your working copy, in my case it is testfile.txt
Figure22: Screen step using SVN on Google Code #10.
b. Right-click on the working copy folder, choose SVN Commit
Figure23: Screen step using SVN on Google Code #11.
Internship Report
37
c. In Commit dialog, fill in your information Message: describing your action
Changes made: check on the files/folders you want to make changes to repository
Then click OK
Figure24: Screen step using SVN on Google Code #12.
Internship Report
38
d. Enter your username and password (check on Save authentication if you do not
want to do this action again), click OK
e. Commit dialog will list the actions you have just done like this
Figure25: Screen step using SVN on Google Code #13.
f. Now go to your Project Home on Google Hosting and check whether your
changes is made
g. Go to tab Source > Browse, In Directory choose trunk (trunk is the directory that
hold the main line of development), you will see the changes you have just
committed (in my case testfile.txt is added)
Internship Report
39
Figure26: Screen step using SVN on Google Code #14.
5. Update your working copy with changes from others If others member of your team made changes to the repository, use SVN Update feature
to update your working copy. In this case, a member of my team created a new file called
other_member_add.txt in his working copy and committed it to repository.
a. Right-click on your working copy > SVN Update
Internship Report
40
Figure27: Screen step using SVN on Google Code #15.
b. Enter your username and password if needed
c. Wait for seconds, Update dialog will list all the changes to your working copy
Figure28: Screen step using SVN on Google Code #16.
Internship Report
41
d. Now go to your working copy directory, you will see other_member_add.txt is
added
Figure29: Screen step using SVN on Google Code #17.
Internship Report
42
SharePoint technologies:
SharePoint is an extensible and scalable web-based platform consisting of tools and
technologies that collectively form what’s known as SharePoint Products and
Technologies. The total package is a platform on which you can build business
applications to help you better store,
share, and manage digital information
within your organization. Because you
can build with or without the need for
code, the package empowers the average
business user to create, deploy, and
manage team websites, without
depending on skilled resources, such as
systems administrators or developers.
Using lists, libraries, and Web Parts, you can transform team websites into business
applications built specifically around making your organization’s business processes
more efficient.
SharePoint Products and Technologies has two major offerings:
I. Windows SharePoint Services 3.0 is a free offering available to Windows
Server 2003 and Small Business Server 2003. It contains the core
functionality needed for document management and collaboration, such as
document libraries and lists.
Internship Report
43
II. Microsoft Office SharePoint Server 2007 is a newer version of SharePoint
Portal Server 2003. It offers the same features of WSS in addition to the
functionality required for Enterprise Content Management as well as Excel
and Forms Services, Business Data Catalog, and Business Intelligence.
SharePoint also features a more robust and customizable search engine as well
as special features for displaying information stored in the SharePoint
environment in a more customizable and aggregated format than is possible
with WSS.
Microsoft .NET Framework
Figure31: Microsoft .NET framework in content.
Internship Report
44
The .NET Framework is an integral Windows component that supports building and
running the next generation of applications and XML Web services. The .NET
Framework is designed to fulfill the following objectives:
To provide a consistent object-oriented programming environment whether object code is
stored and executed locally, executed locally but Internet-distributed, or executed
remotely.
To provide a code-execution environment that minimizes software deployment and
versioning conflicts.
To provide a code-execution environment that promotes safe execution of code, including
code created by an unknown or semi-trusted third party.
To provide a code-execution environment that eliminates the performance problems of
scripted or interpreted environments.
To make the developer experience consistent across widely varying types of applications,
such as Windows-based applications and Web-based applications.
To build all communication on industry standards to ensure that code based on the .NET
Framework can integrate with any other code.
C# programming language
The C# language is disarmingly simple, with only about 80 keywords and a dozen built-
in datatypes, but C# is highly expressive when it comes to implementing modern
programming concepts. C# includes all the support for structured, component-based,
object-oriented programming that one expects of a modern language built on the
shoulders of C++ and Java.
Internship Report
45
PV portal
Figure32: website PV portal main screen in demo.
Internship Report
46
V. Internship assessment:
Concerning all I had worked in Phi Vien .Co,Ltd, it was interesting to discover something
else that I was taught in my school such as programming and software engineering. The
work in itself was also interesting in different point of views. After this internship, I am
again confirmed that in order to get a good job and success in my career, the soft skills
such as communication and management as much important as technical skills. Now I
know how a software product made, what exactly every people in team do and how to
introduce and demo it to the customers.
Moreover, working on the real commercial project made me learn different things. Even
though that was something new for me, I could use tools I knew to find solutions. I have
no background knowledge on Liferay portal, Subversion, .Net, C#, SharePoint before this
internship. After 2 moths, I believe that I can handle Liferay, Subversion, and knowledge
about .Net, Sharepoint, C#... so on.
This internship was a great experience. It was a real pleasure to work in team at Website
Solution Phi Vien .Co,Ltd, they are all kindness and interesting.
Internship Report
47
References:
[1] David Matthew Sterling (2008), Microsoft Office SharePoint Server: The Complete
Reference, MacGraw-Hill, 2008, ch.2, 4, 5
[2] SharePointDevWiki, http://sharepointdevwiki.com/display/public/Welcome/
[3] SharePoint on Wikipedia, http://en.wikipedia.org/wiki/Microsoft_SharePoint/
[4] Website about SVN, http://sourceforge.net/projects/tortoisesvn/files/Documentation/1.6.5/TortoiseSVN-1.6.5-en.pdf/download/
[5] Website of Liferay portal, http://www.liferay.com/
[6] Book - Practical Liferay, Java-based on Portal applications development – PhD, Poornachandra Sarang.
[7] Book – Liferay portal 5.2 Systems Development – Jonas X.Yuan
[8] Book – Liferay portal 6 Enterprise intranets – Jonas X.Yuan
Internship Report