Wednesday, July 12, 2006

Nine Tips to Enhance IIS Security

Listed below is a link to an article on 9 tips to enhance security using IIS 6.0. To view the article, go to http://www.microsoft.com/technet/technetmag/issues/2006/05/ServingTheWeb/default.aspx

Tuesday, July 11, 2006

Next Versions of VS and SQL Server

Orcas: code name for the next version of Visual Studio, due in 2007 or 2008. One of the big
features of the new VS is Language-Integrated Query (LINQ). LINQ is a breakthrough technology that eliminates the impedance mismatch among different data domains. With LINQ, developers do not need to learn separate query syntaxes when querying over diverse data domains such as XML, Relational and Objects. LINQ has been very well received both last year at its announcement at the PDC, and more recently at Tech-Ed in Boston. Orcas, the next version of Visual Studio, includes LINQ infrastructure that enables this powerful combination of languages and API’s, as well as concrete support in multiple programming languages and data domains.

Orcas is based on the .Net Framework 3.0, which is comprised of the existing .NET Framework 2.0 components, including ASP.NET, WinForms, ADO.NET, CLR, and additional base class libraries. It will also include Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (WF) and the newly christened Windows CardSpace (WCS) formerly known under the codename “InfoCard.”
The .NET Framework has always been at the core of WinFX, but the WinFX brand didn’t convey this.

The WinFX brand helped us introduce the incredible innovations in terms of The brand also
created an unnatural discontinuity between previous versions of our framework and the current version. With this in mind, WinFX will be renamed the .NET Framework 3.0.
To read more about it and download the CTP, go to http://www.microsoft.com/downloads/details.aspx?familyid=1A994549-94CB-4F61-903D-A8C8E453EEF4&displaylang=en


Katmai: code name for the next version of SQL Server, due out in 2007 or 2008. It will provide support for unstructured data and auto-admin work.

Friday, July 7, 2006

Passing values to JavaScript

Q: I have an ASP.Net application where I would like to pass the value of a variable to JavaScript code on the same page. How can I do that?

A: An article found at http://aspalliance.com/ArticleViewer.aspx?aid=851&pid=-1 explains exactly how to do that. First, place the script in a separate .js file. Then pass the required value to the script using Page.ClientScript.RegisterClientScriptBlock().

In ASP.Net 2.0 Page.ClientScript.RegisterClientScriptBlock() is used to download and store a script in a browser's cache for quicker reponse in the browser.

Another similar method is Page.ClientScript.RegisterStartupScript(). This method is best used when you have a JavaScript function that you want to initiate when the page is loaded. The code, including this method call, would be placed in the Page_Load() event handler.

For more information, go to http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/JAVAwASP2.asp.

Thursday, July 6, 2006

Best Practices for Developing Web Parts

For those developing web parts, Microsoft has released "Best Practices for Developing Web Parts for SharePoint Products and Technologies" . This can be accessed at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_sp2003_ta/html/ODC_WSSWebPartTips.asp

Wednesday, July 5, 2006

Importing Mutliple Web Parts Simultaneously

During the last SIG meeting, one of the members asked if multiple web parts could be deployed simultaneously. There was no obvious way to use the SharePoint UI to import multiple web parts at once. However, other solutions are available by use of STSADM.EXE and InstallAssemblies.EXE.

STSADM.EXE
To use the Stsadm.exe command to deploy a Web Part package on a server computer running Windows SharePoint Services, open a command prompt, and then type the following command:

stsadm.exe -o addwppack -filename Web_Part_Pack_name [-url URL] [-globalinstall] [-force]

A series of these commands can be entered into a batch file and used to import multiple web parts simultaneously.

STSADM.EXE is a standard SharePoint utility, and is installed by default on the SharePoint server.


InstallAssemblies
InstallAssemblies is an assembly installation tool for Windows SharePoint Services. The tool is designed for use within development and testing environments. By default, InstallAssemblies will start in interactive mode, but it can run in command line mode. Once InstallAssemblies.exe boots, you will need to select which assemblies to install. This can be done by either clicking on the “Select assemblies” button, or dragging and dropping assemblies onto the tree view control initially labeled “No assemblies have been selected”. Afterwards, ensure all other options are properly set before clicking on the “Install” button. The results of all actions are displayed in the Results sections.

InstallAssemblies is a free download available with the SharePoint 2003 Resource Kit.

Friday, June 30, 2006

Office 2007 Delayed

Microsoft announced today that office 2007 will be delayed for the purpose of shipping a better product. Different versions of Office 2007 will shipping at different times in 2007.

The 2 business editions are:
Office Professional Plus 2007
Office Enterprise 2007

The 6 consumer versions are:
Office Home 2007
Office Student 2007
Office Professional 2007
Office Small Business 2007
Office Standard 2007
Office Ultimate 2007 edition.

The business editions are now expected to ship by the end of 2006, a few months later than the previously announced October date. Consumer editions are expected to ship in "early 2007", instead of the January 2007.

To try Office 2007 Beta2 online, please go to http://www.microsoft.com/office/preview/beta/testdrive.mspx

Web Part Resources

As a follow-up to this month's meeting, listed below are a few SharePoint 2003 Web Part resources.
This list has been incorporated into the PowerPoint presentation. The presentation is titled SharePoint 2003 Web Parts and is listed under the Previous Presentations section of the SIG web site.

Friday, June 23, 2006

Retrieving Identity Values

Q: How do you retrieve the Identity value of a row that was last inserted in a SQL Server DB?

A: SCOPE_IDENTITY, IDENT_CURRENT, and @@IDENTITY can all be used to return values inserted into IDENTITY columns. However, each one has its own scope limitations. Scope refers to a specific module (i.e. a stored procedure, trigger, function, batch).

  • SCOPE_IDENTITY will return last identity values generated in any table in the current session, but within the current scope.
  • IDENT_CURRENT returns the value generated for a specific table in any session and any scope. It is not limited by scope and session, but it is limited to a specified table.
  • @@IDENTITY will return the last IDENTITY column value inserted across any scope in the current session, but it is not limited to a specific scope.

For more information, see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sa-ses_6n8p.asp

Tuesday, June 20, 2006

Microsoft ForeFront

Microsoft recently announced a new line of products designed for security at all levels, called ForeFront. The Forefront product line currently consists of the following products:

- Forefront Client Security (formerly called Microsoft Client Protection)
- Forefront Security for Exchange Server (currently called Microsoft Antigen for Exchange)
- Forefront Security for SharePoint (currently called Antigen for SharePoint)
- Antigen for Instant Messaging
- Microsoft Internet Security and Acceleration Server 2006 Release Candidate

Athough some of these products (i.e. ISA) are not new to the market, they have been incorporated into the new package now known as "ForeFront". For more information visit ForeFront homepage. Also, be sure to see the FAQ section and video demo.

Thursday, June 15, 2006

Microsoft Technical Preview in Cleveland

Microsoft Technical Preview
Featuring Vista, Office and Exchange

Microsoft® is making a special appearance in Cleveland, OH on Wendesday, June 21, 2006, to give a presentation to Greater Cleveland PC User Group members (and guests) about technical details of the upcoming releases of Vista, Exchange and Office. Microsoft experts will be giving in-depth technical presentations and demos and there will be Q&A time. In addition, they will be providing refreshments and raffle prizes. As with all GCPCUG meetings, this is free and open to the public. GCPCUG requests that each attendee be included in an RSVP email to me@RLCoppedge.com to insure that there is enough seating and food. Please include the number of people attending in the RSVP.

Event Information
Wendesday, June 21, 2006, 5:00 to 9:30 PM
Cleveland Renaissance Hotel
Ballroom B
24 Public Square
Cleveland, OH 44113
(216) 696-5600
Free and open to the public

Subject Content
Microsoft Vista - This presentation will serve as a deep dive into an IT Pro’s workflow centering on the day to day activities that are typical in desktop management. We will illustrate the deployment tools, management interfaces, GPO, and additional features. Our goal it to represent a real “day in the life” approach for IT Pros, highlighting how Windows Vista will make your day more productive with topics such as Booting and Resuming Windows, Recovering from System Errors, New Event Viewer, Forwarding Events & Subscriptions, Scheduling Tasks and Diagnosing Performance Issues.Microsoft Office has evolved from a suite of personal productivity products to a more comprehensive and integrated system. This session, will provide a look into the new components around enterprise content management, collaboration, and business intelligence, and how the new, but familiar results-orientated user interface will help you and your organization produce better results faster.Exchange Server 2007, the next major version of Exchange, will be a leap forward in enhancing the information worker's access to larger mailboxes while giving the email administrator a more manageable and secure email infrastructure. This session will provide an overview of the product direction and provide a sneak peak at some of the new features that will be included in the product.
To RSVP, send an email, with the all attendees included, to Bob Coppedge.
For other Microsoft-related events in June, see the blog entry from June 6th.

Wednesday, June 14, 2006

Web Part Debugging Tip

Here's a little tip on SharePoint that I wanted to share with everyone. When debugging a web part on a SharePooint site and there are problems bringing up the page, try the following. Manually enter the URL of the page in question and add "?contents=1" to the end of the URL. Once you press enter, the page returned is the "Manage Web Part Page".

This will list all web parts on that page, including their title, type, display on page, and personalized properties. This will help identify if other web parts on the page are causing problems with opening the page.

Friday, June 9, 2006

File Access in VB.Net

Listed below is an example of file access in VB.Net, utilizing many of the I/O functions. First the routine creates a file, then deletes it. This routine is used only for demonstration purposes.


Sub FilePurge()

Static dtLastPurgeTime As DateTime
Dim dtNow As DateTime
Dim intCounter As Integer
Dim Files() As String
Dim strGUID As String, strTXTName As String

While True
strGUID = System.Guid.NewGuid.ToString
strTXTName = "C:\Temp\STB_" & strGUID & ".TXT"

'Create a uniquely named .TXT file
Dim swTXT As StreamWriter
swTXT = File.AppendText(strTXTName)
swTXT.WriteLine(strGUID)
swTXT.Close()

'Wait 2 seconds before proceeding
System.Threading.Thread.Sleep(2000)

dtNow = Now
Dim lTimeDiff As Long = DateDiff(DateInterval.Hour, dtLastPurgeTime, dtNow)

If lTimeDiff > 24 And Now.Hour = 22 Then 'Check if last purge was more then 24 hours ago and current hour is 10PM

'Purge *.TXT files
Files = Directory.GetFiles("C:\Temp", "STB_*.TXT")
For intCounter = Files.GetLowerBound(0) To Files.GetUpperBound(0)
If DateDiff(DateInterval.Minute, File.GetCreationTime(Files(intCounter)), dtNow) > 30 Then 'Purge only if file is older than 30 minutes
File.Delete(Files(intCounter))
End If
Next intCounter

'Update Purge Time
dtLastPurgeTime = Now()

End If

End While

Error_Handler:
Resume Next 'If an error occured while deleting a file, skip it this iteration and move to the next file

End Sub