1. Getting Started with SharePoint and Silverlight

SHAREPOINT AND SILVERLIGHT are a great combination of technologies for building great web applications. Users can create and configure their own web-based collaboration and publishing solutions with SharePoint and can incorporate richer user interface components with Silverlight. Further, Silverlight extends the things that SharePoint’s user-installable “sandboxed solutions” can do, such as reaching across SharePoint site collections and line of business systems and integrating multi-media features.

For developers, SharePoint provides an easily-packaged data layer, and Silverlight allows rich display and interaction with that data. SharePoint and Silverlight offer a unified development experience based on Visual Studio 2010, a consistent runtime environment (.NET) on both client and server, and extensive client-side APIs for accessing SharePoint in Silverlight.

This book began at Microsoft technology conferences such as TechEd, the Microsoft SharePoint Conference, MIX, and other venues where the authors delivered a variety of talks on the subject of SharePoint and Silverlight. Attendance was high, and feedback was positive, revealing a lot of interest in this combination of technologies. The authors of this book dive much more deeply than a conference talk or boot camp would allow, however, showing you all the tricks and techniques for being successful with this strong combination of technologies.

Why SharePoint?

A great struggle for control has been underway since the first business-oriented personal computer, the IBM model 5150, was introduced in 1981. Finally business managers could thumb their noses at lengthy IT backlogs and take direct control over computing tasks by purchasing a PC and using the simple word processors, spreadsheets, and other applications that were available at the time.

Although this independence led to business innovation and empowerment, it also led to a number of unanticipated problems. The IT people, despite their backlogs and sometimes conflicting priorities, had been securing and backing up their software and data, ensuring it complied with relevant laws and policies, and planning for contingencies in case anything went wrong. The newly empowered PC users often skipped over such concerns, unwittingly adding huge business risks. Meanwhile, data proliferated in companies, leading to confusion when a dozen variations of the same spreadsheet all yielded different results, with no way to know which was the right one.

Over time, personal computing has become ubiquitous, and IT has found ways to manage their companies’ personal computers. Although some of these risks can be mitigated by, for example, a group policy that forces everyone to encrypt their data, other risks still remain.

SharePoint is one of a new breed of application environments that balances the needs of business users and those of IT. With SharePoint, business users can innovate and build simple solutions on their own while IT ensures that the environment is secure and backed up. The central idea of “sharing” eliminates or reduces the proliferation problem, so users all work on one common set of data, conflicts don’t arise, and IT can govern the environment to encourage business users to comply with legal and company policies.

All this has led to SharePoint being a huge success in the marketplace. It’s a platform that allows business and IT to work together rather than at cross purposes.

To a business user, SharePoint is a place to collaborate and publish information. Many simple business solutions can be created directly by savvy business users, with no need to involve IT in the details. It is mainly browser based; however, rich applications also integrate with SharePoint so users can share directly from tools such as Microsoft Word and Microsoft Outlook.

One of SharePoint’s strengths is its extensibility. A developer can add functionality to the palette of available features, and business users can then use these extensions to build richer solutions. The most common extension by far is to add custom “web parts,” which are small application components that appear on the screen as part of a SharePoint solution. (Web parts are similar to “portlets” or “widgets” used by other portal platforms.) However this is really only the beginning, as developers can also extend SharePoint workflows, add custom application and administrative pages, connect to line-of-business data, and more.

SharePoint’s popularity, along with this extensibility, has led to a whole marketplace of independent software vendors who provide add-ons to SharePoint. SharePoint integration has become a critical component of many business applications, which can then be combined in the SharePoint user interface for simple, one-stop access by business users.

From a technical point of view, SharePoint has another strong advantage, which really amounts to code re-use. Why reinvent site provisioning or document management when SharePoint has both? Why create a new security model or rendering framework when you can build on an already established one? Why spend resources figuring out how to package your application or host your workflows when the SharePoint team already made the same investment? The list goes on and on, and since the entry level product, SharePoint Foundation, is free with the Windows Server operating system, it need not add to your cost of entry.

All in all, SharePoint saves developers work and comes with a large marketplace of customers who have already adopted SharePoint and want to extend its capabilities. This is why so many developers have gone beyond ASP.NET and are developing on SharePoint as a platform.


Tip

Shocking as it might seem, there is no product called SharePoint! SharePoint is a family of products that build on one another, each adding more capabilities and features. Throughout this book, the word “SharePoint” refers to the family of products because it’s a lot shorter than spelling out “Microsoft SharePoint 2010 Products and Technologies.”

The base product, Microsoft SharePoint Foundation 2010, is a free download and includes basic document management and collaboration. Microsoft Share-Point Server 2010 comes in Standard and Enterprise editions, each adding more features.


Why Silverlight?

It wasn’t long after the introduction of NCSA Mosaic, the first graphical web browser, that it was dubbed a “killer application.” Instead of a hodgepodge of tools such as WAIS, FTP, and Gopher, the web browser provided universal access to Internet resources in a way that was easy enough for any computer user.

Yet the standardization that made the World Wide Web possible has also been a limiting factor. Standardization takes time, and interoperability is tricky. To this day, web developers need to test on a variety of target web browsers to ensure their sites look right, and they need to be aware of quirks that can affect the behavior and rendering in one browser versus another. This makes web development inherently more difficult and less flexible than other development environments.

There are at least two ways to address these issues. Runtime environments such as JQuery on the client side or ASP.NET on the server try to hide the browser-specific quirks from developers so they can focus on their applications. These environments work pretty well, but cross-browser testing is still advised, and the applications are still functionally limited to rendering what the target browsers can support.

Another approach is to use a browser plug-in, such as Oracle Java, Adobe Flash, or Microsoft Silverlight. With this approach, a trusted third-party builds a plug-in that runs in multiple browsers, and applications run inside the plug-in. These applications may appear to be part of a web page, yet the plug-in can go beyond what the web browser can do. For example, a plug-in can display streaming video even in browsers that don’t have any video features by bypassing the browser and accessing the native operating system.

This architecture generally includes some kind of “sandbox” to protect end-users from malicious or poorly constructed applications. If the user trusts the plug-in, which comes from a major, established software vendor, he knows that the plug-in will limit what applications can do to his computer when they run.

Silverlight is a .NET-based plug-in that runs in Firefox, Internet Explorer, and Safari on Windows, Macintosh, and on Linux desktops as well through the “Moonlight” project. Silverlight adds a lot of functionality to the browsers it supports, including

• Consistent rendering on all supported platforms, using an extensive set of reusable controls from Microsoft and other software vendors

• A strongly-typed object-oriented development environment based on the popular .NET framework

• Effective separation of visual design and code, which, along with advanced data binding technology, allows designers and developers to work more independently and greatly facilitates automated testing

• 2D and 3D vector animation and graphics

• Video (up to 720p high definition) and audio streaming in a number of standard formats

• Isolated storage for saving state on the client

• Easy access to web services and network sockets, with support for advanced scenarios such as multicast networking

• Access to client devices such as webcam and microphone

• Access to the web browser for tight integration with JavaScript and dynamic HTML

• Support for theming, localization, visual state management, multi-threading, accessibility, and other attributes that are useful in many applications

At this writing, the RIA (Rich Internet Application) Statistics web site at http://riastats.com/ reports that Silverlight is installed on about 70% of client computers on the public Internet. Most SharePoint sites, however, are not on the public Internet but are used within enterprises as “intranets” for employee use or as “extranets” for working with business partners. In these environments it’s easier to ensure the Silverlight plug-in is available; indeed, installation across an enterprise can be automated using Windows Update Services. This means that Silverlight is likely to be available or could be made available to users of most SharePoint sites.

There’s been a lot of excitement in the industry lately about the forthcoming HTML 5 standard, which will provide a number of features such as 2D vector graphics and video support that were previously only available using browser plug-ins. At the time of this writing, HTML 5 is in Working Draft stage, and features based on the draft are beginning to show up in new versions of web browsers such as Internet Explorer, Mozilla Firefox, and Google Chrome.

When the new standard is complete, it will be implemented in incremental releases by browser vendors, continuing to complicate compatibility testing. Script libraries like JQuery and KnockOut can help by offering features such as cross-browser consistency and data binding to the browser programming experience. Other libraries like Modernizr can check to see what browser features are available so the developer can adapt the user interface accordingly. Many web developers hope that these advances will finally make developing browser-based code as easy and productive as other modern development environments.

In the meantime, developers need to choose between a browser plug-in such as Silverlight, grappling with the emerging HTML 5 draft implementations, or sticking with more mature but functionally limited web standards such as HTML 4. There is no one-size-fits-all answer to this decision, and in some cases it can be a tough one to make.

The key is to focus, as developers have always done, on the target for the application. If the application must run on devices that don’t run Silverlight, then clearly it’s not an option. But if the application is targeted toward computers running Windows or Mac OS, or mobile devices running Windows Phone 7 (which runs Silverlight natively), then developers can take advantage of all that Silverlight offers. In addition to providing a richer user experience, Silverlight can reduce development and testing time by providing a strongly-typed object-oriented development environment that works consistently across platforms. It’s also a good approach for developers who know .NET because they will be able to leverage their knowledge in Silverlight.

HTML has a rich future for sure, and Silverlight will be there as well. Browser technology will continue to advance, reducing the need for plug-ins, and plug-ins will advance as well to fill gaps in the new browsers. If you’re working in an environment where you can ensure Silverlight is available, and want to take advantage of its consistency, productivity, and features, then go for it! If you’re not sure but want some of the advantages of Silverlight anyway, then selective use of Silverlight within an otherwise HTML UI might be advised. It’s a balancing act that everyone needs to be aware of as the technology evolves. This may not make the decision obvious, but hopefully it can help with the thought process.

Why SharePoint and Silverlight Together?

The phrase “better together” has become almost a cliché at Microsoft, as it engineers its products for easier integration with one another. SharePoint and Silverlight are indeed better together for a number of reasons.

First and foremost, both are based on the .NET framework, and both share a common development tool (Visual Studio 2010), which in addition to reducing the learning curve for developers, generally simplifies development. A Visual Studio 2010 solution can contain both SharePoint and Silverlight projects, and the output of the Silverlight projects can be automatically included in the SharePoint deployment package. Debugging is also a unified experience; a developer can set and hit breakpoints in both the client and server-side code when troubleshooting code.

In addition, SharePoint provides a client object model for Silverlight to allow easy access to SharePoint content. This is also true for JavaScript, but not for other browser plug-ins such as Adobe Flash. Developers for Flash or Java could consume SharePoint’s SOAP web services or RESTful OData interface, but the level of difficulty could increase dramatically.

Another important consideration is the emergence of sandboxed solutions in SharePoint 2010. Many people think of a development or testing environment when they hear the term “sandboxed solutions” but this is something different.

Sandboxed solutions provide an isolated environment for running applications that are only partially trusted, whether in development, testing, or in production. This allows end-users to upload SharePoint web solution packages they have written and purchased and run them without putting the SharePoint installation at risk. The sandbox means that whoever is hosting SharePoint, be it the local IT department or an online service such as Microsoft Office 365, can allow the code to run without worrying about security breaches, memory leaks, or other issues that could affect the overall SharePoint environment.

Sandboxed solutions are, by necessity, limited in nature. They can declare workflows, lists and library structures, and they can include .NET code, but the code runs with very restricted privileges. It cannot, for example, make any kind of network or database call, nor can it access the SharePoint object model outside of the site collection where it is installed.

Silverlight is a natural complement to sandboxed solutions because it can access resources directly from the client that would be outside of the reach of the SharePoint sandbox. For example, Silverlight can easily call a web service or another SharePoint site collection using the client object model. Because the Silverlight application can be deployed right in the SharePoint web solution package, end users can install it like any other SharePoint solution and need not be bothered with the details of deploying the Silverlight application or embedding the Silverlight plug-in on the page.

Finally, using SharePoint with Silverlight can simplify Silverlight applications while giving the user more flexibility. Rather than using a framework such as the Microsoft Extensibility Framework (MEF) or PRISM, SharePoint and Silverlight follow a similar pattern by allowing users to dynamically add web parts without recompiling the application. The assemblies just reside in a library as .xap files.

All in all, Silverlight can make SharePoint solutions richer and more powerful for end users while making the development experience simpler as well.

Who Should Read This Book

This book is written for developers, architects, and application designers who want to build solutions using SharePoint and Silverlight. It assumes you have a working knowledge of .NET programming, especially ASP.NET, which is the basis for SharePoint.

The book is focused on where SharePoint and Silverlight meet and shows you how to use the two technologies in concert. Although it doesn’t offer comprehensive coverage of either SharePoint or Silverlight, it does provide a sufficient introduction to allow someone new to either or both technologies to understand what’s in the book.

There is a code download to accompany the book, which is located at www.informit.com/title/0321769597. Most chapters include code samples to illustrate the concepts, and all the code is available at this location so you can try it out in your own environment. The code listings in the book are intended to illustrate concepts, but supporting code and packaging isn’t always shown. If you want the complete solutions, they’re in the download.

How to Use This Book

This book is organized so you can read it from end-to-end or in pieces according to your needs and interests.

The first few chapters are introductory in nature, and you might choose to skip over them. If you already have a SharePoint and Silverlight development environment set up, you don’t need to read “Creating a Development Environment” later in this chapter. Chapter 2, “Introduction to SharePoint Development,” provides an introduction to SharePoint development targeted at the ASP.NET developer; Chapter 3, “Introduction to Silverlight Development,” does the same for Silverlight. If you already know the basics, you can skip over these chapters.

Chapters 4 through 11 form the core of SharePoint and Silverlight development. Although each chapter can stand on its own, any given chapter might refer back to concepts from an earlier one. Chapter 4, “A First Look at Silverlight in SharePoint,” explains the Silverlight features that are built into SharePoint 2010, and Chapter 5, “Web Part Development,” gets you started developing Silverlight web parts for SharePoint. Chapter 6, “Expression Blend, Data Binding, and Sample Data,” explains how to use Expression Blend with SharePoint and Silverlight. Expression Blend is a design tool for Silverlight that makes it easy to prototype and visually design Silverlight applications. Then Chapters 7 through 11 focus on various ways of accessing SharePoint content in Silverlight, ranging from the new client object model to web services and OData access.

The last four chapters focus on specific situations. You learn how to work with SharePoint in Windows Phone 7 applications and how to develop for the new hosted Office 365. You also learn how to use Silverlight in site navigation and how to create field controls that use Silverlight to render and edit new kinds of data in SharePoint.


Silverlight 5 was in beta testing while this book was being written. Although most of the programming examples work with Silverlight 4 or 5, some chapters include special sections to show how you can take the solutions a step further with new Silverlight features. These sections are shaded for easy identification.


Creating a Development Environment

SharePoint development took a big leap forward in the 2010 version due to greatly improved tooling built into Visual Studio 2010. All you have to do is press the F5 key, and Visual Studio will build your projects, package them, and deploy them to a local SharePoint server for debugging. However, this experience assumes that there is a local SharePoint server running on the same computer as Visual Studio. So for practical purposes, every developer will need his own copy of SharePoint in his development environment.

Most of the material in this book works with the free SharePoint Foundation 2010; the examples in Chapters 10, 13, and 15 require the full SharePoint Server 2010 product.

For development purposes, SharePoint 2010 will run on the following operating systems:

• Windows Server 2008 R2 ×64

• Windows Server 2008 ×64

• Windows 7 ×64

• Windows Vista SP3 or greater, ×64

Notice that all the choices are ×64 because SharePoint can’t run in a 32-bit environment. This can present a challenge if your development environment is 32-bit today. Virtualization can help, as can the new boot to VHD option in Windows 7. Some SharePoint development shops host virtual servers and allow developers to connect with remote desktops. There are several options, but they all lead to the same place: ×64 is mandatory.

Table 1.1 shows an inventory of tools to be installed in a SharePoint and Silverlight development environment. All of these are available either for free or as trial versions; those that aren’t free are available under some MSDN subscriptions. Please note that the download links were current as of this writing but could change over time; the URL shortening service bit.ly does not allow updating the links.

Table 1.1. Tools for a SharePoint and Silverlight Development Environment

image
image
image

Setting Up Your Environment

There are a few strategies for setting all this up in a development environment.

The first and surely the easiest approach is to simply download the whole environment with everything preinstalled as trial versions, which can be updated with your product keys from MSDN or elsewhere to allow them to run indefinitely. This is available at http://bit.ly/SPSL_2010VM. With this approach, all you need is the ability to run a Hyper-V virtual machine image. All the examples in this book have been tested on this virtual machine.

If you’re interested in doing your development on a Windows 7 machine, you might want to start with the SharePoint 2010 Easy Setup Script, which can be downloaded at http://bit.ly/SPSL_EasySetup. This amazing script will download and install on a Windows 7 machine trial versions of nearly everything on the list just provided; the only missing items are the Silverlight Web Parts, ADO.NET Data Services, and a network tracing tool such as Fiddler or Nikhil’s Web Development Helper. It’s easy to configure the script to plug in your license keys if you don’t want to run trial versions, and it can be adapted to crank out custom developer workstations for your shop.

The Easy Setup Script can install these tools directly on a Windows 7 ×64 machine, or it will set up a Boot to VHD environment for you. Windows 7 is capable of booting directly to a virtual hard disk (.vhd) file; if you provide a .vhd with Windows 7 ×64 installed, the script will install all the developer tools on that as an option.

Please note that the Easy Setup Script expects a clean and fully patched version of Windows 7. Before running the script, ensure none of the tools it installs are already installed and that you’ve run Windows Update to install all service packs and updates for Windows.

Installing SharePoint “From Scratch”

If you want to build a SharePoint development environment on your own, it can be a helpful learning experience and give you complete control over the configuration. For example, you might want to run SharePoint as part of an Active Directory domain; this should be done before installing SharePoint. This is helpful for working with user profiles, which can be synchronized with Active Directory, and is the most secure and easiest way to set up a multi-server environment. The virtual machine download mentioned earlier is already configured as its own domain controller; you can do this as well or join an existing domain prior to installing SharePoint.

All the products in Table 1.1 are easy to install and require no special instructions, except one, and that’s SharePoint itself. This section shows you how to set up SharePoint 2010 on a clean Windows Server 2008 R2 machine as a single-server SharePoint “farm.” Your production and staging environments may well have several servers, but that’s beyond the scope of this book.

Begin with a clean Windows Server 2008 R2 computer and install all available service packs and Windows updates. It is not necessary to configure any roles on the server; SharePoint’s Prerequisite Installer will take care of that and will correctly set up Internet Information Services (IIS) and other dependencies for you.

It’s best to set up at least one service account to run SharePoint services; many developers run SharePoint under the Administrator account, which can lead to problems in production if they write code that depends on administrative privileges. If your SharePoint server will be part of a Windows domain, make the service account be an ordinary domain user. In production and staging, many service accounts can be used to create a “least privilege” set-up; here we are content to avoid running everything under administrator privileges.

In addition to a service account, you also need an installation account that has administrator rights on the SharePoint server. This can be the same as your developer account, which needs server administrator rights to run the debugger.

SharePoint 2010 needs SQL Server 2005 SP3 or later in order to run, and the SharePoint installer will set up SQL Server Express for you unless you install your own SQL server. If you prefer the improved management features and storage capacity of real SQL Server, the developer edition is a better choice. So before installing SharePoint, install SQL Server yourself, ideally running under its own service account (which can be another ordinary domain user). You also have the option to use an existing SQL Server instance on another server in your environment—just remember that you need to give the SharePoint service account some pretty high privileges, and that SharePoint creates a number of databases, so a separate SQL instance for each developer is often preferred.

Open SQL Server Management Studio to give the SharePoint service account the permissions it needs. Under Security right-click Logins and add a new user. The new login dialog box is displayed, as shown in Figure 1.1.

Figure 1.1. Adding a login for the SharePoint Service account in SQL Server

image

In the screen shots, the service account is called SPService and is in the Virtual domain. Before clicking OK to create the new login, click the Server Roles option on the left and grant your service account the dbcreator and securityadmin roles so it can create and secure new databases when the configuration runs, and when running the SharePoint Central Administration web site. This is shown in Figure 1.2.

Figure 1.2. Granting server roles to a SharePoint service account

image

With SQL Server set up, it’s time to install SharePoint. When you install (or virtually mount) the installation DVD, you see the splash screen shown in Figure 1.3. The screen shots are for full SharePoint Server 2010; the SharePoint Foundation installation is similar.

Figure 1.3. The SharePoint installation splash screen

image

If you like, you can review the links under Prepare to learn more about SharePoint installation. When you’re ready to install, click Install software prerequisites under the Install heading. This leads you through a wizard that shuts down any conflicting services, asks you to agree to license terms, and then installs SharePoint’s prerequisites. In addition to server roles, this includes the Windows Identity Foundation (for claims security), chart controls (for rendering reports), and even the Microsoft Speech Server runtime (for phonetic name searching). There isn’t much you have to do here except provide an Internet connection because the prerequisite installer will download the latest versions of the prerequisites as it runs.

When the prerequisite installer completes, reboot the server if you’re directed to do so and then begin the installation again. This time click Install SharePoint Server.

You are then prompted for a product key. The product key determines whether you’re using the trial or full version of the product and also whether you have the Standard or Enterprise edition. The Standard edition is enough for the examples in this book, but the Enterprise edition unlocks several great features you might want to try. You can always change to the Enterprise edition or graduate from trial to full product by entering a new key later in SharePoint Central Administration. If you need a trial product key, it’s given right on the SharePoint download page.

After accepting license terms, you are offered a choice of a Standalone or Server Farm installation as shown in Figure 1.4.

Figure 1.4. Choosing the SharePoint installation

image

Although you might be tempted to click the Standalone option, this will install SQL Server Express for you. If you want to use full SQL Server, either on your development machine or elsewhere, you need to select the Server Farm option. When you do this, you are asked to select the Server Type as shown in Figure 1.5.

Figure 1.5. Selecting the Server Type

image

Because this is a single server farm, you need to select Complete so all of the SharePoint components are installed. Again, the Stand-alone option installs SQL Server Express Edition. Click the Install Now button and wait while SharePoint is installed.

When the installation completes, you see a checkbox to Run the SharePoint Products Configuration Wizard now. Go ahead and let it run, or if you want to do it later, you can find it on the Start menu.

The SharePoint Products Configuration Wizard creates the SharePoint databases and configures the server to run SharePoint. After a warning about restarting services, you are presented with the opportunity to connect to an existing server farm or to create a new one, as shown in Figure 1.6. For a single-server farm, of course, you want to create a new server farm.

Figure 1.6. Creating a new server farm

image

Next, you are prompted to enter the database server name and the name and access accounts for the configuration database. The configuration database is at the center of the SharePoint configuration and contains information about all the other farm databases, server roles, web application, and other farm settings. Enter your SharePoint service account name and password as the access account; because you already gave it dbcreate and security admin rights on the database server, it is able to create the configuration and other databases. It is not easy to change the location of the configuration database after it’s been set up.

Next you are asked to choose a Passphrase. This phrase is used to unlock configuration information, including service account passwords. Select a secure phrase you can remember.

After this, you are invited to create the web application for the SharePoint Central Administration web application. The wizard chooses a random port number; you can override it with a number you find easy to remember if you wish. Normally you want the default choice of NTLM authentication, but if you need to authenticate with Kerberos, that option is also available. Keep in mind this is only for the Central Administration web application and that you can select other types of authentication for your own web applications.

The wizard confirms your choices and then performs a number of configuration tasks, which can take a while to run. At the end, you should see a success screen and can click Finish to close the wizard.

You now have a working SharePoint farm with a Central Administration site but no web applications or site collections for users (or development testing). To set that up, visit Central Administration; a link can be found under Microsoft SharePoint 2010 Products on the start menu. The first time you visit Central Administration another wizard runs and offers to walk you through setting up the farm. Decide if you want to send feedback to Microsoft, and then click the Start the Wizard button to begin this last phase of setup.

Figure 1.7 shows the next screen, which allows you to set up the available SharePoint services. If you don’t want to use a separate account, click the Use existing managed account radio button and select the same service account you’ve been using. If for some reason you don’t want to run some services, uncheck them and click the Next button.

Figure 1.7. The Central Administration Wizard configures SharePoint services

image

This might take a while; eventually the wizard offers to set up a site collection for you, which is your farm’s first SharePoint site (other than Central Administration)! Give the site a name and description and select a site template. The standard Team Site template is fine for most tasks; Chapters 13 and 15 require the Publishing Portal template on the Publishing tab.

Your reward, as shown in Figure 1.8 is a working SharePoint site, ready for you to start testing your development work!

Figure 1.8. Your SharePoint farm’s first team site

image

Now that SharePoint is set up, go down the list in Table 1.1 and install everything else. The other product installations are straight-forward; just be sure you include the SharePoint and Silverlight portions of Visual Studio 2010 when you set it up.

Summary

Whether you downloaded the pre-built virtual machine, used the Easy Setup Script, or built it all by hand, you should now be ready to begin developing SharePoint solutions. The chapters that follow show you how to do quite a lot with SharePoint and Silverlight in your new development environment.

Have fun with it!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.216.175