SPS v3 and Office “Wave 12”

Back in March or April, Microsoft held a strategy summit for information officers here in Pittsburgh.  One of the sessions I attended had to do with the nerxt versions of SharePoint Portal Server (SPS v3) and Office System (“Wave 12”).  Here are some of the notes I took at that presentation.  This was all publicly presented, no secret side conversations involved.  The main foci of Wave 12 are knowledge worker collaboration and data centralization/management.  As always, features and dates are subject to change.

Microsoft’s research indicates a person receives between 50% and 75% of their job-related information from other people, and about 80% of a corporation’s knowledge is stored in “personal storage” (file servers, My Documents, PST files, etc).  This shows a large need to a collaboration platform, and that’s how Microsoft views the next wave (Wave 12) of the Office System.  “Office System” is a collection of servers (such as SharePoint Portal Server), clients (Word, Excel), and services (such as SQL Server Reporting Services).  An enhanced Live Communication Server will be the presence and instant messaging provider to enable real time collaboration on demand.  Enhanced digital rights media (already included in Windows Server 2003) can be used to limit the use of e-mail and documents.

As has already been announced, Office clients will consume a custom XML schema and make use of custom web services.  For instance, utilizing Smart Tags in a Word document will allow for a mail-merge via a web service accessing an enterprise database.  The workflow platform can be managed by non-developers, giving more control of operations to each business unit.  The data satys centeral, but can be used by each knowledge worker as they need to.

Document approvals and versions will be managed via SPS, and include metadata to set retention and expiration/deletion policies.  Document approval will use Outlook, which will route approvals via Exchange in order that e-mail addresses are specified.

Office Web Parts will be enahnced.  Excel can be used to create a dashboard, then publish it as a web part to SPS.  When the dashboard is loaded, the data are refreshed, providing a timely view of information.  End users will have more control to create office web parts to suit their business needs.

Outlook 12 will have improved task and time management tools.  Tasks can be associated with the a day and time, and can appear as appointments to improve time management.  OneNote, SharePoint and Outlook will be able to share tasks.

As with Office 2003, there will be an Access Conversion Toolkit for migrating Access projects to from earlier versions.

A tecnhical beta of Wave 12 is planned for Q4 CY 2005 (Oct-Nov-Dec of 2005), and a public release one year later.

The Movie Theater’s 100th Birthday

100 years ago today, the movie theater was born.  The first modern movie theater opened this day in 1905 on Smithfied St. in Pittsburgh, entertaining thousands (96 at a time) for a nickel.  You can read more about it at http://www.post-gazette.com/pg/05170/522854.stm.

Another Pittsburgh movie tradition is coming back this week also.  George Romero’s Land of the Dead opens this week, premiering Wednesday in downtown Pittsburgh.  Romero’s first movie, the original Night of the Living Dead, was filmed in a cemetary and farm in Evans City, just a little south of where I live, and premiered in downtown Pittsburgh.

DNN Basics BADNUG Meeting – Swag Update

More reasons to attend BADNUG’s Basics of DotNetNuke meeting next week.

WROX Press is donating two copies of Professional DotNetNuke ASP.NET Portals.  In case they don’t arrive in time, we’ll raffle off an IOU and get the book to you when it does arrive.  Thank you Jim Minatel from WROX press, and Pat Santry who hooked us up.

Secondly, we’re receiving permission for more and more goodies in our resources CD.  So far, the CD will have the DotNetRocks show with Shaun Walker and Jim Duffy from May 9, all the webcasts and slidedecks from Stan Shultes and Russ Faustino, and Solutions Partners’ DNN3 Menu Module.

Finally, Corporate Solutions is donating pizza and covering the expense for the night.

My DPAPI Example

In a recent posting to the aspnet-security group at ASP Advice, Julie Lerman asked:

Since the site is hosted on someone else’s server, I don’t believe that I can use DPAPI to encrypt the connection strings

Actually, you can, and I use DPAPI on a number of sites in shared hosting environments.  I typically use the machine store as the data protection store, rather than the user store, but that’s a personal habit when looking at the shared hosting environment.

One downside to the machine store is that anyone who has access to the same server can decrypt your application settings, unless you set an entropy value.  In my sample project, I set the entropy when the DPAPI helper is instantiated.

I mentioned I had a small project I use to encrypt connection strings using Carl Franklin’s DPAPI helper.  All I do is upload two DLLs and my ASPX to the site I’m working on, enter the connection string (or whatever), click Encrypt, and copy the output to the web.config.  When I’m done, I delete the DLLs and page so no one accidentally finds them.  You can find my little project at http://rjdudley.com/projects/dpapi_example.zip.

To use my little project:

  1. Download and unzip Carl’s DPAPI helper from http://franklins.net/dotnet/.
  2. Download my dpapi example from http://rjdudley.com/projects/dpapi_example.zip.  Unzip it to c:\inetpub\wwwroot\dpapi.
  3. Create an IIS application named dpapi (address will be http://localhost/dpapi) that points to c:\inetpub\wwwroot\dpapi. 
  4. Open the solution file in VS
  5. Add a reference to the DPAPI Helper DLL, found at <install>\DPAPIHelper\bin\DPAPIHelper.dll.  Make sure to use the dpapihelper.dll!  There is also a dpaphelper.dll (missing an ‘i’ in the name), and I’m not sure what that’s for.
  6. Recompile the project.
  7. Deploy the dpapihelper.dll and dpapi.dll to the site’s BIN folder, and dpapi.aspx to the site’s root folder.
  8. Load the dpapi.aspx page, and encrypt on!

Drop me a line or leave comments with any Q’s.

<update 2005-06-16>To use the DPAPI encrypted strings in your application, you need to include two lines of code, one is the constructor that starts “DIM dp…”, and the other is the dp.decrypt method call.  In the constructor, there is a short string passed in as a function argument.  This argument(sometimes called an “initialization vector“ or “secondary entropy“ or just “key“, I’m not 100% sure of the exact correct term so anyone works for me) has to be exactly the same in your app as in the DLL used to encrypt your strings.  Otherwise, you won’t be able to properly decrypt the information in your app.  I recommend changing the entropy if you use this example, and use a different one for each site.  Remember also to leave the DPAPIHelper.dll on your site if you plan to decrypt the encrypted values.</update>

Professional DotNetNuke ASP.NET Portals Has Arrived

This must be how the Harry Potter crowd feels.  I pre-ordered Professional DotNetNuke ASP.NET Portals way back in February, and it arrived just today (fortunately in time for my DNN Basics presentation).  I’m on the fourth chapter, and aside from the usual WROX under editing (e.g. page 57: “Pages are a relativity new concept…”), the book is packed with useful information, and reads very easily.  So far, the overview has been very informative, and I’m looking foward to the moew advanced chapters.  Updates later…

This guide is a hands-on guide covering various real-world scenarios for developing and administering DotNetNuke. It covers hands-on step by step configuration options on Windows 2003, and discusses some of the issues (Webfarms, capacity planning, databases) when setting up DotNetNuke.

After configuring DNN it provides a step by step instruction on administering DNN and applying DNN in different real-world hosting situations.

The second part of the guide is aimed at DotNetNuke development. DotNetNuke provides the developer with a highly flexible architecture for rapid application development (RAD) of Web applications using the module provider. The book introduces the DotNetNuke application architecture, and then gets into developing modules for the framework. In addition to module development it covers developing skins for your DNN web site using some of the common tools available.


June BADNUG Meeting – DotNetNuke 3 Basics

BADNUG will hold its next meeting on July June 22 from 6-8 pm at BC3’s Cranberry Campus.  In a break from prervious formats, the Tool of the Month (“use one, don’t be one”) will be the entire presentation.

Rich Dudley will present on the basics of DotNetNuke.  DotNetNuke is a free, open source portal system, which can be used to create complete websites with a great amount of functionality very quickly and cheaply.  DNN version 3.1 has just been released, and this presentation will cover installation, configuration, administration, skinning, module installation, etc.  Version 3 has a number of new features, including several wizards that can configure a new site (such as a personal or club site) in minutes, which is extremely useful in a portal provider environment.  Other new features include drag and drop positioning of modules, friendly URLs, new skins, and many new and improved modules.

With the release of DNN 3, the DotNetNuke Core Team has also begun several sub-projects.  There has been much hope that DNN will be able to integrate with Community Server, but as of yet, little progress has been made.  The DNN team has begun its own blogging and forums sub-project, which we’ll also install and review.  We’ll also take a commercially available template and turn it into a DNN skin.

DNN 3 supports only SQL Server (MSDE, SS2K, SS2K5) out of the box, but Access, Oracle and MySQL providers are under development by third parties.  We’ll be using the April CTP of Yukon for this demonstration.

Everyone who pre-registers will receive a solutions CD containing a number of resources, including the recent DotNetRocks episode on DNN.

If you have a funcitoning laptop and would like to perform the installation along with the presentation, feel free to do so.  The required configuration you need to have working is:
1) Win2K Pro, Win 2K Server, WinXP Pro (must be pro), Win2K3 Server
2) IIS installed
3) Some flavor of SQL Server 200x, MSDE or Sql Server 2005 Express
4) .NET Framework 1.1

To register, e-mail info@badnug.org.  For additional information, visit www.badnug.org.  Yes, the site will be upgraded to DNN 3 shortly.

Update: The June meeting is in June, not July.  Doh!

Codesnip: Redirecting a User to a Specific Page with Forms Authentication

My new ASP Alliance article has been published:

Codesnip: Redirecting a User to a Specific Page with Forms Authentication

In most cases, when using Forms Authentication, redirecting a user to their originally requested page, or default.aspx, is the desired action. However, there may be times where you want to redirect a user to a specific page based on role membership, or to enforce a password change, or for some other reason. This codesnip will show you how to do so.

Examples are for both ASP.NET 1.1 and 2.0.  Read it at http://aspalliance.com/684.

Second Shot Extended, and Discount Exam Voucher

Microsoft Learning has extended its Second Chance program, where you get to retake an exam if you don’t pass it the first time.  There is some qualification and you need to register for the second shot before you take the exam the first time.  Find out more at http://www.microsoft.com/learning/mcp/offers/2ndshot/.  Better hurry–the offer is only good until Aug 31!

As long as you’re taking the exams, get your Microsoft Discount Exam Voucher and Practice Exam Bundle.  The voucher is $106 from Amazon, saving you $19 on the test itself, plus you get a free practice exam.  The vouchers are only good at Pearson VUE centers, so make sure you’re near one before buying the voucher.

Best of luck on your exams!

Change Paper Size and Orientation in Crystal Reports .NET

Design tip of the sporadic time interval:

If you need to change the size or orientation of a Crystal Report, you can do this in the VS IDE by right-clicking your report and navigating Designer >> Printer Setup.  On the first tab, you can choose the paper size and orientation.  Hit OK to return to the IDE, and the report canvas will automatically resize to what you just specified.

I don’t recommend setting any of the advanced printer options in your report unless you know the people printing the report will be using the same printer (such as a network printer).  Also, if you can’t fit your report on letter (or A4 for the metric world), the user is probably going to have to change the paper in the printer, which will more than likely cause some grumbling.

If your report is too wide for landscape, consider grouping the data into a more hierarchical report (not every report can be grouped, but many can).  Not only will this improve the readability, but it’ll help fit the report on a standard paper size.

Right-click in the whitespace on your report, not on a section heading.  You get different menus when you right-click on a section head.

If changing the printer information in your report generates printer errors (such as “Invalid Printer Specified“) when viewed on other machines, try changing the printer information at run time.  Here is a knowledgebase article that will help:

How to Change Printers at Runtime using Crystal Reports for Visual Studio .NET

If you want to set up a report for 8.5×14, you need to select a printer capable of printing 8.5×14 paper.  The location to choose the paper size depends on the printer driver.  In most HP printers, there is a tab called “Paper“.

Crystal Reports .NET Programming
If you’re new to Crystal Reports, or just to CR .NET, this is the book you need. Part how-to, part programming reference, lots of simple examples in both C# and VB.NET.





Blogdigger: Find Bloggers Near You

From SearchEngineWatch:

Want to meet local bloggers in your area? A new service from Blogdigger pinpoints bloggers by their physical location in the United States, with coverage soon to be extended to cities throughout the world.

Like other local search services, Blogdigger queries have two parts: your search terms, and a location, which you enter as a city/state combination or by using a zip code. Search results are sorted by relevance, with probable hits found within a 20 mile radius of the city or zip code you specify in your query. You can change the distance to 5, 10 or 100 miles, and also re-sort the results by date rather than relevance.

A sidebar shows a map of the city with a list of other blogs operating from that area. If you enter a city name or zip code with no other search terms, your results will show all blog postings associated with that area.

Pretty cool, but searching for several terms related to development in my ZIP code failed to find either myself or Eric Kepes (who lives about 20 miles away).  So I added my feed to Blogdigger at http://www.blogdigger.com/add.jsp, and added the GeoURL headers to my blog also.