|
|
TFS, Visual Studio, SQL Server, BizTalk, SharePoint, .Net, and more ...
-
A friend asked about some sites to learn about Visual Studio and programming. There is a lot of great free resources out there. I created an article with a starting list to help. Feel free to comment and suggest the "best" free sites out there.
Visual Studio and .Net Tutorials and Training Videos
|
-
Steps to add programs to Send to folder
- Navigate to your SendTo folder (Windows XP location is C:\Documents and Settings\{user}\SendTo and just replace {user} with your login user name)
- Right click select New/Shortcut to add a shortcut
- Type in the location of the program to send the file to then click Next
- Notepad is “%windir%\notepad.exe”
- Visual Studio 2008 is "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /edit
- Give the send to a name that is user friendly (i.e. Notepad or Visual Studio 2008 as appropriate)
|
-
-
As a Microsoft VSTS ranger, I come across some interesting TFS add-ons on occasion. The recently introduced Free Telerik TFS Manager and Dashboard tool seems impressive. Most of the features enhance SCRUM/Agile methodology shops but can be used for any methodology.
Main Page http://www.telerik.com/products/tfsmanager-and-tfsdashboard/tfs-work-item-manager-features.aspx
Features
- Work Item grid filtering, grouping, and aggregation
- Area and Iteration filtering using single and multi select modes
- Filter query results using a tree of areas or iterations
- Unique Task board view of work items independent from any process template
- Print work item cards for the board in your room
- Iteration schedule
- Paste as New/Current work item
- "New by example" saves your query for other team members
- Search the title and description of query results as you type
|
-
Scenario Web application wants to pop-up a window as a certain size, chromeless, etc. However doesn't want to have the opening (parent) window show. Common usages are launching from shortcut or an application.
Solution In the "parent" page that launches the popup. Put the following code to close your(self) in javascript:
var self2 = window.open("", "_self"); self2.focus(); self2.opener = self2; self2.close();
|
-
Scenario A parent document contains a frame that loads a file which content is dynamic and you want the frame to not scroll and autosize the height of the frame.
Solution function autoResizeParent() {
// if no parent don't attempt to change if (parent != null) {
var frameList = parent.document.body.getElementsByTagName("iframe");
// is there any frames?
if (frameList != null) {
for (var i = 0; i < frameList.length; i++) {
var srcName = frameList[i].src;
srcName = srcName.substr(srcName.lastIndexOf("/"));
var srcParent = document.location.pathname.substr(document.location.pathname.lastIndexOf("/"));
alert("Parent=" + srcParent + "\nFrame="+ srcName);
// found myself
if (srcParent == srcName) {
// set parent frame height to my height
frameList[i].height = document.body.offsetHeight;
// force scrolling off
frameList[i].scrolling = "no";
}
}
}
}
}
|
-
Scenario
Have some perl code that wants to access Microsoft SQL Server 2005. The SQL Server is configured to only allow SSL connections for security reasons.
Solution
Here are the parts you will need:
Resources
Microsoft guidance on accessing SQL Server with Perl http://technet.microsoft.com/en-us/library/bb497071.aspx
Thanks for Brian on helping figure this out :) ... I am just the messenger.
|
-
Scenario
Download your favorite image (or create one) and you want to exchange files with the guest OS. You are running Wi-fi and have to use the wired connection as your virtual network. You can access your image just fine through the Hyper-V Virtual Machine connection app but it doesn't support accessing host folders.
Solution
Remote Desktop to the rescue! Yes I know, this is old news, but read on for the problem you may encounter.
Problem
You start up remote desktop and try to access via IP and/or host name and you get that it is not there. Hmmm....
Real Solution
The problem may be that by default Remote Desktop will try to auto-detect a remote desktop gateway. When you are connected to the internet or you LAN you may encounter one! Just go over to the options/Advanced and choose to NOT use a gateway and voila! it works!
Now you can change your settings to share local host drives with your remote session (your guest VM) and start sharing!
|
-
Many clients I have worked with simply use the IISReset.exe command to recycle applications. Although this may have the desired affect sometimes, there are many alternatives that are better. By no means is this an exhaustive list but will give you some options when a specific website is causing problems (i.e. hung, OOM). Stopping a website doesn't reset memory or the worker process it just stops the website from processing the requests. Therefore, the website "start/stop" actions are not listed below.
Single Web Application "resets"
- Recommended: Recycle the application pool of the specific website's application pool. With Windows Server 2003 SP1 the command line is iisapp.vbs: Reference: http://blogs.iis.net/chrisad/archive/2006/08/30/Recycling-Application-Pools-using-WMI-in-IIS-6.0.aspx. You can use a process id /p or an application id with /a.
Examples: D:\WINDOWS>iisapp /p 596 /r Microsoft (R) Windows Script Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. Application pool 'DefaultAppPool' recycled successfully.
D:\WINDOWS>iisapp /a DefaultAppPool /r Microsoft (R) Windows Script Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. Application pool 'DefaultAppPool' recycled successfully.
Reseting ALL websites on a server (not recommended)
- Start and stop specific services for web services only (do not do the start commands if you are not recycling)
NET STOP W3SVC NET STOP HTTPFilter (if having problems with SSL) NET START HTTPFilter (if having problems with SSL) NET START W3SVC
- Use IISReset /NOFORCE , this causes the system to not forceable terminate the internet services if timeout or error occurs. Note: this will reset all IIS services that are enabled: FTP, NNTP, WWW, IISAdmin, etc.
- IISReset (without /NOFORCE) causes a forceable stop if doesn't respond within 60s (the stop default can be changed via command line). This may lead to IIS configuration loss (http://support.microsoft.com/kb/286196). Note: this will reset all IIS services that are enabled: FTP, NNTP, WWW, IISAdmin, etc.
- Reboot the server. Not recommended and may cause signficant data loss. Note: this attempts to shutdown or forcably shutdown all applications on the server not just IIS related.
- Power cycle the server. Not recommended and may cause signficant data loss. Note: this is extremely dangerous and only to be used when all other options (even one's not listed above) have been tried.
Hope this helps ...
|
-
Ever tried to install a printer by just giving users a link? Well here is a small snippet of one way to do this. Please note that since you are interacting with the OS (outside the browser) that you may receive security warnings. This has been tested on Vista SP1 x86 32 bit with IE7.
Code
<html> <head> <script type="text/vbscript"> function AddP(pName) msgbox "Start" Set WshNetwork = CreateObject("Wscript.Network") WshNetwork.AddWindowsPrinterConnection pName msgbox "Finished" end function </script> </head> <body> <a href='#' language="vbscript" onclick="AddP('\\Home-PC\HP Photosmart 3300 series')">Add printer</a> </body> </html>
Please note that above the a href should be ="#" not single quotes.
|
-
-
Scenario
You have a normalized table that has values in rows. Let's take an example that has a history table with an approved flag:
Date Approved DollarValue Customer 1/1/2008 Y 13.5 A 2/1/2008 N 12 A 3/1/2008 Y 14 A
1/1/2008 Y 11.5 B 2/1/2008 Y 9 B 3/1/2008 Y 17 B
1/1/2008 Y 13.5 C 2/1/2008 Y 29 C 3/1/2008 Y 18 C
You want to find know if all the customers with all 3 monthly values approved and the values are < 20. Now I know you can get at this result multiple ways but I just want to show how you can apply logic across rows.
First you know that there are 3 monthly records for all the months data and you are also looking for an approved.
SELECT DISTINCT Customer FROM MyTable WHERE Approved = 'Y' AND DollarValue < 20 GROUP BY Customer HAVING COUNT(Customer) = 3
You should see an output with only Customer B.
Similar techniques can be applied for OR and NOT.
|
-
Scenario
Recently I ran into a security issue that has a simple fix. Here is the situation:
- SSIS Package that contains a Script Task
- Run SSIS package as a SQL Job
- Use a special credential/proxy for the step of executing the SSIS package
Results
In the SQL Job History Log you may find something like this ... Code: 0x00000002 Source: XXXXX Script Task Description: The script threw an exception: Unable to generate a temporary class (result=1). error CS2001: Source file 'C:\WINDOWS\TEMP\yyyzzzxxx.N.cs' could not be found error CS2008: No inputs specified
Solution
Simple put,the VBA compiler has permissions to write the file into C:\windows\temp but your credential does not. Now the simple fix is to allow just read/read&execute/list permissions to C:\windows\temp and that will resolve the issue above. However, please not that there is a potential security risk in doing so as that this credential now has access to read all temp files in this directory. So be forewarned that this may not fit your situation.
Conclusion
Although not suggesting the ideal security solution, this may help you troubleshoot and further refine your strategy in running you SSIS package with a Script task with a custom credential/proxy.
|
-
I was working on a common scenario and found an interesting side effect. Applications typically have a listing page that get search criteria from a UI and passes to a stored procedure. In the procedure you often find statements like:
SELECT a,b,c,d FROM MyTable WHERE c = @SearchC AND d = @SearchD
Often times you need to join information to the main data that is the most current from a historical table. For example in SQL 2005.
SELECT t.* FROM (SELECT ID , Amt , AmtDepositDate , row_number() over (partition by ID order by ID, AmtDepositDate desc) as rn FROM MoneyTable ) t WHERE rn=1
I found that when you join the above query to the main search query above a weird optimization occurs in SQL 2005. I suspect (unconfirmed with product group) that a left join can't optmize the query with the over so it ends up do a sub select on all records every row in the main search.
The solution (in my case where there is small sets of data of < 5000 records), I create a table variable and select into the lasted record from the history table. Then I join the table variable to the main table search.
In my scenario with 2000 main records and 1 million history records the left join with the latest select (no table variable) took 5+ minutes. Using the table variables took 2 seconds for everything.
Here is a snippet of the overall solution:
DECLARE @MyTable table ( ID int ,Amt float ,AmtDepositDate datetime )
INSERT INTO @MyTable SELECT t.ID ,t.Amt , t.AmtDepositDate FROM ( SELECT ID , Amt , AmtDepositDate , row_number() over (partition by ID order by ID, AmtDepositDate desc) as rn FROM MoneyTable ) t WHERE rn=1
SELECT MT2.ID , MT2.Name , MT2.City FROM MyTable2 MT2 LEFT JOIN @MyTable MT ON MT2.ID = MT.ID WHERE c = @SearchC AND d = @SearchD
Anyone experience similar or can offer up an reason for the optimization?
|
-
Scenario A table that contains several columns that you need to take and change into rows in order to normalize the data. With SQL Server 2005, a new T-SQL command UNPIVOT can help. An example table:
**Table called MyTable FieldID FieldOne FieldTwo FieldThree 1 abc 3.40 2008-03-03 00:00:00.000 2 def 4.00 2008-01-02 00:00:00.000
**Table Design FieldID is an integer FieldOne is char(10) FieldTwo is decimal(14,2) FieldThree is a datetime
Sample Code SELECT FieldId, FieldCode, FieldValue FROM ( SELECT FieldId, CONVERT(varchar(50), RTRIM(FieldOne )) AS FieldOne, CONVERT(varchar(50), FieldTwo) AS FieldTwo, CONVERT(varchar(50), FieldThree) AS FieldThree FROM SampleUnpivot ) MyTable UNPIVOT (FieldValue FOR FieldCode IN (FieldOne, FieldTwo, FieldThree))AS MyUnPivot
Results
FieldID FieldCode FieldValue 1 FieldOne abc 1 FieldTwo 3.40 1 FieldThree Mar 3 2008 12:00AM 2 FieldOne def 2 FieldTwo 4.00 2 FieldThree Jan 2 2008 12:00AM
Notes
- If you have differnt data types make sure they are of the same time in the UNPIVOT IN clause
- Make sure to include the "ID" field (FieldID column in example above) to determine original record relationship
|
|
|
|