mvc open pdf in browser : Bulk pdf to jpg control software utility azure html wpf visual studio Expert_.NET_Delivery_Using_NAnt_and_CruiseControl_.NET_200536-part1085

CodeSmith
Finally, CodeSmith, the work of Eric Smith, is available at www.ericjsmith.net. It comes in two
flavors: a commercial studio offering with an IDE and some helpful utilities—a must if you are
using it seriously—and a free template runner. You can work with all of the examples in the
book with the free edition, but once again, you may find that you become hooked on the tool
very quickly. I know I did.
Script Editing
Running NAnt from the command line is fun for a while, as is trying to remember all of the
task names and their attributes. Eventually, though, it is a good idea to select a favorite text
editor to help out. An obvious choice is Visual Studio .NET to build and run the scripts. It is
possible to perform NAnt editing using VS .NET, but I have found it generally unsatisfactory
and cumbersome. NAnt feels unwieldy when the VS .NET editor is used on it; it may just be
apersonal thing, though. On the other hand, since a NAnt schema is available you can gain
IntelliSense inside VS .NET (which can be a big plus) by placing the XML Schema in the rele-
vant folders in the VS .NET installation. You can find full details on this at
http://nant.sourceforge.net/wiki/index.php/FAQ.
As you can tell, I prefer something more lightweight than VS .NET for script work. I am a
big fan of EditPlus. I have owned a copy ever since I used to hang around on the Microsoft
VBScript newsgroups and learned that Michael Harris, VBScript guru, recommended it. I think
it is one of my favorite tools, and all I really do with it is use the edit window. You can down-
load a trial or purchase a license at www.editplus.com.
So, having eschewed the power of VS .NET in favor of the lightweight EditPlus, I also con-
figure EditPlus to run NAnt inside the editor. This is a fairly simple thing to do.
Firstly, select Configure Tools, as shown in Figure A-6, which also shows the EditPlus
window.
Next, set the tool settings, as shown in Figure A-7. Note that I have set NAnt to run the
version of NAnt that I have placed in my PATH environment variable, but as discussed earlier,
if you are using multiple versions of NAnt side by side, you need various tool configurations,
not just one. Also, note that the name of the file to run is automatically supplied to the NAnt
executable. Finally, note that I have set the hotkey to prompt for additional arguments, and to
capture the output in the output window.
APPENDIX A A FISTFUL OF TOOLS
344
Bulk pdf to jpg - Convert PDF to JPEG images in C#.net, ASP.NET MVC, WinForms, WPF project
How to convert PDF to JPEG using C#.NET PDF to JPEG conversion / converter library control SDK
bulk pdf to jpg; c# convert pdf to jpg
Bulk pdf to jpg - VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.net, ASP.NET MVC, WinForms, WPF project
Online Tutorial for PDF to JPEG (JPG) Conversion in VB.NET Image Application
pdf to jpeg; change pdf to jpg
Figure A-6.The EditPlus application
Figure A-7.Configuring NAnt in EditPlus
APPENDIX A A FISTFUL OF TOOLS
345
C# Imaging - Planet Barcode Generation Guide
Draw, paint PLANET bar codes on images of jpeg/jpg, png, gif, and bmp formats. Creating single or bulk PLANET bar codes on documents such as PDF, Office Word
changing pdf file to jpg; convert pdf file to jpg file
When I press Ctrl+1, I am prompted for arguments. Once I enter those arguments and
click OK, the output appears in the output window, as can be seen in the bottom right of
Figure A-8.
Figure A-8.NAnt output in EditPlus
With these steps complete, working with NAnt becomes even more fun. You can do
almost everything in the EditPlus environment rather than having to fire up command lines.  
Other Tools
These are a selection of other tools that you may need to run the full examples in the book, or
that we used to produce analysis and artifacts in the production of the book. 
FxCop.This is the Microsoft code analyzer with an extensible rules framework for verify-
ing that your code complies with Microsoft’s own internal standards. It is available at
www.gotdotnet.com.
NUnit.This is the de facto framework for unit testing in .NET. It is available at http://
nunit.org.
NUnit2Report.This is a helpful NAnt task for producing better reports on NUnit logs than
the ones that accompany NAnt. It is available at http://nunit2report.sourceforge.net.
APPENDIX A A FISTFUL OF TOOLS
346
NDoc.This is a great utility for the production of documentation files in an MSDN style
(among other styles). You can download the full tool from http://ndoc.sourceforge.net,
but keep in mind that the relevant libraries are packaged with NAnt already. I recommend
that you obtain the full tool, though.
Reflector.This is a must-have for any .NET developer; you can disassemble and review
.NET libraries in a snap in a way that ILDASM could only dream of. It has a raft of avail-
able add-ins and is constantly being refined. Reflector is available from www.aisto.com/
roederalong with some other great tools—particularly the “Boulderdash”-clone game!
Enterprise Architect.You have to use this fantastically feature-rich UML modeling IDE to
experience its depth. It costs a bit but nothing in comparison to its rivals, such as Rational
XDE. It is available as a 30-day trial from www.sparxsystems.com.au.
Together .NET.While I use Enterprise Architect for serious modeling, Together .NET is
great for more agile programming. It is effectively a visualizer for the code models, but it
allows superb code production through drag-and-drop class modeling and the like, and
itincludes automated refactoring features and lets you generate sequence diagrams. It is
available from www.borland.com.
Refactory.Another great refactoring tool, Refactory also has metrics information and is
useful for rapid identification of code complexity. The metrics can be called from the
command line, which means they can be automated in NAnt. Refactory is available from
www.xtreme-simplicity.net
Resharper.This is like IntelliSense, except it is so much better—and it keeps your code
tidy. Resharper is available from JetBrains at www.jetbrains.com.
APPENDIX A A FISTFUL OF TOOLS
347
NAnt Sweeper 
T
o round off the book, it seemed like a good idea to consider a task that NAnt really is not
suited for. After many chapters of emphatic praise for the tool, what task should be considered
a “bridge too far”?
This was a tough challenge indeed, but my erstwhile colleague, Alex Hildyard, came up
with an answer. Over the period of a few months, Alex struggled to translate my vague ideas
into a workable process and sharpened our existing applications into deliverable products,
soit was always likely that he would go “over the edge” at some point.
Alex writes:
Having played around with NAnt for a while,I had the impulse to do some-
thing eccentric with it.This was partly to test its limits,and also to show that
Build Controllers can be geeks too.I settled on Minesweeper for several reasons.
Firstly,it’s a small,self-contained puzzle,and therefore even a prolix language
like NAnt should be able to express it in a couple of hundred lines.Secondly,the
algorithm at the heart of Minesweeper—the logic that uncovers a jagged block
of mine-free squares—is easy to formulate as either an iterative or a recursive
rule,and therefore it should be well suited to a declarative language like NAnt.
Finally,Minesweeper is a game with which most of us are familiar,so a NAnt
port would be likely to require minimal explanation.
However,the undertaking did present a number of challenges.An obvious hur-
dle was that NAnt knows nothing natively about graphics or user interaction.
That said,in theory there’s nothing to stop you coding a WinForms application
and persuading NAnt to run it as a “script”task.But this didn’t strike me as very
sporting,so I tried to find a way of implementing Minesweeper without
recourse to script.Since NAnt allows you to manipulate XML,albeit in a prim-
itive fashion,I decided to delegate the GUI to whatever browser was installed,
using XSLT to mark up the game grid and handle basic game logic (for exam-
ple,displaying a smiley-with-sunglasses when you win the game).The biggest
problem here was to find a way to concatenate and process the list of squares
that needed to be uncovered,while working with global variables.My solution
was to use a string of coordinate pairs,and then to uncover all the squares in
the string successively.The method in question (revealSquares) calls itself
349
APPE NDIX B
■ ■ ■
APPENDIX B NANT SWEEPER
350
recursively until it determines that no further changes are required.Ultimately
though,I had to admit defeat when it came to the comparatively simple task of
soliciting user input and getting the resultant row and column into NAnt vari-
ables.Accordingly NAnt Sweeper does include a single script block,although it
does little more than read a couple of integers from the command line.I did
consider one other possible way of doing things which would have made this
unnecessary.This would have involved modifying the XML file so that the
board was embedded in a form,and clicking on a square caused the form to
repost itself to the server with the row and column and a request for a “.build”
file in the query string.You could then open IIS and configure “.build”as a cus-
tom MIME type which simply passed the row and column to the NAnt script for
execution,and then piped back the “minefield.xml”file when the script had
finished executing.But not everyone runs IIS,and I thought the command line
version was sufficient to make the point.Anything further,as they say,is left as
an exercise for the reader.
Ladies and gentlemen, we give you NAnt Sweeper. NAnt Sweeper is a port of the
Minesweeper game that comes with Microsoft Windows. The main points of this application
are as follows:
The game relies on a NAnt script and some script tasks to handle the input of coordinates
into the Minesweeper map. 
It uses an XML file to maintain the map information and uses an XLST style sheet to
transform the map into an HTML version of the Minesweeper interface. 
The<xmlpoke>task is used judiciously to alter the status of the map.
Theminefield.batfile is called during each turn to reload and re-style the XML-based
map file.
You can have some fun investigating Alex’s work on your own, but it’s even more fun to
play the game itself!
Playing NAnt Sweeper
To begin a new game, simply double-click on the NAntSweeper.batfile. The NAnt Sweeper
screen, shown in Figure B-1, will appear with no squares uncovered. 
Figure B-1.The NAnt Sweeper GUI
A console window will appear and prompt you to enter a row and then a column number.
Inthis instance, I will choose Row 1, Column 4, as shown in Figure B-2.
Figure B-2.Inputting map coordinates into the NAnt Sweeper console UI
APPENDIX B ■ NANT SWEEPER
351
NAnt may take a little time to process the changes because of the number of recursive
calls that may be required to perform the reveal (remember, we did mention that this may not
be the best use of NAnt). Once the processing is complete, the GUI will be updated, as shown
in Figure B-3.
Figure B-3.Phew! No mine.
This time, I will choose Row 1, Column 2. As you can see in Figure B-4, I have failed to
clear this map. Ah well, I was never very good at such games.
APPENDIX B NANT SWEEPER
352
Figure B-4.Oh dear! Game over.
As you can imagine, we have had endless fun with NAnt Sweeper. I hope it will be included
as part of the regular NAnt package sometime soon. Great job, Alex!
APPENDIX B ■ NANT SWEEPER
353
Numbers and Symbols
- (dash)
for preventing execution of individual
targets, 41
{} (curly brackets)
use of in XSLT vs. use in NAnt, 309
A
A Guide to Software Configuration
Management (Artech House, 2000)
by Alexis Leon, 24
Advanced .NET Remoting (Apress, 2002)
by Ingo Rammer, 166
aggressive library management
folders used in, 143
Agile Database Techniques:Effective
Strategies for the Agile Software
Developer (Wiley, 2003)
by Scott Ambler, 250, 277
analyze task
planning for database integration, 229
app.config file
for configuration of VSSManager
application, 159
in Etomic.ShareTransformer.Tests
assembly, 258
applyLabel attribute
in the sourcecontrol element, 179–180
artifactDirectory element
in ccnet.config file, 178
<asminfo> [NAnt] task
generating an assemblyinfo.cs style file
with, 74–75
for updating CommonAssemblyInfo.cs
file, 107–108
assemblies
versioning for Transformer application,
106–108
assembly names
importance of naming for the solution
and project name, 141
asset management
for database integration, 254
assets and source control
in configuration management, 13–14
<attrib> [NAnt] task
for allowing a build file to change file
attributes, 71
for making CommonAssemblyInfo.cs
read-write, 108
attributes
using for tasks, 61–62
automated build
vs. continuous integration (CI), 168
automated delivery, 6, 8–9
environment as core aspect for successful,
9–12
as part of Design to Deliver, 18
standardization as crucial aspect of, 9–11
automated integration task, 237–249
automated x process
defined, 23
B
basedir attribute
of Project node, 42
best practices
overview, 327–329
Beyond Software Architecture:Creating and
Sustaining Winning Solutions
(Addison-Wesley, 2003)
by Luke Hohmann, 24
“Bob Leaves!” scenario, 3, 5
BooleanValidator attribute, 62
BooleanValidatorAttribute class
code revealed by opening the code to, 204
Brian Nantz
Open Source .NET Development:
Programming with NAnt,NUnit,
NDoc,and More (Addison-Wesley,
2004) by, 58
build files
comparing, 146–148
creating, 145–152
creating for Transformer application,
100–101
differences between, 146–148
feed file for identification of assemblies,
305–306
general organization of, 145
naming convention properties, 146
project node as root node of, 42
refactoring, 148–152
structures and elements in construction
of, 41–46
various properties defined and used in,
46–52
Index 
355
Documents you may be interested
Documents you may be interested