Wednesday, July 11, 2007

I have been having odd locking issues when using solutions that have  a c# project that is referenced by a c++/cli project.  This would happen in  VS 2003 and VS2005.  What could cause this horrid behavior?  Intellisense.  It has been locking the C#/VB output file while it updates.  Which means no building of the solution. 

While I am on Intellisense I have found many things in VC require it.  You need Intellisense to go to declarations and definitions, you even need it for the winforms designer to work.  Yet it is so utterly broken a large project will take any system to its knees with every press of the space bar.

posted by Aaron Fischer on Wednesday, July 11, 2007 10:07:04 AM (Pacific Standard Time, UTC-08:00)   #    Comments [0]
 Tuesday, July 10, 2007

February 27th as the day for launch of Windows Serve 2008, SQL Server 2008 and Visual Studio.

posted by Aaron Fischer on Tuesday, July 10, 2007 9:30:26 AM (Pacific Standard Time, UTC-08:00)   #    Comments [0]
 Monday, July 09, 2007

 

Extortion in the 21th century.  Pay me if you want to use that computer of yours.

Is Micro Bill Systems legit or Ransomware - Hosts News

At least they have the money to litigate any company that thinks their software should be removed.

posted by Aaron Fischer on Monday, July 09, 2007 7:50:17 AM (Pacific Standard Time, UTC-08:00)   #    Comments [0]
Public Module ConversionModule

    Public Sub UpdateToCLI()

        SeachAndReplaceDocumentPointers("System::")

        SeachAndReplaceDocumentPointers("nsoftware::IPWorksSSL::IPWorksSSLException")
        SeachAndReplaceDocumentPointers("nsoftware::IPWorksSSL::HttpsStatusEventArgs")
        SeachAndReplaceDocumentPointers("nsoftware::IPWorksSSL::HttpsStatusEventArgs")
        SeachAndReplaceDocumentPointers("C1::Win::C1FlexGrid::")
        SeachAndReplaceDocumentPointers("C1::")

        FindReplace("__gc ", "ref ")
        FindReplace("__property", "property")
        FindReplace("__try_cast", "safe_cast")
        FindReplace(" S""", " """)
        FindReplace("(S""", "(""")
        'FindReplace("    S"",""")

        NewToGCnew("System") 
        NewToGCnew("nsoftware")
        NewToGCnew("C1FlexGrid")
        NewToGCnew("C1::")


        ReplaceTypeOf()
        ReplaceItemOf()
        FindReplace("->ItemOf", "->default")
        FindReplace("->Item", "->default")


    End Sub

    Sub SeachAndReplaceDocumentPointers(ByVal ManagedNameSpaceToken As String)

        SeachAndReplacePointers(ManagedNameSpaceToken + "*\*", "^")
        SeachAndReplacePointers(ManagedNameSpaceToken + "\*", "^")
        SeachAndReplacePointers(ManagedNameSpaceToken + "*^ &", "%")
        SeachAndReplacePointers(ManagedNameSpaceToken + "*^&", "%")
        SeachAndReplacePointers(ManagedNameSpaceToken + "*^ \*", "%")
        SeachAndReplacePointers(ManagedNameSpaceToken + "*^\*", "%")
    End Sub
    Sub SeachAndReplacePointers(ByVal What As String, ByVal ReplaceWith As String)
        Do
            DTE.Windows.Item(DTE.ActiveDocument.Name).Activate()
            DTE.Find.FindWhat = What
            DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
            DTE.Find.MatchCase = False
            DTE.Find.MatchWholeWord = False
            DTE.Find.Backwards = False
            DTE.Find.MatchInHiddenText = False
            DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
            DTE.Find.Action = vsFindAction.vsFindActionFind
            If (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then
                Exit Do
            Else
                DTE.ActiveDocument.Selection.CharRight()
                DTE.ActiveDocument.Selection.DeleteLeft()
                DTE.ActiveDocument.Selection.Text = ReplaceWith
            End If
        Loop

    End Sub
    Sub FindReplace(ByVal What As String, ByVal ReplaceWith As String)
        DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
        DTE.Find.FindWhat = What
        DTE.Find.ReplaceWith = ReplaceWith
        DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
        DTE.Find.MatchCase = False
        DTE.Find.MatchWholeWord = False
        DTE.Find.MatchInHiddenText = False
        DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
        DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
        DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
        DTE.Find.Execute()
    End Sub
    Sub NewToGCnew(ByVal Type As String)

        Do
            DTE.Find.FindWhat = " new " + Type + "*"
            DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
            DTE.Find.MatchCase = False
            DTE.Find.MatchWholeWord = False
            DTE.Find.Backwards = False
            DTE.Find.MatchInHiddenText = False
            DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
            DTE.Find.Action = vsFindAction.vsFindActionFind
            If (Not (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound)) Then
                DTE.Find.Action = vsFindAction.vsFindActionReplace
                DTE.Find.ReplaceWith = " gcnew "
                DTE.Find.FindWhat = " new "
                DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
                DTE.Find.MatchCase = False
                DTE.Find.MatchWholeWord = False
                DTE.Find.Backwards = False
                DTE.Find.MatchInHiddenText = False
                DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
                DTE.Find.Execute()
            Else
                Exit Do
            End If
        Loop
    End Sub
    Sub ReplaceTypeOf()
        Do
            DTE.Find.FindWhat = "__typeof(*)"
            DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
            DTE.Find.MatchCase = False
            DTE.Find.MatchWholeWord = False
            DTE.Find.Backwards = False
            DTE.Find.MatchInHiddenText = False
            DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
            DTE.Find.Action = vsFindAction.vsFindActionFind
            If (Not (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound)) Then
                DTE.ActiveDocument.Selection.CharLeft()
                DTE.ActiveDocument.Selection.CharRight(True, 9)
                DTE.ActiveDocument.Selection.Delete()

                DTE.Find.FindWhat = ")"
                DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
                DTE.Find.MatchCase = False
                DTE.Find.MatchWholeWord = False
                DTE.Find.Backwards = False
                DTE.Find.MatchInHiddenText = False
                DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
                DTE.Find.Action = vsFindAction.vsFindActionFind
                If (Not (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound)) Then
                    DTE.ActiveDocument.Selection.Text = "::typeid"
                End If
            Else
                Exit Do
            End If
        Loop
    End Sub
    Sub ReplaceItemOf()
        Do
            DTE.Find.FindWhat = "get_ItemOf"
            DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
            DTE.Find.MatchCase = False
            DTE.Find.MatchWholeWord = False
            DTE.Find.Backwards = False
            DTE.Find.MatchInHiddenText = False
            DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
            DTE.Find.Action = vsFindAction.vsFindActionFind
            If (Not (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound)) Then
                DTE.ActiveDocument.Selection.Delete()
                DTE.ActiveDocument.Selection.Text = "default["

                DTE.Find.FindWhat = ")"
                DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
                DTE.Find.MatchCase = False
                DTE.Find.MatchWholeWord = False
                DTE.Find.Backwards = False
                DTE.Find.MatchInHiddenText = False
                DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
                DTE.Find.Action = vsFindAction.vsFindActionFind
                If (Not (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound)) Then
                    DTE.ActiveDocument.Selection.Text = "]"
                End If
            Else
                Exit Do
            End If
        Loop

    End Sub
    Sub WrapCStringWithSystemString()

        DTE.ActiveDocument.Selection.Text = " gcnew System::String( " + DTE.ActiveDocument.Selection.Text + " )"
    End Sub
    Sub WrapSystemStringWithCString()

        DTE.ActiveDocument.Selection.Text = " CString( " + DTE.ActiveDocument.Selection.Text + " )"
    End Sub
    Sub WrapValueArray()
        DTE.ActiveDocument.Selection.Text = "array< " + DTE.ActiveDocument.Selection.Text + " > ^"
    End Sub
    Sub WrapHandle()
        DTE.ActiveDocument.Selection.Text = "(HWND)" + DTE.ActiveDocument.Selection.Text + ".ToPointer()"
    End Sub
    Sub ConvertToNull()
        DTE.Find.Action = vsFindAction.vsFindActionFind
        DTE.Find.FindWhat = "NULL"

        DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
        DTE.Find.MatchCase = False
        DTE.Find.MatchWholeWord = False
        DTE.Find.MatchInHiddenText = False
        DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
        DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
        DTE.Find.Action = vsFindAction.vsFindActionFind
        DTE.Find.Execute()
        DTE.ActiveDocument.Selection.Text = "nullptr"
    End Sub
    Sub updateDefaultI()
        DTE.Find.Action = vsFindAction.vsFindActionFind
        DTE.Find.FindWhat = "default(i)"

        DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
        DTE.Find.MatchCase = False
        DTE.Find.MatchWholeWord = False
        DTE.Find.MatchInHiddenText = False
        DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
        DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
        DTE.Find.Action = vsFindAction.vsFindActionFind
        DTE.Find.Execute()
        DTE.ActiveDocument.Selection.Text = "default[i]"
    End Sub
    Sub UpdateToGCNew()

        DTE.Find.Action = vsFindAction.vsFindActionFind

        DTE.Find.FindWhat = " new "
        DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
        DTE.Find.MatchCase = False
        DTE.Find.MatchWholeWord = False
        DTE.Find.Backwards = False
        DTE.Find.MatchInHiddenText = False
        DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
        DTE.Find.Execute()
        DTE.ActiveDocument.Selection.Text = " gcnew "

    End Sub
    Sub UpdateHat()

        DTE.Find.Action = vsFindAction.vsFindActionFind

        DTE.Find.FindWhat = "\*"
        DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
        DTE.Find.MatchCase = False
        DTE.Find.MatchWholeWord = False
        DTE.Find.Backwards = False
        DTE.Find.MatchInHiddenText = False
        DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxWildcards
        DTE.Find.Execute()
        DTE.ActiveDocument.Selection.Text = "^"

    End Sub
    Sub UpdateHatAndGcNew()
        UpdateHat()
        UpdateToGCNew()
    End Sub
End Module
posted by Aaron Fischer on Monday, July 09, 2007 7:19:06 AM (Pacific Standard Time, UTC-08:00)   #    Comments [0]
 Wednesday, July 04, 2007

Mithun reports that Apple has licensed Exchange ActiveSync for the I phone.

Apple licensing Microsoft's Exchange ActiveSync protocol for the iPhone...
posted by Aaron Fischer on Wednesday, July 04, 2007 10:17:58 AM (Pacific Standard Time, UTC-08:00)   #    Comments [1]

Automation and Extensibility Reference

Functionality Differences Between Visual Studio Macros and Visual Studio

How to: Run Macros

Macros Samples

 I'll follow up with the macros I used to convert my project from managed extensions to C++/CLI

posted by Aaron Fischer on Wednesday, July 04, 2007 6:46:57 AM (Pacific Standard Time, UTC-08:00)   #    Comments [0]
 Tuesday, July 03, 2007

Visit Photojojo for a  11 tips to better fireworks photos

posted by Aaron Fischer on Tuesday, July 03, 2007 12:31:25 PM (Pacific Standard Time, UTC-08:00)   #    Comments [0]
 Wednesday, June 27, 2007

Today we find Jeff trying to spend his ad revenue Supporting Open Source Projects in the Microsoft Ecosystem perhaps the most interesting comment was not a suggestion for which lowly OSS to toss money at and make dance but a far more serious question:

So here you have all of these people raving about the OSS projects/products that are making their lives easier and I just have to wonder how many of them have contributed anything at all to these projects themselves?

Do we need Jeff to go out and get a list so that HE can contribute something on our behalf? How many of you who raved about Paint.NET actually clicked on the "donate" link and sent in a few dollars? BTW, I have.

Get off of your lazy butts and do this yourself instead of bashing Microsoft for not contributing to the tools that YOU say are helping YOU save time and money!

"I find Paint.NET useful and think it's a great program. Why isn't Microsoft paying them money so that I can continue to use it for free?". Sheesh!

-Matt on June 27, 2007 07:45 AM

But OSS isn't about money at least not on the DotNet side, its about passion, shared owner ship and community(Money has its perks just look at Mono, FireFox and Community Server.).  But the failure of the OSS communities, the difficult times they living is by no means caused by MS or a lack thereof. Rather this failure rests souly on the PM's shoulder.  The arrogant and elite leadership of the OSS project. The very leader ship that tells all willing to help "your not trust worthy" go do our dirty work and write documentation, file a bug report, donate your money.  Yes life can be difficult when one builds them selves up into the Ivory tower. 

To be sure this does not describe all projects but look in to a failing OSS project and you will find a broken leader. 

posted by Aaron Fischer on Wednesday, June 27, 2007 6:38:26 PM (Pacific Standard Time, UTC-08:00)   #    Comments [0]

 Found this in the new MSDN help.  Pretty nice feature this rebuild after an assembly change has driven us nuts for years. 

Managed Incremental Build Support
The compiler supports managed incremental builds

When you specify this option, the compiler will not recompile code when a referenced assembly changes. Instead it will perform an incremental build. Files are recompiled only if the changes affect the dependent code. For more information, see General Property Page (Project).

What's New in Visual C++ Codename "Orcas"

 

I have notice the online MSDN is much better now.  Slow but I do like the article version specific note along with links to newer and older versions.

image
posted by Aaron Fischer on Wednesday, June 27, 2007 2:22:39 PM (Pacific Standard Time, UTC-08:00)   #    Comments [0]
 Tuesday, June 26, 2007

For full details check Scott's announcement DasBlog 1.9.7 Release - Final ASP.NET 1.1 Version

This will be the last version written for dot net 1.1 and the blog engine that could will move off to the richer 2.0 class library.  The next milestone will be DasBlog 2.0 which will be compiled under Visual Studio 2005 ( One could use Orcas) and run in medium trust environments.  This should allow for DasBlog to run in most hosted environments.

posted by Aaron Fischer on Tuesday, June 26, 2007 6:03:24 AM (Pacific Standard Time, UTC-08:00)   #    Comments [0]