About Me

My photo
JHC Technology is a Service Disabled, Veteran-Owned, Small Business based in the Washington, DC Metro area. Our primary focus is to offer customized solutions and IT consulting to our Commercial and Government clients. Our experts have a broad experience delivering and managing Microsoft Enterprise applications and Cloud and Virtualization Solutions, as well as mobilizing Enterprise data.

Friday, May 14, 2010

Customize SharePoint 2010 Global Navigation

I received a request from a client for a custom Master Page in SharePoint 2010. Instead of focusing the whole project I thought I would talk about how I customized the global navigation in SharePoint Designer.

Requirement:

Brand and customize SharePoint 2010 global navigation.

Tools/Software:

• SharePoint Foundation or SharePoint Server 2010 site

• SharePoint Designer 2010

How I did it:

I am sure there are many different ways to accomplish this task; however, I think I took a very simple approach to solving this problem. Basically, I overrode the SharePoint default styles by copying the styles from the SharePoint Core css and added them to my own custom style sheet. Couple of quick notes: Make sure you save often and make sure all your files are published and approved.

1. The first step in my process was to download from codeplex a starter masterpage http://startermasterpages.codeplex.com/ .

2. Once you downloaded the starter master page, open up your SharePoint site in SharePoint Designer 2010 and on the left in the “Site Objects “ area click on the folder “All Files” and drill down to catalogs >> masterpages . Once you are in the Masterpage folder copy and paste the _starter.master into this folder.

3. The first step in the customization process is to create your custom style sheet. To create your custom style sheet, click on the “all Files” folder and click on “Style Library.” Right click in the style library section and choose Style sheet. Once the style sheet is created, rename it style.css. Now open the style sheet you created in SharePoint Designer.

4. In this next step you will copy and paste the SharePoint core styles for the global navigation into your custom style sheet. Copy and paste the css below into the style sheet and save file

.s4-tn{
padding:0px;
margin:0px;
}

.s4-tn ul.static{
white-space:nowrap;
}

.s4-tn li.static > .menu-item{
/* [ReplaceColor(themeColor:"Dark2")] */ color:#3b4f65;
white-space:nowrap;
border:1px solid transparent;
padding:4px 10px;
display:inline-block;
height:15px;
vertical-align:middle;
}

.s4-tn ul.dynamic{
/* [ReplaceColor(themeColor:"Light2")] */ background-color:white;
/* [ReplaceColor(themeColor:"Dark2-Lighter")] */ border:1px solid #D9D9D9;
}

.s4-tn li.dynamic > .menu-item{
display:block;
padding:3px 10px;
white-space:nowrap;
font-weight:normal;
}

.s4-tn li.dynamic > a:hover{
font-weight:normal;
/* [ReplaceColor(themeColor:"Light2-Lighter")] */ background-color:#D9D9D9;
}

.s4-tn li.static > a:hover
{
/* [ReplaceColor(themeColor:"Accent1")] */ color:#44aff6;
text-decoration:underline;
}

5. Once you created the style sheet, go back to the masterpage folder and open the _starter.master file and in the Customization category click edit file.
6. Next, when the edit file opens make sure you view it in split view. Now you are going to search for the reference to our custom masterpage in the code. Make sure you are scrolled to the top in the code section and press “ctrl f” on the key board. This will pop up the find and replace tool. In the” find what field”, copy and paste and then click find next.

7. Now, in the code replace
You have now referenced your custom style sheet in your masterpage.

8. The next step is to locate your Global Navigation control, make sure you are scrolled to the top in the code section and press “ctrl f” on the key board. This will pop up the find and replace tool. In the” find what field”, copy and paste ID="TopNavigationMenuV4” and then click find next. Once you find ID="TopNavigationMenuV4” , you should see the following block of code which is the global navigation control:


ID="TopNavigationMenuV4"
Runat="server"
EnableViewState="false"
DataSourceID="topSiteMap"
AccessKey=""
UseSimpleRendering="true"
UseSeparateCss="false"
Orientation="Horizontal"
StaticDisplayLevels="1"
MaximumDynamicDisplayLevels="1"
SkipLinkText=""
CssClass="s4-tn"



9. In the global navigation code above you should see CssClass="s4-tn" . As an additional step you can replace "s4-tn" your own custom name like CssClass="MyNav" . If you can the name of the CSS class make sure you update your custom style sheet with the new name, example below:

.MyNav{

padding:0px;
margin:0px;
}

.MyNav ul.static{
white-space:nowrap;
}

10. At this point you are ready to brand your global navigation. The next step is to modify your style.css with your customizations to the default SharePoint styles. Have fun styling and make sure you save your work often.

Summary:

1. created your custom style sheet

2. Add the SharePoint default css to your style sheet

3. Referenced your style sheet in the master page to override the SharePoint default styles,

4. locate the global navigation control in the masterpage

5. Optional - change the CssClass to your own custom name

6. Start branding your Navigation

Tuesday, May 11, 2010

Federal Cloud SharePoint Architecture

Problem: The Federal government and other large organizations (Financial and Medical Markets) want to take advantage of cloud infrastructure as a Service (IAAS). The most mature clouds on the market are Public IAAS providers like Amazon Web Services (AWS); however, due to security concerns and federal compliance requirements these clouds have become difficult to implement for the federal government. Some common reasons why Cloud infrastructure as a Service are difficult to adopt in Federal Government:

1. FISMA Compliant Cloud

2. Risk of failing Certification and Accreditation (C&A) for Low, Moderate, and/or High

3. Security concerns with the hypervisor

4. Pay as you go model for IAAS can be difficult to adopt because Federal Agencies are seeking Firm Fixed price contracts in the traditional RFP process.

I believe the major adoption issue with Cloud IAAS is centered on FISMA compliance and security concerns. A lot of the security concerns around Cloud Computing are not warranted and require agencies to adopt new policies and procedures to handle disruptive technologies. However, the FISMA compliance and data security classification levels are real concerns that public clouds have not been able to address in their current state. So how does the Federal government take advantage of cloud solutions?

Federal Government should take a practical approach to Cloud IAAS. One tactic Federal Agencies can take to make the adoption of IAAS easier is to find projects that deal with public data. Public facing websites are great projects for cloud adoption in the Federal government. Due to the nature of Public facing content, the data classification level for websites are considered low. However, the IAAS Cloud provider would still need to meet Federal FISMA compliance requirements. Cloud providers have been actively moving towards making their technologies and facilities compliant to these standards. Terramark Enterprise Cloud (Private Cloud) is certified for FISMA compliance and has achieved Moderate security level for Certification and Accreditation (C&A). That begin said, Terramark is also up to 10 times more expensive than other Cloud providers like Amazon. So it appears that FISMA compliance and C&A process comes with an expensive price tag. To complicate manners, Federal Agencies want enterprise class website that can provide features like content management, customizable business workflows, and LDAP connection to their directory services. The LDAP connection requires a secure VPN tunnel back to the agencies directory service, to allow agency users to user their credentials to sign into the solution, which raises the security requirements of the IAAS cloud solution. So how do you provide the Federal Government a cost effective Cloud Solution for Public Facing Websites that still meets the Federal compliance standards and technical requirements?

One way to tackle this problem is to provide a best of breed cloud solution that breaks down the security and technical requirements and assess which IAAS provider is appropriate for each aspect of the solution.

Use Case:

Federal Agency wants to migrate their public facing websites to SharePoint 2010 and host SharePoint 2010 on a cloud IAAS provider. The following requirements need to be taken into account:

• Cost effective

• Connect back to the Agencies LDAP environment for user authentication

• Moderate Security Certification and Accreditation

• FISMA Compliance

• Scalable and High Availability

• Disaster Recovery

• Anonymous Access to Public facing website

• Advance Content Deployment scenario with Authoring, Staging, and Production

Solution:

In order to meet the moderate security level, cost, FISMA, and technical requirements, we will use a multi-cloud solution utilizing Terremark enterprise cloud and Amazon Web Service. By separating the environments, the most critical security requirements only apply to areas of the solution that have data accuracy, data timeliness, and LDAP requirements.

Our design recommends to use Amazon Web Services for:

• Approved public content

• Read only copy of web site content

• Removes security model during Content deployment

• Removes user account information during Content deployment

• Anonymous access.

Terremark Enterprise Cloud is FISMA compliant and has obtained a moderate security Certification & Accreditation for multiple government agencies. Therefore, all areas of the solution that require user authentication and content generation will be deployed in Terremark enterprise cloud. However, based on the high cost of the Terremark Cloud solution, we don’t recommend using this environment for the public facing website which does not require the same level of security. Additionally, the Terremark enterprise cloud will have a secure connection to the federal agency’s LDAP.




1. Federal Agency LDAP – The solutions supports connectivity to the Federal Agency LDAP. Agency users will have access to the environment seamlessly using their agency username and password. Content authors will be able to perform user acceptance testing, creating new content, editing existing content, delete content, submit workflows, and approve/reject content. Additionally, the environment will be configured to integrate with LDAP profile data into SharePoint 2010 profile store.


2. Terremark Enterprise Cloud: Terremark private cloud is FISMA compliant and has obtained moderate security Certification and Accreditation.

a. Content Deployment: The solution uses an advance content deployment scenarios utilizing SharePoint 2010. The content deployment, using secure encryption, will deploy approved public content to the Amazon Web Service corresponding nodes. Content is authored in the Authoring Node and deployed to AWS Staging Node. Once content is verified in the Staging Node it is then push to the AWS Production Node. Content deployment jobs will be configured to remove security models and users account information.

3. Amazon Web service (AWS) Public Cloud: AWS delivers a set of services that form a reliable, scalable, and inexpensive computing platform in the cloud. AWS cloud platform will only contain a read only version of the data and will accept content deployment jobs from the Terremark private cloud. Additionally, the solution provides for disaster recovery, high availability, on demand scalability, and anonymous access to public content.

a. Active West Availability Zone: Handles all web traffic for the eastern United States. In the event that the Node fails, users will be redirected to west availability zone.

i. Production Node: The production node contains a highly scalable and elastic SharePoint 2010 solution in the cloud. The production node will be configured to allow anonymous access to public facing websites.

ii. Testing Node: Identical to the Production Node.

b. Active East Availability Zone: Handles all web traffic for the eastern United States. In the event that the Node fails, users will be redirected to west availability zone.

i. Production Node: The production node contains a highly scalable and elastic SharePoint 2010 solution in the cloud. The production node will be configured to allow anonymous access to public facing websites.

ii. Testing Node: Identical to the Production Node.

4. Elastic Load Balancer/DNS Solution: The Elastic Load Balancer/DNS solution distributes the user request between the Amazon Web Services west and east active zones, which creates a highly scalable and optimal SharePoint 2010 solution. If an active zone fails then the elastic load balancer/DNS solution distributes the requests to the other active zone; therefore, the solution provides real time disaster recovery.

5. Content Delivery Network: Delivers applications and Web content quickly and reliably.

Sunday, May 9, 2010

How to Upgrade SharePoint 2010 (beta) sites to SharePoint 2010 (RTM)

(Note: Before using this process in production please test solution. Every environment is different so this solution might not work in every situation. I have only tested this solution on SharePoint 2010 (beta) for internet sites to SharePoint 2010 (RTM) for internet sites. However, the same process should work from SharePoint 2010 (Beta) enterprise to SharePoint 2010 (RTM) enterprise)

Problem:
I have been building solutions for clients using SharePoint 2010 (beta) for internet sites and I need to upgrade to SharePoint 2010 for internet sites RTM release while still maintaining the security, site collection configuration, and content.
What didn’t work:
  • To my knowledge there is no in-place upgrade support for SharePoint 2010 (Beta) to SharePoint 2010 (RTM). 
  • Stsadmin export of SharePoint 2010 Beta site collection and import beta site collection into SharePoint 2010 RTM. Received random errors during import process to SharePoint 2010 (RTM). 
  • SharePoint Central Administration backup (Failed during backup operation in SharePoint 2010 (Beta)). 
  • Content database detach and migration.

What did work:
  • Stsadmin backup and restore 
  • Manually re-configuring SharePoint 2010 Environment
Current Environment:
  • SharePoint 2010 Server (Dedicated)
  • SQL 2008 Server (Dedicated)
  • Two Domain Controllers (Dedicated)
  • Exchange 2010 Server (Dedicated)
  • Office Communication Server 2007 (Dedicated)
  • Blackberry Enterprise Server 5.0 (Dedicated)
  • Server Infrastructure Amazon Web Services Cloud
Requirements:
  • SharePoint 2010 RTM software
  • Service account that has access to both administrative Access to the SharePoint 2010 Server and the Content Database.
  • WSP files of any custom solutions
  • Knowledge of SharePoint Stsadm command lines
Steps:
  1. Logon to your SharePoint 2010 (beta) server with the SharePoint farm account
  2. Run command line on every Site collection you want upgraded to SharePoint 2010 (RTM). Make sure you run command line as Administrator or you will get access denied errors:  Stsadm –o backup –url [your site collection] -filename [where you will save your backup]


  3. Uninstall SharePoint 2010 (beta) and reboot 
  4. Update:  If you have a dedicated SQL Server, you must logon to SQL Server and manually delete all the SharePoint 2010 Beta databases
  5. Logon to the SharePoint Server with the SharePoint farm account and Install SharePoint 2010 (RTM)  
  6. Re-configure SharePoint 2010 central administration (Turn on SharePoint services, configure search, configure email settings, etc…)
  7. Create SharePoint 2010 Web application and target site collection
  8. Deploy all custom code to web applications and update web config (This step is only necessary if you have custom solutions) 
  9. Run command line on every Site collection you want upgraded to SharePoint 2010 (RTM). Make sure you run command line as Administrator or you will get access denied errors: Stsadm –o restore –url [target site collection] -filename [your backup file location] -overwrite
  10. Access restored site collection and insure site restored properly
  11. Repeat steps 7 – 10 for every site collection you need to restores