If you want to maintain a healthy sharepoint environment, it takes requirements determined by the business and the system administrators. If you haven’t taken time to evaluate your user’s environment, start asking questions. Sharepoint will take planning.

Evaluate the business. Understand the users actions; how the environment works.  Physical and logical contraints need to be known. When you think about configuring the network, hardware, application, database, and disk storage layers of the environment. Define your sharepoint deployment strategy at the physical, process, logical, and site-level perspectives.

On a spectrum of Isolation to Scalability, consider the following:

  1. Physical Isolation : separation of networks for each site collection — not practical for most environments
  2. Physical Isolation : seperation of servers for each site collection — not practical for most environments
  3. Process Isolation : seperation of application pools for each site collection — Internet/Extranet, or Sensitive Data
  4. Logical Isolation : seperation of web applications for each site collection — Internet/Extranet, or Sensitive Data
  5. Logical Isolation : seperate host names for each site collection — Internet/Extranet, or Sensitive Data OR Internet (non-interactive/readonly) or Intranet
  6. Logical Isolation : seperate site collections for each site — Internet (non-interactive/readonly) or Intranet
  7. Sharepoint Site Isolation : multiple subsites, and workspaces in a site collection — Intranet Only
  8. Sharepoint Site Isolation : specific security for a list or library within a site collection or subsite — Intranet Only

Though measuring the isolation and scalability variables, think about how they determines your ability to administer this.

  • Will it be easy for you to limit the exposure of failures?
  • Will security be easy to manage?
  • If you’re introducing a highly-scalable environment you’re also inviting complexity — increasing risks to break.
  • If a user’s team loses their site, what will your degree of restoration be? Item level? Site Collection Level? Database Level?
  • If the architecture approach is #7 the site collections can grow (if you place no quota contraints) with many groups using sub-sites within a single site collection (a top-level site / logical partition within a contentdb). To restore a previous version of a particular sub-site may impact the all teams within this site collection, creating noise, possible data loss, etc. This is assuming you’re not using a technology like Microsoft DRM that will manage all this for you — however this solution requires large amounts of storage equating to more costs.
  • What about security management? Do you want to commit to managing item-level security? Do you want to manage multiple subsite permissions that are unique within a parent site collection? Wouldn’t it be easier to set the permissions at the site collection level and then require all subsite’s to inherit the parent-level perms?

So isolate the architecture as best you can, but keep it flexible to scale it to the degree your company intends to take the technology. Every business will have a different.

Easy. Right?

Tune in next for information on factors to consider when you’re putting data in Sharepoint.

  • How storage quotas will help. . .
  • Versioning is a convenience to user’s, right? What about additional storage factors?
  • What about disk inflation? Why is 1GB of RAW Fileshare Storage inflate to 1.2 GB of storage in Sharepoint?

I’ll have more on this topic, and it will certainly help plan for the needs of your business.

Advertisements

Sharepoint Favorites?

April 28, 2009

I’m constantly being hit with emails, phone calls, and IMs requesting a sharepoint url they have forgotten to thumb in their favorits. Ugh. . . Do I have time for this? Do you?

Sharepoint user’s adopting the web-share approach need a way to track down and it loox like Black Knight has the answer (http://www.theblackknightsings.com/)

You can download the solution from HERE

It addes a new menu item to the Welcome Menu (upper-righthand corner) called ‘Show All Sites’

It will then build a tree-view structure of all sites (YOU) has access to. If you have access to large number of sites, I hope you know the site by name because all the sites are listed by their given name hyperlinked to the URL.

Discussion in class today. . .

The following linx are the main search engine players on the internet today. When you think of other search engines like Lycos, Yahoos, and other sites (askjeeves.com) they aren’t actually using their own search algorithm, but instead feeding off Google or Bruceclay.com’s SEO environment. The exception is livesearch by Microsoft; by no surprise, going their own direction.

If you’re interested in training opportunities, read up on Bruce Clay’s website for analytic strategy, search optimization, etc.

Class Notes :

Linx

  • www.flex.org/showcase — Similiar to AJAX — (A)synchronous (J)ava (A)nd (X)ml | e.g. Google Search Refreshing the Search for field
  • http://www.microsoft.com/expression/ (Web Designer Products) — A step for designers to develop upon the data components driven by developer code

Recreational Thought

Rosetta Stone Perl-to-VB. . .

  1. Reduce Flat-File Evaluation WF to SQL-Based. . . (e.g. destination, configuration, logging mechanisms)
  2. How to manage events in high-volume?
  3. VB Driven Process, use SQL and/or Stored Procedures?

Visual Studio 2005 Tips:

 If you’re using the comment feature in Visual Studio

For Example :

// this is a comment

//TODO: mow the lawn

In the lower pane of the Visual Studio (the Task List pane) you can review the TODOs you have in your code. It will ONLY show your //TODO: comments, not all comments.

Thought I’d share

-J

 Definitions :

  • Class : blueprint
  • Object : Instance of a class
  • Field : placeholder in a class for data based on type
  • Property : Assessor to a field; defines what can set or get the data for a field
  • Method : Actions that an object can perform
  • Event : An occurrence (a flag)
  • Encapsulation : Bundling similar functions together, but hiding internal works of a class providing access only through public methods
  • Overloading : defining multiple methods with the same name but different signatures in the same class

Overloading example

Get Sum (int)

{ x + y = z}

Get Sum (short)

When you start to think about data and how you’re managed, access, and manipulate it with .NET think of it as the above defining the context of which you group it.

For example. . . when you want data from a driver’s license you would need to make individual calls to data fields. Do you want to write a function to call each individual field? Do you want to build a list using database connections to query this information per time? Or do you want to create an object that the a class, using methods, could utilize the standard object w/ fields defined and connections configured endless amounts of time. If the object would need to be extended, add new fields with dataconnections extend and then enhance your functionality to the classes w/ methods utilizing these new object references.

 . . . design by Use-Case Scenarios. . . If you review (U)nified (M)odeling (L)anguage you start to deduct the series of classes and methods required to perform the overall functions. (e.g. A DMV case. Updating ID info, renewing information, providing 30 days notice to driver that his/her DL is going to expire, etc)

So you have to review these scenarios possible and plan for ways to handle those requirements for developing your overall .NET plan.

The (5) access modifiers and define where a methos must be located in order to call the method in question?

  • Public — Anything
  • Private — Base Class ONLY
  • Protected — Base & Derived
  • Internal — Base & Assembly
  • Protected Internal — Base, Derived, Assembly

So the syntax to add a field to a class? 

It would be [Access Modifier] [Type] [_nameofField]

private int _nameoffield = 0;

The syntax for adding a method to a class?

[Access Modifier] [field type] [method name] ([field type] [field name])

{

return variable;

}

An example of using a method to calculate data and deliver back to the calling method which returns the value into the messagebox object for display to the user. (using C#)

private INT _nameofField = 0;

x = this.methodname(3,2)

messagebox.show(x)

private int methodname(int num1, int num2)

{

int i = num1 + num2;

return i;

}

—- Now for an overloaded method with the above example would be like this. The overloading will understand which method to use, even though they have the same name, but allow for different amounts and types of data according to the method configuration vs it’s method peers.

private INT _nameofField = 0;

x = this.methodname(3,2)

y = this.methodname(3,2,1)

messagebox.show(x)

private int methodname(int num1, int num2)

{

int i = num1 + num2;

return i;

}

private int methodname(int num1, int num2, int num3)

{

int i = (num1 + num2 + num3) / 3 ;

return i;

}

What are properties used for? to limit a user’s ability to set and/or get information.

So what would you use constructors for? You have these constructors to function at the time an object is instantiated.

As an individual is being requested from a customer database, the constructors aremethods of which we connect to the database, retrieve the data for this method, and making it available for the individual requested.

 ——

Module 5 Notes:

Overriding Base Class? It’s the ability to inherit aspects of a base class, but enhancing the derived class to it’s specific needs. What about Overriding vs Constructors? You want to do both the derived class methods AND do the base class method constructed for the derived class. Overriding will override the base class and only do the derived class method(s). Make sense?

Base Class BankAccount

{

public virtual void deposit(decimal amount)

{}

}

public class SavingsAccount : Bank Account

{

public override void deposit (decimal amount) //overriding the base class, because the base method is “virtual” , which allows overriding

{}

}

BankAccount account = new SavingsAccount(); // Instantiation of new object account using the SavingsAccount which inherits from the Base Class BankAccount

Hiding (C#) /Shadowing (VB) Base Class? It’s the ability to hide aspects of a base class for a derived. You take some aspects from the base class, but you don’t need other aspects so you hide them from your new derived class.

 

 

 

 

Nebraska Furniture Mart (NFM), the nation’s most comprehensive home furnishings store located in Omaha, Kansas City, and Des Moines. A one-stop destination for all your needs for home furnishings, electronics, entertainment, and more.

I was informed by a Nebraska native that if you are in shopping at NFM and you’re looking to pay less than the sticker price for an item, to look at the cents value of the sticker. If you find an item with the value of 88 cents on the end of a price, it’s a hidden flag for a salesmen that the price is final and non-negotiable.

So if you’re looking for a flat-screen television and you find one priced at $736.88, its a non-negotiable sticker price. However, if you find it for a value like $745.98 then you’re odds to negotiate may be in favor. I’ve yet to negotiate the price, but it would have been nice to know for my previous purchases. I don’t know how reasonable of a negotiation you can make, but you have nothing to lose.

As for a testament of this story, this native went to the Kansas City location to buy bar stools. At list price of 99.99 he offered the salesmen $75.00 per Bar stool. The salesmen played the I don’t know what you mean card, and he said in Omaha nobody pays the sticker price for anything. She ended up saying how they aren’t suppose to talk about that at the Kansas City branch, and then sold him the stools for $75.00 each.

Just a thought on your next visit. Look for the 88 cents and negotiate the negotiable.

Backsplash Catch

April 16, 2009

It’s a struggling start to the 2009 rowing season. Not quite like the riding a bicycle; You do forget what you’re doing. So it’s a practice gig. We’ve been on the water a couple times now? It’s been a wobbly start.

Blade depth. Hands together. Timing. Oars Sky High. It’s everything.

Tonight, Coach Jenn reminds us to take the row at an slow, steady pace; Keeping those hands together from the drive thru the recovery – all the time!  The most helpful advice was progressive rowing. . .giving time for us to work as a team and coordinate the catch and release cycles together. Hear those oar locks engage and disengage!

Progressive Row :

  1. Arms & Back (20 Strokes)
  2. 1/4 Slide (20)
  3. 1/2 Slide (20)
  4. Full Slide (20)

In pace, we then focused on rolling those oars to into a square position earlier into the recovery. As we take a few strokes, Jenn pushed us to raise our hands (lowering our oars to the water), contributing a stronger sense of balance. Our hands tend to dive in the recovery cycle as we square which diminishes our center-of-gravity and creating the unstable behavior.

A useful analogy I like to remember is to imagine you’re taking a tabasco bottle and rolling it on a table. Starting with the bottle in the palm of you’re hand, rolling it forward into your finger tips, and you’re thumb nested at the base of the bottle, then try to pick-up the bottle with your fingers and thumb. It helps you understand the roll technique, and the upward motion you have with your hands when you drop you’re oars into the water at the catch (the blades drop, the oar handles rise).

If you find yourself at a restaurant with tabasco bottles at the table, I encourage you to try.

A sense of progress this evening, but we still have a bit to work on. It’s only our second practice, but we have much more to contribute on the water in weeks to come. If Dave will just get his Captain’s key from the coaches, we can hit up the lake 3-4 times a week.

-J