| Data Store Entry |
Created | Actions |
|
CodeXchange.net Addin for Visual Studio.NET:
A snippet-sharing tool for .NET developers
|
7/9/2005 6:37 PM
kevinlsw
|
Detail View
New Window
Move/Edit
|
|
ASP.NET.4GuysFromRolla.com: Getting the Most Out of Visual Studio .NET:
The steps for creating a Web Form Wizard in both Visual Basic .NET and C# can be
found at: Building
a Custom Web Form Wizard in Visual Studio .NET. Brendan Tompkins also offers
up a discussion on customizing Visual Studio .NET templates in his blog entry Visual
Studio .NET Templates - Modifying Your Default Templates.
|
7/8/2005 2:50 PM
nick
(Modified 7/8/2005 3:23 PM)
|
Detail View
New Window
Move/Edit
Full Text
|
|
C++: The Most Powerful Language for .NET Framework Programming:
What would also be nice is if you could allow code outside of your assembly
to read the property value, but only allow code inside of your assembly to write
it. You can use an access specifier inside the curly braces following the
property name to achieve this. property String^ Name
{
public:
String^ get();
private public:
void set(String^);
}
One last thing worth noting about the property support is that it supports a
shorthand syntax for those cases where you do not need any special processing
for getting and setting a property. property String^ Name;
Again, the compiler will generate the get_Name and set_Name
methods, but this time will also provide a default implementation backed by a
private String^ member variable. The advantage of this, of course, is
that in the future you can replace the simple property with a more interesting
property implementation and it will not break the interface contract of the
class. You get the simplicity of a field with the flexibility of a property.
|
5/24/2005 1:04 AM
nick
|
Detail View
New Window
Move/Edit
Full Text
|
|
C# -> Java converter... that works?:
Mainsoft's tool is a Visual Studio add-on which compiles C# to Java byte code
instead of to IL. They include a class library that provides support for .NET
Framework stuff.
I was ultra-skeptical, but in practice, this tool is working surprisingly
well. We had to make very few changes to the OpsLib code, all fairly minor. The
resulting Java version of OpsLib passes our suite of regression tests, and that
speaks volumes about the quality of work Mainsoft has done. Those tests are
truly sadistic.
|
4/29/2005 10:05 AM
jcohen
|
Detail View
New Window
Move/Edit
Full Text
|
|
BOO:
Boo is a new object oriented statically typed programming language for the Common Language Infrastructure with a
python inspired
syntax and a special focus on language and compiler extensibility.
|
4/6/2005 1:06 PM
nick
|
Detail View
New Window
Move/Edit
Full Text
|
|
ILMerge:
ILMerge
is a utility for merging multiple .NET assemblies into a single .NET
assembly. It works on executables and dlls alike. It comes with several
options for controlling the processing and format of the output, see
the accompanying documentation for details.
|
3/28/2005 2:38 PM
nick
|
Detail View
New Window
Move/Edit
|
|
LibCheck:
This
tool allows you to compare two versions of an assembly, and determine
the differences. The tool reports the differences as a combination of
'removed' and 'added' APIs.
|
3/28/2005 2:37 PM
nick
(Modified 3/28/2005 2:39 PM)
|
Detail View
New Window
Move/Edit
|
|
devAdvantage - static rules application:
Nice tool that can apply simple static rules for .NET compliance and some error checking.
Has the ability to "auto-fix" most things which saves some time.
It was crashing on me initially but support was fast.
There's a free version that does some nice things. You then pay for certain rule add-on packs.
|
2/3/2005 2:19 PM
jcohen
|
Detail View
New Window
Move/Edit
|
|
Thinstall:
Microsoft .NET developers can use Thinstall to link the needed portions of the
.NET Framework into a single EXE that runs without any installation. Programs
can even run directly from CDROM.
|
1/6/2005 12:40 PM
nick
|
Detail View
New Window
Move/Edit
Full Text
|
|
Simplified Database Unit testing using Enterprise Services:
This is an interesting technique. I have been just deleting and recreating a test database, and all the test data before each unit test. Performance has been tolerable thus far, but I can see how it might not scale. -Nick
What we want is to be able to
achieve the transaction functionality without all the overhead of writing our
own custom Transaction manager class as prescribed in James? book. How do we do
that? With COM+ Enterprise services.
|
6/23/2004 11:36 AM
nick
|
Detail View
New Window
Move/Edit
Full Text
|
|
Google Search: uploading large files with .net:
There is a solution for large uploads with ASP.NET. You can use
SoftArtisans FileUp v4.0, or the soon-to-be-released FileUpEE
(Enterprise Edition). Both come with a custom ISAPI filter that you
install in IIS. When you upload in .NET, the FileUp ISAPI filter
handles the files and prevents memory from being swamped by the file.
The Enterprise Edition can do multi-step
client-to-webserver-to-fileserver transfers with SOAP.
|
4/24/2004 12:44 AM
nick
|
Detail View
New Window
Move/Edit
Full Text
|
|
C# 2.0:
Spec changes for C# 2.0. They seem to be adding a lot of things that take C# back towards the organization of C++ rather than that of Java.
They are now allowing anonymous classes for delegates like in Java. That?s not so bad.
They are adding ?generics? meaning C++ templates. As usual this is a mixed bag.
They are adding ?iterators? that generate sequences. I suppose that?s OK, but I don?t see much benefit.
The worst part is ?partial classes.? This means that the definition of a single class can now span any number of files. The scary part is this quote from the spec: ?Partial types allow classes, structs, and interfaces to be broken into multiple pieces stored in different source files for easier development and maintenance.? Easier maintenance? Yikes.
They?ve done some other things that muddy the language. For example, in this new spec they added 3 new keywords. However they didn?t want to break existing code, so these keywords can also be used as normal identifiers. How?s that for confusing?
If they keep on like this it will be C++ all over again. Maybe it?s there already!
-Jason
|
11/5/2003 6:27 PM
nick
|
Detail View
New Window
Move/Edit
|
System.CodeDom:
The System.CodeDom namespace contains classes that can be used to
represent the elements and structure of a source code document. These elements
may be used to model the structure of a source code document that may be output
as source code in a supported language using the functionality provided by the
System.CodeDom.Compiler namespace
|
3/9/2003 1:29 AM
nick
|
Detail View
New Window
Move/Edit
Full Text
|
.NET Framework: Building, Packaging, Deploying, and Administering Applications and Types -- MSDN Magazine, February 2001:
.NET Framework: Building, Packaging, Deploying, and Administering Applications and Types -- MSDN Magazine, February 2001
Part II
|
2/11/2003 12:35 PM
jcohen
|
Detail View
New Window
Move/Edit
|
How to serialize in .NET:
For a long time I couldn't serialize objects in .NET because I kept getting an error upon Unserialize which said that it couldn't find the assembly that saved this object, even though it was the executing assembly!
There is a flag on both binary and XML serializers (but curiously it is not present on their shared parent object) which lets you set whether the full path to the assembly or just the short name will be stored.
Then when you deserialize you need a custom assembly loader. You only want it installed when you load one of your objects.
I now provide sample code that works properly in my own project. It's quite general and should work for serializing any object in binary form. If you want XML form, just change the Formatter type. Of course you need to change the "CodeHistorian" string in the assembly resolver routine. You could make this routine completely general by extracting that string from the executing assembly object, but I didn't bother with this.
///
/// serialize object into a binary stream
///
public static void SerializeBinary(object obj, Stream binaryStream)
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
formatter.AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple;
formatter.Serialize(binaryStream,obj);
}
///
/// unserialize object from a binary stream
///
public static object UnserializeBinary(Stream binaryStream)
{
object result;
ResolveEventHandler reHandler = new ResolveEventHandler(ResolveCurrentAssembly);
System.AppDomain.CurrentDomain.AssemblyResolve += reHandler;
try
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
result = formatter.Deserialize(binaryStream);
}
finally
{
System.AppDomain.CurrentDomain.AssemblyResolve -= reHandler;
}
return result;
}
private static System.Reflection.Assembly ResolveCurrentAssembly(object sender, ResolveEventArgs e)
{
if (e.Name == "CodeHistorian")
return System.Reflection.Assembly.GetExecutingAssembly();
return null;
}
|
2/7/2003 11:19 AM
jcohen
|
Detail View
New Window
Move/Edit
|
COM+ and MTS, DCOM and MSMQ, Serialization in .NET:
One of the underlying considerations when using COM Interop is the overhead
incurred. .NET and COM use different execution methods (.NET uses the Common
Language Runtime; COM does not) and .NET assemblies and COM components are
implemented differently (.NET uses a type standard while COM uses a binary
standard). Calling from one environment to the other adds some amount of
overhead, so only do it when necessary. In fact, there are approximately 20 to
30 CPU instructions executed for each Interop operation. When you call a method
on a class that is hosted in COM+, this overhead is incurred during each
call.
If you absolutely must have features that COM+ or MTS provide, then
host your component in COM+ or MTS and make sure you need all that
functionality. If your component is performing transactions on a single database
and will always work against only one database, then you don't necessarily need
COM+ to implement those transactions; you can implement them with ADO.NET.
However, if you need object pooling or transaction support for multiple
databases, then use COM+ or MTS.
|
2/6/2003 6:46 PM
nick
|
Detail View
New Window
Move/Edit
|
Windows Forms FAQ:
Windows Forms FAQ
|
1/17/2003 3:43 PM
jcohen
|
Detail View
New Window
Move/Edit
|
C# Corner: C# and .NET Developer's Network:
C# Corner: C# and .NET Developer's Network
|
1/17/2003 3:42 PM
jcohen
|
Detail View
New Window
Move/Edit
|
Regular Expression Library -- presented by ASPSmith.com Training:
Regular Expression Library -- presented by ASPSmith.com Training
|
1/17/2003 3:42 PM
jcohen
|
Detail View
New Window
Move/Edit
|
Windows Forms FAQ:
Welcome to the Windows Forms FAQ. Questions & Answers in this FAQ are
from newsgroup posts, various mailing lists and the employees of Syncfusion. I
have tried to mention the source wherever I could. If you think that you should
be credited for an answer, please send me a
note and I will be happy to add a credit mention.
If you have a FAQ or any other good Windows Forms resource, please send me
a note. You can also access the Windows
Forms FAQ forum for more information.
|
1/16/2003 4:45 PM
jcohen
|
Detail View
New Window
Move/Edit
|