Saturday, July 31, 2010
Bing Map Development Resorces
http://pietschsoft.com/page/Bing-Maps-for-Enterprise-Developer-Resources.aspx
- Posted using BlogPress from my iPhone
Friday, July 30, 2010
Silverlight Interactive SDK
http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm
Convert C# Solution to VB!
http://tangiblesoftwaresolutions.com/Product_Details/Instant_VB.html
12 Absolutely and Insanely Essential Utilities For Programmers
http://jpda.me/a04r4K
#1 ReSharper or CodeRush
#2 Fiddler and FireBug #3 Tortoise SVN
#4 TimeSnapper
#5 Instant VB….
#6 ExamDiff Pro
#7 AutoHotKey #8 Clipx
#9 Snip It Pro
#10 Evernote
#11 Mozy
#12 Mikago
#13 HTTrack
PDC 2009 On Demand
ILMerge to the Rescue?
Dru Sellers - http://codebetter.com/blogs/dru.sellers/
http://codebetter.com/blogs/dru.sellers/archive/2010/07/29/ilmerge-to-the-rescue.aspx
As I continue to work on the 'nu' story, one of the things I am thinking about a lot is how we are going to make this happen. Last week I also had the pleasure to spend some time talking about version management with Udi Dahan and Chris Patterson while they were both in Kansas City. While we discussed a variety of topics one of the things we discussed was how to manage dll dependencies. After this discussion I have come to my current 'thought.'
We should use ilmerge internal more. I have no doubt it has its issues but let me work this out. And then you can tell me what you think.
I am currently working on a new area of the Magnum project that is adding a nice abstraction on top of the file system. One of the features is handling zip files. For this I am using a third party library to handle all that nastiness. It was been a pleasure so far to work with. The problem is that in order to use this you now have to reference 3 assembilies:
Magnum.dll
Magnum.FileSystem.dll
Ionic.Zip.dll (DotNetZip)
So, some of this is due to the Magnum core philosophy that we are going to take dependencies with this library. So because I want to use Ionic.Zip I have to now have a new dll Magnum.FileSystem. That's fine but adding 3 references sucks. Not only that but I now have to add a new gem dependency for magnum as well. :( As I thought about this it occurred to me: "Why does the user care about Ionic.Zip?" the user never interacts with this library and if I replaced it with the next hot thing you wouldn't even know. :) Ok, so what if I just 'ilmerge' this bad boy in. What would happen? Well I think I would have fully encapsulated my code. And if I ilmerge internal it, you could actually use your own version of 'Ionic.Zip' and we wouldn't conflict with each other! How cool is that? Once, I have ilmerged that in I can probably just either drop the Magnum.FileSystem project or I can just ilmerge it in to Magnum as well. Suh-weet.
So lets take a second and think about what this would do for us as a process. Lets look at NHibernate:
NHibernate.dll
Antlr3.Runtime.dll
Iesi.Collections.dll
log4net.dll
YourByteCodeProvider and its dlls
NHibernate.dll of course that guy is going to stay around, he's the beef! What about Antlr3.Runtime.dll? If you are going to use Antlr3.Runtime in your own project do you want to be limited/constricted to whatever NHibernate is using? I would think not, so that puppy gets ilmerged in. Iesi.Collections? Gotta be honest, I should probably use more set based classes, but I don't; and when I do I use HashedSet
So lets take a look at MassTransit. A fully configured MassTransit setup (at least as of now) could put the following dlls into your mix:
MassTransit.dll
MassTransit.Infrastructure.dll
MassTransit.Transports.{YourTransportChoice}.dll
MassTransit.{YourContainerChoice}.dll
{YourContainersStuff}.dll (from 1 to possibly 4 dlls)
That a whopping 5 dlls, and if you use the saga support that is another 7-8 dlls, bringing the total to what could be 13 dlls. Schnikeys!
So as you can see, its not a 100% win, but I THINK the idea is going in the right direction. Framework builders, lets try to encapsulate our dependencies and ilmerge internal them. It will give our users a better experience and should make our out of the box experience that much better.
Please let me know what you think. Is this trash? Or is it good?
Thursday, July 29, 2010
List of Podcasts for .NET Programmers
Scott Hanselman - Microsoft
http://www.hanselminutes.com/
.Net Rocks!
http://www.dotnetrocks.com/
This week on Channel 9 - Microsoft
http://jpda.me/dk495U
Great list and article by Scott hanselman at Microsoft!
http://jpda.me/9XDc6S
Microsoft Street Slide takes on Google Street View and Wins!
The Essence of Driving – A Crash Course in Project Management
http://jpda.me/ctvl4Z
Wednesday, July 28, 2010
Microsoft #XAML Toolkit CTP – July 2010
Free Useful web Tools for Developers
The following links are some great free tools
1. Convert Files
Easily convert different file formats. You can convert images, download YouTube video and much more with this web tool.
2. Joongel
Are you a power searcher? Then this tool this for you. You simultaneously search different search engines in different categories. It can be very useful if you are doing an online research.
3. Quick Thumnail
Simply create thumbnails in different sizes right from your browser. You can upload an image from your computer or web directory and choose sizes of the thumbnails you want.
4. ScreenCastle
Free screen cast application very light weight.
5. DevCheatSheet
Google for hours for cheat sheet you saw last week. You can find it in DevCheatSheets.com
Tuesday, July 27, 2010
SQL I/O Performance Measures
SELECT TOP 25
q.[text],
(total_logical_reads/execution_count) AS avg_logical_reads,
(total_logical_writes/execution_count) AS avg_logical_writes,
(total_physical_reads/execution_count) AS avg_phys_reads,
Execution_count
FROM sys.dm_exec_query_stats
cross apply sys.dm_exec_sql_text(plan_handle) AS q
ORDER BY
(total_logical_reads + total_logical_writes) DESC
Windows Intune
Intune encompasses the following functionality:
- Antivirus: Using the same underlying technology from Forefront Endpoint Protection and Microsoft Security Essentials, Intune can perform real-time and scheduled virus scans on systems.
- License Management: If you purchase your licenses through a volume license agreement, Intune can have those licenses loaded into it and perform a system inventory to help you ensure that you stick to the terms of your licensing.
- Monitoring and Alerting: Using a system similar to Systems Center Operations Manager, Intune can alert you when there is a problem with a desktop, such as a virus infection or a failed hard drive.
- Update Deployments: Intune can manage your system updates and patches and give you control over which patches get deployed to which systems and verify that the patches have been applied.
- Remote Assistance: You can use Intune to access your PCs to perform remote problem solving.
- Policy Management: Intune has functionality for controlling certain aspects of Windows via policies. If you currently use Group Policy, your Group Policy settings will override Intune’s if there is a conflict. The full list of Intune’s policy capabilities can be found here.
Visual Studio 2010 Quick Reference Guidance
The artifacts include an overview document and poster that allows you to quickly focus on individual areas like testing, by providing crisp and compact guidance sheets and quick reference posters. You can take these to your 5-min coffee break discussions or use them as a stepping stone to the more detailed and in-depth guidance you will find on MSDN.
http://vs2010quickref.codeplex.com/
Class Designer PowerToys for Visual Studio 2010 is Released
It has many cool features like pan/zoom window, floating properties window, fast navigation, etc. You could find the detailed feature list in its help document which is available on the desktop after the Class Designer PowerToys is installed.
Besides the binary, the source code is also available. You could extend the PowerToys easily.
This set of add-ins augments existing functionality in the Visual Studio Class Designer and the Distributed Systems Designers. It now supports Visual Studio 2005, Visual Studio 2008 and Visual Studio 2010. The Design Tools Enhancements add-in provides a common set of features that can be used by both the Class Designer and the Distributed System Designers, such as pan/zoom window and rich formatting commands. The Class Designer Enhancements add-in provides additional functionality for the Visual Studio Class Designer, such as HTML export and nested type creation commands. This download includes all necessary source code and a Visual Studio project template for creating your own add-ins for the Visual Studiodesigners. The Class Designer is a developer productivity tool available in Visual Studio Standard Edition and above, which allows developers to easily visualize, design, refactor, and document their code. The Distributed System Designers enable software architects, operations managers, and developers to visually design service-oriented solutions and validate them at design time against their operational environments. The Distributed System Designers are a core component of Visual Studio Team Edition for Software Architects and the Visual Studio Team System.
http://modeling.codeplex.com/releases/view/49473
Monday, July 26, 2010
How to cast objects between real data types and proxy data types
dim person as new myNamespace.person
dim person2 as new servicereference1.person
person = person2
This can be an issue and while there are options such as hard coding the mapping it your self or using reflection to map the object, there is a better way.
AutoMapper is an object-object mapper. Object-object mapping works by transforming an input object of one type into an output object of a different type. What makes AutoMapper interesting is that it provides some interesting conventions to take the dirty work out of figuring out how to map type A to type B. As long as type B follows AutoMapper's established convention, almost zero configuration is needed to map two types.
This is a nice option when you need to move an object between the two types.
http://automapper.codeplex.com/wikipage?title=Getting%20Started&referringTitle=Home
Tuesday, July 20, 2010
VS 2010 productivity tools update
http://bit.ly/anOFQf
- Posted using BlogPress from my iPhone
Friday, July 16, 2010
Vacation Reading List
Most of what I have collected are blog posts and articles. I have a single "book" I am bring which is "Micrsoft .Net Architecting Applications for the Enterprise" (MSPress Dino Espositio and Andrea Saltarello).
Here are some of the articles I plan to take in;
C++ Beginner's Guide - http://msdn.microsoft.com/en-us/beginner/cc305129.aspx
Code-First Development with Entity Framework 4 - http://bit.ly/b9KZFk
EF CTP4 Walkthrough: Code First - http://blogs.msdn.com/b/adonet/archive/2010/07/14/ctp4codefirstwalkthrough.aspx
Learning WCF RIA Services - http://jpda.me/aSDX9x
Microsoft Beginner Developer Learning Center
http://msdn.microsoft.com/en-us/beginner/default.aspx
C++ Beginner's Guide
RAMMap v1.1
By Mark Russinovich and Bryce Cogswell
Published: June 23, 2010
Have you ever wondered exactly how Windows is assigning physical memory, how much file data is cached in RAM, or how much RAM is used by the kernel and device drivers? RAMMap makes answering those questions easy. RAMMap is an advanced physical memory usage analysis utility for Windows Vista and higher. It presents usage information in different ways on its several different tabs:
Use Counts: usage summary by type and paging list
Processes: process working set sizes
Priority Summary: prioritized standby list sizes
Physical Pages: per-page use for all physical memory
Physical Ranges: physical memory addresses
File Summary: file data in RAM by file
File Details: individual physical pages by file
Use RAMMap to gain understanding of the way Windows manages memory, to analyze application memory usage, or to answer specific questions about how RAM is being allocated. RAMMap’s refresh feature enables you to update the display and it includes support for saving and loading memory snapshots.
For definitions of the labels RAMMap uses as well as to learn about the physical-memory allocation algorithms used by the Windows memory manager, please see Windows Internals, 5th Edition.
Code-First Development with Entity Framework 4
http://bit.ly/b9KZFk
EF CTP4 Walkthrough: Code First
http://blogs.msdn.com/b/adonet/archive/2010/07/14/ctp4codefirstwalkthrough.aspx
Thursday, July 15, 2010
NETSH.EXE Explained
Netsh.exe is a tool an administrator can use to configure and monitor Windows-based computers at a command prompt. With the Netsh.exe tool, you can direct the context commands you enter to the appropriate helper, and the helper then carries out the command. A helper is a Dynamic Link Library (.dll) file that extends the functionality of the Netsh.exe tool by providing configuration, monitoring, and support for one or more services, utilities, or protocols. The helper may also be used to extend other helpers.
You can use the Netsh.exe tool to perform the following tasks:
- Configure interfaces.
- Configure routing protocols.
- Configure filters.
- Configure routes.
- Configure remote access behavior for Windows-based remote access routers that are running the Routing and Remote Access Server (RRAS) Service.
- Display the configuration of a currently running router on any computer.
- Use the scripting feature to run a collection of commands in batch mode against a specified router.
netsh [-r router name] [-a AliasFile] [-c Context] [Command | -f ScriptFile]
To display a list of subcontexts and commands that can be used in a context, type the context name followed by a space and a ? at the netsh> command prompt. For example, to display a list of subcontext and commands that can be used in the /routing context, type routing ? at the netsh> command prompt, and then press ENTER.
Contexts
Context strings are appended to the Netsh.exe tool command and are passed to an associated helper. The helper may have one or more entry points that map to contexts. Some of the contexts available in the Netsh.exe tool are:
Context Command: /dhcp
Result: Changes to the Dynamic Host Configuration Protocol (DHCP) context.
Context Command: /ras
Result: Changes to the Remote Access Server (RAS) context.
Context Command: /routing
Result: Changes to the routing context.
Context Command: /wins
Result: Changes to the Windows Internet Name Service (WINS) context.
Contexts may also nest within other contexts. For example, the following contexts operate within the netsh>ras context:
Context Command: /ip
Result: Changes to the Internet Protocol (IP) context.
Context Command: /ipx
Result: Changes to the Internetwork Packet Exchange (IPX) context.
Context Command: /netbeui
Result: Changes to the NetBios Enhanced User Interface (NETBEUI) context.
The following subcontexts operate within the netsh>routing ip context:
Context Command: /autodhcp
Result: Changes to the autodhcp subcontext.
Context Command: /dnsproxy
Result: Changes to the dnsproxy subcontext.
Context Command: /igmp
Result: Changes to the Internet Group Membership Protocol (IGMP) subcontext.
Context Command: /mib
Result: Changes to the Management Information Base (MIB) subcontext.
Context Command: /nat
Result: Changes to the Network Address Translation (NAT) subcontext.
Context Command: /ospf
Result: Changes to the Open Shortest Path First (OSPF) subcontext.
Context Command: /relay
Result: Changes to the relay subcontext.
Context Command: /rip
Result: Changes to the Routing Information Protocol (RIP) subcontext.
Netsh.exe Commands
The following additional commands can be used with the Netsh.exe tool:
NOTE: Optional parameters are shown in brackets ([ ]). Alternative entries are shown with a pipe (|) character between them.
Context Command: /?
Result: Displays help.
Context Command: /abort
Result: Discards any changes made in offline mode. No effect in online mode.
Context Command: /add helper DLL-name
Result: Installs the helper .dll file in netsh.exe.
Context Command: /alias [alias-name] [string1] [string2 ...]
Result: If /alias, lists all aliases. If /alias alias-name, displays the equivalent string. If /alias alias-name string1 string2 ..., sets alias-name to the specified strings.
Context Command: /bye
Result: Exits the program.
Context Command: /commit
Result: Commits any changes made in the offline mode to the router. No effect in the online mode.
Context Command: /delete helper .dll file name
Result: Removes the helper .dll file from Netsh.exe.
Context Command: /dump -file name
Result: Dumps or appends configuration to a text file.
Context Command: /exec script file name
Result: Loads the script file and executes commands from it.
Context Command: /exit
Result: Exits the program.
Context Command: /h
Result: Displays help.
Context Command: /help
Result: Displays help.
Context Command: /offline
Result: Sets the current mode to offline. Any changes made in this mode are saved, but require a "commit" or "online" command to be set in the router.
Context Command: /online
Result: Sets the current mode to online. Any changes in this mode are immediately reflected in the router.
Context Command: /popd
Result: Pops a context from the stack.
Context Command: /pushd
Result: Pushes current context onto the stack.
Context Command: /quit
Result: Exits the program.
Context Command: /set mode [mode =] online | offline
Result: Sets the current mode to online or offline.
Context Command: /show alias | helper | mode
Result: If /show alias, lists all defined aliases. If /show helper, lists all top-level helpers. If /show mode, shows the current mode.
Context Command: /unalias alias name
Result: Deletes the specified alias.
WCF Peer to Peer
I am working on a project that requires a modified peer to peer design and found the following links very helpful;
Peer To Peer Programming with WCF and .Net 3.5 by Amit Bahree and Chris Peiris
http://msdn.microsoft.com/en-us/library/cc297274.aspx
Here are some great webcasts on Channel9 regarding the topic;
Peer to Peer Series Part 1: Intro to PNRP
Peer to Peer Series Part 2: Registering Names with PNRP API
Peer to Peer Series Part 3: Resolving Names Synchronously with the PNRP API
Peer to Peer Series Part 4: Resolving Peer Names Asynchronously
Peer to Peer Series Part 5: Direct Connect Peers via WCF
Peer to Peer Series Part 6: Introduction to PeerChannel
Wednesday, July 14, 2010
MSDN Radio
http://www.msdnradio.com/
Tuesday, July 13, 2010
Windows Phone 7 Developer Tools Beta Released
http://weblogs.asp.net/scottgu/archive/2010/07/12/windows-phone-7-developer-tools-beta-released.aspx
Monday, July 12, 2010
Learning WCF RIA Services
http://jpda.me/aSDX9x
PDC 2010 @ Microsoft Campus
http://www.microsoftpdc.com/
Introducing the Windows Azure Platform Appliance (Private Azure Cloud!)
Bob Muglia announced an exciting new addition the Windows Azure platform, called the Windows Azure Platform Appliance. When the appliance is released for broader availability, it will allow partners and large customers to host their own dedicated versions of Windows Azure and SQL Azure. For developers, this means that your Windows Azure applications can be hosted on-premises, in a partner’s data center, or in the public cloud without change. Join me in this video with Technical Strategist, Steve Marx as we talk about what the appliance means to developers and dig a bit more into the announcement.
http://channel9.msdn.com/posts/dunnry/Introducing-the-Windows-Azure-Platform-Appliance/
Friday, July 09, 2010
TIOBE Software Language Index
This website tracks on a monthly basis the popularity and use of various programming languages.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Thursday, July 08, 2010
Introducing IIS Express
Below is a post for Scott Guthrie about the upcoming release of IIS Express.
Developers today build and test ASP.NET sites and applications using one of two web-servers:
- The ASP.NET Development Server that comes built-into Visual Studio
- The IIS Web Server that comes built-into Windows
Both of the above options have their pros and cons, and many ASP.NET developers have told us: “I wish I could have the ease of use of the ASP.NET Development Server, but still have all the power and features of IIS”. Today I’m happy to announce a new, free option that we are enabling – IIS Express - that combines the best characteristics of both, and which will make it easier to build and run ASP.NET sites and applications.
IIS Express will work with VS 2010 and Visual Web Developer 2010 Express, will run on Windows XP and higher systems, does not require an administrator account, and does not require any code changes to use. You will be able to take advantage of it with all types of ASP.NET applications, and it enables you to develop using a full IIS 7.x feature-set.
How Things Work Today
Before I get into the details of IIS Express, let’s first quickly review how the ASP.NET Development Server and IIS options work today.
ASP.NET Development Server
Visual Studio’s built-in ASP.NET Development Server (also known as “Cassini”) has the benefit of being light-weight and easy to quickly run. It doesn’t listen on remote ports (which makes it easier to get approved for many corporate security environments), works even when you are running under a non-administrator account, and doesn’t require a separate installation step.
The fact that it is so easy to get running is a huge positive of it – and the reason it is the default web-server used by ASP.NET projects in Visual Studio when you press F5 to run them:
The downside with the ASP.NET Developer Server, though, is that it does not support a full set of web-server features. For example, it doesn’t support SSL, URL Rewriting Rules (like the SEO URL Rewrite Rules I blogged about here), Custom Security Settings, and other richer features now offered with IIS 7.
IIS Web Server
IIS is the other option developers use when running and testing their applications with Visual Studio. You can configure a web project within Visual Studio to use IIS by right-clicking on the project and pulling up its properties (and then by clicking on the “Web” tab within the properties window)":
Using IIS as your development server allows you to take full advantage of all web-server features (SSL, URL Rewrite Rules, etc). IIS is a full-fledged web-server – which means you’ll get an experience closer to what it will work like when you deploy the application on a production server.
The downside with using the IIS option today, though, is that some companies don’t allow full web-servers to be installed on developer machines. IIS also requires administrator account access to setup and debug projects. Different versions of Windows also support different versions of IIS. For example, if you are running on Windows XP you have to use the IIS 5.1 web-server that comes with it – which doesn’t support all the new features of IIS 7.x. Configuring a web project within VS to use IIS also requires some extra installation and configuration steps.
IIS Express – The Best of Both Options
We have been working on a new flavor of IIS 7.x that is optimized for developer scenarios that we are calling “IIS Express”. We think it combines the ease of use of the ASP.NET Web Server with the full power of IIS. Specifically:
- It’s lightweight and easy to install (less than 10Mb download and a super quick install)
- It does not require an administrator account to run/debug applications from Visual Studio
- It enables a full web-server feature set – including SSL, URL Rewrite, Media Support, and all other IIS 7.x modules
- It supports and enables the same extensibility model and web.config file settings that IIS 7.x support
- It can be installed side-by-side with the full IIS web server as well as the ASP.NET Development Server (they do not conflict at all)
- It works on Windows XP and higher operating systems – giving you a full IIS 7.x developer feature-set on all OS platforms
IIS Express (like the ASP.NET Development Server) can be quickly launched to run a site from a directory on disk. It does not require any registration/configuration steps. This makes it really easy to launch and run for development scenarios.
VS 2010 Integration
We are enabling IIS Express so that it can be easily used with Visual Studio 2010. You’ll be able to configure VS 2010 to use it instead of the ASP.NET Web Server as the default web-server on ASP.NET Projects. Like the ASP.NET Development Server today, you won’t need to register a site or virtual directory to use IIS Express. It will support the same usage-model as the ASP.NET Development Server today – just with more feature support.
When you press F5 to run an ASP.NET project, Visual Studio can automatically launch IIS Express and use it to run/debug the application (no extra configuration required). Like the ASP.NET Web Server, IIS Express will show up in your task-bar tray when running:
You can right-click and click “exit” on the icon above to quickly shutdown IIS Express. You can also right-click and pull up a list of all sites running with it, as well as the directory location and .NET versions they are running under:
Two cool things to notice above:
1) The “Test Site” we are running, as well as IIS Express itself, live under the c:\users\[username] folder on disk. This enables non-administrator usage of IIS Express and sites – and enables a bunch of scenarios not possible with the full IIS today (including the ability to run IIS Express in both a locked-down enterprise environment as well as a locked-down school shared computer environment).
2) The “Test Site” we are running above using IIS Express supports both HTTP and HTTPS access. IIS Express automatically installs a “self-signed certificate” and enables URL ACLs and SSL Certificates for ports so that developers (running as non-administrators on a machine) can use SSL without needing to elevate their accounts or setup any additional configuration. This enables you to configure secure pages within your applications (like Logon forms) for SSL and run/test them at development time just like they’ll work on your real web-server.
IIS 7.x Feature Set
IIS Express is as easy to run and use as the ASP.NET Web Server you are familiar with today. But because IIS Express is based on the IIS 7x codebase, you have a full web-server feature-set that you can use. This means you can build and run your applications just they’ll work on a real production web-server. In addition to scenarios like SSL, you can take advantage of the IIS 7.x URL Rewriter module, Media Extensions, Dynamic Compression, Advanced Logging, Custom Security and other rich modules now available.
In addition to supporting ASP.NET, IIS Express also supports Classic ASP and other file-types and extensions supported by IIS – which also makes it ideal for sites that combine a variety of different technologies.
Summary
We think IIS Express makes it even easier to build, run and test web applications. It works with all versions of ASP.NET and supports all ASP.NET application types (including obviously ASP.NET Web Forms and ASP.NET MVC applications). Best of all – you do not need to change any code to take advantage of it. You’ll be able to optionally use it with all your current projects today.
We’ll be releasing the first public beta of IIS Express shortly. With the beta you’ll be able to right-click on a file-system folder and have IIS Express launch a web-site based on that file-system location. We’ll also be releasing a patch for VS 2010 and Visual Web Developer 2010 Express later this year that will enable you to automatically launch and use IIS Express in place of VS’s built-in ASP.NET Developer Server. Future versions of Visual Studio will then ship with this functionality built-in.
SQL CE 4.0
Below is some information on the up coming release of SQL CE 4.0.
Introducing SQL Server Compact Edition 4
SQL CE is a free, embedded, database engine that enables easy database storage. We will be releasing the first public beta of SQL CE Version 4 very shortly. Version 4 has been designed and tested to work within ASP.NET Web applications.
Works with Existing Data APIs
SQL CE works with existing .NET-based data APIs, and supports a SQL Server compatible query syntax. This means you can use existing data APIs like ADO.NET, as well as use higher-level ORMs like Entity Framework and NHibernate with SQL CE. Pretty much any existing data API that supports the ADO.NET provider model will work with it.
This enables you to use the same data programming skills and data APIs you know today.
No Database Installation Required
SQL CE does not require you to run a setup or install a database server in order to use it. You can now simply copy the SQL CE binaries into the \bin directory of your ASP.NET application, and then your web application can run and use it as a database engine. No setup or extra security permissions are required for it to run. You do not need to have an administrator account on the machine. It just works.
Applications you build can redistribute SQL CE as part of them. Just copy your web application onto any server and it will work.
Database Files are Stored on Disk
SQL CE stores databases as files on disk (within files with a .sdf file extension). You can store SQL CE database files within the \App_Data folder of your ASP.NET Web application - they do not need to be registered in order to use them within your application.
The SQL CE database engine then runs in-memory within your application. When your application shuts down the database is automatically unloaded.
Shared Web Hosting Scenarios Are Now Supported with SQL CE 4
SQL CE 4 can now run in “medium trust” ASP.NET 4 web hosting scenarios – without a hoster having to install anything. Hosters do not need to install SQL CE or do anything to their servers to enable it.
This means you can build an ASP.NET Web application that contains your code, content, and now also a SQL CE database engine and database files – all contained underneath your application directory. You can now deploy an application like this simply by using FTP to copy it up to an inexpensive shared web hosting account – no extra database deployment step or hoster installation required.
SQL CE will then run within your application at the remote host. Because it runs in-memory and saves its files to disk you do not need to pay extra for a SQL Server database.
Visual Studio 2010 and Visual Web Developer 2010 Express Support
VS 2010 and Visual Web Developer 2010 Express will add SQL CE 4 tooling support for ASP.NET scenarios in an update we’ll be rolling out in the future. This will enable you to add SQL CE database files to your ASP.NET projects, use the Visual Studio Server Explorer to create and edit tables in them, and use higher-level designers like Entity Framework (see below) to model and map the database to classes that you can then query and program against using LINQ.
This means that in addition to using the same data APIs you know today, you will also be able to easily use the same development tools you already know with SQL CE.
Supports Both Development and Production
SQL CE can be used for both development scenarios and light-usage production usage scenarios. With the SQL CE 4 release we’ve done the engineering work to ensure that SQL CE won’t crash or deadlock when used in a multi-threaded server scenario (like ASP.NET). This is a big change from previous releases of SQL CE – which were designed for client-only scenarios and which explicitly blocked running in web-server environments. Starting with SQL CE 4 you can use it in a web-server as well.
There are no license restrictions with SQL CE.
Easy Migration to SQL Server
SQL CE is an embedded database – which makes it ideal for development and light-usage scenarios. For high-volume sites and applications you’ll probably want to migrate it to use SQL Server Express (which is free), SQL Server or SQL Azure. These servers enable much better scalability, more development features (including features like Stored Procedures – which aren’t supported with SQL CE), as well as more advanced data management capabilities.
We’ll ship migration tools that enable you to optionally take SQL CE databases and easily upgrade them to use SQL Server Express, SQL Server, or SQL Azure. You will not need to change your code when upgrading a SQL CE database to SQL Server or SQL Azure. Our goal is to enable you to be able to simply change the database connection string in your web.config file and have your application just work.
Summary
SQL CE 4 provides an easy, lightweight database option that you’ll now be able to use with ASP.NET applications. It will enable you to get started on projects quickly – without having to install a full database on your local development box. Because it is a compatible subset of the full SQL Server, you write code against it using the same data APIs (ADO.NET, Entity Framework, NHibernate, etc).
You will be able to easily deploy SQL CE based databases to a remote hosting account and use it to run light-usage sites and applications. As your site traffic grows you can then optionally upgrade the database to use SQL Server Express (which is free), SQL Server or SQL Azure – without having to change your code.
Friday, July 02, 2010
.Net Tools
The purpose of this post is to list some .Net related applications, tools, utilities and add-ons with brief descriptions that I use or find useful.
Application | Description |
Visual Studio 2010 Pro Power Tools(June 25, 2010, 10.0.10608.1630)http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef | Revision Notes
Visual Studio 2010 Productivity Power Tools A set of extensions to Visual Studio Professional (and above) which improves developer productivity.
|
PowerCommands for Visual Studio 2010June 16, 2010, Version 1.0.2.2http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99 | PowerCommands 10.0PowerCommands 10.0 is a set of useful extensions for the Visual Studio 2010 adding additional functionality to various areas of the IDE. Visit the VSX Developer Center at http://msdn.com/vsx for more information about extending Visual Studio. |
.NET Reflector (Free) .NET Reflector Pro ($99) Version 6.1.0 http://www.red-gate.com/products/reflector/ | .NET Reflector v6 –Free Explore and analyze compiled .NET assemblies, viewing them in C#, Visual Basic and IL. Now supports .NET 4 , and includes a 14-day free trial of .NET Reflector Pro. Step into decompiled assemblies whilst debugging in Visual Studio .NET Reflector Pro is an add-in to Visual Studio that lets you step straight into the source code of any managed assembly, even when the source is not available. View 3-step walk-through or the full demo video.
|
Refactor!™ Pro for Visual Studio® ($99) http://www.devexpress.com/Products/Visual_Studio_Add-in/Refactoring/ | Never before has a developer tool been so easy to use. You don't have to be an architect or designer to reap the benefits from using Refactor! Pro™. Tasks you do all the time are suddenly much easier with Refactor!. Simply highlight the code you want to change — smart tags show what's available. Select the desired code change operation from the menu. Preview hinting marks up the code and shows the impact of the change before you commit.See. We told you it was easy. Amazing Productivity BoostDeclaring constants, renaming variables, simplifying complex code — these are the things developers do all the time to improve readability and the quality of the source code. Refactor! makes all this just a single keystroke away. Do the things you always do, now with greater speed, accuracy and efficiency! Industry-grade QualityAt Developer Express, we're serious about quality. That's why Refactor! Pro is backed by 18,000+ test cases and a hardworking staff of developers and test case writers committed to continually exceeding your expectations. Immediate Return on InvestmentRefactor! Pro has everything developers need to become productive within minutes of installing. Most developers will experience a return on investment in the first day of use. If you write or maintain code for a living, you owe it to yourself to add Refactor! to your toolset. Undisputed Refactoring LeaderWith more than 150 refactorings, Refactor! Pro has more refactorings than any other tool for any platform. And best of all, it's from a company you can trust: Developer Express, the leading component, framework, and tool vendor for .NET. |
CodeRush™ with Refactor!™ Prohttp://www.devexpress.com/Products/Visual_Studio_Add-in/Coding_Assistance/ | Powerful. Efficient. Fast.Today, software consumers demand more than ever before from developers. The pressure to deliver more features with higher quality in less time has never been greater. Developer Express created CodeRush for Visual Studio® .NET to help developers and managers meet these increased demands for quality and functionality, by boosting productivity while eliminating the repetition that erodes precious creativity. For Developers, CodeRush for Visual Studio® .NET will help you create sophisticated code blocks in seconds and extend code templates instantly. CodeRush will complete identifiers as you type and expand or contract selections logically. With CodeRush, you will be able to instantly place selected code inside Try/Catch blocks, Regions and your own custom wrappers with ease. You can even reverse the logic of selected code and revisit important points within your code instantly (and effortlessly swap between locations). The obvious question might be how or what does CodeRush do that my current editor doesn't since I'm quite productive now? The answer is that by integrating tightly with the Visual Studio® .NET IDE, CodeRush is able to improve the development environment from the inside out - bringing you new ways to look at code, new ways to generate code, new ways to navigate through code, and new ways to create your own extensions to your development environment. CodeRush includes many powerful templates, but perhaps the most powerful CodeRush feature is the ability to build your own in seconds. Of course CodeRush for Visual Studio® .NET is also 100% managed code and fully integrated within the IDE itself, so you can start extending your development environment today using nothing but managed code. Every single CodeRush feature is implemented as a plug-in using Visual Studio's form designer and property browser. It's the fastest, most powerful way to extend Visual Studio® .NET -- guaranteed! Like all Developer Express technologies, CodeRush for Visual Studio® .NET comes with a 60 day no hassle money back guarantee. If after trying CodeRush, you don't agree that it is the best and most productive way to create software in Visual Studio, you can obtain a refund, no questions asked. |
SourceGear Fortress http://www.sourcegear.com/products.html | Fortress is a cross-platform Application Lifecycle Management (ALM) solution for small and medium-sized teams. Fortress is everything Vault is with the addition of integrated work item tracking. |
SourceGear Vault http://www.sourcegear.com/products.html | Vault is a version control tool for professional development teams designed to be a compelling replacement for SourceSafe.
|
PowerISO http://www.poweriso.com/ | PowerISO is a powerful CD/DVD image file processing tool, which allows you to open, extract, create, edit, compress, encrypt, split and convert ISO files, and mount these files with internal virtual drive. It can process almost all CD-ROM image files including ISO and BIN. |
NAnt (.Net Build Tool) http://nant.sourceforge.net/ | NAnt is different. Instead of a model where it is extended with shell-based commands, NAnt is extended using task classes. Instead of writing shell commands, the configuration files are XML-based, calling out a target tree where various tasks get executed. Each task is run by an object that implements a particular Task interface. Granted, this removes some of the expressive power that is inherent in being able to construct a shell command such as 'find . -name foo -exec rm {}', but it gives you the ability to be cross-platform - to work anywhere and everywhere. And hey, if you really need to execute a shell command, NAnt has an |
NDepend http://www.ndepend.com/ | Make your .NET Code Beautiful with NDepend |
FxCop http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx | FxCop is an application that analyzes managed code assemblies (code that targets the .NET Framework common language runtime) and reports information about the assemblies, such as possible design, localization, performance, and security improvements. Many of the issues concern violations of the programming and design rules set forth in the Design Guidelines, which are the Microsoft guidelines for writing robust and easily maintainable code by using the .NET Framework. FxCop is intended for class library developers. However, anyone creating applications that should comply with the .NET Framework best practices will benefit. FxCop is also useful as an educational tool for people who are new to the .NET Framework or who are unfamiliar with the .NET Framework Design Guidelines. FxCop is designed to be fully integrated into the software development cycle and is distributed as both a fully featured application that has a graphical user interface (FxCop.exe) for interactive work, and a command-line tool (FxCopCmd.exe) suited for use as part of automated build processes or integrated with Microsoft Visual Studio® .NET as an external tool. |
StyleCop http://code.msdn.microsoft.com/sourceanalysis | StyleCop analyzes C# source code to enforce a set of style and consistency rules. It can be run from inside of Visual Studio or integrated into an MSBuild project. |
NUnit http://www.nunit.org/ | What Is NUnit?NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 2.5, is the sixth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages. |
ANTS Performance Profiler (RedGate) http://www.red-gate.com/products/ants_performance_profiler/index.htm | ANTS Performance Profiler™ (Latest version: 6.0 )NEW! .NET code profiler: Speed up the performance of your .NET applications
|
ANTS Memory Profiler™: Profile the memory usage of your .NET application (RedGate) http://www.red-gate.com/products/ants_memory_profiler/index.htm | ANTS Memory Profiler™: Profile the memory usage of your .NET applicationLatest version: 5.2Find memory leaks and optimize memory usage
|
Exception Hunter™ *(Red Gate) | Exception Hunter™Latest version: 2.1Locate unhandled exceptions your program may throw and eliminate crashes before they happen
Until now, developers have had to wait until an error happened to find out which method throws which exceptions. Exception Hunter is a static analysis tool that finds and reports the set of possible exceptions your functions might throw – before you even ship. With it, you can locate unhandled exceptions easily and quickly, down to the line of code that is throwing the exceptions. Once you have the results, you can decide which exceptions need to be handled (with some exception handling code) before you release your application into the wild. |