Jan 20

 

 

You can download from here: 

 

http://www.microsoft.com/downloads/details.aspx?FamilyID=b33d2c78-1059-4ce2-b80d-2343c099bcb4&displaylang=en

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
Jan 20

MSDN resource

 

http://msdn.microsoft.com/en-us/vbasic/dd819153.aspx

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
Tags:
Jan 20

MSDN resource

 

http://msdn.microsoft.com/en-us/vbasic/dd819153.aspx

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
Tags:
Jan 20

Great article here: 

http://blog.willbeattie.net/2009/07/hosting-net-mvc-on-rackspacecloud-cloud.html

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
Jan 11

Back in December M$ stated that Visual Studio 2010 would be released circa March 22, 2010. According to this post from Scott Guthrie (aka ScottGu) the release has been pushed back a "few weeks" to allow for a public release candidate at some point in February 2010. Check out his post here:

http://weblogs.asp.net/scottgu/archive/2009/12/17/visual-studio-2010-and-net-4-0-update.aspx

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
Jul 08

The initial (final) release of Subsonic 3 doesn't include support for Views.  To add support you can try the following:

Open SQLServer.ttinclude Find the query that load the tables ( search form 'const string TABLE_SQL') then change it to

const string TABLE_SQL=@"SELECT *
    FROM  INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE='BASE TABLE'
    union
    select Table_catalog, table_schema, table_name, 'View' table_type
    from information_schema.views"
;

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
Jul 08

This is for Subsonic 3 (Final) and will not work for early versions.

 

 

For all those who may be having table naming issues with Subsonic3 T4 templates I have a quick and dirty (not really well thought out) snippet for renaming classes properly in case of conflict with C# Keywords or badly named table names (i.e. - tables starting with numbers).

 

First in the settings.ttinclude template I changed the CleanUp() method to the following (simple one liner): 

 

    string CleanUp(string tableName){

   string result=tableName;

    

   //strip blanks

   result=result.Replace(" ","");

    

   //put your logic here...

    

   //return result;

return Inflector.CleanName(result);

    }

 

 

Second, scroll down in the settings.ttinclude file to the Inflector class (not sure if this is the right place, but work with me) and add the following two static methods to the class.  

public static string PrefixName(string name)

        {

            return "_" + name;

        }

public static string CleanName(string name)

{

name= name.Replace("$","")

.Replace(" ", "_")

.Replace("-","_")

.Replace(".", "_")

.Replace(@"/","")

.Replace(@"\","")

.Replace("'","")

.Replace("#", "_");

if(name.Length>0)

{

int result;

if(int.TryParse(name.Substring(0, 1), out result))

{

name="_"+name;

}

}else{

name = "_NoName"; // add a date hashcode here

}

switch (name)

            {

                case "abstract":

                    return PrefixName(name);

                    break;

                case "event":

                    return PrefixName(name);

                    break;

                case "new":

                    return PrefixName(name);

                    break;

                case "struct":

                    return PrefixName(name);

                    break;

                case "as":

                    return PrefixName(name);

                    break;

                case "explicit":

                    return PrefixName(name);

                    break;

                case "null":

                    return PrefixName(name);

                    break;

                case "switch":

                    return PrefixName(name);

                    break;

                case "base":

                    return PrefixName(name);

                    break;

                case "extern":

                    return PrefixName(name);

                    break;

                case "object":

                    return PrefixName(name);

                    break;

                case "this":

                    return PrefixName(name);

                    break;

                case "bool":

                    return PrefixName(name);

                    break;

                case "false":

                    return PrefixName(name);

                   break;

                case "operator":

                    return PrefixName(name);

                    break;

               case "throw":

                    return PrefixName(name);

                    break;

                case "break":

                    return PrefixName(name);

                    break;

                case "finally":

                    return PrefixName(name);

                    break;

                case "out":

                    return PrefixName(name);

                    break;

                case "true":

                    return PrefixName(name);

                   break;

                case "byte":

                   return PrefixName(name);

                    break;

                case "fixed":

                    return PrefixName(name);

                    break;

                case "override":

                    return PrefixName(name);

                    break;

                case "try":

                    return PrefixName(name);

                    break;

                case "case":

                    return PrefixName(name);

                    break;

                case "float":

                    return PrefixName(name);

                    break;

                case "params":

                    return PrefixName(name);

                    break;

                case "typeof":

                    return PrefixName(name);

                    break;

                case "catch":

                    return PrefixName(name);

                    break;

                case "for":

                    return PrefixName(name);

                    break;

                case "private":

                    return PrefixName(name);

                    break;

                case "uint":

                    return PrefixName(name);

                    break;

                case "char":

                    return PrefixName(name);

                    break;

                case "foreach":

                    return PrefixName(name);

                    break;

                case "protected":

                    return PrefixName(name);

                    break;

                case "ulong":

                    return PrefixName(name);

                    break;

                case "checked":

                    return PrefixName(name);

                    break;

                case "goto":

                    return PrefixName(name);

                    break;

                case "public":

                    return PrefixName(name);

                    break;

                case "unchecked":

                    return PrefixName(name);

                    break;

                case "class":

                    return PrefixName(name);

                    break;

                case "if":

                    return PrefixName(name);

                    break;

                case "readonly":

                    return PrefixName(name);

                    break;

                case "unsafe":

                    return PrefixName(name);

                    break;

                case "const":

                    return PrefixName(name);

                    break;

                case "implicit":

                    return PrefixName(name);

                    break;

                case "ref":

                    return PrefixName(name);

                    break;

                case "case ":

                    return PrefixName(name);

                    break;

                case "ushort":

                    return PrefixName(name);

                    break;

                case "continue":

                    return PrefixName(name);

                    break;

                case "in":

                    return PrefixName(name);

                    break;

                case "return":

                  return PrefixName(name);

                   break;

                case "using":

                    return PrefixName(name);

                    break;

                case "decimal":

                    return PrefixName(name);

                    break;

                case "int":

                    return PrefixName(name);

                    break;

                case "sbyte":

                    return PrefixName(name);

                    break;

                case "virtual":

                    return PrefixName(name);

                    break;

                case "default":

                    return PrefixName(name);

                    break;

                case "interface":

                    return PrefixName(name);

                    break;

                case "sealed":

                    return PrefixName(name);

                    break;

                case "volatile":

                    return PrefixName(name);

                    break;

                case "delegate":

                    return PrefixName(name);

                    break;

                case "internal":

                    return PrefixName(name);

                    break;

                case "short":

                    return PrefixName(name);

                    break;

                case "void":

                    return PrefixName(name);

                    break;

                case "do":

                    return PrefixName(name);

                    break;

                case "is":

                    return PrefixName(name);

                    break;

                case "sizeof":

                    return PrefixName(name);

                    break;

                case "while":

                    return PrefixName(name);

                    break;

                case "double":

                    return PrefixName(name);

                    break;

                case "lock":

                    return PrefixName(name);

                    break;

                case "stackalloc":

                    return PrefixName(name);

                    break;

                case "else":

                    return PrefixName(name);

                    break;

                case "long":

                    return PrefixName(name);

                    break;

                case "static":

                    return PrefixName(name);

                    break;

                case "enum":

                   return PrefixName(name);

                    break;

                case "namespace":

                    return PrefixName(name);

                    break;

                case "string":

                    return PrefixName(name);

                    break;

                case "from":

                    return PrefixName(name);

                    break;

                case "get":

                    return PrefixName(name);

                    break;

                case "group":

                    return PrefixName(name);

                    break;

                case "into":

                    return PrefixName(name);

                    break;

                case "join":

                    return PrefixName(name);

                    break;

                case "let":

                    return PrefixName(name);

                    break;

                case "orderby":

                    return PrefixName(name);

                    break;

                case "partial":

                    return PrefixName(name);

                    break;

                case "select":

                    return PrefixName(name);

                    break;

                case "set":

                    return PrefixName(name);

                    break;

                case "value":

                    return PrefixName(name);

                    break;

                case "var":

                    return PrefixName(name);

                    break;

                case "where":

                    return PrefixName(name);

                    break;

                case "yield":

                    return PrefixName(name);

                    break;

               default:

                   return name;

            }

}

That's it!  All done, it may not fix everything but it fixed everything for my particular database. Feel free to modify and contribute back to community.  My database suffered from having table names like "__" (without parens) and 2006Statistics, etc...  in some cases, some had the same names as the c# keywords and the big switch statement totally worked.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
Jul 02

 

This in my opinion is the awesome and will help me out immensely when working on some VB projects.  It's so annoying to have to type an _ everytime you want to hit enter on a multi-line statement.  Uggh, in any case, read on to find out more.  This was pulled directly out of the MS document that cna be found here.

Implicit Line Continuation

The underscore character is used in Visual Basic to indicate that the current logical line is being split up over one or more physical lines.  Visual Basic 10.0 removes the requirement for an underscore to be present after certain tokens where its presence can be inferred (i.e. the line continuation character becomes “implicit”).  While the need to use underscore has not been entirely removed from the language, the intention is that developers will not have to use it in the vast majority of lines they write.

At a high level, the line continuation character is implicit in the following situations:

1.       After an attribute

2.       After a comma

3.       After a dot (i.e. for method invocation)

4.       After a binary operator

5.       After a LINQ query clause

6.       After a (, {, or <%=

7.       Before a ), }, or %>

The following code demonstrates some of the places where implicit line continuation can be used:

    <Attribute()>

    Function Go(

                    ByVal x As Integer,

                    ByVal y As Integer,

                    ByVal z As Integer

                )

        Dim query =

            From n In {

                       123,

                       456,

                       789

                      }

            Order By n

            Select n +

                   x

 

    End Function

 

The following tokens carry an implicit line continuation:

Token

Before

After

,

 

X

(

 

X

)

X

 

{

 

X

}

X

 

<%=

 

X

%>

X

 

< (in an attribute)

 

X

> (in an attribute)

X

 

Aggregate

X

X

Distinct

X

X

From (in a query)

X

X

From (in a collection initializer)

 

X

Group By

X

X

Group Join

X

X

Join

X

X

Let

X

X

Order by

X

X

Select (in query context)

X

X

Skip

X

X

Skip While

X

X

Take

X

X

Take While

X

X

Where

X

X

In

X

X

Into

X

X

On

X

X

Ascending

X

X

Descending

X

X

^ Operator

 

 X

* Operator

 

X

/ Operator

 

X

\ Operator

 

X

Mod Operator

 

X

+ Operator (unary and binary)

 

X

^= Operator

 

X

*= Operator

 

X

/= Operator

 

X

\= Operator

 

X

+= Operator

 

X

-=Operator

 

X

<<= Operator

 

X

>>= Operator

 

X

&= Operator

 

X

< Operator

 

 X

<= Operator

 

X

> Operator

 

X

>= Operator

 

X

= Operator

 

X

<> Operator

 

X

Is Operator

 

X

IsNot Operator

 

X

Like Operator

 

X

& Operator

 

And Operator

 

 X

Or Operator

 

X

Xor Operator

 

X

AndAlso Operator

 

X

OrElse Operator

 

X

<< Operator

 

 X

>> Operator

 

X

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
Tags:
Jul 01

MVC Lovers can now run their apps on Linux and Apache!  The release 2.4.2 of the Mono platform from Novell is now able to run ASP.NET MVC applications with this release.  

I am very impressed with the rate of progresss with this group, especially for being an OSS project.  Very ineteresting stuff.  There is also some P/Invoke interoperability via a new tool called M/Invoke.  Be sure to check it out!  

 

Here are the release notes from http://www.mono-project.com/Release_Notes_Mono_2.4.2

Mono 2.4.2 is a portable and open source implementation of the .NET framework for Unix, Windows, MacOS and other operating systems.

Major Highlights

Mono 2.4.2 is a bugfix release for Mono 2.4, which is the foundation for Novell's own long-term support Mono-based product.

In addition to bug fixes, this release includes the following major changes from 2.4.0:

  • We now ship Microsoft's ASP.NET MVC stack and ASP.NET MVC applications can run with Mono.
  • xbuild has been updated
  • Removed non-free amqp0-8.xml documentation.

Changes in Mono 2.4

XSP now has Silverlight mime types registered.

Updated the browser database.

The C# Shell (csharp) will now accept C# scripts specified on the command line, like:

$ csharp demo.cs

A major bug was fixed for multi-threaded applications using XPath, if you are using XPath in a multithreaded application, we strongly recommend that you upgrade to this version.

 

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList
Jun 29

Strong naming is very helpful when you are trying to run asp.net applications under the Medium Trust settings imposed by organizations and most Shared Host ISPs.  I found a great blog post on this process, I've listed it below:

 

Great article on strong naming an assembly here

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList