SpriteHand
Module Border
  Most recent blog entries
Module Border
How many .NET Languages?
Andy's Blog By Andy Beaulieu on 8/30/2004 6:56 PM

Another useless yet interesting metric: How many languages are available to the .NET CLR? There is at least a partial list here - http://www.gotdotnet.com/team/lang/

update 12/12/2004 - Got a site that is a bit more maintained - http://dotnetlanguages.net/DNL/Resources.aspx

Ada Ada
APL Dyalog APL
AsmL AsmL is the Abstract State Machine Language for .NET
CAML Microsoft Research F#
Cobol Fujitsu Cobol
Delphi Borland Delphi
Forth Delta Forth
Eiffel Interactive Software Engineering Eiffel for .NET
Fortran Lahey/Fujitsu Fortran for .NET
Fortran Salford FTN95 for Microsoft .NET
Haskell Hugs98 for .NET
Lisp DotLisp - Lisp dialect for .NET
Lua Lua.NET embedded scripting language
Mercury Melbourne University Mercury Project
Mixal Mixal for .NET
ML Standard ML from Microsoft Research
Mondrian Mondrian for .NET
Nemerle hybrid functional/OO language for .NET
Oberon ETH Active Oberon for .net
Pascal Queensland University Component Pascal
Perl ActiveState Perl Dev Kit with PerlNET
PHP PHP_Sharp compiler for .NET
Prolog Compiles Prolog to C#
Python ActiveState Python for .NET Research
RPG ASNA Visual RPG
Ruby NetRuby interpreter
Ruby Ruby/.NET Bridge
Scheme Northwestern University Hotdog Scheme
Scheme Tachy (Scheme-like) language
Scheme Indiana University Scheme.NET
Smalltalk SmallScript from SmallScript LLC
Smalltalk #Smalltalk compiler

Comments (2)

How many classes in the framework?
Andy's Blog By Andy Beaulieu on 8/28/2004 7:49 AM
I've had people ask me, and wondered myself, just how big the .NET framework is. There is an interesting post here that uses reflection to get a count: 4760 classes, 119656 methods. Of course, that is version 1.1 of the framework. Just how big will 2.0 be?
Comments (0)

Filtering TextBox Input
Andy's Blog By Andy Beaulieu on 8/20/2004 8:56 AM

Sometimes it's handy to create an inherited textbox that only accepts certain keys. For example, a textbox for inputing a monetary value. To do so, create a new user control, then change it's inherits clause to System.Windows.Forms.TextBox. You can then implement the KeyPress event to filter out any ANSI keyvalues. You can also implement the KeyDown event to handle other control keys such as the arrow keys.

Note that setting Handled = True will prevent the textbox from processing the key.

   Private Sub ucTextBoxFilter_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

            ' allow only numerics

            If Not IsNumeric(e.KeyChar) Then

                e.Handled = True

            End If

    End Sub

Comments (0)

A Simple Threading Sample for WindowsForms
Andy's Blog By Andy Beaulieu on 2/1/2004 8:28 PM

You can use a separate thread to, for example, fill a long ListBox without making the user wait. You must create a delegate and use the Invoke method on the form (or a control) so that the separate thread can safely update the UI. Here is an example that fills a ListBox with all customers from a separate thread. Note that the data comes from a simple Middle-Tier component, which is beyond the scope of this post.

Imports System.Threading

 

Public Class frmThreadUI

    Inherits System.Windows.Forms.Form

    Private Sub LoadCustomers()

        ' this function will execute on a separate thread.

        Dim dsCustomers As CustomerSet = Customer.GetAll()

        ' call our threadsafe DisplayCustomers from our separate thread

        DisplayCustomers_ThreadSafe(dsCustomers)

    End Sub

 

    Private Sub DisplayCustomers_ThreadSafe(ByVal dsCustomers As CustomerSet)

        ' this is a threadsafe method called from the separate worker thread

        Dim oDel As New DisplayCustomersDelegate(AddressOf Me.DisplayCustomers)

        Dim args() As DataSet = {dsCustomers}

        Me.Invoke(oDel, args)

    End Sub

    ' define a delegate (signature) for the callback.

    Delegate Sub DisplayCustomersDelegate(ByVal dsCustomers As CustomerSet)

 

    Private Sub DisplayCustomers(ByVal dsCustomers As CustomerSet)

        ' display the customer list in the ListBox

        lstCustomers.DataSource = dsCustomers.Tables(0)

        lstCustomers.DisplayMember = "CompanyName"

        lstCustomers.ValueMember = "CustomerId"

    End Sub

 

    Private Sub frmThreadUI_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' give a "loading" message.

        lstCustomers.Items.Add("Loading... please wait.")

 

        ' kick off a separate thread to load the Customers into a ListBox

        Dim oTS As New ThreadStart(AddressOf LoadCustomers)

        Dim oThread As Thread = New Thread(oTS)

        oThread.Start()

    End Sub

End Class

Comments (0)

Populating a Crystal Report from DataSets
Andy's Blog By Andy Beaulieu on 1/14/2004 9:00 AM

In an n-tier application using Crystal Reports, it is necessary to populate reports from offline DataSets instead of using a direct DB connection. This class allows feeding a Crystal Report with 1 or more DataSets (in the case of subreports, you can have the DataSets in the same order as they appear in the main Crystal Report).

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Public Class CCrystalUtilities

    Public Shared Function GetReportDocument(ByRef oRpt As ReportDocument, ByRef dsDataSets() As DataSet) As ReportDocument

        ' this function accepts a Path to a report and an array of DataSets to use
        ' to fill the report (in the case of nested reports, we need to use multiple
        ' datasets per report)

        Dim iDataSetNum As Integer

        ' set the main report's DataSource
        oRpt.SetDataSource(dsDataSets(iDataSetNum))
        iDataSetNum += 1

        Dim mySection As Section
        Dim mySections As Sections
        Dim myReportObject As ReportObject
        Dim myReportObjects As ReportObjects
        Dim mySubReportObject As SubreportObject
        Dim mySubRepDoc As New ReportDocument()

        'Declare all of the sections of the main report
        mySections = oRpt.ReportDefinition.Sections

        'Loop through the sections in the main report to find the 
        'subreport(objects)
        'then open the subreport and set the datasource to the subreport()

        For Each mySection In mySections
            myReportObjects = mySection.ReportObjects

            For Each myReportObject In myReportObjects
                If myReportObject.Kind = ReportObjectKind.SubreportObject Then
                    'Subreport Found - convert the report to a sub report type
                    mySubReportObject = CType(myReportObject, SubreportObject)

                    'Set the specific instance of this subreport
                    mySubRepDoc = mySubReportObject.OpenSubreport(mySubReportObject.SubreportName)

                    mySubRepDoc.SetDataSource(dsDataSets(iDataSetNum))
                    iDataSetNum += 1
                End If
            Next
        Next

        ' return the complete report
        Return oRpt

    End Function

End Class

Comments (5)

Module Border Module Border
Module Border
  Subscribe
Module Border
RSS   Twitter
Module Border Module Border
Module Border
  Diversions
Module Border

TALKING RAGDOLL
This Windows Phone 7 App was created using Silverlight, the  Physics Helper Library,  and the Farseer Physics Engine. It gets interesting when you import your friends photos and have your way with them!

MORE INFO



DROPPYPOP
This Windows Phone 7 game was created using Silverlight, the  Physics Helper Library,  and the Farseer Physics Engine.
DEMO

MORE INFO



BOSS LAUNCH
This physics game won first place in the Server Quest Contest. Created using Silverlight 2, the Physics Helper Library,  and the Farseer Physics Engine.
PLAY IT

MORE INFO



DESTROY ALL INVADERS
A scrolling shooter game where the objective is to destroy the invading UFO's flying over a neighborhood of your choosing. Imagery provided by Microsoft Virtual Earth. Created using Silverlight 2.
PLAY IT

INFO AND CODE



PHYSICS HELPER DEMOS
These demos were created for the Physics Helper Library, which makes it easy to create physics games and simulations using Expression Blend, Silverlight, and the Farseer Physics Engine.
PLAY IT

INFO AND CODE



HOOK SHOT
This little basketball game took first place in the TeamZoneSports Silverlight Contest. Created using Silverlight 2 and the Farseer Physics engine.
PLAY IT

MORE INFO



SORT THE FOOBARS
A game where you need to sort the good foobars from the bad ones. Created using Silverlight 2 and the Farseer Physics engine.
PLAY IT

MORE INFO



POLYGON PHYSICS DEMO
A demo showing polygon physics where the user draws physics objects with the mouse. Created using Silverlight 2 and the Farseer Physics engine.
PLAY IT

MORE INFO



SILVERLIGHT ROCKS!
Destroy the asteroids before they destroy your ship! Created using Silverlight 2.
PLAY IT

INFO AND CODE



FISH GAME
A simple game of harpoon-the-fish. Written using the AJAX Sprite Toolkit.
PLAY IT

INFO AND CODE

Module Border Module Border
Module Border
  Search_Blog
Module Border
Module Border Module Border
Module Border
  Blog_Archive
Module Border
Module Border Module Border
Copyright (c) 2013 andy.beaulieu.com - Login