Welcome to MSDN Blogs Sign in | Join | Help
Exchange 2010 !!

The beta for Exchange Server 2010 is now public. Here’s a look at some of the new features that are designed to save you time.  

 

Exchange 2010 aims to deflate swollen inboxes and to make sure you don’t lose any I-have-got-to-jump-on-that mail.

 The team has focused on the three Ps: productivity, or getting the most out of e-mail; protection, or making sure e-mail chatter doesn’t leak into the wrong hands; and performance, or making sure the server doesn’t let you down when you’re trying to move mail from folder to folder. The result is a product that is designed to make life a little bit easier in the face of nonstop inbox inundation.

 

Ignore Thread button/Conversation View

All mail will be grouped by conversation in Exchange 2010. That means all e-mail threads that are related will appear as one mail in your inbox (you will be notified when the thread is updated). This feature is already built into Exchange but is mostly unused. In Exchange 2010, it gets even better. Rather than presenting e-mail item by item, Conversation View groups messages and instantly cuts down on clutter.

 

Conversation View also helps cut down on clutter with the Ignore Conversation button. When you quickly realize that a conversation doesn’t matter to you, click Ignore Conversation. All future e-mails from that conversation will automatically be deleted. No need to waste any more time reading messages that aren’t important.  

 

Making E-mail ‘Oops Proof’

 Exchange’s MailTips will help make e-mail “oops proof,” or at least will limit the number of accidental messages sent. For example, when you’re about to send an e-mail to a huge group of people, you’ll get a quick reminder before you click Send. A message will also let you know if the e-mail is going to anyone external, so you don’t accidentally forward sensitive info.

 

MailTips also will cut down on time spent composing e-mails that have no value. Notifications will let you know when a recipient is OOF (out of the office) or an attachment is too large to be delivered. 

 

Other Timesavers

Exchange has a host of other tools to help boost productivity, such as the voice mail speech-to-text preview.

 Calendar sharing is another useful feature that gets an upgrade in Exchange 2010. You now will be able to share calendars externally with business partners or with friends and family.

 

And the frustration at receiving an information rights management (IRM) e-mail—the ones that warn “Do Not Forward” in Outlook—is gone. Before, Outlook Web Access users weren’t able to read those messages without installing an application on their client machine. Now, Outlook Web Access will natively support reading and composing rights-managed mail.

 

Build, Release and Deploy On Demand

Some people might ask me where I have been for past couple of months. I was like damn busy with the release of a TFS extensibility solution. The solution is now released and will be available with MCS TFS engagement.

It extends the OOB TFS features with extended Build, Release and Deploy capabilities.

For Build, we extended TFS Build to provide additional OOB (Out of Box) functionality like automatic documentation, automatic packaging, and solution level versioning and signing, automatic project dependency resolution. To configure and enable all these features, we have Extensible UX wizard which even provide UI for your own features (say additional verification checks for build artifacts).

Current version of TFS doesn’t provide OOB capabilities to release a build to Dev/Test/Production environments seeking appropriate approvals before release.  We extended TFS to provide OOB capabilities while defining multilevel parallel/sequential approval workflows for Release and support for auditing all activities as well.

Then we took this effort forward to automatically deploy the Approved Release Build to requested environments. This includes automated deployment to one or more servers using workflows. Also we provide complete Result Administration, Job Administration and multiple other reporting features with lot of extensibility. The name of the solution is Build, Release and Deploy, On Demand!!

Even from the next version of TFS point of view (code named Rosario), Workflow is the way to go. It provides full control on the remote machine with respect to deployment while providing OOB programming model, OOB reusability using Activities and threading, compensation and other control for deployment. We do provide OOB set of activities for Poweshell Script, Windows Script, Jscript and Batch Script execution. No more wrangling your head with arcane errors of Batch Script J

Microsoft .NET Framework 4.0 and “Dublin” Announcement

Microsoft announced via Steven Martin’s blog significant improvements to the existing Windows Server capabilities in the form of enhancements to both the .NET Framework and extensions to the application server role, codenamed “Dublin”.

 

Following are new set of enhancements which you may see in .NET 4.0 and Window Server application server role enhancements code named “Dublin”.

 

§  Windows Communication Foundation 4.0:  Microsoft is adding new capabilities to WCF to further simplify the creation of RESTful services, including REST Singleton & Collection Services, ATOM Feed and Publishing Protocol Services, and support for an HTTP Plain XML Service.  Additional messaging and correlation enhancements enable customers to work with the most recent transports and protocols.  By further extending WCF to enable seamless integration between WF and WCF and enabling a unified XAML model, developers can build an entire application in declarative XAML code from presentation to data to services to workflow.

§  Windows Workflow Foundation 4.0:  Applications built using WF will realize significant improvements in performance (on the order of ten-fold performance enhancements) and scalability.  There are also new workflow models and pre-built activities (PowerShell, messaging, etc.). An updated visual designer will be easier to use by developers to use and be easier to rehost by ISVs.

§   “Dublin”: This consists of a set of enhancements to Windows Server application server capabilities that – when combined with WCF/WF 4.0 –represent a major step forward for our application server. “Dublin” will offer greater scalability and easier manageability, and will extend Internet Information Services (IIS) to provide a standard host for applications that use workflow or communications. 

 

Taken together, these enhancements will extend the power of Microsoft’s application server and simplify the development, deployment, configuration, management, and scalability of composite applications. 

 

Key Features

Windows Communication Foundation 4.0

Windows Workflow
Foundation 4.0

Windows Server
"Dublin" technologies

RESTful enhancements

·   Simplifying the building of REST Singleton & Collection Services, ATOM Feed and Publishing Protocol Services, and HTTP Plain XML Services using WCF

·   WCF REST Starter Kit to be released on Codeplex to get early feedback

Messaging enhancements

·   Transports - UDP, MQ, Local in-process

·   Protocols - SOAP over UDP, WS-Discovery, WS-BusinessActivity, WS-I BP 1.2

·   Duplex durable messaging

Correlation enhancements

·   Content and context driven, One-way support

Declarative Workflow Services

·   Seamless integration between WF and WCF and unified XAML model

·   Build entire application in XAML, from presentation to data to services to workflow

 

Significant improvements in performance and scalability

·   Ten-fold improvement in performance

New workflow flow-control models and pre-built activities

·   Flowcharts, rules

·   Expanded built-in activities – PowerShell, database, messaging, etc.

Enhancements in workflow modeling

·   Persistence control, transaction flow, compensation support, data binding and scoping

·   Rules composable and seamlessly integrated with workflow engine

Updated visual designer

·   Easier to use by end-users

·   Easier to rehost by ISVs

·   Ability to debug XAML

Provide standard host for WF and WCF applications   

Pre-built developer services

·   Message-based correlation

·   Message forwarding service

·   Content-based message routing

·   Compensation service for long-running transactions

Greater scalability and easier manageability

·   Enable scale-out of stateful workflow applications

·   Persisting and rehydrating state for high scalability

·   Enhanced management and monitoring functions

·   Tracking store for workflow events

Supports “Oslo” modeling platform

 

 

For Additional Information, Visit

§  Steven Martin Blog: http://blogs.msdn.com/stevemar/default.aspx

§  Overview of WF 4.0, WCF 4.0, and Windows Server “Dublin”

SaveFileDialog doesnt show up in Vista

Recently I was writing an Add-In for Visual Studio 2008 and I came across requirement for saving a file as an Excel file. No big deal as it looked to me!!  

I happily wrote the helper function, but to surprise, it didn’t work on Vista SP1 while it was working on Windows Server 2003. The dialog box never shows up and surprisingly, not even an exception was thrown! (Maybe it would be throwing unmanaged exception, I didn’t catch that)

I thought it’s something to do with LUA (Least User Access, Vista Security you know!), vista doesn’t directly allow write access to windows drive (i.e. C :\), so I changed the initial directory. But still it’s the same.

Then I realized that SaveFileDialog (all FileDialog Childs for that matter) requires higher trust level (for full write access on the drive) otherwise it’s a security issue, you start with some directory as initial directory and navigate to some other directory fool user to click on some malicious program. That makes sense to me, I thought maybe as visual studio add-in my application was running with lower trust level so dialog box doesn’t open up. I opened caspol and again assigned full trust to my signed assembly (though it was already running with full trust), hoping it would help, I tried again and but hit the roadblock and the same problem!!

I search, couldn’t get much, so after lot of hit and trail found that these three properties did the trick.

            DialogSave.ShowHelp = true;

            DialogSave.CreatePrompt = true;

            DialogSave.OverwritePrompt = true;

 

Couldn’t find much on internet regarding this, so posting now…

Here is the code that worked for me J

        private static string CreateNewFile()

        {

            string filepath = "";

            SaveFileDialog DialogSave = new SaveFileDialog();

            DialogSave.DefaultExt = "xls";

            DialogSave.Filter = "Excel file (*.xls)|*.xls|All files (*.*)|*.*";

            DialogSave.AddExtension = true;

            DialogSave.RestoreDirectory = true;

            DialogSave.Title = "Where do you want to save the RTM report?";

            DialogSave.InitialDirectory = @"C:/";

 

            DialogSave.ShowHelp = true;

            DialogSave.CreatePrompt = true;

            DialogSave.OverwritePrompt = true;

 

            if (DialogSave.ShowDialog() == DialogResult.OK)

            {

                filepath = DialogSave.FileName;

            }

 

            DialogSave.Dispose();

            DialogSave = null;

            return filepath;

        }

 

Red Gate Acquires .NET Reflector

Our beloved .NET Reflector is now acquired by Red-Gate Software...

An agreement between Red Gate and Lutz Roeder will place future development of .NET Reflector, the popular class browser for .NET developers, in the hands of Red Gate. Red Gate is maintaining a free version of the software for downloading at http://reflector.red-gate.com.

Check out the news at http://dotnet.sys-con.com/node/649584

Hats off to Lutz Roeder for developing a great tool!!

IE8 Beta2 is out !!!

Today Microsoft released Beta2 of Internet Explorer 8. The browser is available in English, German, Simplified Chinese and Japanese, and will follow with another 21 languages in mid-September.  You can download IE8 Beta 2 now at http://ww.microsoft.com/ie8.

 

To get a feel for the new IE8 experience, check out the videos here, download the product, and try it out.  

Following are the notable features…

 

·        Accelerators - Highlight an address, click the blue button and hover over “Map” or try Right Clicking a Page and Choosing Translate with Windows Live. Check out the new IE Gallery that has cool accelerators and slices from Digg to FaceBook to Ebay

·        Web Slices - Visit Live Search, search for “Seattle Weather” (or major city relevant to your region), hover over the rich search result and click the green button.  Click it to add a Weather Web Slice to your Favorites Bar.

·        Search Suggestions - Go to your Instant Search Box (top right) and type a search to see search suggestions in action.

·        Navigation - Use the new Smart Address Bar to quickly find sites you’ve visited before.  The Smart Address Bar searches your history, favorites AND feeds for pages that match what you’re typing.

·        Security:  IE8 has the best security features in the market today from its updated Smartscreen phishing and malware filter to domain highlighting to the industry leading cross-site scripting filter so I feel my machines, my identity and my family will be safer on the Internet.

Visual Studio 2008 SP1 and .NET Framework 3.5 SP1

 On Aug 11th, Microsoft announced the release to manufacturing (RTM) of the .NET Framework 3.5 SP1 and Visual Studio 2008 SP1. The two service packs make it even easier to develop applications for the latest platforms, with new features such as the .NET Framework Client Profile for faster deployment of Windows applications, multiple enhancements to ASP.NET, and unparalleled support for database application development through the ADO.NET Entity Framework, ADO.NET Data Services and integration with SQL Server 2008.

 

.NET 3.5 SP1

·         .NET Framework Client Profile

o   Fastest and easiest way to deploy Windows applications

o   86.5% reduction (197MB to 26.5MB) in .NET Framework size to ease client application deployment

·         Improves application startup time by 20-45%

·         Improves end-to-end application execution time up to 10%

·         Support for ASLR (Address Space Layout Randomization) security feature in Windows Vista

·         Support for SQL Server 2008

·         ADO.NET Entity Framework

·         ADO.NET Data Services

·         ASP.NET Dynamic Data

·         ASP.NET Routing Engine

 

VS 2008 SP1

·         Integration with .NET Framework’s Client Profile feature

·         Data designers, projects and wizards for SQL Server 2008

·         Designer for ADO.NET Entity framework

·         IntelliSense for JavaScript

·         New WPF, Windows Forms and Web controls

 

More information can be found at http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx 

 

Scott Hanselman has posted a great related post... Check it out here

http://www.hanselman.com/blog/HiddenGemsNotTheSameOld35SP1Post.aspx

 

Another great post on similar lines can be seen here..

http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx 

 

ASP.NET Virtual Earth Control

Finally ASP.NET Virtual Earth Control is out. You can get the CTP version from http://dev.live.com/tools

If you want a quick starter, have a look at http://channel9.msdn.com/posts/Mark+Brown/Virtual-Earth-ASPNET-Control-CTP-Release/

Sharepoint Virtual Earth Webpart

So you want include functionality similar to live Search map in a webpart. The process is very simple since webpart can easily act as a container for any control and at the end of day VE Map Search page also contains bunch of VE and other controls.

 

So here is what will try to achieve:

We will try to create a webpart which will allow user to enter search location (what and where) and then the webpart will show a virtual earth map corresponding to the entered location.

 

So, how would you simply show a Virtual earth map in an HTML page?

May be with a HTML Script like this:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

   <head>

      <title></title>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

      <script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5" mce_src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script>

      <script>

      var map = null;

           

      function GetMap()

      {

         map = new VEMap('myMap');

         map.LoadMap();

      }  

      </script>

   </head>

   <body onload="GetMap();">

      <div id='myMap' style="position:relative; width:400px; height:400px;"></div>

   </body>

</html>

If you observe here, all we have done is to register map control script using

      <script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5" mce_src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script>

 

And then you created simple script to instantiate the VE map Control placing VE map in a div container. This shows up a Virtual earth map in an HTML Page.

 

Just replicate the same code in a webpart; all you need to do is to embed the script in the webpart.

 

Here is a sample…

// Script to register Virtual Earth Controls

private const string includeVEScriptKey1 = "includeVEScriptKey1 ";

 private const string embeddedScriptFormat = @"<script type=""text/javascript"" src="" mce_src=""http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6""></script>";

 

//Embedded Custom Script to include VE Wrapper and other controls

 private const string includeVEScriptKey2 = "includeVEScriptKey2";

 private string m_embedScriptToLoadMap;

        protected void RegisterCommonScript()

        {

           m_embedScriptToLoadMap = @" var map = null;

                                           function GetMap()

                                           {

                                                map= new VEMap('myMap');

                                                map.LoadMap(new VELatLong(47.6, -122.33), 10 ,'h' ,false);

                                                map.SetMapStyle(VEMapStyle.Road);

                                           }

                                          

                                            function Find()  

                                            {

                                                try   

                                                    {    

                                                        map.Find(document.getElementById('"+ m_txtWhat.ClientID + "').value, document.getElementById('"+m_txtWhere.ClientID+ @"').value);

                                                    } 

                                                catch(e)  

                                                { 

                                                    alert(e.message);    

                                                }  

                                                return false;

                                           }

                                           document.body.onload=GetMap; ";

 

           

            // Make sure that the scripts were not already added to the page.

           if (!Page.ClientScript.IsClientScriptBlockRegistered(includeVEScriptKey1))

            {

                this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), includeVEScriptKey1, embeddedScriptFormat);

            }

            if (!Page.ClientScript.IsClientScriptBlockRegistered(includeVEScriptKey1))

            {

                this.Page.ClientScript.RegisterStartupScript(this.GetType(), includeVEScriptKey1, m_embedScriptToLoadMap, true);

            }

 

        }

 

        protected override void RenderContents(HtmlTextWriter writer)

        {

            base.RenderContents(writer);

            //Placeholder for the VE Map

            writer.Write("<div id='myMap' style=\"position:relative; width:" + VirtualEarthMapWidth + "; height:" + VirtualEarthMapHeight + ";\"></div>");

        }

 

You can further enhance this script to emulate the behavior of Live Maps where you enter the address to be search and the result is shown in the virtual earth map.

 

What you need to do is to add a textbox in which user can enter location to search and a submit button click of which calls this script and reloads the webpart.

Here is the sample code

 

          //Global Variables

        private TextBox m_txtWhat;

        private TextBox m_txtWhere;

        private HtmlButton m_btnFind;

 

        protected override void OnInit(EventArgs e)

        {

            this.Load += new EventHandler(OnWebPartLoad);

            base.OnInit(e);

        }

 

        private void OnWebPartLoad(object sender, EventArgs e)

        {

            // build up the table that is our UI

            Table outerTable = new Table();

 

            TableRow row1 = new TableRow();

            TableCell cell1 = new TableCell();

            TableCell cell2 = new TableCell();

            TableCell cell3 = new TableCell();

            TableCell cell4 = new TableCell();

            TableCell cell5 = new TableCell();

            TableCell cell6 = new TableCell();

            TableCell cell7 = new TableCell();

 

            cell1.Text = “What”;

 

            m_txtWhat = new TextBox();

            m_txtWhat.ID = "txtWhat";

            cell2.Controls.Add(m_txtWhat);

 

            cell3.Text = "&nbsp;";

            cell4.Text = “Where”;

 

            m_txtWhere = new TextBox();

            m_txtWhere.ID = "txtWhere";

            m_txtWhere.Text = “Redmond”;

            cell5.Controls.Add(m_txtWhere);

            cell6.Text = "&nbsp;";

 

            m_btnFind = new HtmlButton();

            m_btnFind.ID = "find";

            m_btnFind.InnerText = “FInd”;

            m_btnFind.Attributes.Add("onclick", "Find();");

            cell7.Controls.Add(m_btnFind);

 

            row1.Cells.AddRange(new TableCell[] { cell1, cell2, cell3, cell4, cell5, cell6, cell7 });

            outerTable.Rows.Add(row1);

            this.Controls.Add(outerTable);

        }


That was simple, right!!

There can be number of changes and enhancements that you can do with this one. Instead of embedding the client script, you can provision the script to the server which makes the script itself extensible and adds to separation to code and script. I just gave example with embedded script, just for the sake of simplicity.

You can extend the functionality to auto complete the address textboxes using AJAX.

 

 

 

 

Sharepoint Webpart Deployment

Initially when I first created a webpart for Sharepoint/WSS, I was kind of confused with the number of development and deployment options and kept on wondering for a while for the way to go. You can and should develop the webpart using Visual Studio but you have option to derive from Sharepoint webpart class or from .NET Webpart Class. You can deploy the webpart as a feature or you can deploy it using CAB file. Then you have .DWP and .Webpart files.  

 

Sometime I even saw the message that not able to deploy the webpart since it doesn’t derive from Sharepoint Webpart class.  I wondered, why is it that I am forced to derive from Sharepoint Webpart class when I don’t want to use any of the capabilities like inter-webpart communication etc etc.

 

I thought it would be helpful to jolt down some of my findings and post it here.

I already posted the comparison between deriving from Sharepoint Webpart class and .NET Webpart class. You can see it here

 

Now you have atleast 2 means to deploy the webpart…

1.      Deployment using CAB files

2.      Feature based deployment of a webpart

 

Deployment using CAB file, further vary a little when you are deriving from sharepoint webpart class or .net webpart class.

 

CAB based Deployment when deriving from Sharepoint Webpart Class

When you derive from Sharepoint Class, you should deploy create a DWP file like

 

<?xml version="1.0" encoding="utf-8"?>

<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2" >

          <Title>Name of Webpart</Title>

          <Description>Webpart Description</Description>

          <Assembly>SampleAssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=<public key token></Assembly>

          <TypeName>MyNamespace.WenpartClassName</TypeName>

          <!-- Specify default values for any additional base class or custom properties here. -->

</WebPart>

 

Save this file as <WebPartName>.dwp

 

One CAB project can be used to deploy one or more webparts. To guide the CAB project, you need manifest (With Name Manifest.xml) file. You create

Then, create a Manifest file, which guides the setup project about all dwp files, safe control entries and embedded resources etc etc..

 

Your manifest.xml may be something like..

 

<?xml version="1.0"?>

<WebPartManifest xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">

  <Assemblies>

    <Assembly FileName="WebpartAssemblyName.dll">

      <ClassResources>

        <ClassResource FileName="RelativeFile1.gif"/>

        <ClassResource FileName="RelativePathtoFile2.jpg"/>

      </ClassResources>

      <SafeControls>

        <SafeControl Namespace="YourNamespace" TypeName="*"  />

      </SafeControls>

    </Assembly>

  </Assemblies>

  <DwpFiles>

    <DwpFile FileName="SampleDWP1.dwp"/>

    <DwpFile FileName="SampleDWP2.dwp"/>

  </DwpFiles>

</WebPartManifest>

 

Now you create a CAB project in Visual Studio and add Project Output of Webpart project to the CAB project. With that Manifest.xml will automatically be added. Next add DWP file and other resources as contents to CAB project.

 

CAB based Deployment when deriving from .NET Webpart Class

Here the process essentially remains the same, only the file content changes a little.

 

You create .Webpart file instead of .DWP and manifest changes a little.

 

Create a new file and name it as <WebpartName>.webpart. The content of file is as follows.

 

<?xml version="1.0" encoding="utf-8" ?>

<webParts>

          <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">

                                  <metaData>

                                                          <type name="FullnamespaceandWebpartClassName, AssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=<token>" />

                                                          <importErrorMessage>Cannot import this Web Part.</importErrorMessage>

                                  </metaData>

                                  <data>

                                                          <properties>

                                                                                  <property name="Title" type="string">Webpart title</property>

                                                                                  <property name="Description" type="string">Webpart Description</property>

                                                          </properties>

                                  </data>

          </webPart>

</webParts>

 

Create a new file manifest.xml with content as follows..

 

<?xml version="1.0"?>

<!-- You need only one manifest per CAB project for Web Part Deployment.-->

<!-- This manifest file can have multiple assembly nodes.-->

<WebPartManifest xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">

          <Assemblies>

                                  <Assembly FileName="WebpartAssemblyName.dll">

                                  <!-- Use the <ClassResource> tag to specify resources like image files or JScript files that your Web Parts use. -->

                                                          <!-- Note that you must use relative paths when specifying resource files. -->

                                                          <ClassResources />

                                                          <SafeControls>

                                                                                  <SafeControl Namespace="NameSpaceto be added as safecontrol in Sharepoint sites web.config." TypeName="*" />

                                                          </SafeControls>

                                  </Assembly>

 

          </Assemblies>

          <DwpFiles>

                                  <DwpFile FileName="WebpartFileName.webpart"/>

          </DwpFiles>

</WebPartManifest>        

 

The creation of CAB project is essentially the same.

 

For both of these cases, you can deploy the webpart using following STSADM Commands.

 

stsadm  -o deletewppack -name  <WebpartCabName>.CAB

stsadm  -o addwppack -filename <WebpartCabName.CAB > -globalinstall -url "http://<ServerName: PortNumber> " –force

 

Feature based Webpart Deployment

Here is a link to excellent post that steps to deploy webpart as a feature. Also you should see How Solution deployment has changed development with Sharepoint Technologies.

How to: Sharepoint Silverlight Webpart

People now-a-days are vying for rich user experience and WPF and Silverlight are no doubt the winners atleast from Microsoft Technologies perspective. Standing in the same league I thought of writing an article for creating Silverlight web part for Sharepoint but later found that my colleague has already done that. Why re-invent the wheel :)..

 

Here is the link to the great post..

http://msdn.microsoft.com/en-us/library/cc627341.aspx

 

This article describes how to create a very simple Microsoft Silverlight Web Part in ASP.NET that hosts a canvas (XAML), which can have events mapped to ECMAScript (JScript, JavaScript). The Silverlight Web Part uses Microsoft Silverlight only on the client side, and is based on the Microsoft Silverlight 1.0 Runtime. You can then use the Silverlight Web Part in Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0 to display a canvas (XAML).

Next Major Internet Wave

It’s a fascinating to think about the Future of the Internet Web. Internet started as a small thing and now has become ingrained part of our lives. It all started with basic internet web and then organizations realized the possible potential and created portals to increase their reach using World Wide Web. Then came in number of Architectural buzzwords like EAI (Enterprise Application Integration: where organizations wanted their heterogeneous applications to talk with each other), SOA (Service Oriented Architecture: Expose it as a Service Stupid), SAAS (Software as a Service: I want a hosted solution and I am happy-off paying licensing fees).

 

Social Networking sites (Facebook.com, SecondLife.com) etc marked the beginning of Web 2.0 and web became the lifeline. Buzz words like Cloud Services, Mesh-ups are hitting people’s mind. People want to club all these heterogeneous public networking and other services into one uniform view with integration and interaction among them. Microsoft LiveMesh an example which puts you at the center of your digital world, seamlessly connecting you to the people, devices, programs, and information you care about.  (https://www.mesh.com). Web today links a vast system of documents, data, social networks, and applications running on servers all around the world.

 

Apart from great archirecture, the focus today is on Rich Web applications using Silverlight, WPF, Flash etc etc...

 

Here is what Forrestor says…

....a leapfrog jump in the Internet's capabilities will culminate during the next five to seven years when a 3-D, interactive, immersive Web emerges to make the Information Workplace — digital work environments that are seamless, contextual, visual, individualized, multimodal, social, and quick to create and modify — even more of a reality.

 

Investors are already pumping tons of money into virtual worlds, immersive workspaces, and immersive learning simulations — some targeted at business and some at consumers. According to Virtual Worlds Management, a media company tracking the virtual worlds industry, venture capital, technology, and media firms have invested nearly $1.5 billion in virtual world companies in just five quarters from Q4 2006 through Q4 2007. This is one of many indicators that we are in the very early stages of Web3D, which we define as:

 

The next major wave in the Internet's evolution. Web3D is a system of linked interactive 3-D and 2-D environments that will include everything from use-specific, private applications like immersive learning simulations to virtual worlds open to anyone who wants to join — and people will move among these in a seamless, natural way. Web3D will deliver an interactive, immersive experience that increases motivation and engagement compared with the static, text-oriented or even somewhat interactive graphical interfaces of today's Web. People will be represented visually by avatars that can move in space and communicate with others via voice and text, gestures, user-directed motion, animation sequences, and social networking tools. Web3D will integrate with Web 1.0 and Web 2.0 tools and technologies, as well as business software applications.

 

 

 

Web3D is surely gonna shape the future and way we communicate and interact with the web today. It’s indeed interesting to see google pitching in Virtual Reality space by Google Lively. (http://www.lively.com/html/landing.html)

Architect's Mind

Here is the link to an impressive talk about what topics are architects' interested in. The post beautifully prioritizes various topics of interest to architects...

Here is a brief excerpt from the post

We recently held a New York IASA chapter  planning session to determine the topics that the chapter members are most interested in having covered at future meetings.  We did a brainstorming session with about 25 of our members that resulted in a list of approximately 45 potential topics.  Then the entire membership engaged in a dot voting exercise to rank the topics.  The results below group them by the number of votes received.  Topics in the same group were requested equally.

We thought that you would be interested in the results since they are indicative of what is on architect's minds today.

#1
Enterprise Architecture: Successes and failures, what worked and what didn’t.  Lessons learned

#2
Service Oriented Architecture (SOA) and Enterprise Service Bus (ESB)

#3
Cloud Computing, SaaS, S+S. Offshoring and Outsourcing. Cloud Infrastructures. How Google, Yahoo, Microsoft etc. do it. Cloud Virtualization

 

While I am still pondering over applicability/future of some of these topics like cloud services, I came across another great post which discusses why enterprise today are wary of Cloud Services..

 

10 Reasons Enterprises Aren’t Ready to Trust the Cloud

Stacey Higginbotham, Tuesday, July 1, 2008 at 12:00 PM PT Comments (12)

http://gigaom.com/2008/07/01/10-reasons-enterprises-arent-ready-to-trust-the-cloud/

Many entrepreneurs today have their heads in the clouds. They’re either outsourcing most of their network infrastructure to a provider such as Amazon Web Services or are building out such infrastructures to capitalize on the incredible momentum around cloud computing. I have no doubt that this is The Next Big Thing in computing, but sometimes I get a little tired of the noise. Cloud computing could become as ubiquitous as personal computing, networked campuses or other big innovations in the way we work, but it’s not there yet.

Because as important as cloud computing is for startups and random one-off projects at big companies, it still has a long way to go before it can prove its chops. So let’s turn down the noise level and add a dose of reality. Here are 10 reasons enterprises aren’t ready to trust the cloud. Startups and SMBs should pay attention to this as well.

1.     It’s not secure. We live in an age in which 41 percent of companies employ someone to read their workers’ email. Certain companies and industries have to maintain strict watch on their data at all times, either because they’re regulated by laws such as HIPAA, Gramm-Leach Bliley Act or because they’re super paranoid, which means sending that data outside company firewalls isn’t going to happen.

2.     It can’t be logged. Tied closely to fears of security are fears that putting certain data in the cloud makes it hard to log for compliance purposes. While there are currently some technical ways around this, and undoubtedly startups out there waiting to launch their own products that make it possible to log “conversations” between virtualized servers sitting in the cloud, it’s still early days. …….

3.     …..

Cloud computing will be big, both in and outside of the enterprise, but being aware of the challenges will help technology providers think of ways around the problems, and let cloud providers know what they’re up against.

Reference Resources for MOSS and WSS

Navigation

 

http://www.helloitsliam.com/archive/2006/09/12/moss2007-%E2%80%93-look-and-feel-part-4-%E2%80%93-navigation-again.aspx

http://aspnetcoe.wordpress.com/2006/09/28/moss-2007-wcm-development-part-1/

http://www.codeproject.com/KB/sharepoint/MossVerticalNav.aspx

http://www.schaeflein.net/blog/DocumentLibraryQuickLaunchWebpart.aspx

http://msdn.microsoft.com/en-us/library/ms432695.aspx

http://msdn.microsoft.com/en-us/library/aa830815.aspx

 

Global Deployment of Master page

 

http://www.beckybertram.com/index.php/2007/10/14/apply_custom_master_page_globally

http://www.sharepointnutsandbolts.com/2007/04/deploying-master-pages-and-page-layouts.html

 

CSS Reference Chart

 

http://www.heathersolomon.com/content/sp07cssreference.htm

 

Master Page Creation

 

http://msdn.microsoft.com/en-us/library/aa660698.aspx

http://msdn.microsoft.com/en-us/library/bb727372.aspx

 

Custom WSS Site Definition

 

http://www.binarywave.com/Lists/Tips%20and%20Tricks/DispForm.aspx?ID=4

 

Custom Branding Guide

 

http://blogs.msdn.com/bgeoffro/archive/2007/11/12/branding-a-moss-corporate-intranet-portal-part-1a-high-level-overview-terminology-and-approach.aspx

 

Dual Authentication provider

 

http://www.andrewconnell.com/blog/articles/HowToConfigPublishingSiteWithDualAuthProvidersAndAnonAccess.aspx

http://vlele.wordpress.com/2007/10/09/wss-and-custom-authorization-provider/

 

Login Controls

 

http://ingehenriksen.blogspot.com/2007/09/how-to-make-custom-login-controls-for.html

 

User and Profile Management

 

http://store.bamboosolutions.com/kb/article.aspx?id=10829

 

WSS as Platform for Internet Web

INTRODUCTION

The article intends to highlight some of the drawbacks of using WSS as a platform for internet/extranet based web. The intent of the is not to do a complete feature comparison (although it highlights some of the required ones) but to enumerate some of the challenges and considerations with WSS platform. This should help managers in taking an informed decision.

It looks into WSS as a platform for Internet enabled web sites. Earlier version of Sharepoint, i.e. Sharepoint Portal Services simply lacked this ability because it allowed only for Active directory based authentication making it viable only for intranet environment.

Current version of Sharepoint has 2 variants named Microsoft Office Sharepoint Server (MOSS), which involves licensing cost, and WSS 3.0 which is shipped free with Windows Server R2 or can be downloaded for free.

Please note that WSS itself provides very limited capabilities and is applicable with limited set of requirements.

WSS vs. MOSS - Features

WSS 3.0 and MOSS uses the same Object Model. Application pool can be Created/Extended and can contain number of Site Collections each of which itself can have any number of subsites. Feature based deployment model is extensively used and a feature can be created that address some custom code for different events and then it can be activated to Site collection/Site/Subsite.  For Site Definition, by default WSS allows template for blank, blog, wiki sites (you are free to create your own site templates).

WSS 3.0 provides for feature based solution deployment (for webparts, custom actions etc), basic branding support with hooks for customization, document management, search, some set of OOB webparts (like content query webpart, Html editor webpart), ability to hook custom authentication and role providers, and most importantly internet deployment with network load balancing based on Zones and non active directory based authentication. In terms of deployment, it may not have complete set of farm capabilities but it does allow for providing multiple servers for different services like indexing, load balancing etc. You can use either of Enterprise or Express Edition of SQL Server.

 

MOSS provides for all WSS features plus advanced content management, Enterprise search, Publishing, Site Content and Navigation, Business Data Catalogue, Infopath form Services, Excel Services, advanced Site and Content Localization/Globalization using Concept of Site Variations, User profiles management, lot of out of the box webparts, Single Sign On and many other features.

 

Is WSS enough for my needs?

What WSS doesn’t provide is a fairly long list but if you want to save heavily on the licensing cost and your requirement are limited then WSS may suffice your needs.

To illustrate this, let us start off with identification by area and side by side check what is provided OOB (or is customizable) and what is not supported.

Site Structure

Based on your intended site structure, you create an application pool containing Site Collections each of which containing any number of subsites. This is same as MOSS; the only difference being additional site templates provided OOB by MOSS. WSS will provide for only few templates like Blank Site, Blog and wiki Sites. MOSS provides Publishing template which you may want to drill to help in making decision.

For site structure you may want to ponder over whether to keep your sites under same site collection or different site collection.

Site Navigation

Here we have two things. One is the navigation data source (Navigation Provider) and other is the Control which can display the Navigation Menu (Typically Top Bar Navigation, Side Bar Navigation and Breadcrumb Navigation).

Navigation provider will traverse through the site collection/sites and will create a tree structure for the sites/pages encountered. Each node of the tree contains link to the site/page. This works as an in input to Control which control the rendering of the control which can take care of the security trimming.

Navigation Provider

If you check out the WSS Central Administrator or any other Site’s web.config file, you will be following Navigation providers

SPNavigationProvider

SPSiteMapProvider

SPContentMapProvider

SPXmlContentMapProvider

SPXmlAdminContentMapProvider

 

There are a few instances of the portal site map provider that are defined in the MOSS web.config:

PortalSiteMapProvider.CombinedNavSiteMapProvider: attached to the global or top navigation menus

PortalSiteMapProvider.CurrentNavSiteMapProvider: attached to the current, or "Quick Launch" navigation menus

PortalSiteMapProvider.CurrentNavSiteMapProviderNoEncode: attached to the breadcrumb navigation

PortalSiteMapProvider.GlobalNavSiteMapProvider: Get the map for the global navigation

PortalSiteMapProvider.WebSiteMapProvider: enumerates Web sites (SPWebs) in the site collection

 

One point worth mentioning here is that in WSS, none of the provider provides for pages which you created in the sites.  So if you want to show some link to site pages in any of the navigation, you may not be able to do so out of the box. To solve the problem, you can either write your custom navigation provider (if your scenario demands dynamic/frequent addition of Site Pages by the Content administrator and for each addition of page, the link for the page is required to be added to the Menu) or for Static Scenarios you can just manually the nodes in the Navigation tree using Sharepoint Designer. You can even think over creating a feature for extension of Site Navigation nodes.

Navigation Control

WSS provide for Quick Launch Webpart which can show Document Libraries, Sites etc but that is more suited for intranet Scenarios. For extranet/Internet scenarios you may want to either use ASP.NET Site Navigation Control or a Sharepoint enhancement to it.

MOSS provides far greater capabilities in terms of Navigation by using Site Navigation and Structure feature and few Navigation webparts. The feature allows complete control over what should be rendered and how it should be rendered. The changes can be published at will using the publishing feature available.

You will certainly miss the site navigation and publishing capabilities of MOSS.

Branding

Branding means application of Master page, control over site’s look and feel etc.

MOSS provides publishing feature so Master page in one Site Collection is visible to all sites under it so essentially there is one Master Page from which all sub mater pages can derive and this can be controlled at design time.

WSS does not provide for this because lacking publishing feature, each site has its own Master Page document library and you cannot share the master page across site collections/Sites, at least at design time.

The way to solve this problem is to deploy the master page as a Site Collection feature. The feature can be Activated/Deactivated to site collection/sub sites and it programmatically sets the site’s master page. You will still miss the option to select and preview the master page each time a new page is created.

Localization Needs

MOSS provides for feature called site variations which provide for great support for localization. Localization involves both Site Localization and Content Localization. WSS’s localization support is mainly resource files based.

Authentication, Authorization and User Profile Management

Both in WSS and MOSS you can have your custom role and authentication provider and register it with WSS/MOSS. MOSS by itself provides for User Profile store which you may want to harness. Please refer this excellent whitepaper for understanding User Profile and Management in Sharepoint. http://store.bamboosolutions.com/kb/article.aspx?id=10829

Webpart in WSS

Web parts are stored in Sharepoint Database and be activated/deactivated to a site collection/site as a feature. They are reusable components which can be added to any page.

Following are the options for Web parts:

1.      Custom ASP.NET 2.0 Webpart

2.      Sharepoint based web part

3.      Custom ASCX Control within a web part

 

Design Considerations for Web part

-          Caching

-          Deployment in GAC/Bin folder

-          Interconnection between web parts

-          Easy Customizability of web part

-          Customization of webpart Layout at runtime

-          AJAX Type Controls in a webpart

 

And following is the comparison chart

Create a custom ASP.NET 2.0 Web Part

Create a SharePoint-based Web Part

Custom ASCX Control in a Web part

-          For most business needs.

-          To distribute your Web Part to sites that run ASP.NET 2.0 or SharePoint sites.

-          When you want to reuse one or more Web Parts created for ASP.NET 2.0 sites on SharePoint sites.

-          To use data or functionality provided by Windows SharePoint Services 3.0. For example, you are creating a Web Part that works with site or list data.

-          When you want to migrate a set of Web Parts using the SharePoint-based Web Part infrastructure to Windows SharePoint Services 3.0.

-          To create cross page connections.

-          To create connections between Web Parts that is outside of a Web Part zone.

-          To work with client-side connections (Web Part Page Services Component).

-          To use a data-caching infrastructure that allows caching to the content database.

Advantages

-          Familiarity

-          Reusability

-          Development speed

-          Full Programming support and customizable

 

Disadvantages

-          Slight Performance difference

-          Deployment (Multiple DLLs)

 

 

Web parts can be Created/Customized using Windows Sharepoint Designer and Visual Studio.

Product group recommendation is to use ASPX based webparts as far as possible.

Site Realization using WSS

Let us take a basic scenario where you have following goals and requirements:

1.      You want custom look and feel, Style sheet and Navigation etc

2.      Anonymous and as well as authenticated user access

3.      Multiple document libraries (may some lists also)

 

Based on your required site structure, you can create a web application and a site collection under it. Then you can add any number of sub sites under to realize your actual site structure.

 

Once you have the structure in place, the resulting website will be Windows authentication based. We can extend this website to allow for Network load balancing and anonymous access. Extend the web application to Internet Zone and allow for anonymous access for this site. Both of these sites will point to only one copy of content.

 

Now we allow for custom authentication by changing the web.config file of the user created website to switch to custom membership provider. Then you can import all your users to the WSS profile database. To configure authorization, you can create specific roles with permissions suited to your needs and then add those profiles to the specific roles. Create various document libraries which you may be interested in.

 

Now we will address branding aspects, you can create a new master page and for deployment create a feature that deploys your master page. Activate this feature to site collection and all sites can refer to it. For navigation you can create your own webpart which accepts various properties and using Sharepoint object model creates the menu items for you. You may also consider using existing Sharepoint provided Navigation providers and controls.

 

You can easily add additional features like search etc. Configure search services for your site by defining the search and indexing server. Please note that the page that shows search results used application.master as the master page.

 

For the content part, now you can create multiple webparts which provides for your business functionality.

Site Realization using MOSS

Refer ECM team blog here http://blogs.msdn.com/ecm/archive/2006/10/30/building-tylerbutler-com-part-1-planning-and-basic-branding.aspx

Conclusion

While MOSS provides for lot of features and is an excellent platform for portal and Enterprise application integration but it involves huge licensing cost, for basic set of needs WSS platform may suffice.

Hope the information above will help you take an informed decision!!

More Posts Next page »
Page view tracker