Sandor Korozsi’s linkblog

  .NET Framework, C#, Smartphone, Pocket PC, Managed DirectX, Game development
Development, LinkMay 24, 2006 9:32

Script# brings the C# developer experience (programming and tooling) to Javascript/Ajax world. Yep, I am finally publicly sharing a spare time project I’ve been working on the side in an off and on manner for some time now.

A Better Scripting Environment

The fundamental goal was to improve the state of the art in scripting. This goes way beyond the usual things that come to mind at first thought: compile-time checking, and intellisense or statement completion. I do think these are super-useful, and would be valuable in and of themselves. As we worked on Atlas we were also thinking of a great tools experience, and we explored different approaches and technologies for achieving this. Script# is a prototype of one such exploration. It attempts to address some programming environment requirements:

  • A clean language with the natural constructs. Today with script, you can go a long ways in simulating OOP (classes, interfaces, inheritance etc.), but the simulations are thrown at the face of the developer. Various C# constructs such as properties, events, and syntax for defining inheritance go a long way in making the code readable. Similarly modifier keywords like public vs. protected vs. internal, sealed vs. virtual etc. help define a better object model. All of this can be brought into the scripting world.
  • Easier refactoring and exploration. Script development could benefit immensely from the refactoring, and class browsing support already present in the IDE and in tools such as .NET Reflector. Both lend themselves to having a more manageable code base over time.
  • Ability to generate documentation. Again doc-comments from C# and the existing infrastructure could be leveraged here.
  • Ability to customize the script code easily. For example, I’ll show debug vs. release and minimization below. The same idea could apply to building a version of the script that had more error checking or logging built in when you do need to run diagnostics. The approach could also be used to include instrumentation for the purposes of profiling, measuring code coverage, etc. Another interesting aspect of this project is that it will be able to generate script catering to multiple script profiles such as the current Javascript language, as well as Javascript 2 when it appears.
Development, Link, Tool 8:44

Stampa Tool for producing printing reports in .NET applications. The basic idea is to create XML based templates that store information about page looks, and eventually to load these templates from within your program, fill them with data and print. Features include: - Human-readable XML output - Parameterized reports - Binding to dynamic data tables - Display charts in your reports - Export in PDF and XSL-FO format.

Development, ToolMay 19, 2006 12:51

Lucene.Net is a powerful open-source search engine for .NET:

  • Very good performance
  • Ranked search results
  • Search query highlighting in results
  • Searches structured and unstructured data
  • Metadata searching (query by date, search custom fields…)
  • Index size approximately 30% of the indexed text
  • Can store also full indexed documents
  • Pure managed .NET in a single assembly
  • Very friendly licensing (Apache Software License 2.0)
  • Localizable (support for Brazilian, Czech, Chinese, Dutch, English, French, German, Japanese, Korean and Russian included in DotLucene National Language Support Pack)
  • Extensible (source code included)
  • Lucene.Net is a port of Jakarta Lucene to .NET (C#) maintained by George Aroush
  • Project home: http://incubator.apache.org/lucene.net/
  • Index is compatible with the Java version (Lucene)
Link, Tool 12:50

Seekafile Server is a Windows Service that indexes DOC, PDF, XLS, PPT, RTF, HTML, TXT, XML, and other file formats on the background.

The main goal of this project is to demonstrate the power of DotLucene - the fastest open-source search engine for .NET.

Development, Link, ToolMay 18, 2006 13:13

SQLiteSpy is a fast and compact GUI database manager for SQLite. It reads SQLite 3 files and executes SQL against them. Its graphical user interface makes it very easy to explore, analyze, and manipulate SQLite databases

Development, Link, Tool 13:12

dp.SyntaxHighlighter is a free JavaScript tool for source code syntax highlighting.

The script is meant to help a developer to post code snippets online with ease and without having to worry about applying format. People who use blogs like MovableType, .Text (dotText), dasBlog and any other system can easily add code to their posts.

Development, Link, ToolMay 3, 2006 9:52

SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. Features include:

 

  • Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.
  • Zero-configuration - no setup or administration needed.
  • Implements most of SQL92.
  • A complete database is stored in a single disk file.
  • Database files can be freely shared between machines with different byte orders.
  • Supports databases up to 2 terabytes (241 bytes) in size.
  • Sizes of strings and BLOBs limited only by available memory.
  • Small code footprint: less than 250KiB fully configured or less than 150KiB with optional features omitted.
  • Faster than popular client/server database engines for most common operations.
  • Simple, easy to use API.
  • TCL bindings included. Bindings for many other languages available separately.
  • Well-commented source code with over 95% test coverage.
  • Self-contained: no external dependencies.
  • Sources are in the public domain. Use for any purpose.

The SQLite distribution comes with a standalone command-line access program (sqlite) that can be used to administer an SQLite database and which serves as an example of how to use the SQLite library.

Development, Link, Tool 9:47

Burn Folder Recursive with NeroCOM in C# (forum post)

NeroFiddlesNET.zip (26KB).

DirectX, Development, Link 8:04

Download C# DirectX Control and Source Code (version 7)
See copyright notice

This is a DirectX control I wrote as a base to make DirectX applications easier to write.  Just create a form, plop down the control, write a draw function, and voila - you’re in business. 

The Direct3d class sets up the DirectX device, and is responsible for maintaining and drawing all of the visible controls.  It can resize itself to fit the form or it can go to full screen mode.  Use the DxLoaded event to create your AutoMesh’s, AutoTexture’s, and AutoVertexBuffer’s.  Use the DxRender3d event to draw your scene.

The AutoMesh, AutoTexture, AutoVertexBuffer, and AutoIndexBuffer classes manage the DirectX objects so that you don’t have to recreate them when the device is lost and restored.

Jeremy Spiller