Monday, December 21, 2009

Community Technology Update (CTU) 2009 Event, Singapore

Hi all,

Community Technology Update (CTU) 2009 event had been held at Microsoft office today (19 Dec 2009). In its 6th incarnation, the event was bigger than before. There were different tracks for the IT professionals:

i) IT Pro - Windows Server 2008 R2
      >> Remote Desktop Services - The technical overview
      >> How to configure CAS array for Exchange 2010
      >> Windows Security Internals
      >> BranchCache (Windows 7 and Windows Server 2008 R2)

ii) Developers track:
     >> What's new in .NET Framework 4.0 (By Justin Lee, Microsoft employee)
     >> Jumpstart Your Team Development with VS2010 and TFS Basic
     >> ronRuby and the Dynamic Language Runtime
     >> Developing "Cloud" Applications with Windows Azure and SQL Azure  

 iii) Special track
     >> Migration from Lotus Notes to Exchange Server
     >> Development on Sharepoint 2010 using VS2010 (By Randy Williams, SharePoint MVP)
     >> Enhancing Sharepoint Web 2.0 with customizations (By Loke Kit Kai, SharePoint MVP)
     >> Turn on your Unified Communications (By Sarbjit Singh Gill, SharePoint MVP)

There were hands-on labs were also there.
The tracks that were bold; were the one which I attended.

So, lets get started.  

9:00 - 9:45 AM - Keynote Session

Welcome address by John Fernandes who is director at Developer and Platform Evangelism Microsoft Singapore. He has been working at Microsoft for 14 years and worked in US, Dubai and Singapore. He is primarily focusing on Singapore and working with developer, IT professional, academic, startup, and venture capital communities. His team leverages software as an enabler to innovation, entrepreneurship, and the next generation, be it students, business models, or technology paradigms.

Microsoft is in forefront when it comes to technical standpoint. It not only provides enterprise solutions and also working at different levels such as:
  •  Conduction competitions as Students level (DreamSpark, Imagine cup)
  •  Working with Startups (BizSpark, Innovation Centers),
  •  Community-based collaboration (RIAaction, Geeks-engaged)
  •  Successful Global business (IDA, MDA, Innovation.Next() etc.)
Next speaker was Matthew Hardman who is Windows client BH lead at Microsoft Singapore. He introduced concept of "The New Wave of Efficiency".   He really understands that in these economic times, we have tremendous pressure on all of us to with less, do more. And "New Efficiency" comes into picture.

Definition: The "New Efficiency" is where: there is cost cutting, get more out of your people and organization (Productivity), capture & create new revenue - unlocking creativity & imagination (innovation): come together through IT to deliver operational improvements while amplifying the impact of your people.

Microsoft has understood the basic needs of the customers/companies and they want to systems should be cost-effective, innovative. The whole concept of "The NEW Efficiency" can be succinctly wrapped: With LESS, do MORE. 

With new suit of Microsoft products particularly Windows 7, Windows Server 2008 R2, Exchange Server 2010 and other products  deliver on the "New Efficiency" target cost-savings, productivity and innovations come together. The new efficiency has built for Enterprise.

Lets consider a case study.  

----------------------------------START ----------------------

Consider we have a business traveler (John) who travels from New York City to San Francisco and he about to board his flight in few minutes. The meetings is for corporate financial earnings. He just switch on his laptop to hits his "Outlook Web App" to check his emails using Windows 7.

"Outlook Web App" is a part of Microsoft Exchange Server 2010. Exchange Server 2010 and Outlook Web App deliver a rich, familiar Web e-mail experience, so your users can work and collaborate more effectively wherever they are. Users can access e-mail, voice mail, instant messaging, SMS text messages, and more—all in one place and through all major Web browsers.

Now, he check an email from his colleague (Ben) who is working on corporate financial earnings. Apparently, the email is in restricted way which means he can not forward or reply to this email. This happens automatically as corporate compliance team filters few phrases like financial earnings in the email subject and potential sensitive for an organization. The compliance team works with IT team to implement Exchange IRM rules. These rules automatically scans an individual or groups and restrict if subject has a potential sensitive information.

Apparently, Ben forgot to attach financial earnings for one of small division and he has already on vacation. Exchange server 2010 has a new feature which is instant messaging integration and John is looking for a colleague who worked on financial earnings. John send an instant message to his colleague. This colleague sends a link to SharePoint 2010 site which is hosted on the intranet. The site opens and John downloads the excel sheet to his laptop.

What is outstanding here is John is able to connect to the site WITHOUT using VPN. This is possible is because Window 7 uses a new feature called as "DirectAccess." Direct access  give mobile users seamless access to corporate networks without a need to VPN. DirectAccess in Windows 7 and Windows Server 2008 R2 enhances the productivity of mobile workers by connecting them seamlessly and more securely to their corporate network any time they have Internet access—without the need to VPN.

John can look into this excel sheet and compare to his final draft, span in/out using Windows 7 and he is done. John then copies that file to USB drive. Using Windows 7, we can encrypt using "BitLocker Drive Encryption and when someone want to use a USB drive, he has to enter a password before can copy files to it. Its an added functionality. And this is called New Efficiency. 

------------------------------------------------END ----------------------------------------- 

For more information on this topic, with truck loads of videos, presentations, slides etc.:

10:00 - 11:15 am - What's new in .NET Framework 4.0 (by Justin Lee)

Client Profile: 

It's a huge release from Microsoft and they included lot of "Best Practices". When we download 3.0 or 3.5 framework, the download size is around 150-200 MB .NET Framework 4.0 has come up with something called as "Client Profile". Its a strip down  version and size is dramatically reduced to 35 MB.  If we download .NET Framework 4.0 client profile and on your PC/Workstation does not have a .NET Framework 4.0 then it will automatically download the framework. 

In the "Client Profile" may have lesser classes. 

Demo 1: Create a New project >> Choose NET Framework 4.0 >> Project name: CTUDemo1

Right click on solution >> Properties >> Target Framework: .NET Framework 4.0 Client Profile. Also note that it has an option .NET Framework 4.0 which is the full framework. 

Code Contracts: 

Code Contracts will be part of the base class library in .NET 4.0 (included in mscorlib), and facilitate a Design by Contract programming approach. You can describe pre-conditions, post-conditions, and object invariants.  Its associated the "Best Practices" as well. 

Namespace required: using System.Diagnostics.Contracts.Class

.NET framework 3.5 also uses contract.

It is not enabled by default. 

We have to go to Solution Explorer >> Right click >> Properties >> Under Code Analysis we can see there is one more tab called "Code Contracts" 

Under "Runtime Checking" section, check the "Perform Runtime Contract Checking" and under "Static Checking" section, check the "Perform Static Contract Checking"


Parallel Extensions 

This feature is capable to capitalize full use of resources and enhance the applications.
Namespace required: using System.Threading.Tasks

It actually application's performance astoundingly.
NOTE: There is a video on Channel9 on parallel extensions.  

Managed Extensibility Framework (MEF): 

The Managed Extensibility Framework (MEF) is a new library in .NET Framework 4.0 that addresses this problem by simplifying the design of extensible applications and components.
If you are building extensible applications, extensible frameworks and application extensions, then MEF is for you. 

VS 2010 uses MEF. Its used to create plug ins on the fly.  

Dynamic Language Run time (DLR)

DLR (Dynamic language runtime) is set of services which add dynamic programming capability to CLR. DLR makes dynamic languages like LISP, Javascript, PHP,Ruby, IronPython to run on .NET framework.

There are two types of languages statically typed languages and dynamically typed languages. In statically typed languages you need to specify the object during design time / compile time. Dynamically typed languages can identify the object during runtime. .NET . DLR helps you to host code written in dynamic languages on top of your CLR.


Due to DLR runtime, dynamic languages like ruby, python, JavaScript etc can integrate and run seamlessly with CLR. DLR thus helps to build the best experience for your favorite dynamic language. Your code becomes much cleaner and seamless while integrating with the dynamic languages.



Reactive Framework (Rx):

Rx is a library for composing asynchronous and event-based programs using observable collections. Its opposite of IEnumerable.

The new .NET 4.0 interfaces IObservable<T> and IObserver<T>.  These are the mathematical dual of the familiar IEnumerable<T> and IEnumerator<T> interfaces for pull-based, enumerable collections in the .NET framework.

Namespaces: using System.Reactive, using System.Interactive
Reference: Msdn 

New to .NET Framework 4:

There are other new types which .NET FX 4 has added:

i) BigInteger:

New namespace System.Numerics contains class called BigInteger. You can use objects based on this class as usual integers. This class also provides static methods for different mathematical operations on big integers.

ii) Tuples:

Tuples are strongly typed and immutable such as strings. Tuples are commonly used on functional programming. A common example is to use them when a method needs to return more than one value, for example a method that returns a point in a grid can return this point as a set of x,y coordinates in a Tuple.

iii) SortedSet:

SortedSet<T> collection type, which implements red-black sorting algorithm with complexity O(log n) for the entire list. Its of the developers on the Numerical Analysis.

iv) Complex Numbers:

.Net Framework 4.0 Beta 2 introduces new class in System.Numerics namespace: Complex. Complex represents complex numbers and enables different arithmetic operations with complex numbers.

There are some other methods and fields are introduced in .NET 4.0
>> Guid.TryParse()
>> Version.TryParse()
>> Enum.TryParse<T>
>> Enum.HasFlag
>> string.concentrate(IEnumerable <T> x)
>> string.Join(IEnumerable <T> x)
>> string.IsNullOrWhiteSpace


11:30 AM - 12:45 pm - Development om SharePoint using VS2010 (by Randy Williams, SharePoint MVP)

NOTE: Randy also attended .Net framework 4.0 and in SP 2010 session, he highlighted that SP 2010 will not be using .NET framework 4.0 but .NET framework 3.5.

Developer Dashboard:  

The developer dashboard is a new feature in SharePoint 2010 that is design to provide additional performance and tracing information that can be used to debug and troubleshoot issues with page rendering time.  The dashboard is turned off by default, but can be enabled via the object model or stsadm (and PowerShell too, I just haven’t put together the script for it yet).  When the dashboard is turned on you will find information about the controls, queries and execution time that occur as part of the page rendering process; this information appears at the bottom of the page. 

It has an object called as "SPDeveloperDashboard" which has On/Off functionality.  When its enabled, we can get information for all the pages including: 
>> Web Server
>> Execution time
>> Current user
>> All web parts for that page and corresponding execution time for each web part. 
>> Database Queries

It can been seen at the top right corner. 
Its not related to Central Administration. 

Sand boxed Solutions:

A new feature in SharePoint 2010, called sand boxed solutions, addresses many of these concerns, enabling farm administrators to feel comfortable that the SharePoint farm is safe, giving site collection administrators the authority to manage the applications in their site collection, and providing developers with the flexibility to create solutions they know will be deployed in a safe and rapid manner.

SharePoint 2010 provide a framework for safe and rapid deployment of solutions.

NOTE: Sahil Malik has published a great series of blog posts on sandbox solutions in SharePoint 2010.  They can be found on his site.

Demo 1: Create a visual web part 

One of the features of the Visual Studio 2010 when developing on SharePoint 2010 is the ability to more easily create web parts that use the familiar drag-n-drop experience from the toolbox.  That is, instead of having to hand-write all of the code in your CreateChildControls method, you format and layout your controls using the design view.
The way this works is by wrapping the web user control (.ascx page) within a web part.  Actually, this idea isn’t all that new.  It’s something that we could do in VS 2005/2008 and that last version of SharePoint as well.  This is why SmartPart because such a useful utility.  

Randy introduced the new "SharePoint Explorer" with VS 2010.SharePoint Explorer gives a logical view with farm as root, then comes web-application, sites, webs, lists, list items and even fields. 

Question:  Is it similar to SharePoint manager 2007??
Randy: Yes, but SharePoint Explorer is read only where as SharePoint manager, we can delete web, sites, web-applications and even SharePoint Config. 

He created a new SharePoint empty project, created a visual web part, deploy as farm solution, drag/drop two controls date-time text box, task title as text box, button and add an event handler 

SPWeb web = SPContext.Current.Web;
SPList tasks = web.Lists["Tasks"];
SPListItem newTask = tasks.Items.Add();
newTask["Due Date"] = DateTimeControl1.SelectedDate;
newTask["Title"] = TextBox1.Text;
Label1.Text = "Task created";

The best part this version of SP 2010 has F5 functionality. When you are done designing the web part, you can hit the F5 button. SharePoint 2010 will Build, Deploy and Activate the feature automatically.   

This demo can be found here.

Question:  Does this visual web part supports web part connections. 
Randy: Yes, it DOES. 

Demo 2: Using REST (Representational State Transfer) in SharePoint 2010

REST (or Representational State Transfer) is an easy way to easily get or post items to a server-side web service.  It is used in situations where you would use a web service but do not want the overhead and tightly-coupled nature of SOAP. With REST, it’s just a simple, client-server-like request using HTTP to retrieve or send information.  Technically, REST is not a protocol, but an architectural style.

SharePoint 2010, being based on WCF in the .NET 3.5 Framework, has built-in RESTful web services which allow us to take advantage of this simplicity in custom applications we write.  It is one of the many data access mechanisms used in SharePoint 2010 development.  REST is intended for remote applications (i.e. not running physically on the SharePoint server) that need basic read/write capabilities to SharePoint’s list and library data.

>> Created a Windows form, named CTURest. 
>> Added data source >> Choose SharePoint 
>> Add Service Reference dialog, add the Url to a SharePoint 2010 web site.  
>> SharePoint data source, you do not need to specify the _vti_bin/listdata.svc.
>> We can drag/drop data connections. 

This demo can be found here.

Question: What technology REST is using? 
Randy: Neither CAML nor web-services. Its using WCF 

Demo 3: Developing a Silverlight 3.0 Web part for SharePoint 2010

This demo can be found here

Demo 4:  Using SPLinq in SharePoint 2010

This demo can be found here.  

Some other questions which I asked Randy: 

Question:  SharePoint 2010 team is using XSLT and CAML will not be used at all?

Randy: Not really. Basically, CAML will be still used extensively for features, fields, queries etc. XSLT is for the Views. 

Question: What about STSADM and PowerShell? 
Randy: Yes,  developers should use to PowerShell instead of STSADM. in SP 2010. There are some additional commands are added in PowerShell as well as in STSADM. We can use STSADM but PowerShell is much more powerful.

Question: As we know that Microsoft recommends to use 100 GB for content database in SP 2007. What has changed in SP 2010 with respect to database schema? I have read lot of articles that they have drastically changed the database schema and we can have 5000 list items in a list. Can you please shed some light on this aspect.

Randy: Yes, there are changes to database schema but not drastically. Even we can have content database till 200-350 GB in SP 2007. Problem becomes when we want to take recovery or take a back. In SP 2010, they have extended the limit. But I am not sure the limit and they have not announced it yet.

Question: Microsoft says that developers can install SP 2010 on Windows 7. But i have read some articles where MVPs suggest not to install on Windows 7. What do you think on this? 
Randy:  There is not an issue here. In fact, I always install on Windows 7 on top of SP 2010. There are few minor issues but it works okay.

1:45 - 3:00 pm - Enhancing SharePoint 2010, Social Experience (by Loke Kit Kai, SharePoint MVP)

Kit Kai showed how to enhance the discussion board with new features

>> Challenge the answer ( or reply as answer) 
When a question is asked by a user A, then other users in the site can answer his doubt or clarification etc. They can they click on the like "Challenge the answer". The exception is here that user A can not "Challenge the answer". 

The demo was very fast I could not take notes.

Kit Kai also told to the audience that rating documents and pictures, enhanced wiki and blogs, forums have be added to SharePoint 2010 as out-of-the-box features.

3:15 - 4:30 pm - Turn on the your Unified Communications Systems (by Sabarjit Singh Gill, SharePoint MVP)

The talk was very interactive and Sabarjit talked of video/audio capabilities of UCS etc. 


After all the demos and talks followed the closing session and the lucky draw. 
I got a SilverLight 2 book! :) 

The CTU session was amazingly useful. Got inside information of the new Microsoft's upcoming products range. I was also established few contacts with SharePoint MVPs. 



    No comments:

    How to: Use cascading drop-down lists in PowerApps

    Hi all, Using cascading dropdown, users can easily fill the forms by selecting drop-down values dependent on values from another dro...